~ubuntu-branches/ubuntu/maverick/aspectc++/maverick

« back to all changes in this revision

Viewing changes to Puma/gen-release/step2/src/CTree.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/CTree.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_CTree_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/CTree.cc"
9
 
 
10
 
#line 11 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
2
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.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_CTree_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/CTree.cc"
 
9
 
 
10
#line 11 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.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/CTree.cc"
44
 
 
45
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
46
 
 
47
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48
 
 
49
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
50
 
// This file is part of PUMA.
51
 
// Copyright (C) 1999-2003  The PUMA developer team.
52
 
//                                                                
53
 
// This program is free software;  you can redistribute it and/or 
54
 
// modify it under the terms of the GNU General Public License as 
55
 
// published by the Free Software Foundation; either version 2 of 
56
 
// the License, or (at your option) any later version.            
57
 
//                                                                
58
 
// This program is distributed in the hope that it will be useful,
59
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
60
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
61
 
// GNU General Public License for more details.                   
62
 
//                                                                
63
 
// You should have received a copy of the GNU General Public      
64
 
// License along with this program; if not, write to the Free     
65
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
66
 
// MA  02111-1307  USA                                            
67
 
 
68
 
#ifndef __CCExprResolveCC_ah__
69
 
#define __CCExprResolveCC_ah__
70
 
 
71
 
// This aspect inserts resolve member functions into all syntax tree classes
72
 
// that represent expressions. As the function is virtual, an efficient
73
 
// run-time switch over the node type is implemented.
74
 
 
75
 
 
76
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
77
 
// This file is part of PUMA.
78
 
// Copyright (C) 1999-2003  The PUMA developer team.
79
 
//                                                                
80
 
// This program is free software;  you can redistribute it and/or 
81
 
// modify it under the terms of the GNU General Public License as 
82
 
// published by the Free Software Foundation; either version 2 of 
83
 
// the License, or (at your option) any later version.            
84
 
//                                                                
85
 
// This program is distributed in the hope that it will be useful,
86
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
87
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
88
 
// GNU General Public License for more details.                   
89
 
//                                                                
90
 
// You should have received a copy of the GNU General Public      
91
 
// License along with this program; if not, write to the Free     
92
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
93
 
// MA  02111-1307  USA                                            
94
 
 
95
 
#ifndef __CCExprResolveH_ah__
96
 
#define __CCExprResolveH_ah__
97
 
 
98
 
// This aspect inserts resolve member functions into all syntax tree classes
99
 
// that represent expressions. As the function is virtual, an efficient
100
 
// run-time switch over the node type is implemented.
101
 
 
102
 
namespace Puma {
103
 
  class CCSemExpr;
104
 
}
105
 
 
106
 
using namespace Puma;
107
 
 
108
 
namespace Puma {
109
 
  
110
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
111
 
 
112
 
  
113
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
114
 
 
115
 
}
116
 
 
117
 
 
118
 
#line 119 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
119
 
class WinIfExists;
120
 
class WinImportHandler;
121
 
class WinMacros;
122
 
class CMatchSyntax;
123
 
class ExtGnu;
124
 
class ExtAC;
125
 
class ExtACBuilderCoupling;
126
 
class ExtACSyntaxCoupling;
127
 
class ExtACTree;
128
 
class ExtACKeywords;
129
 
class WinAsm;
130
 
class WinDeclSpecs;
131
 
class WinMemberExplSpec;
132
 
class WinTypeKeywords;
133
 
class PragmaOnceUnitState;
134
 
class PragmaOnce;
135
 
class CExprResolve;
136
 
 
137
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
138
 
class CCExprResolve {
139
 
#line 140 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
140
 
 
141
 
public:
142
 
  static CCExprResolve *aspectof () {
143
 
    static CCExprResolve __instance;
144
 
    return &__instance;
145
 
  }
146
 
  static CCExprResolve *aspectOf () {
147
 
    return aspectof ();
148
 
  }
149
 
private:
150
 
 
151
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
152
 
 
153
 
#line 154 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
154
 
  friend class ::WinIfExists;
155
 
  friend class ::WinImportHandler;
156
 
  friend class ::WinMacros;
157
 
  friend class ::CMatchSyntax;
158
 
  friend class ::ExtGnu;
159
 
  friend class ::ExtAC;
160
 
  friend class ::ExtACBuilderCoupling;
161
 
  friend class ::ExtACSyntaxCoupling;
162
 
  friend class ::ExtACTree;
163
 
  friend class ::ExtACKeywords;
164
 
  friend class ::WinAsm;
165
 
  friend class ::WinDeclSpecs;
166
 
  friend class ::WinMemberExplSpec;
167
 
  friend class ::WinTypeKeywords;
168
 
  friend class ::PragmaOnceUnitState;
169
 
  friend class ::PragmaOnce;
170
 
  friend class ::CExprResolve;
171
 
 
172
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
173
 
 
174
 
  
175
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
176
 
 
177
 
  
178
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
179
 
 
180
 
};
181
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
182
 
 
183
 
namespace AC {
184
 
185
 
 
186
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
187
 
 
188
 
 
189
 
#endif /* __CCExprResolveH_ah__ */
190
 
 
191
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCSemExpr.h"
192
 
 
193
 
#line 194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
194
 
 
195
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
196
 
// This file is part of PUMA.
197
 
// Copyright (C) 1999-2003  The PUMA developer team.
198
 
//                                                                
199
 
// This program is free software;  you can redistribute it and/or 
200
 
// modify it under the terms of the GNU General Public License as 
201
 
// published by the Free Software Foundation; either version 2 of 
202
 
// the License, or (at your option) any later version.            
203
 
//                                                                
204
 
// This program is distributed in the hope that it will be useful,
205
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
206
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
207
 
// GNU General Public License for more details.                   
208
 
//                                                                
209
 
// You should have received a copy of the GNU General Public      
210
 
// License along with this program; if not, write to the Free     
211
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
212
 
// MA  02111-1307  USA                                            
213
 
 
214
 
#ifndef __ext_gnu_h__
215
 
#define __ext_gnu_h__
216
 
 
217
 
#include <string.h>
218
 
 
219
 
 
220
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
221
 
 
222
 
#line 223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
223
 
 
224
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
225
 
// This file is part of PUMA.
226
 
// Copyright (C) 1999-2003  The PUMA developer team.
227
 
//                                                                
228
 
// This program is free software;  you can redistribute it and/or 
229
 
// modify it under the terms of the GNU General Public License as 
230
 
// published by the Free Software Foundation; either version 2 of 
231
 
// the License, or (at your option) any later version.            
232
 
//                                                                
233
 
// This program is distributed in the hope that it will be useful,
234
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
235
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
236
 
// GNU General Public License for more details.                   
237
 
//                                                                
238
 
// You should have received a copy of the GNU General Public      
239
 
// License along with this program; if not, write to the Free     
240
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
241
 
// MA  02111-1307  USA                                            
242
 
 
243
 
#ifndef __CExprResolveH_ah__
244
 
#define __CExprResolveH_ah__
245
 
 
246
 
// This aspect inserts resolve member functions into all syntax tree classes
247
 
// that represent expressions. As the function is virtual, an efficient
248
 
// run-time switch over the node type is implemented.
249
 
 
250
 
namespace Puma {
251
 
  class CSemExpr;
252
 
}
253
 
 
254
 
using namespace Puma;
255
 
 
256
 
namespace Puma {
257
 
  
258
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
259
 
 
260
 
  
261
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
262
 
 
263
 
}
264
 
 
265
 
 
266
 
#line 267 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
267
 
class WinIfExists;
268
 
class WinImportHandler;
269
 
class WinMacros;
270
 
class CMatchSyntax;
271
 
class ExtGnu;
272
 
class ExtAC;
273
 
class ExtACBuilderCoupling;
274
 
class ExtACSyntaxCoupling;
275
 
class ExtACTree;
276
 
class ExtACKeywords;
277
 
class WinAsm;
278
 
class WinDeclSpecs;
279
 
class WinMemberExplSpec;
280
 
class WinTypeKeywords;
281
 
class PragmaOnceUnitState;
282
 
class PragmaOnce;
283
 
class CCExprResolve;
284
 
 
285
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
286
 
class CExprResolve {
287
 
#line 288 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
288
 
 
289
 
public:
290
 
  static CExprResolve *aspectof () {
291
 
    static CExprResolve __instance;
292
 
    return &__instance;
293
 
  }
294
 
  static CExprResolve *aspectOf () {
295
 
    return aspectof ();
296
 
  }
297
 
private:
298
 
 
299
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
300
 
 
301
 
#line 302 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
302
 
  friend class ::WinIfExists;
303
 
  friend class ::WinImportHandler;
304
 
  friend class ::WinMacros;
305
 
  friend class ::CMatchSyntax;
306
 
  friend class ::ExtGnu;
307
 
  friend class ::ExtAC;
308
 
  friend class ::ExtACBuilderCoupling;
309
 
  friend class ::ExtACSyntaxCoupling;
310
 
  friend class ::ExtACTree;
311
 
  friend class ::ExtACKeywords;
312
 
  friend class ::WinAsm;
313
 
  friend class ::WinDeclSpecs;
314
 
  friend class ::WinMemberExplSpec;
315
 
  friend class ::WinTypeKeywords;
316
 
  friend class ::PragmaOnceUnitState;
317
 
  friend class ::PragmaOnce;
318
 
  friend class ::CCExprResolve;
319
 
 
320
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
321
 
 
322
 
  
323
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
324
 
 
325
 
  
326
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
327
 
 
328
 
};
329
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
330
 
 
331
 
namespace AC {
332
 
333
 
 
334
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
335
 
 
336
 
 
337
 
#endif /* __CExprResolveH_ah__ */
338
 
 
339
 
#line 5 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
340
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
341
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
342
 
 
343
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
344
 
// This file is part of PUMA.
345
 
// Copyright (C) 1999-2003  The PUMA developer team.
346
 
//                                                                
347
 
// This program is free software;  you can redistribute it and/or 
348
 
// modify it under the terms of the GNU General Public License as 
349
 
// published by the Free Software Foundation; either version 2 of 
350
 
// the License, or (at your option) any later version.            
351
 
//                                                                
352
 
// This program is distributed in the hope that it will be useful,
353
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
354
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
355
 
// GNU General Public License for more details.                   
356
 
//                                                                
357
 
// You should have received a copy of the GNU General Public      
358
 
// License along with this program; if not, write to the Free     
359
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
360
 
// MA  02111-1307  USA                                            
361
 
 
362
 
#ifndef __gnu_c_tree_h__
363
 
#define __gnu_c_tree_h__
364
 
 
365
 
namespace Puma {
366
 
 
367
 
// Syntax tree node hierarchy:
368
 
class   CT_GnuAsmDef;        // derived from CT_AsmDef
369
 
class   CT_GnuAsmOperand;    // derived from CTree
370
 
class     CT_GnuAsmOperands; // derived from CT_List
371
 
class     CT_GnuAsmClobbers; // derived from CT_List
372
 
class   CT_GnuStatementExpr; // derived from CT_Expression
373
 
 
374
 
} // namespace Puma
375
 
 
376
 
 
377
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
378
 
 
379
 
#line 380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
59
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
60
 
 
61
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
62
// This file is part of PUMA.
 
63
// Copyright (C) 1999-2003  The PUMA developer team.
 
64
//                                                                
 
65
// This program is free software;  you can redistribute it and/or 
 
66
// modify it under the terms of the GNU General Public License as 
 
67
// published by the Free Software Foundation; either version 2 of 
 
68
// the License, or (at your option) any later version.            
 
69
//                                                                
 
70
// This program is distributed in the hope that it will be useful,
 
71
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
72
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
73
// GNU General Public License for more details.                   
 
74
//                                                                
 
75
// You should have received a copy of the GNU General Public      
 
76
// License along with this program; if not, write to the Free     
 
77
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
78
// MA  02111-1307  USA                                            
 
79
 
 
80
 
 
81
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82
 
 
83
#line 84 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
380
84
 
381
85
#ifndef __ac_fwd_ExtACTree__
382
86
#define __ac_fwd_ExtACTree__
383
87
class ExtACTree;
384
88
namespace AC {
385
89
  template <class JoinPoint>
386
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
387
 
  template <class JoinPoint>
388
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
389
 
}
390
 
#endif
391
 
 
392
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
393
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
394
 
#endif
395
 
 
396
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
397
 
 
398
 
#line 399 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
399
 
 
400
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
401
 
// This file is part of PUMA.
402
 
// Copyright (C) 1999-2003  The PUMA developer team.
403
 
//                                                                
404
 
// This program is free software;  you can redistribute it and/or 
405
 
// modify it under the terms of the GNU General Public License as 
406
 
// published by the Free Software Foundation; either version 2 of 
407
 
// the License, or (at your option) any later version.            
408
 
//                                                                
409
 
// This program is distributed in the hope that it will be useful,
410
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
411
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
412
 
// GNU General Public License for more details.                   
413
 
//                                                                
414
 
// You should have received a copy of the GNU General Public      
415
 
// License along with this program; if not, write to the Free     
416
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
417
 
// MA  02111-1307  USA                                            
418
 
 
419
 
#ifndef __ExtACTree_ah__
420
 
#define __ExtACTree_ah__
421
 
 
422
 
// TODO:
423
 
// this shall be introduced by the ExtAC aspect as soon as the include cycle
424
 
// problem is solved!
425
 
 
426
 
namespace Puma {
427
 
  class CTree;
428
 
}
429
 
 
430
 
using namespace Puma;
431
 
 
432
 
 
433
 
#line 434 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
434
 
class WinIfExists;
435
 
class WinImportHandler;
436
 
class WinMacros;
437
 
class CMatchSyntax;
438
 
class ExtGnu;
439
 
class ExtAC;
440
 
class ExtACBuilderCoupling;
441
 
class ExtACSyntaxCoupling;
442
 
class ExtACKeywords;
443
 
class WinAsm;
444
 
class WinDeclSpecs;
445
 
class WinMemberExplSpec;
446
 
class WinTypeKeywords;
447
 
class PragmaOnceUnitState;
448
 
class PragmaOnce;
449
 
class CCExprResolve;
450
 
class CExprResolve;
451
 
 
452
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
453
 
class ExtACTree {
454
 
#line 455 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
455
 
 
456
 
public:
457
 
  static ExtACTree *aspectof () {
458
 
    static ExtACTree __instance;
459
 
    return &__instance;
460
 
  }
461
 
  static ExtACTree *aspectOf () {
462
 
    return aspectof ();
463
 
  }
464
 
private:
465
 
 
466
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
467
 
 
468
 
#line 469 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
469
 
  friend class ::WinIfExists;
470
 
  friend class ::WinImportHandler;
471
 
  friend class ::WinMacros;
472
 
  friend class ::CMatchSyntax;
473
 
  friend class ::ExtGnu;
474
 
  friend class ::ExtAC;
475
 
  friend class ::ExtACBuilderCoupling;
476
 
  friend class ::ExtACSyntaxCoupling;
477
 
  friend class ::ExtACKeywords;
478
 
  friend class ::WinAsm;
479
 
  friend class ::WinDeclSpecs;
480
 
  friend class ::WinMemberExplSpec;
481
 
  friend class ::WinTypeKeywords;
482
 
  friend class ::PragmaOnceUnitState;
483
 
  friend class ::PragmaOnce;
484
 
  friend class ::CCExprResolve;
485
 
  friend class ::CExprResolve;
486
 
 
487
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
488
 
 
489
 
  
490
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
491
 
 
492
 
  
493
 
  // implemented in a separate .cc file, because Builder.h is needed!
494
 
  void delete_tree (CTree *t);
495
 
  
496
 
  
497
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
498
 
 
499
 
  
500
 
  
501
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
502
 
 
503
 
public: template<class JoinPoint> void __a0_after 
504
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
505
 
 
506
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
507
 
(JoinPoint *tjp)
508
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
509
 
 {
510
 
#line 511 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
511
 
 
512
 
  typedef typename JoinPoint::That __JP_That;
513
 
  typedef typename JoinPoint::Target __JP_Target;
514
 
  typedef typename JoinPoint::Result __JP_Result;
515
 
 
516
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
517
 
 
518
 
    tjp->that ()->_intro_members = 0;
519
 
  }
520
 
#line 521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
521
 
 
522
 
private:
523
 
 
524
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
525
 
 
526
 
  
527
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
528
 
 
529
 
public: template<class JoinPoint> void __a1_before 
530
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
531
 
 
532
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
533
 
(JoinPoint *tjp)
534
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
535
 
 {
536
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
537
 
 
538
 
  typedef typename JoinPoint::That __JP_That;
539
 
  typedef typename JoinPoint::Target __JP_Target;
540
 
  typedef typename JoinPoint::Result __JP_Result;
541
 
 
542
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
543
 
 
544
 
    delete_tree (tjp->that ()->_intro_members);
545
 
  }
546
 
#line 547 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
547
 
 
548
 
private:
549
 
 
550
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
551
 
 
552
 
};
553
 
#line 554 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
554
 
 
555
 
namespace AC {
556
 
  template <class JoinPoint>
557
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp) {
558
 
    ::ExtACTree::aspectof()->__a0_after (tjp);
559
 
  }
560
 
  template <class JoinPoint>
561
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp) {
562
 
    ::ExtACTree::aspectof()->__a1_before (tjp);
563
 
  }
564
 
565
 
 
566
 
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
567
 
 
568
 
 
569
 
#endif // __ExtACTree_ah__
570
 
 
571
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
572
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
573
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
574
 
 
575
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
91
  template <class JoinPoint>
 
92
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
93
}
 
94
#endif
 
95
 
 
96
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
97
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
98
#endif
 
99
 
 
100
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
576
101
// This file is part of PUMA.
577
102
// Copyright (C) 1999-2003  The PUMA developer team.
578
103
//                                                                
617
142
class     CT_DefaultStmt;
618
143
class     CT_TryStmt;
619
144
class   CT_Expression;
 
145
class     CT_Call;
 
146
class       CT_CallExpr;
 
147
class       CT_ImplicitCall;
620
148
class     CT_ThrowExpr;
621
149
class     CT_NewExpr;
622
150
class     CT_DeleteExpr;
637
165
class     CT_IfThenExpr;
638
166
class     CT_CmpdLiteral;
639
167
class     CT_IndexExpr;
640
 
class     CT_CallExpr;
641
168
class     CT_CastExpr;
642
169
class     CT_StaticCast;
643
170
class       CT_ConstCast;
684
211
class     CT_NamespaceDef;
685
212
class     CT_NamespaceAliasDef;
686
213
class     CT_UsingDirective;
 
214
class     CT_Condition;
687
215
class   CT_List;
688
216
class     CT_CmpdStmt;
689
217
class     CT_DeclSpecSeq;
714
242
class     CT_TemplateArgList;
715
243
class   CT_Token;
716
244
class   CT_Error;
717
 
class   CT_Condition;
718
245
class   CT_BaseSpec;
719
246
class   CT_AccessSpec;
720
247
class   CT_ArrayDelimiter;
727
254
} // namespace Puma
728
255
 
729
256
 
730
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
257
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
731
258
// This file is part of PUMA.
732
259
// Copyright (C) 1999-2003  The PUMA developer team.
733
260
//                                                                
755
282
 
756
283
 
757
284
 
758
 
#line 759 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
285
#line 286 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
759
286
} // closed Puma
 
287
class CCExprResolve;
 
288
class CExprResolve;
760
289
class WinIfExists;
761
290
class WinImportHandler;
762
291
class WinMacros;
763
 
class CMatchSyntax;
764
 
class ExtGnu;
 
292
class WinAsm;
 
293
class WinDeclSpecs;
 
294
class WinMemberExplSpec;
 
295
class WinTypeKeywords;
 
296
class WinFriend;
765
297
class ExtAC;
766
298
class ExtACBuilderCoupling;
767
299
class ExtACSyntaxCoupling;
768
300
class ExtACTree;
769
301
class ExtACKeywords;
770
 
class WinAsm;
771
 
class WinDeclSpecs;
772
 
class WinMemberExplSpec;
773
 
class WinTypeKeywords;
 
302
class ExtGnu;
774
303
class PragmaOnceUnitState;
775
304
class PragmaOnce;
776
 
class CCExprResolve;
777
 
class CExprResolve;
 
305
class CMatchSyntax;
778
306
namespace Puma {
779
307
 
780
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
308
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
781
309
class ErrorSeverity {
782
 
#line 783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
310
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
311
  friend class ::CCExprResolve;
 
312
  friend class ::CExprResolve;
783
313
  friend class ::WinIfExists;
784
314
  friend class ::WinImportHandler;
785
315
  friend class ::WinMacros;
786
 
  friend class ::CMatchSyntax;
787
 
  friend class ::ExtGnu;
 
316
  friend class ::WinAsm;
 
317
  friend class ::WinDeclSpecs;
 
318
  friend class ::WinMemberExplSpec;
 
319
  friend class ::WinTypeKeywords;
 
320
  friend class ::WinFriend;
788
321
  friend class ::ExtAC;
789
322
  friend class ::ExtACBuilderCoupling;
790
323
  friend class ::ExtACSyntaxCoupling;
791
324
  friend class ::ExtACTree;
792
325
  friend class ::ExtACKeywords;
793
 
  friend class ::WinAsm;
794
 
  friend class ::WinDeclSpecs;
795
 
  friend class ::WinMemberExplSpec;
796
 
  friend class ::WinTypeKeywords;
 
326
  friend class ::ExtGnu;
797
327
  friend class ::PragmaOnceUnitState;
798
328
  friend class ::PragmaOnce;
799
 
  friend class ::CCExprResolve;
800
 
  friend class ::CExprResolve;
 
329
  friend class ::CMatchSyntax;
801
330
 
802
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
331
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
803
332
 
804
333
  unsigned short _severity;
805
334
  const char *_text;
839
368
 
840
369
#endif /* __error_severity_h__ */
841
370
 
842
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemObject.h"
 
371
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemObject.h"
843
372
// This file is part of PUMA.
844
373
// Copyright (C) 1999-2003  The PUMA developer team.
845
374
//                                                                
867
396
class CObjectInfo;
868
397
 
869
398
 
870
 
#line 871 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
399
#line 400 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
871
400
} // closed Puma
 
401
class CCExprResolve;
 
402
class CExprResolve;
872
403
class WinIfExists;
873
404
class WinImportHandler;
874
405
class WinMacros;
875
 
class CMatchSyntax;
876
 
class ExtGnu;
 
406
class WinAsm;
 
407
class WinDeclSpecs;
 
408
class WinMemberExplSpec;
 
409
class WinTypeKeywords;
 
410
class WinFriend;
877
411
class ExtAC;
878
412
class ExtACBuilderCoupling;
879
413
class ExtACSyntaxCoupling;
880
414
class ExtACTree;
881
415
class ExtACKeywords;
882
 
class WinAsm;
883
 
class WinDeclSpecs;
884
 
class WinMemberExplSpec;
885
 
class WinTypeKeywords;
 
416
class ExtGnu;
886
417
class PragmaOnceUnitState;
887
418
class PragmaOnce;
888
 
class CCExprResolve;
889
 
class CExprResolve;
 
419
class CMatchSyntax;
890
420
namespace Puma {
891
421
 
892
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemObject.h"
 
422
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemObject.h"
893
423
class CSemObject {
894
 
#line 895 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
424
#line 425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
425
  friend class ::CCExprResolve;
 
426
  friend class ::CExprResolve;
895
427
  friend class ::WinIfExists;
896
428
  friend class ::WinImportHandler;
897
429
  friend class ::WinMacros;
898
 
  friend class ::CMatchSyntax;
899
 
  friend class ::ExtGnu;
 
430
  friend class ::WinAsm;
 
431
  friend class ::WinDeclSpecs;
 
432
  friend class ::WinMemberExplSpec;
 
433
  friend class ::WinTypeKeywords;
 
434
  friend class ::WinFriend;
900
435
  friend class ::ExtAC;
901
436
  friend class ::ExtACBuilderCoupling;
902
437
  friend class ::ExtACSyntaxCoupling;
903
438
  friend class ::ExtACTree;
904
439
  friend class ::ExtACKeywords;
905
 
  friend class ::WinAsm;
906
 
  friend class ::WinDeclSpecs;
907
 
  friend class ::WinMemberExplSpec;
908
 
  friend class ::WinTypeKeywords;
 
440
  friend class ::ExtGnu;
909
441
  friend class ::PragmaOnceUnitState;
910
442
  friend class ::PragmaOnce;
911
 
  friend class ::CCExprResolve;
912
 
  friend class ::CExprResolve;
 
443
  friend class ::CMatchSyntax;
913
444
 
914
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemObject.h"
 
445
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemObject.h"
915
446
 
916
447
  CObjectInfo *_obj;
917
448
 
926
457
 
927
458
#endif /* __CSemObject_h__ */
928
459
 
929
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemScope.h"
 
460
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemScope.h"
930
461
// This file is part of PUMA.
931
462
// Copyright (C) 1999-2003  The PUMA developer team.
932
463
//                                                                
954
485
class CStructure;
955
486
 
956
487
 
957
 
#line 958 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
488
#line 489 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
958
489
} // closed Puma
 
490
class CCExprResolve;
 
491
class CExprResolve;
959
492
class WinIfExists;
960
493
class WinImportHandler;
961
494
class WinMacros;
962
 
class CMatchSyntax;
963
 
class ExtGnu;
 
495
class WinAsm;
 
496
class WinDeclSpecs;
 
497
class WinMemberExplSpec;
 
498
class WinTypeKeywords;
 
499
class WinFriend;
964
500
class ExtAC;
965
501
class ExtACBuilderCoupling;
966
502
class ExtACSyntaxCoupling;
967
503
class ExtACTree;
968
504
class ExtACKeywords;
969
 
class WinAsm;
970
 
class WinDeclSpecs;
971
 
class WinMemberExplSpec;
972
 
class WinTypeKeywords;
 
505
class ExtGnu;
973
506
class PragmaOnceUnitState;
974
507
class PragmaOnce;
975
 
class CCExprResolve;
976
 
class CExprResolve;
 
508
class CMatchSyntax;
977
509
namespace Puma {
978
510
 
979
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemScope.h"
 
511
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemScope.h"
980
512
class CSemScope {
981
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
513
#line 514 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
514
  friend class ::CCExprResolve;
 
515
  friend class ::CExprResolve;
982
516
  friend class ::WinIfExists;
983
517
  friend class ::WinImportHandler;
984
518
  friend class ::WinMacros;
985
 
  friend class ::CMatchSyntax;
986
 
  friend class ::ExtGnu;
 
519
  friend class ::WinAsm;
 
520
  friend class ::WinDeclSpecs;
 
521
  friend class ::WinMemberExplSpec;
 
522
  friend class ::WinTypeKeywords;
 
523
  friend class ::WinFriend;
987
524
  friend class ::ExtAC;
988
525
  friend class ::ExtACBuilderCoupling;
989
526
  friend class ::ExtACSyntaxCoupling;
990
527
  friend class ::ExtACTree;
991
528
  friend class ::ExtACKeywords;
992
 
  friend class ::WinAsm;
993
 
  friend class ::WinDeclSpecs;
994
 
  friend class ::WinMemberExplSpec;
995
 
  friend class ::WinTypeKeywords;
 
529
  friend class ::ExtGnu;
996
530
  friend class ::PragmaOnceUnitState;
997
531
  friend class ::PragmaOnce;
998
 
  friend class ::CCExprResolve;
999
 
  friend class ::CExprResolve;
 
532
  friend class ::CMatchSyntax;
1000
533
 
1001
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemScope.h"
 
534
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemScope.h"
1002
535
 
1003
536
  CStructure *_scope;
1004
537
 
1013
546
 
1014
547
#endif /* __CSemScope_h__ */
1015
548
 
1016
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
549
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
1017
550
// This file is part of PUMA.
1018
551
// Copyright (C) 1999-2003  The PUMA developer team.
1019
552
//                                                                
1036
569
#define __CSemValue_h__
1037
570
 
1038
571
 
1039
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
572
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
1040
573
// This file is part of PUMA.
1041
574
// Copyright (C) 1999-2003  The PUMA developer team.
1042
575
//                                                                
1058
591
#ifndef __CExprValue_h__
1059
592
#define __CExprValue_h__
1060
593
 
1061
 
#include <ostream>
 
594
#include <iostream>
1062
595
using std::ostream;
1063
596
 
1064
597
namespace Puma {
1070
603
class CWStrLiteral;
1071
604
 
1072
605
 
1073
 
#line 1074 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
606
#line 607 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
1074
607
} // closed Puma
 
608
class CCExprResolve;
 
609
class CExprResolve;
1075
610
class WinIfExists;
1076
611
class WinImportHandler;
1077
612
class WinMacros;
1078
 
class CMatchSyntax;
1079
 
class ExtGnu;
 
613
class WinAsm;
 
614
class WinDeclSpecs;
 
615
class WinMemberExplSpec;
 
616
class WinTypeKeywords;
 
617
class WinFriend;
1080
618
class ExtAC;
1081
619
class ExtACBuilderCoupling;
1082
620
class ExtACSyntaxCoupling;
1083
621
class ExtACTree;
1084
622
class ExtACKeywords;
1085
 
class WinAsm;
1086
 
class WinDeclSpecs;
1087
 
class WinMemberExplSpec;
1088
 
class WinTypeKeywords;
 
623
class ExtGnu;
1089
624
class PragmaOnceUnitState;
1090
625
class PragmaOnce;
1091
 
class CCExprResolve;
1092
 
class CExprResolve;
 
626
class CMatchSyntax;
1093
627
namespace Puma {
1094
628
 
1095
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
629
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
1096
630
class CExprValue {
1097
 
#line 1098 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
631
#line 632 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
632
  friend class ::CCExprResolve;
 
633
  friend class ::CExprResolve;
1098
634
  friend class ::WinIfExists;
1099
635
  friend class ::WinImportHandler;
1100
636
  friend class ::WinMacros;
1101
 
  friend class ::CMatchSyntax;
1102
 
  friend class ::ExtGnu;
 
637
  friend class ::WinAsm;
 
638
  friend class ::WinDeclSpecs;
 
639
  friend class ::WinMemberExplSpec;
 
640
  friend class ::WinTypeKeywords;
 
641
  friend class ::WinFriend;
1103
642
  friend class ::ExtAC;
1104
643
  friend class ::ExtACBuilderCoupling;
1105
644
  friend class ::ExtACSyntaxCoupling;
1106
645
  friend class ::ExtACTree;
1107
646
  friend class ::ExtACKeywords;
1108
 
  friend class ::WinAsm;
1109
 
  friend class ::WinDeclSpecs;
1110
 
  friend class ::WinMemberExplSpec;
1111
 
  friend class ::WinTypeKeywords;
 
647
  friend class ::ExtGnu;
1112
648
  friend class ::PragmaOnceUnitState;
1113
649
  friend class ::PragmaOnce;
1114
 
  friend class ::CCExprResolve;
1115
 
  friend class ::CExprResolve;
 
650
  friend class ::CMatchSyntax;
1116
651
 
1117
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
652
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
1118
653
 
1119
654
  CTypeInfo *_type;
1120
655
  
1141
676
 
1142
677
#endif /* __CExprValue_h__ */
1143
678
 
1144
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
679
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
1145
680
// This file is part of PUMA.
1146
681
// Copyright (C) 1999-2003  The PUMA developer team.
1147
682
//                                                                
1164
699
#define __CTypeInfo_h__
1165
700
 
1166
701
 
1167
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
 
702
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
1168
703
// This file is part of PUMA.
1169
704
// Copyright (C) 1999-2003  The PUMA developer team.
1170
705
//                                                                
1186
721
#ifndef __printable_h__
1187
722
#define __printable_h__
1188
723
 
1189
 
#include <iostream>
 
724
 
 
725
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
1190
726
using namespace std;
1191
727
 
1192
728
namespace Puma {
1193
729
 
1194
730
 
1195
731
 
1196
 
#line 1197 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
732
#line 733 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
1197
733
} // closed Puma
 
734
class CCExprResolve;
 
735
class CExprResolve;
1198
736
class WinIfExists;
1199
737
class WinImportHandler;
1200
738
class WinMacros;
1201
 
class CMatchSyntax;
1202
 
class ExtGnu;
 
739
class WinAsm;
 
740
class WinDeclSpecs;
 
741
class WinMemberExplSpec;
 
742
class WinTypeKeywords;
 
743
class WinFriend;
1203
744
class ExtAC;
1204
745
class ExtACBuilderCoupling;
1205
746
class ExtACSyntaxCoupling;
1206
747
class ExtACTree;
1207
748
class ExtACKeywords;
1208
 
class WinAsm;
1209
 
class WinDeclSpecs;
1210
 
class WinMemberExplSpec;
1211
 
class WinTypeKeywords;
 
749
class ExtGnu;
1212
750
class PragmaOnceUnitState;
1213
751
class PragmaOnce;
1214
 
class CCExprResolve;
1215
 
class CExprResolve;
 
752
class CMatchSyntax;
1216
753
namespace Puma {
1217
754
 
1218
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
 
755
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
1219
756
class Printable {
1220
 
#line 1221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
757
#line 758 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
758
  friend class ::CCExprResolve;
 
759
  friend class ::CExprResolve;
1221
760
  friend class ::WinIfExists;
1222
761
  friend class ::WinImportHandler;
1223
762
  friend class ::WinMacros;
1224
 
  friend class ::CMatchSyntax;
1225
 
  friend class ::ExtGnu;
 
763
  friend class ::WinAsm;
 
764
  friend class ::WinDeclSpecs;
 
765
  friend class ::WinMemberExplSpec;
 
766
  friend class ::WinTypeKeywords;
 
767
  friend class ::WinFriend;
1226
768
  friend class ::ExtAC;
1227
769
  friend class ::ExtACBuilderCoupling;
1228
770
  friend class ::ExtACSyntaxCoupling;
1229
771
  friend class ::ExtACTree;
1230
772
  friend class ::ExtACKeywords;
1231
 
  friend class ::WinAsm;
1232
 
  friend class ::WinDeclSpecs;
1233
 
  friend class ::WinMemberExplSpec;
1234
 
  friend class ::WinTypeKeywords;
 
773
  friend class ::ExtGnu;
1235
774
  friend class ::PragmaOnceUnitState;
1236
775
  friend class ::PragmaOnce;
1237
 
  friend class ::CCExprResolve;
1238
 
  friend class ::CExprResolve;
 
776
  friend class ::CMatchSyntax;
1239
777
 
1240
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
 
778
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
1241
779
 
1242
780
public:
1243
781
  virtual ~Printable () {}
1255
793
 
1256
794
#endif /* __printable_h__ */
1257
795
 
1258
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
796
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
1259
797
namespace Puma {
1260
798
 
1261
799
 
1283
821
class CT_ExprList;
1284
822
class CObjectInfo;
1285
823
class CScopeInfo;
 
824
class CTemplateParamInfo;
1286
825
//class ostream;
1287
826
 
1288
827
 
1289
 
#line 1290 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
828
#line 829 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
1290
829
} // closed Puma
 
830
class CCExprResolve;
 
831
class CExprResolve;
1291
832
class WinIfExists;
1292
833
class WinImportHandler;
1293
834
class WinMacros;
1294
 
class CMatchSyntax;
1295
 
class ExtGnu;
 
835
class WinAsm;
 
836
class WinDeclSpecs;
 
837
class WinMemberExplSpec;
 
838
class WinTypeKeywords;
 
839
class WinFriend;
1296
840
class ExtAC;
1297
841
class ExtACBuilderCoupling;
1298
842
class ExtACSyntaxCoupling;
1299
843
class ExtACTree;
1300
844
class ExtACKeywords;
1301
 
class WinAsm;
1302
 
class WinDeclSpecs;
1303
 
class WinMemberExplSpec;
1304
 
class WinTypeKeywords;
 
845
class ExtGnu;
1305
846
class PragmaOnceUnitState;
1306
847
class PragmaOnce;
1307
 
class CCExprResolve;
1308
 
class CExprResolve;
 
848
class CMatchSyntax;
1309
849
namespace Puma {
1310
850
 
1311
 
#line 53 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
851
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
1312
852
class CTypeInfo : public Printable {
1313
 
#line 1314 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
853
#line 854 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
854
  friend class ::CCExprResolve;
 
855
  friend class ::CExprResolve;
1314
856
  friend class ::WinIfExists;
1315
857
  friend class ::WinImportHandler;
1316
858
  friend class ::WinMacros;
1317
 
  friend class ::CMatchSyntax;
1318
 
  friend class ::ExtGnu;
 
859
  friend class ::WinAsm;
 
860
  friend class ::WinDeclSpecs;
 
861
  friend class ::WinMemberExplSpec;
 
862
  friend class ::WinTypeKeywords;
 
863
  friend class ::WinFriend;
1319
864
  friend class ::ExtAC;
1320
865
  friend class ::ExtACBuilderCoupling;
1321
866
  friend class ::ExtACSyntaxCoupling;
1322
867
  friend class ::ExtACTree;
1323
868
  friend class ::ExtACKeywords;
1324
 
  friend class ::WinAsm;
1325
 
  friend class ::WinDeclSpecs;
1326
 
  friend class ::WinMemberExplSpec;
1327
 
  friend class ::WinTypeKeywords;
 
869
  friend class ::ExtGnu;
1328
870
  friend class ::PragmaOnceUnitState;
1329
871
  friend class ::PragmaOnce;
1330
 
  friend class ::CCExprResolve;
1331
 
  friend class ::CExprResolve;
 
872
  friend class ::CMatchSyntax;
1332
873
 
1333
 
#line 53 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
874
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
1334
875
 
1335
876
  // needed for type printing
1336
877
  enum PrintState {
1338
879
    PRINT_PRE = 1,  // printing a declarator prefix like '*' or '&'
1339
880
    PRINT_ABS = 2,  // printing absolute names
1340
881
    PRINT_TPL = 4,  // printing template argument list
1341
 
    PRINT_TDN = 8   // print typedef names instead of defined type
 
882
    PRINT_TDN = 8,  // print typedef names instead of defined type
 
883
    PRINT_ELA = 16  // print elaborated type specifiers (struct, enum, union)
1342
884
  };
1343
885
 
1344
886
public:
1399
941
  bool operator !=(const CTypeInfo &) const;
1400
942
  
1401
943
  void print (ostream& os) const;
1402
 
  void TypeText (ostream &, const char * = (const char*)0,
1403
 
                 bool abs = false, bool tdef = false) const;
 
944
  void TypeText (ostream &, const char *name = (const char*)0,
 
945
                 bool abs = false, bool tdef = false, 
 
946
                 bool elaborated_type_spec = false) const;
1404
947
  long int Dimension () const;
1405
948
  
1406
949
  long int Size () const;
1532
1075
  void Mangled (ostream &) const;
1533
1076
 
1534
1077
private:
 
1078
  bool equalTemplateParams (CTemplateParamInfo *p1, CTemplateParamInfo *p2) const;
1535
1079
  void TypeText (char, ostream &, const char * = (const char*)0) const;
1536
1080
  void printName (char, ostream &, CObjectInfo *) const;
1537
1081
  void printScope (char, ostream &, CObjectInfo *) const;
1543
1087
 
1544
1088
 
1545
1089
 
1546
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
1090
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
1547
1091
// This file is part of PUMA.
1548
1092
// Copyright (C) 1999-2003  The PUMA developer team.
1549
1093
//                                                                
1574
1118
 
1575
1119
 
1576
1120
 
1577
 
#line 1578 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
1121
#line 1122 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
1578
1122
} // closed Puma
 
1123
class CCExprResolve;
 
1124
class CExprResolve;
1579
1125
class WinIfExists;
1580
1126
class WinImportHandler;
1581
1127
class WinMacros;
1582
 
class CMatchSyntax;
1583
 
class ExtGnu;
 
1128
class WinAsm;
 
1129
class WinDeclSpecs;
 
1130
class WinMemberExplSpec;
 
1131
class WinTypeKeywords;
 
1132
class WinFriend;
1584
1133
class ExtAC;
1585
1134
class ExtACBuilderCoupling;
1586
1135
class ExtACSyntaxCoupling;
1587
1136
class ExtACTree;
1588
1137
class ExtACKeywords;
1589
 
class WinAsm;
1590
 
class WinDeclSpecs;
1591
 
class WinMemberExplSpec;
1592
 
class WinTypeKeywords;
 
1138
class ExtGnu;
1593
1139
class PragmaOnceUnitState;
1594
1140
class PragmaOnce;
1595
 
class CCExprResolve;
1596
 
class CExprResolve;
 
1141
class CMatchSyntax;
1597
1142
namespace Puma {
1598
1143
 
1599
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
1144
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
1600
1145
class CTypePrimitive : public CTypeInfo {
1601
 
#line 1602 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
1146
#line 1147 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
1147
  friend class ::CCExprResolve;
 
1148
  friend class ::CExprResolve;
1602
1149
  friend class ::WinIfExists;
1603
1150
  friend class ::WinImportHandler;
1604
1151
  friend class ::WinMacros;
1605
 
  friend class ::CMatchSyntax;
1606
 
  friend class ::ExtGnu;
 
1152
  friend class ::WinAsm;
 
1153
  friend class ::WinDeclSpecs;
 
1154
  friend class ::WinMemberExplSpec;
 
1155
  friend class ::WinTypeKeywords;
 
1156
  friend class ::WinFriend;
1607
1157
  friend class ::ExtAC;
1608
1158
  friend class ::ExtACBuilderCoupling;
1609
1159
  friend class ::ExtACSyntaxCoupling;
1610
1160
  friend class ::ExtACTree;
1611
1161
  friend class ::ExtACKeywords;
1612
 
  friend class ::WinAsm;
1613
 
  friend class ::WinDeclSpecs;
1614
 
  friend class ::WinMemberExplSpec;
1615
 
  friend class ::WinTypeKeywords;
 
1162
  friend class ::ExtGnu;
1616
1163
  friend class ::PragmaOnceUnitState;
1617
1164
  friend class ::PragmaOnce;
1618
 
  friend class ::CCExprResolve;
1619
 
  friend class ::CExprResolve;
 
1165
  friend class ::CMatchSyntax;
1620
1166
 
1621
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
1167
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
1622
1168
 
1623
1169
  const char *_Text;
1624
1170
 
1667
1213
 
1668
1214
#endif /* __CTypePrimitive_h__ */
1669
1215
 
1670
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
1216
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
1671
1217
// This file is part of PUMA.
1672
1218
// Copyright (C) 1999-2003  The PUMA developer team.
1673
1219
//                                                                
1698
1244
 
1699
1245
 
1700
1246
 
1701
 
#line 1702 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
1247
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
1702
1248
} // closed Puma
 
1249
class CCExprResolve;
 
1250
class CExprResolve;
1703
1251
class WinIfExists;
1704
1252
class WinImportHandler;
1705
1253
class WinMacros;
1706
 
class CMatchSyntax;
1707
 
class ExtGnu;
 
1254
class WinAsm;
 
1255
class WinDeclSpecs;
 
1256
class WinMemberExplSpec;
 
1257
class WinTypeKeywords;
 
1258
class WinFriend;
1708
1259
class ExtAC;
1709
1260
class ExtACBuilderCoupling;
1710
1261
class ExtACSyntaxCoupling;
1711
1262
class ExtACTree;
1712
1263
class ExtACKeywords;
1713
 
class WinAsm;
1714
 
class WinDeclSpecs;
1715
 
class WinMemberExplSpec;
1716
 
class WinTypeKeywords;
 
1264
class ExtGnu;
1717
1265
class PragmaOnceUnitState;
1718
1266
class PragmaOnce;
1719
 
class CCExprResolve;
1720
 
class CExprResolve;
 
1267
class CMatchSyntax;
1721
1268
namespace Puma {
1722
1269
 
1723
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
1270
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
1724
1271
class CTypeQualified : public CTypeInfo {
1725
 
#line 1726 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
1272
#line 1273 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
1273
  friend class ::CCExprResolve;
 
1274
  friend class ::CExprResolve;
1726
1275
  friend class ::WinIfExists;
1727
1276
  friend class ::WinImportHandler;
1728
1277
  friend class ::WinMacros;
1729
 
  friend class ::CMatchSyntax;
1730
 
  friend class ::ExtGnu;
 
1278
  friend class ::WinAsm;
 
1279
  friend class ::WinDeclSpecs;
 
1280
  friend class ::WinMemberExplSpec;
 
1281
  friend class ::WinTypeKeywords;
 
1282
  friend class ::WinFriend;
1731
1283
  friend class ::ExtAC;
1732
1284
  friend class ::ExtACBuilderCoupling;
1733
1285
  friend class ::ExtACSyntaxCoupling;
1734
1286
  friend class ::ExtACTree;
1735
1287
  friend class ::ExtACKeywords;
1736
 
  friend class ::WinAsm;
1737
 
  friend class ::WinDeclSpecs;
1738
 
  friend class ::WinMemberExplSpec;
1739
 
  friend class ::WinTypeKeywords;
 
1288
  friend class ::ExtGnu;
1740
1289
  friend class ::PragmaOnceUnitState;
1741
1290
  friend class ::PragmaOnce;
1742
 
  friend class ::CCExprResolve;
1743
 
  friend class ::CExprResolve;
1744
 
 
1745
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
1746
 
 
1747
 
  bool _Const;
1748
 
  bool _Volatile;
1749
 
  bool _Restrict;
 
1291
  friend class ::CMatchSyntax;
 
1292
 
 
1293
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
1294
 
 
1295
  bool _QualConst;
 
1296
  bool _QualVolatile;
 
1297
  bool _QualRestrict;
1750
1298
 
1751
1299
protected:
1752
1300
  CTypeQualified (CTypeInfo *, bool, bool, bool, TypeId);
1767
1315
inline CTypeQualified::CTypeQualified (CTypeInfo *base, bool c, bool v, bool r, 
1768
1316
 CTypeInfo::TypeId id) :
1769
1317
  CTypeInfo (base, id),
1770
 
  _Const (c),
1771
 
  _Volatile (v),
1772
 
  _Restrict (r)
 
1318
  _QualConst (c),
 
1319
  _QualVolatile (v),
 
1320
  _QualRestrict (r)
1773
1321
 {}
1774
1322
inline CTypeQualified::CTypeQualified (CTypeInfo *base, bool c, bool v, bool r) :
1775
1323
  CTypeInfo (base, CTypeInfo::TYPE_QUALIFIED),
1776
 
  _Const (c),
1777
 
  _Volatile (v),
1778
 
  _Restrict (r)
 
1324
  _QualConst (c),
 
1325
  _QualVolatile (v),
 
1326
  _QualRestrict (r)
1779
1327
 {}
1780
1328
inline CTypeQualified::~CTypeQualified ()
1781
1329
 {}
1782
1330
 
1783
1331
inline bool CTypeQualified::isConst () const
1784
 
 { return _Const; }
 
1332
 { return _QualConst; }
1785
1333
inline bool CTypeQualified::isVolatile () const
1786
 
 { return _Volatile; }
 
1334
 { return _QualVolatile; }
1787
1335
inline bool CTypeQualified::isRestrict () const
1788
 
 { return _Restrict; }
 
1336
 { return _QualRestrict; }
1789
1337
 
1790
1338
inline void CTypeQualified::isConst (bool v)
1791
 
 { _Const = v; }
 
1339
 { _QualConst = v; }
1792
1340
inline void CTypeQualified::isVolatile (bool v)
1793
 
 { _Volatile = v; }
 
1341
 { _QualVolatile = v; }
1794
1342
inline void CTypeQualified::isRestrict (bool v)
1795
 
 { _Restrict = v; }
 
1343
 { _QualRestrict = v; }
1796
1344
 
1797
1345
 
1798
1346
} // namespace Puma
1799
1347
 
1800
1348
#endif /* __CTypeQualified_h__ */
1801
1349
 
1802
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
1350
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
1803
1351
// This file is part of PUMA.
1804
1352
// Copyright (C) 1999-2003  The PUMA developer team.
1805
1353
//                                                                
1830
1378
 
1831
1379
 
1832
1380
 
1833
 
#line 1834 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
1381
#line 1382 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
1834
1382
} // closed Puma
 
1383
class CCExprResolve;
 
1384
class CExprResolve;
1835
1385
class WinIfExists;
1836
1386
class WinImportHandler;
1837
1387
class WinMacros;
1838
 
class CMatchSyntax;
1839
 
class ExtGnu;
 
1388
class WinAsm;
 
1389
class WinDeclSpecs;
 
1390
class WinMemberExplSpec;
 
1391
class WinTypeKeywords;
 
1392
class WinFriend;
1840
1393
class ExtAC;
1841
1394
class ExtACBuilderCoupling;
1842
1395
class ExtACSyntaxCoupling;
1843
1396
class ExtACTree;
1844
1397
class ExtACKeywords;
1845
 
class WinAsm;
1846
 
class WinDeclSpecs;
1847
 
class WinMemberExplSpec;
1848
 
class WinTypeKeywords;
 
1398
class ExtGnu;
1849
1399
class PragmaOnceUnitState;
1850
1400
class PragmaOnce;
1851
 
class CCExprResolve;
1852
 
class CExprResolve;
 
1401
class CMatchSyntax;
1853
1402
namespace Puma {
1854
1403
 
1855
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
1404
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
1856
1405
class CTypeAddress : public CTypeInfo {
1857
 
#line 1858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
1406
#line 1407 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
1407
  friend class ::CCExprResolve;
 
1408
  friend class ::CExprResolve;
1858
1409
  friend class ::WinIfExists;
1859
1410
  friend class ::WinImportHandler;
1860
1411
  friend class ::WinMacros;
1861
 
  friend class ::CMatchSyntax;
1862
 
  friend class ::ExtGnu;
 
1412
  friend class ::WinAsm;
 
1413
  friend class ::WinDeclSpecs;
 
1414
  friend class ::WinMemberExplSpec;
 
1415
  friend class ::WinTypeKeywords;
 
1416
  friend class ::WinFriend;
1863
1417
  friend class ::ExtAC;
1864
1418
  friend class ::ExtACBuilderCoupling;
1865
1419
  friend class ::ExtACSyntaxCoupling;
1866
1420
  friend class ::ExtACTree;
1867
1421
  friend class ::ExtACKeywords;
1868
 
  friend class ::WinAsm;
1869
 
  friend class ::WinDeclSpecs;
1870
 
  friend class ::WinMemberExplSpec;
1871
 
  friend class ::WinTypeKeywords;
 
1422
  friend class ::ExtGnu;
1872
1423
  friend class ::PragmaOnceUnitState;
1873
1424
  friend class ::PragmaOnce;
1874
 
  friend class ::CCExprResolve;
1875
 
  friend class ::CExprResolve;
 
1425
  friend class ::CMatchSyntax;
1876
1426
 
1877
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
1427
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
1878
1428
 
1879
1429
public:
1880
1430
  CTypeAddress (CTypeInfo *);
1892
1442
 
1893
1443
#endif /* __CTypeAddress_h__ */
1894
1444
 
1895
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
1445
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
1896
1446
// This file is part of PUMA.
1897
1447
// Copyright (C) 1999-2003  The PUMA developer team.
1898
1448
//                                                                
1923
1473
 
1924
1474
 
1925
1475
 
1926
 
#line 1927 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
1476
#line 1477 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
1927
1477
} // closed Puma
 
1478
class CCExprResolve;
 
1479
class CExprResolve;
1928
1480
class WinIfExists;
1929
1481
class WinImportHandler;
1930
1482
class WinMacros;
1931
 
class CMatchSyntax;
1932
 
class ExtGnu;
 
1483
class WinAsm;
 
1484
class WinDeclSpecs;
 
1485
class WinMemberExplSpec;
 
1486
class WinTypeKeywords;
 
1487
class WinFriend;
1933
1488
class ExtAC;
1934
1489
class ExtACBuilderCoupling;
1935
1490
class ExtACSyntaxCoupling;
1936
1491
class ExtACTree;
1937
1492
class ExtACKeywords;
1938
 
class WinAsm;
1939
 
class WinDeclSpecs;
1940
 
class WinMemberExplSpec;
1941
 
class WinTypeKeywords;
 
1493
class ExtGnu;
1942
1494
class PragmaOnceUnitState;
1943
1495
class PragmaOnce;
1944
 
class CCExprResolve;
1945
 
class CExprResolve;
 
1496
class CMatchSyntax;
1946
1497
namespace Puma {
1947
1498
 
1948
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
1499
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
1949
1500
class CTypeBitField : public CTypeInfo {
1950
 
#line 1951 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
1501
#line 1502 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
1502
  friend class ::CCExprResolve;
 
1503
  friend class ::CExprResolve;
1951
1504
  friend class ::WinIfExists;
1952
1505
  friend class ::WinImportHandler;
1953
1506
  friend class ::WinMacros;
1954
 
  friend class ::CMatchSyntax;
1955
 
  friend class ::ExtGnu;
 
1507
  friend class ::WinAsm;
 
1508
  friend class ::WinDeclSpecs;
 
1509
  friend class ::WinMemberExplSpec;
 
1510
  friend class ::WinTypeKeywords;
 
1511
  friend class ::WinFriend;
1956
1512
  friend class ::ExtAC;
1957
1513
  friend class ::ExtACBuilderCoupling;
1958
1514
  friend class ::ExtACSyntaxCoupling;
1959
1515
  friend class ::ExtACTree;
1960
1516
  friend class ::ExtACKeywords;
1961
 
  friend class ::WinAsm;
1962
 
  friend class ::WinDeclSpecs;
1963
 
  friend class ::WinMemberExplSpec;
1964
 
  friend class ::WinTypeKeywords;
 
1517
  friend class ::ExtGnu;
1965
1518
  friend class ::PragmaOnceUnitState;
1966
1519
  friend class ::PragmaOnce;
1967
 
  friend class ::CCExprResolve;
1968
 
  friend class ::CExprResolve;
 
1520
  friend class ::CMatchSyntax;
1969
1521
 
1970
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
1522
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
1971
1523
 
1972
1524
  long int _Size;
1973
1525
 
1996
1548
 
1997
1549
#endif /* __CTypeBitField_h__ */
1998
1550
 
1999
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
1551
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
2000
1552
// This file is part of PUMA.
2001
1553
// Copyright (C) 1999-2003  The PUMA developer team.
2002
1554
//                                                                
2027
1579
 
2028
1580
 
2029
1581
 
2030
 
#line 2031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
1582
#line 1583 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
2031
1583
} // closed Puma
 
1584
class CCExprResolve;
 
1585
class CExprResolve;
2032
1586
class WinIfExists;
2033
1587
class WinImportHandler;
2034
1588
class WinMacros;
2035
 
class CMatchSyntax;
2036
 
class ExtGnu;
 
1589
class WinAsm;
 
1590
class WinDeclSpecs;
 
1591
class WinMemberExplSpec;
 
1592
class WinTypeKeywords;
 
1593
class WinFriend;
2037
1594
class ExtAC;
2038
1595
class ExtACBuilderCoupling;
2039
1596
class ExtACSyntaxCoupling;
2040
1597
class ExtACTree;
2041
1598
class ExtACKeywords;
2042
 
class WinAsm;
2043
 
class WinDeclSpecs;
2044
 
class WinMemberExplSpec;
2045
 
class WinTypeKeywords;
 
1599
class ExtGnu;
2046
1600
class PragmaOnceUnitState;
2047
1601
class PragmaOnce;
2048
 
class CCExprResolve;
2049
 
class CExprResolve;
 
1602
class CMatchSyntax;
2050
1603
namespace Puma {
2051
1604
 
2052
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
1605
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
2053
1606
class CTypeArray : public CTypeInfo {
2054
 
#line 2055 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
1607
#line 1608 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
1608
  friend class ::CCExprResolve;
 
1609
  friend class ::CExprResolve;
2055
1610
  friend class ::WinIfExists;
2056
1611
  friend class ::WinImportHandler;
2057
1612
  friend class ::WinMacros;
2058
 
  friend class ::CMatchSyntax;
2059
 
  friend class ::ExtGnu;
 
1613
  friend class ::WinAsm;
 
1614
  friend class ::WinDeclSpecs;
 
1615
  friend class ::WinMemberExplSpec;
 
1616
  friend class ::WinTypeKeywords;
 
1617
  friend class ::WinFriend;
2060
1618
  friend class ::ExtAC;
2061
1619
  friend class ::ExtACBuilderCoupling;
2062
1620
  friend class ::ExtACSyntaxCoupling;
2063
1621
  friend class ::ExtACTree;
2064
1622
  friend class ::ExtACKeywords;
2065
 
  friend class ::WinAsm;
2066
 
  friend class ::WinDeclSpecs;
2067
 
  friend class ::WinMemberExplSpec;
2068
 
  friend class ::WinTypeKeywords;
 
1623
  friend class ::ExtGnu;
2069
1624
  friend class ::PragmaOnceUnitState;
2070
1625
  friend class ::PragmaOnce;
2071
 
  friend class ::CCExprResolve;
2072
 
  friend class ::CExprResolve;
 
1626
  friend class ::CMatchSyntax;
2073
1627
 
2074
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
1628
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
2075
1629
 
2076
1630
  long int _Size;
2077
1631
  bool _isFixed;
2078
1632
  CTypeQualified *_Quals;
2079
1633
  CTypeTemplateParam *_DepDim;
 
1634
  bool _hasDim;
2080
1635
 
2081
1636
protected:
2082
1637
  CTypeArray (CTypeInfo *, CTypeQualified *, TypeId);
2083
1638
  
2084
1639
public:
2085
 
  CTypeArray (CTypeInfo *, CTypeQualified * = 0);
 
1640
  CTypeArray (CTypeInfo *, CTypeQualified * = 0, bool has_dimension = false);
2086
1641
  ~CTypeArray ();
2087
1642
 
2088
1643
  void Dimension (long int);
2091
1646
  void isFixed (bool);
2092
1647
  bool isFixed () const;
2093
1648
  
 
1649
  void hasDimension (bool);
 
1650
  bool hasDimension () const;
 
1651
  
2094
1652
  CTypeQualified *Qualifiers () const;
2095
1653
  
2096
1654
  void DepDim (CTypeTemplateParam *);
2097
1655
  CTypeTemplateParam *DepDim () const;
2098
1656
};
2099
1657
 
2100
 
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals) :
 
1658
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals, bool has_dimension) :
2101
1659
  CTypeInfo (base, CTypeInfo::TYPE_ARRAY),
2102
1660
  _Size (0),
2103
1661
  _isFixed (false),
2104
1662
  _Quals (quals),
2105
 
  _DepDim (0)
 
1663
  _DepDim (0),
 
1664
  _hasDim (has_dimension)
2106
1665
 {}
2107
1666
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals, CTypeInfo::TypeId id) :
2108
1667
  CTypeInfo (base, id),
2109
1668
  _Size (0),
2110
1669
  _isFixed (false),
2111
1670
  _Quals (quals),
2112
 
  _DepDim (0)
 
1671
  _DepDim (0),
 
1672
  _hasDim (false)
2113
1673
 {}
2114
1674
inline CTypeArray::~CTypeArray ()
2115
1675
 { if (_Quals) CTypeInfo::Destroy (_Quals); }
2124
1684
inline bool CTypeArray::isFixed () const
2125
1685
 { return _isFixed; }
2126
1686
 
 
1687
inline void CTypeArray::hasDimension (bool v)
 
1688
 { _hasDim = v; }
 
1689
inline bool CTypeArray::hasDimension () const
 
1690
 { return _hasDim || _Size != 0; }
 
1691
 
2127
1692
inline CTypeQualified *CTypeArray::Qualifiers () const
2128
1693
 { return _Quals; }
2129
1694
 
2137
1702
 
2138
1703
#endif /* __CTypeArray_h__ */
2139
1704
 
2140
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
1705
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
2141
1706
// This file is part of PUMA.
2142
1707
// Copyright (C) 1999-2003  The PUMA developer team.
2143
1708
//                                                                
2168
1733
 
2169
1734
 
2170
1735
 
2171
 
#line 2172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
1736
#line 1737 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
2172
1737
} // closed Puma
 
1738
class CCExprResolve;
 
1739
class CExprResolve;
2173
1740
class WinIfExists;
2174
1741
class WinImportHandler;
2175
1742
class WinMacros;
2176
 
class CMatchSyntax;
2177
 
class ExtGnu;
 
1743
class WinAsm;
 
1744
class WinDeclSpecs;
 
1745
class WinMemberExplSpec;
 
1746
class WinTypeKeywords;
 
1747
class WinFriend;
2178
1748
class ExtAC;
2179
1749
class ExtACBuilderCoupling;
2180
1750
class ExtACSyntaxCoupling;
2181
1751
class ExtACTree;
2182
1752
class ExtACKeywords;
2183
 
class WinAsm;
2184
 
class WinDeclSpecs;
2185
 
class WinMemberExplSpec;
2186
 
class WinTypeKeywords;
 
1753
class ExtGnu;
2187
1754
class PragmaOnceUnitState;
2188
1755
class PragmaOnce;
2189
 
class CCExprResolve;
2190
 
class CExprResolve;
 
1756
class CMatchSyntax;
2191
1757
namespace Puma {
2192
1758
 
2193
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
1759
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
2194
1760
class CTypeVarArray : public CTypeArray {
2195
 
#line 2196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
1761
#line 1762 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
1762
  friend class ::CCExprResolve;
 
1763
  friend class ::CExprResolve;
2196
1764
  friend class ::WinIfExists;
2197
1765
  friend class ::WinImportHandler;
2198
1766
  friend class ::WinMacros;
2199
 
  friend class ::CMatchSyntax;
2200
 
  friend class ::ExtGnu;
 
1767
  friend class ::WinAsm;
 
1768
  friend class ::WinDeclSpecs;
 
1769
  friend class ::WinMemberExplSpec;
 
1770
  friend class ::WinTypeKeywords;
 
1771
  friend class ::WinFriend;
2201
1772
  friend class ::ExtAC;
2202
1773
  friend class ::ExtACBuilderCoupling;
2203
1774
  friend class ::ExtACSyntaxCoupling;
2204
1775
  friend class ::ExtACTree;
2205
1776
  friend class ::ExtACKeywords;
2206
 
  friend class ::WinAsm;
2207
 
  friend class ::WinDeclSpecs;
2208
 
  friend class ::WinMemberExplSpec;
2209
 
  friend class ::WinTypeKeywords;
 
1777
  friend class ::ExtGnu;
2210
1778
  friend class ::PragmaOnceUnitState;
2211
1779
  friend class ::PragmaOnce;
2212
 
  friend class ::CCExprResolve;
2213
 
  friend class ::CExprResolve;
 
1780
  friend class ::CMatchSyntax;
2214
1781
 
2215
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
1782
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
2216
1783
 
2217
1784
public:
2218
1785
  CTypeVarArray (CTypeInfo *, CTypeQualified * = 0);
2230
1797
 
2231
1798
#endif /* __CTypeVarArray_h__ */
2232
1799
 
2233
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
1800
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
2234
1801
// This file is part of PUMA.
2235
1802
// Copyright (C) 1999-2003  The PUMA developer team.
2236
1803
//                                                                
2261
1828
 
2262
1829
 
2263
1830
 
2264
 
#line 2265 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
1831
#line 1832 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
2265
1832
} // closed Puma
 
1833
class CCExprResolve;
 
1834
class CExprResolve;
2266
1835
class WinIfExists;
2267
1836
class WinImportHandler;
2268
1837
class WinMacros;
2269
 
class CMatchSyntax;
2270
 
class ExtGnu;
 
1838
class WinAsm;
 
1839
class WinDeclSpecs;
 
1840
class WinMemberExplSpec;
 
1841
class WinTypeKeywords;
 
1842
class WinFriend;
2271
1843
class ExtAC;
2272
1844
class ExtACBuilderCoupling;
2273
1845
class ExtACSyntaxCoupling;
2274
1846
class ExtACTree;
2275
1847
class ExtACKeywords;
2276
 
class WinAsm;
2277
 
class WinDeclSpecs;
2278
 
class WinMemberExplSpec;
2279
 
class WinTypeKeywords;
 
1848
class ExtGnu;
2280
1849
class PragmaOnceUnitState;
2281
1850
class PragmaOnce;
2282
 
class CCExprResolve;
2283
 
class CExprResolve;
 
1851
class CMatchSyntax;
2284
1852
namespace Puma {
2285
1853
 
2286
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
1854
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
2287
1855
class CTypePointer : public CTypeInfo {
2288
 
#line 2289 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
1856
#line 1857 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
1857
  friend class ::CCExprResolve;
 
1858
  friend class ::CExprResolve;
2289
1859
  friend class ::WinIfExists;
2290
1860
  friend class ::WinImportHandler;
2291
1861
  friend class ::WinMacros;
2292
 
  friend class ::CMatchSyntax;
2293
 
  friend class ::ExtGnu;
 
1862
  friend class ::WinAsm;
 
1863
  friend class ::WinDeclSpecs;
 
1864
  friend class ::WinMemberExplSpec;
 
1865
  friend class ::WinTypeKeywords;
 
1866
  friend class ::WinFriend;
2294
1867
  friend class ::ExtAC;
2295
1868
  friend class ::ExtACBuilderCoupling;
2296
1869
  friend class ::ExtACSyntaxCoupling;
2297
1870
  friend class ::ExtACTree;
2298
1871
  friend class ::ExtACKeywords;
2299
 
  friend class ::WinAsm;
2300
 
  friend class ::WinDeclSpecs;
2301
 
  friend class ::WinMemberExplSpec;
2302
 
  friend class ::WinTypeKeywords;
 
1872
  friend class ::ExtGnu;
2303
1873
  friend class ::PragmaOnceUnitState;
2304
1874
  friend class ::PragmaOnce;
2305
 
  friend class ::CCExprResolve;
2306
 
  friend class ::CExprResolve;
 
1875
  friend class ::CMatchSyntax;
2307
1876
 
2308
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
1877
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
2309
1878
 
2310
1879
protected:
2311
1880
  CTypePointer (CTypeInfo *, CTypeInfo::TypeId);
2329
1898
 
2330
1899
#endif /* __CTypePointer_h__ */
2331
1900
 
2332
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
1901
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
2333
1902
// This file is part of PUMA.
2334
1903
// Copyright (C) 1999-2003  The PUMA developer team.
2335
1904
//                                                                
2364
1933
class CTemplateParamInfo;
2365
1934
 
2366
1935
 
2367
 
#line 2368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
1936
#line 1937 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
2368
1937
} // closed Puma
 
1938
class CCExprResolve;
 
1939
class CExprResolve;
2369
1940
class WinIfExists;
2370
1941
class WinImportHandler;
2371
1942
class WinMacros;
2372
 
class CMatchSyntax;
2373
 
class ExtGnu;
 
1943
class WinAsm;
 
1944
class WinDeclSpecs;
 
1945
class WinMemberExplSpec;
 
1946
class WinTypeKeywords;
 
1947
class WinFriend;
2374
1948
class ExtAC;
2375
1949
class ExtACBuilderCoupling;
2376
1950
class ExtACSyntaxCoupling;
2377
1951
class ExtACTree;
2378
1952
class ExtACKeywords;
2379
 
class WinAsm;
2380
 
class WinDeclSpecs;
2381
 
class WinMemberExplSpec;
2382
 
class WinTypeKeywords;
 
1953
class ExtGnu;
2383
1954
class PragmaOnceUnitState;
2384
1955
class PragmaOnce;
2385
 
class CCExprResolve;
2386
 
class CExprResolve;
 
1956
class CMatchSyntax;
2387
1957
namespace Puma {
2388
1958
 
2389
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
1959
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
2390
1960
class CTypeMemberPointer : public CTypePointer {
2391
 
#line 2392 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
1961
#line 1962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
1962
  friend class ::CCExprResolve;
 
1963
  friend class ::CExprResolve;
2392
1964
  friend class ::WinIfExists;
2393
1965
  friend class ::WinImportHandler;
2394
1966
  friend class ::WinMacros;
2395
 
  friend class ::CMatchSyntax;
2396
 
  friend class ::ExtGnu;
 
1967
  friend class ::WinAsm;
 
1968
  friend class ::WinDeclSpecs;
 
1969
  friend class ::WinMemberExplSpec;
 
1970
  friend class ::WinTypeKeywords;
 
1971
  friend class ::WinFriend;
2397
1972
  friend class ::ExtAC;
2398
1973
  friend class ::ExtACBuilderCoupling;
2399
1974
  friend class ::ExtACSyntaxCoupling;
2400
1975
  friend class ::ExtACTree;
2401
1976
  friend class ::ExtACKeywords;
2402
 
  friend class ::WinAsm;
2403
 
  friend class ::WinDeclSpecs;
2404
 
  friend class ::WinMemberExplSpec;
2405
 
  friend class ::WinTypeKeywords;
 
1977
  friend class ::ExtGnu;
2406
1978
  friend class ::PragmaOnceUnitState;
2407
1979
  friend class ::PragmaOnce;
2408
 
  friend class ::CCExprResolve;
2409
 
  friend class ::CExprResolve;
 
1980
  friend class ::CMatchSyntax;
2410
1981
 
2411
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
1982
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
2412
1983
 
2413
1984
  CObjectInfo *_Class;
2414
1985
 
2432
2003
 
2433
2004
#endif /* __CTypeMemberPointer_h__ */
2434
2005
 
2435
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
2006
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
2436
2007
// This file is part of PUMA.
2437
2008
// Copyright (C) 1999-2003  The PUMA developer team.
2438
2009
//                                                                
2460
2031
#endif
2461
2032
 
2462
2033
 
2463
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
2034
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
2464
2035
// This file is part of PUMA.
2465
2036
// Copyright (C) 1999-2003  The PUMA developer team.
2466
2037
//                                                                
2483
2054
#define __CTypeList_h__
2484
2055
 
2485
2056
 
2486
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
 
2057
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Array.h"
2487
2058
// This file is part of PUMA.
2488
2059
// Copyright (C) 1999-2003  The PUMA developer team.
2489
2060
//                                                                
2509
2080
 
2510
2081
namespace Puma {
2511
2082
 
2512
 
 
2513
 
#line 2514 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
2514
 
} // closed Puma
2515
 
class WinIfExists;
2516
 
class WinImportHandler;
2517
 
class WinMacros;
2518
 
class CMatchSyntax;
2519
 
class ExtGnu;
2520
 
class ExtAC;
2521
 
class ExtACBuilderCoupling;
2522
 
class ExtACSyntaxCoupling;
2523
 
class ExtACTree;
2524
 
class ExtACKeywords;
2525
 
class WinAsm;
2526
 
class WinDeclSpecs;
2527
 
class WinMemberExplSpec;
2528
 
class WinTypeKeywords;
2529
 
class PragmaOnceUnitState;
2530
 
class PragmaOnce;
2531
 
class CCExprResolve;
2532
 
class CExprResolve;
2533
 
namespace Puma {
2534
 
 
2535
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
2536
2083
template <class Item>
2537
2084
class Array {
2538
 
#line 2539 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
2539
 
  friend class ::WinIfExists;
2540
 
  friend class ::WinImportHandler;
2541
 
  friend class ::WinMacros;
2542
 
  friend class ::CMatchSyntax;
2543
 
  friend class ::ExtGnu;
2544
 
  friend class ::ExtAC;
2545
 
  friend class ::ExtACBuilderCoupling;
2546
 
  friend class ::ExtACSyntaxCoupling;
2547
 
  friend class ::ExtACTree;
2548
 
  friend class ::ExtACKeywords;
2549
 
  friend class ::WinAsm;
2550
 
  friend class ::WinDeclSpecs;
2551
 
  friend class ::WinMemberExplSpec;
2552
 
  friend class ::WinTypeKeywords;
2553
 
  friend class ::PragmaOnceUnitState;
2554
 
  friend class ::PragmaOnce;
2555
 
  friend class ::CCExprResolve;
2556
 
  friend class ::CExprResolve;
2557
 
 
2558
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
2559
 
 
2560
 
   protected:
2561
 
      static const long default_init_size = 5;
2562
 
      static const long default_increment = 5;
2563
 
 
2564
 
   public:
2565
 
      Array (long is = default_init_size, long incr = default_increment);
2566
 
      Array (const Array<Item>& array);
2567
 
      Array<Item>& operator =(const Array<Item>&);
2568
 
      ~Array ();
2569
 
      void append (const Item& item);
2570
 
      void insert (long index, const Item& item);
2571
 
      void prepend (const Item& item);
2572
 
      void remove (long index);
2573
 
      void reset ();
2574
 
      Item& get (long index);
2575
 
      Item& operator[] (long index);
2576
 
      Item fetch (long index) const;
2577
 
      Item& lookup (long index) const;
2578
 
      long length () const;
2579
 
 
2580
 
   private:
2581
 
      Item* data;
2582
 
      long size;
2583
 
      long count;
2584
 
      long increment;
 
2085
protected:
 
2086
  static const long default_init_size = 5;
 
2087
  static const long default_increment = 5;
 
2088
 
 
2089
public:
 
2090
  Array (long is = default_init_size, long incr = default_increment);
 
2091
  Array (const Array<Item>& array);
 
2092
  Array<Item>& operator =(const Array<Item>&);
 
2093
  ~Array ();
 
2094
  void append (const Item& item);
 
2095
  void insert (long index, const Item& item);
 
2096
  void prepend (const Item& item);
 
2097
  void remove (long index);
 
2098
  void reset ();
 
2099
  Item& get (long index);
 
2100
  Item& operator[] (long index);
 
2101
  Item fetch (long index) const;
 
2102
  Item& lookup (long index) const;
 
2103
  long length () const;
 
2104
 
 
2105
private:
 
2106
  Item* data;
 
2107
  long size;
 
2108
  long count;
 
2109
  long increment;
2585
2110
      
2586
 
      void check (long wanted);
2587
 
 };
2588
 
 
2589
 
template <class Item>
2590
 
inline Array<Item>::Array (long is, long incr)
2591
 
 {
2592
 
   count     = 0; 
2593
 
   size      = is;
2594
 
   increment = incr;
2595
 
   data      = new Item[size];
2596
 
 }
2597
 
 
2598
 
template <class Item>
2599
 
Array<Item>::Array (const Array<Item>& array)
2600
 
 {
2601
 
   count = 0;
2602
 
   size  = array.size;
2603
 
   data  = new Item[size];
2604
 
   increment = array.increment;
2605
 
 
2606
 
   for (int pos = 0; pos < array.length (); pos++)
2607
 
      append (array.lookup (pos));
2608
 
 }
2609
 
 
2610
 
template <class Item>
2611
 
Array<Item>& Array<Item>::operator =(const Array<Item>& array)
2612
 
 {
2613
 
   if (data)
2614
 
      delete[] data;
2615
 
   count = 0;
2616
 
   size  = array.size;
2617
 
   data  = new Item[size];
2618
 
   increment = array.increment;
2619
 
 
2620
 
   for (int pos = 0; pos < array.length (); pos++)
2621
 
      append (array.lookup (pos));
2622
 
   return *this;
2623
 
 }
2624
 
 
2625
 
template <class Item>
2626
 
Array<Item>::~Array ()
2627
 
 {
2628
 
   if (data)
2629
 
      delete[] data;
2630
 
 }
2631
 
 
2632
 
template <class Item>
2633
 
inline void Array<Item>::check (long wanted)
2634
 
 {
2635
 
   if (wanted >= size)
2636
 
    {
2637
 
      Item* new_data;
2638
 
 
2639
 
      while (wanted >= size)
2640
 
      {
2641
 
         size += increment;
2642
 
         increment*=2;
2643
 
      }
2644
 
      new_data = new Item[size];
2645
 
      for (int pos = 0; pos < count; pos++)
2646
 
         new_data[pos] = data[pos];
2647
 
      delete[] data;
2648
 
      data = new_data;
2649
 
    }
2650
 
 }
 
2111
  void grow (long wanted);
 
2112
};
 
2113
 
 
2114
template <class Item>
 
2115
inline Array<Item>::Array (long is, long incr) {
 
2116
  count     = 0; 
 
2117
  size      = is;
 
2118
  increment = incr;
 
2119
  data      = 0;
 
2120
}
 
2121
 
 
2122
template <class Item>
 
2123
Array<Item>::Array (const Array<Item>& array) {
 
2124
  count     = 0;
 
2125
  size      = array.size;
 
2126
  increment = array.increment;
 
2127
  
 
2128
  if (size && array.data) {
 
2129
    data = new Item[size];
 
2130
    for (; count < array.count; count++) {
 
2131
      data[count] = array.data[count];
 
2132
    }
 
2133
  } else
 
2134
    data = 0;
 
2135
}
 
2136
 
 
2137
template <class Item>
 
2138
Array<Item>& Array<Item>::operator =(const Array<Item>& array) {
 
2139
  if (data)
 
2140
    delete[] data;
 
2141
 
 
2142
  count     = 0;
 
2143
  size      = array.size;
 
2144
  increment = array.increment;
 
2145
 
 
2146
  if (size && array.data) {
 
2147
    data = new Item[size];
 
2148
    for (; count < array.count; count++) {
 
2149
      data[count] = array.data[count];
 
2150
    }
 
2151
  } else
 
2152
    data = 0;
 
2153
  
 
2154
  return *this;
 
2155
}
 
2156
 
 
2157
template <class Item>
 
2158
Array<Item>::~Array () {
 
2159
  if (data)
 
2160
    delete[] data;
 
2161
}
 
2162
 
 
2163
template <class Item>
 
2164
inline void Array<Item>::grow (long wanted) {
 
2165
  do {
 
2166
    size += increment;
 
2167
    increment *= 2;
 
2168
  } while (wanted >= size);
 
2169
 
 
2170
  if (data) {
 
2171
    Item* new_data = new Item[size];
 
2172
    for (long i = 0; i < count; i++) {
 
2173
      new_data[i] = data[i];
 
2174
    }
 
2175
    delete[] data;
 
2176
    data = new_data;
 
2177
  } else
 
2178
    data = new Item[size];
 
2179
}
2651
2180
   
2652
2181
template <class Item>
2653
 
inline void Array<Item>::append (const Item& item)
2654
 
 {
2655
 
   check (count);
2656
 
   data[count++] = item;
2657
 
 }
2658
 
 
2659
 
template <class Item>
2660
 
void Array<Item>::prepend (const Item& item)
2661
 
 {
2662
 
   insert (0, item);
2663
 
 }
2664
 
 
2665
 
template <class Item>
2666
 
void Array<Item>::insert (long index, const Item& item)
2667
 
 {
2668
 
   check (count);
2669
 
   for (int pos = count; pos > index; pos--)
2670
 
      data[pos] = data[pos - 1];
2671
 
   data[index] = item;
2672
 
   count++;
2673
 
 }
2674
 
 
2675
 
template <class Item>
2676
 
inline Item& Array<Item>::get (long index)
2677
 
 {
2678
 
   check (index);
2679
 
   if (index >= count)
2680
 
      count = index + 1;
2681
 
   return data[index];
2682
 
 }
2683
 
 
2684
 
template <class Item>
2685
 
inline Item& Array<Item>::operator[] (long index)
2686
 
 {
2687
 
   return get (index);
2688
 
 }
2689
 
 
2690
 
template <class Item>
2691
 
inline Item Array<Item>::fetch (long index) const
2692
 
 {
2693
 
   assert(index < count);
2694
 
   return data[index];
2695
 
 }
2696
 
 
2697
 
template <class Item>
2698
 
inline long Array<Item>::length () const
2699
 
 {
2700
 
   return count;
2701
 
 }
2702
 
 
2703
 
template <class Item>
2704
 
inline void Array<Item>::remove (long index)
2705
 
 {
2706
 
   if (index < count && count > 0)
2707
 
    {
2708
 
      for (int pos = index; pos < count - 1; pos++)
2709
 
         data[pos] = data[pos + 1];
2710
 
      count--;
2711
 
    }
2712
 
 }
 
2182
inline void Array<Item>::append (const Item& item) {
 
2183
  if (count >= size || ! data) {
 
2184
    grow (count);
 
2185
  }
 
2186
  data[count++] = item;
 
2187
}
 
2188
 
 
2189
template <class Item>
 
2190
void Array<Item>::prepend (const Item& item) {
 
2191
  insert (0, item);
 
2192
}
 
2193
 
 
2194
template <class Item>
 
2195
void Array<Item>::insert (long index, const Item& item) {
 
2196
  if (count >= size || ! data) {
 
2197
    grow (count);
 
2198
  }
 
2199
  for (long i = count; i > index; i--)
 
2200
    data[i] = data[i - 1];
 
2201
  data[index] = item;
 
2202
  count++;
 
2203
}
 
2204
 
 
2205
template <class Item>
 
2206
inline Item& Array<Item>::get (long index) {
 
2207
  if (index >= size || ! data) {
 
2208
    grow (index);
 
2209
  }
 
2210
  if (index >= count)
 
2211
    count = index + 1;
 
2212
  return data[index];
 
2213
}
 
2214
 
 
2215
template <class Item>
 
2216
inline Item& Array<Item>::operator[] (long index) {
 
2217
  return get (index);
 
2218
}
 
2219
 
 
2220
template <class Item>
 
2221
inline Item Array<Item>::fetch (long index) const {
 
2222
  assert(index < count && data);
 
2223
  return data[index];
 
2224
}
 
2225
 
 
2226
template <class Item>
 
2227
inline long Array<Item>::length () const {
 
2228
  return count;
 
2229
}
 
2230
 
 
2231
template <class Item>
 
2232
inline void Array<Item>::remove (long index) {
 
2233
  if (index < count && count > 0) {
 
2234
    for (long i = index; i < count - 1; i++)
 
2235
      data[i] = data[i + 1];
 
2236
    count--;
 
2237
  }
 
2238
}
2713
2239
 
2714
2240
#ifndef __puma
2715
2241
template <>
2716
2242
inline void Array<int>::reset () {
2717
 
   count = 0; 
 
2243
  count = 0; 
2718
2244
}
2719
2245
#endif
2720
2246
 
2721
2247
template <class Item>
2722
 
void Array<Item>::reset ()
2723
 
 {
2724
 
   if (data)
2725
 
      delete[] data;
2726
 
   count     = 0; 
2727
 
   size      = default_init_size;
2728
 
   increment = default_increment;
2729
 
   data      = new Item[size];
2730
 
 }
 
2248
void Array<Item>::reset () {
 
2249
  if (data)
 
2250
    delete[] data;
 
2251
    
 
2252
  count     = 0; 
 
2253
  size      = default_init_size;
 
2254
  increment = default_increment;
 
2255
  data      = new Item[size];
 
2256
}
2731
2257
 
2732
2258
template <class Item>
2733
 
inline Item& Array<Item>::lookup (long index) const
2734
 
 {
2735
 
   assert(index >= 0 && index < count);
2736
 
//   if (index >= count) index = count - 1; 
2737
 
//   if (index < 0)      index = 0;
2738
 
   return data[index];
2739
 
 }
 
2259
inline Item& Array<Item>::lookup (long index) const {
 
2260
  assert(index >= 0 && index < count);
 
2261
  return data[index];
 
2262
}
2740
2263
 
2741
2264
 
2742
2265
} // namespace Puma
2770
2293
  void remove (long idx)                   { Base::remove (idx); }
2771
2294
  void reset ()                            { Base::reset (); }
2772
2295
 
2773
 
  Item *&get (long idx)          { return (Item*&)Base::get (idx); }
2774
 
  Item *&operator[] (long idx)   { return (Item*&)Base::operator[] (idx); }
2775
 
  Item *fetch (long idx) const   { return (Item*)Base::fetch (idx); }
2776
 
  Item *&lookup (long idx) const { return (Item*&)Base::lookup (idx); }
2777
 
  long length () const           { return Base::length (); }
 
2296
  Item *&get (long idx)                    { return (Item*&)Base::get (idx); }
 
2297
  Item *&operator[] (long idx)             { return (Item*&)Base::operator[] (idx); }
 
2298
  Item *fetch (long idx) const             { return (Item*)Base::fetch (idx); }
 
2299
  Item *&lookup (long idx) const           { return (Item*&)Base::lookup (idx); }
 
2300
  long length () const                     { return Base::length (); }
2778
2301
};
2779
2302
 
2780
2303
 
2784
2307
 
2785
2308
#endif /* __array_h__ */
2786
2309
 
2787
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
2310
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
2788
2311
namespace Puma {
2789
2312
 
2790
2313
 
2792
2315
class CT_ArgDeclList;
2793
2316
 
2794
2317
 
2795
 
#line 2796 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
2318
#line 2319 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
2796
2319
} // closed Puma
 
2320
class CCExprResolve;
 
2321
class CExprResolve;
2797
2322
class WinIfExists;
2798
2323
class WinImportHandler;
2799
2324
class WinMacros;
2800
 
class CMatchSyntax;
2801
 
class ExtGnu;
 
2325
class WinAsm;
 
2326
class WinDeclSpecs;
 
2327
class WinMemberExplSpec;
 
2328
class WinTypeKeywords;
 
2329
class WinFriend;
2802
2330
class ExtAC;
2803
2331
class ExtACBuilderCoupling;
2804
2332
class ExtACSyntaxCoupling;
2805
2333
class ExtACTree;
2806
2334
class ExtACKeywords;
2807
 
class WinAsm;
2808
 
class WinDeclSpecs;
2809
 
class WinMemberExplSpec;
2810
 
class WinTypeKeywords;
 
2335
class ExtGnu;
2811
2336
class PragmaOnceUnitState;
2812
2337
class PragmaOnce;
2813
 
class CCExprResolve;
2814
 
class CExprResolve;
 
2338
class CMatchSyntax;
2815
2339
namespace Puma {
2816
2340
 
2817
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
2341
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
2818
2342
class CTypeList {
2819
 
#line 2820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
2343
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
2344
  friend class ::CCExprResolve;
 
2345
  friend class ::CExprResolve;
2820
2346
  friend class ::WinIfExists;
2821
2347
  friend class ::WinImportHandler;
2822
2348
  friend class ::WinMacros;
2823
 
  friend class ::CMatchSyntax;
2824
 
  friend class ::ExtGnu;
 
2349
  friend class ::WinAsm;
 
2350
  friend class ::WinDeclSpecs;
 
2351
  friend class ::WinMemberExplSpec;
 
2352
  friend class ::WinTypeKeywords;
 
2353
  friend class ::WinFriend;
2825
2354
  friend class ::ExtAC;
2826
2355
  friend class ::ExtACBuilderCoupling;
2827
2356
  friend class ::ExtACSyntaxCoupling;
2828
2357
  friend class ::ExtACTree;
2829
2358
  friend class ::ExtACKeywords;
2830
 
  friend class ::WinAsm;
2831
 
  friend class ::WinDeclSpecs;
2832
 
  friend class ::WinMemberExplSpec;
2833
 
  friend class ::WinTypeKeywords;
 
2359
  friend class ::ExtGnu;
2834
2360
  friend class ::PragmaOnceUnitState;
2835
2361
  friend class ::PragmaOnce;
2836
 
  friend class ::CCExprResolve;
2837
 
  friend class ::CExprResolve;
 
2362
  friend class ::CMatchSyntax;
2838
2363
 
2839
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
2364
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
2840
2365
 
2841
2366
  Array<CTypeInfo*> _List;
2842
2367
  CT_ArgDeclList *_ArgumentList;
2884
2409
 
2885
2410
#endif /* __CTypeList_h__ */
2886
2411
 
2887
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
2412
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
2888
2413
namespace Puma {
2889
2414
 
2890
2415
 
2892
2417
class CRecord;
2893
2418
 
2894
2419
 
2895
 
#line 2896 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
2420
#line 2421 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
2896
2421
} // closed Puma
 
2422
class CCExprResolve;
 
2423
class CExprResolve;
2897
2424
class WinIfExists;
2898
2425
class WinImportHandler;
2899
2426
class WinMacros;
2900
 
class CMatchSyntax;
2901
 
class ExtGnu;
 
2427
class WinAsm;
 
2428
class WinDeclSpecs;
 
2429
class WinMemberExplSpec;
 
2430
class WinTypeKeywords;
 
2431
class WinFriend;
2902
2432
class ExtAC;
2903
2433
class ExtACBuilderCoupling;
2904
2434
class ExtACSyntaxCoupling;
2905
2435
class ExtACTree;
2906
2436
class ExtACKeywords;
2907
 
class WinAsm;
2908
 
class WinDeclSpecs;
2909
 
class WinMemberExplSpec;
2910
 
class WinTypeKeywords;
 
2437
class ExtGnu;
2911
2438
class PragmaOnceUnitState;
2912
2439
class PragmaOnce;
2913
 
class CCExprResolve;
2914
 
class CExprResolve;
 
2440
class CMatchSyntax;
2915
2441
namespace Puma {
2916
2442
 
2917
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
2443
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
2918
2444
class CTypeFunction : public CTypeQualified {
2919
 
#line 2920 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
2445
#line 2446 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
2446
  friend class ::CCExprResolve;
 
2447
  friend class ::CExprResolve;
2920
2448
  friend class ::WinIfExists;
2921
2449
  friend class ::WinImportHandler;
2922
2450
  friend class ::WinMacros;
2923
 
  friend class ::CMatchSyntax;
2924
 
  friend class ::ExtGnu;
 
2451
  friend class ::WinAsm;
 
2452
  friend class ::WinDeclSpecs;
 
2453
  friend class ::WinMemberExplSpec;
 
2454
  friend class ::WinTypeKeywords;
 
2455
  friend class ::WinFriend;
2925
2456
  friend class ::ExtAC;
2926
2457
  friend class ::ExtACBuilderCoupling;
2927
2458
  friend class ::ExtACSyntaxCoupling;
2928
2459
  friend class ::ExtACTree;
2929
2460
  friend class ::ExtACKeywords;
2930
 
  friend class ::WinAsm;
2931
 
  friend class ::WinDeclSpecs;
2932
 
  friend class ::WinMemberExplSpec;
2933
 
  friend class ::WinTypeKeywords;
 
2461
  friend class ::ExtGnu;
2934
2462
  friend class ::PragmaOnceUnitState;
2935
2463
  friend class ::PragmaOnce;
2936
 
  friend class ::CCExprResolve;
2937
 
  friend class ::CExprResolve;
 
2464
  friend class ::CMatchSyntax;
2938
2465
 
2939
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
2466
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
2940
2467
 
2941
2468
  CTypeList *_ArgTypes;
2942
2469
  CFunctionInfo *_Function;
2984
2511
 
2985
2512
#endif /* __CTypeFunction_h__ */
2986
2513
 
2987
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
2514
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
2988
2515
// This file is part of PUMA.
2989
2516
// Copyright (C) 1999-2003  The PUMA developer team.
2990
2517
//                                                                
3017
2544
class CEnumInfo;
3018
2545
 
3019
2546
 
3020
 
#line 3021 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
2547
#line 2548 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
3021
2548
} // closed Puma
 
2549
class CCExprResolve;
 
2550
class CExprResolve;
3022
2551
class WinIfExists;
3023
2552
class WinImportHandler;
3024
2553
class WinMacros;
3025
 
class CMatchSyntax;
3026
 
class ExtGnu;
 
2554
class WinAsm;
 
2555
class WinDeclSpecs;
 
2556
class WinMemberExplSpec;
 
2557
class WinTypeKeywords;
 
2558
class WinFriend;
3027
2559
class ExtAC;
3028
2560
class ExtACBuilderCoupling;
3029
2561
class ExtACSyntaxCoupling;
3030
2562
class ExtACTree;
3031
2563
class ExtACKeywords;
3032
 
class WinAsm;
3033
 
class WinDeclSpecs;
3034
 
class WinMemberExplSpec;
3035
 
class WinTypeKeywords;
 
2564
class ExtGnu;
3036
2565
class PragmaOnceUnitState;
3037
2566
class PragmaOnce;
3038
 
class CCExprResolve;
3039
 
class CExprResolve;
 
2567
class CMatchSyntax;
3040
2568
namespace Puma {
3041
2569
 
3042
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
2570
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
3043
2571
class CTypeEnum : public CTypeInfo {
3044
 
#line 3045 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
2572
#line 2573 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
2573
  friend class ::CCExprResolve;
 
2574
  friend class ::CExprResolve;
3045
2575
  friend class ::WinIfExists;
3046
2576
  friend class ::WinImportHandler;
3047
2577
  friend class ::WinMacros;
3048
 
  friend class ::CMatchSyntax;
3049
 
  friend class ::ExtGnu;
 
2578
  friend class ::WinAsm;
 
2579
  friend class ::WinDeclSpecs;
 
2580
  friend class ::WinMemberExplSpec;
 
2581
  friend class ::WinTypeKeywords;
 
2582
  friend class ::WinFriend;
3050
2583
  friend class ::ExtAC;
3051
2584
  friend class ::ExtACBuilderCoupling;
3052
2585
  friend class ::ExtACSyntaxCoupling;
3053
2586
  friend class ::ExtACTree;
3054
2587
  friend class ::ExtACKeywords;
3055
 
  friend class ::WinAsm;
3056
 
  friend class ::WinDeclSpecs;
3057
 
  friend class ::WinMemberExplSpec;
3058
 
  friend class ::WinTypeKeywords;
 
2588
  friend class ::ExtGnu;
3059
2589
  friend class ::PragmaOnceUnitState;
3060
2590
  friend class ::PragmaOnce;
3061
 
  friend class ::CCExprResolve;
3062
 
  friend class ::CExprResolve;
 
2591
  friend class ::CMatchSyntax;
3063
2592
 
3064
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
2593
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
3065
2594
 
3066
2595
  CEnumInfo *_Enum;
3067
2596
 
3071
2600
 
3072
2601
  CEnumInfo *EnumInfo () const;
3073
2602
  bool isComplete (unsigned long = 0) const;
 
2603
  
 
2604
  CTypeInfo *UnderlyingType () const;
3074
2605
};
3075
2606
 
3076
2607
inline CTypeEnum::CTypeEnum (CEnumInfo *e) :
3082
2613
 
3083
2614
inline CEnumInfo *CTypeEnum::EnumInfo () const 
3084
2615
 { return _Enum; }
3085
 
 
 
2616
 
3086
2617
 
3087
2618
} // namespace Puma
3088
2619
 
3089
2620
#endif /* __CTypeEnum_h__ */
3090
2621
 
3091
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
2622
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
3092
2623
// This file is part of PUMA.
3093
2624
// Copyright (C) 1999-2003  The PUMA developer team.
3094
2625
//                                                                
3121
2652
class CRecord;
3122
2653
 
3123
2654
 
3124
 
#line 3125 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
2655
#line 2656 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
3125
2656
} // closed Puma
 
2657
class CCExprResolve;
 
2658
class CExprResolve;
3126
2659
class WinIfExists;
3127
2660
class WinImportHandler;
3128
2661
class WinMacros;
3129
 
class CMatchSyntax;
3130
 
class ExtGnu;
 
2662
class WinAsm;
 
2663
class WinDeclSpecs;
 
2664
class WinMemberExplSpec;
 
2665
class WinTypeKeywords;
 
2666
class WinFriend;
3131
2667
class ExtAC;
3132
2668
class ExtACBuilderCoupling;
3133
2669
class ExtACSyntaxCoupling;
3134
2670
class ExtACTree;
3135
2671
class ExtACKeywords;
3136
 
class WinAsm;
3137
 
class WinDeclSpecs;
3138
 
class WinMemberExplSpec;
3139
 
class WinTypeKeywords;
 
2672
class ExtGnu;
3140
2673
class PragmaOnceUnitState;
3141
2674
class PragmaOnce;
3142
 
class CCExprResolve;
3143
 
class CExprResolve;
 
2675
class CMatchSyntax;
3144
2676
namespace Puma {
3145
2677
 
3146
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
2678
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
3147
2679
class CTypeRecord : public CTypeInfo {
3148
 
#line 3149 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
2680
#line 2681 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
2681
  friend class ::CCExprResolve;
 
2682
  friend class ::CExprResolve;
3149
2683
  friend class ::WinIfExists;
3150
2684
  friend class ::WinImportHandler;
3151
2685
  friend class ::WinMacros;
3152
 
  friend class ::CMatchSyntax;
3153
 
  friend class ::ExtGnu;
 
2686
  friend class ::WinAsm;
 
2687
  friend class ::WinDeclSpecs;
 
2688
  friend class ::WinMemberExplSpec;
 
2689
  friend class ::WinTypeKeywords;
 
2690
  friend class ::WinFriend;
3154
2691
  friend class ::ExtAC;
3155
2692
  friend class ::ExtACBuilderCoupling;
3156
2693
  friend class ::ExtACSyntaxCoupling;
3157
2694
  friend class ::ExtACTree;
3158
2695
  friend class ::ExtACKeywords;
3159
 
  friend class ::WinAsm;
3160
 
  friend class ::WinDeclSpecs;
3161
 
  friend class ::WinMemberExplSpec;
3162
 
  friend class ::WinTypeKeywords;
 
2696
  friend class ::ExtGnu;
3163
2697
  friend class ::PragmaOnceUnitState;
3164
2698
  friend class ::PragmaOnce;
3165
 
  friend class ::CCExprResolve;
3166
 
  friend class ::CExprResolve;
 
2699
  friend class ::CMatchSyntax;
3167
2700
 
3168
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
2701
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
3169
2702
 
3170
2703
  bool _hasConstMember;
3171
2704
 
3220
2753
 
3221
2754
#endif /* __CTypeRecord_h__ */
3222
2755
 
3223
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
2756
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
3224
2757
// This file is part of PUMA.
3225
2758
// Copyright (C) 1999-2003  The PUMA developer team.
3226
2759
//                                                                
3254
2787
class CRecord;
3255
2788
 
3256
2789
 
3257
 
#line 3258 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
2790
#line 2791 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
3258
2791
} // closed Puma
 
2792
class CCExprResolve;
 
2793
class CExprResolve;
3259
2794
class WinIfExists;
3260
2795
class WinImportHandler;
3261
2796
class WinMacros;
3262
 
class CMatchSyntax;
3263
 
class ExtGnu;
 
2797
class WinAsm;
 
2798
class WinDeclSpecs;
 
2799
class WinMemberExplSpec;
 
2800
class WinTypeKeywords;
 
2801
class WinFriend;
3264
2802
class ExtAC;
3265
2803
class ExtACBuilderCoupling;
3266
2804
class ExtACSyntaxCoupling;
3267
2805
class ExtACTree;
3268
2806
class ExtACKeywords;
3269
 
class WinAsm;
3270
 
class WinDeclSpecs;
3271
 
class WinMemberExplSpec;
3272
 
class WinTypeKeywords;
 
2807
class ExtGnu;
3273
2808
class PragmaOnceUnitState;
3274
2809
class PragmaOnce;
3275
 
class CCExprResolve;
3276
 
class CExprResolve;
 
2810
class CMatchSyntax;
3277
2811
namespace Puma {
3278
2812
 
3279
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
2813
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
3280
2814
class CTypeClass : public CTypeRecord {
3281
 
#line 3282 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
2815
#line 2816 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
2816
  friend class ::CCExprResolve;
 
2817
  friend class ::CExprResolve;
3282
2818
  friend class ::WinIfExists;
3283
2819
  friend class ::WinImportHandler;
3284
2820
  friend class ::WinMacros;
3285
 
  friend class ::CMatchSyntax;
3286
 
  friend class ::ExtGnu;
 
2821
  friend class ::WinAsm;
 
2822
  friend class ::WinDeclSpecs;
 
2823
  friend class ::WinMemberExplSpec;
 
2824
  friend class ::WinTypeKeywords;
 
2825
  friend class ::WinFriend;
3287
2826
  friend class ::ExtAC;
3288
2827
  friend class ::ExtACBuilderCoupling;
3289
2828
  friend class ::ExtACSyntaxCoupling;
3290
2829
  friend class ::ExtACTree;
3291
2830
  friend class ::ExtACKeywords;
3292
 
  friend class ::WinAsm;
3293
 
  friend class ::WinDeclSpecs;
3294
 
  friend class ::WinMemberExplSpec;
3295
 
  friend class ::WinTypeKeywords;
 
2831
  friend class ::ExtGnu;
3296
2832
  friend class ::PragmaOnceUnitState;
3297
2833
  friend class ::PragmaOnce;
3298
 
  friend class ::CCExprResolve;
3299
 
  friend class ::CExprResolve;
 
2834
  friend class ::CMatchSyntax;
3300
2835
 
3301
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
2836
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
3302
2837
 
3303
2838
public:
3304
2839
  CTypeClass (CRecord *);
3318
2853
 
3319
2854
#endif /* __CTypeClass_h__ */
3320
2855
 
3321
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
2856
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
3322
2857
// This file is part of PUMA.
3323
2858
// Copyright (C) 1999-2003  The PUMA developer team.
3324
2859
//                                                                
3352
2887
class CRecord;
3353
2888
 
3354
2889
 
3355
 
#line 3356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
2890
#line 2891 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
3356
2891
} // closed Puma
 
2892
class CCExprResolve;
 
2893
class CExprResolve;
3357
2894
class WinIfExists;
3358
2895
class WinImportHandler;
3359
2896
class WinMacros;
3360
 
class CMatchSyntax;
3361
 
class ExtGnu;
 
2897
class WinAsm;
 
2898
class WinDeclSpecs;
 
2899
class WinMemberExplSpec;
 
2900
class WinTypeKeywords;
 
2901
class WinFriend;
3362
2902
class ExtAC;
3363
2903
class ExtACBuilderCoupling;
3364
2904
class ExtACSyntaxCoupling;
3365
2905
class ExtACTree;
3366
2906
class ExtACKeywords;
3367
 
class WinAsm;
3368
 
class WinDeclSpecs;
3369
 
class WinMemberExplSpec;
3370
 
class WinTypeKeywords;
 
2907
class ExtGnu;
3371
2908
class PragmaOnceUnitState;
3372
2909
class PragmaOnce;
3373
 
class CCExprResolve;
3374
 
class CExprResolve;
 
2910
class CMatchSyntax;
3375
2911
namespace Puma {
3376
2912
 
3377
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
2913
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
3378
2914
class CTypeUnion : public CTypeRecord {
3379
 
#line 3380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
2915
#line 2916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
2916
  friend class ::CCExprResolve;
 
2917
  friend class ::CExprResolve;
3380
2918
  friend class ::WinIfExists;
3381
2919
  friend class ::WinImportHandler;
3382
2920
  friend class ::WinMacros;
3383
 
  friend class ::CMatchSyntax;
3384
 
  friend class ::ExtGnu;
 
2921
  friend class ::WinAsm;
 
2922
  friend class ::WinDeclSpecs;
 
2923
  friend class ::WinMemberExplSpec;
 
2924
  friend class ::WinTypeKeywords;
 
2925
  friend class ::WinFriend;
3385
2926
  friend class ::ExtAC;
3386
2927
  friend class ::ExtACBuilderCoupling;
3387
2928
  friend class ::ExtACSyntaxCoupling;
3388
2929
  friend class ::ExtACTree;
3389
2930
  friend class ::ExtACKeywords;
3390
 
  friend class ::WinAsm;
3391
 
  friend class ::WinDeclSpecs;
3392
 
  friend class ::WinMemberExplSpec;
3393
 
  friend class ::WinTypeKeywords;
 
2931
  friend class ::ExtGnu;
3394
2932
  friend class ::PragmaOnceUnitState;
3395
2933
  friend class ::PragmaOnce;
3396
 
  friend class ::CCExprResolve;
3397
 
  friend class ::CExprResolve;
 
2934
  friend class ::CMatchSyntax;
3398
2935
 
3399
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
2936
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
3400
2937
 
3401
2938
public:
3402
2939
  CTypeUnion (CRecord *);
3416
2953
 
3417
2954
#endif /* __CTypeUnion_h__ */
3418
2955
 
3419
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
2956
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
3420
2957
// This file is part of PUMA.
3421
2958
// Copyright (C) 1999-2003  The PUMA developer team.
3422
2959
//                                                                
3449
2986
class CTemplateParamInfo;
3450
2987
 
3451
2988
 
3452
 
#line 3453 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
2989
#line 2990 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
3453
2990
} // closed Puma
 
2991
class CCExprResolve;
 
2992
class CExprResolve;
3454
2993
class WinIfExists;
3455
2994
class WinImportHandler;
3456
2995
class WinMacros;
3457
 
class CMatchSyntax;
3458
 
class ExtGnu;
 
2996
class WinAsm;
 
2997
class WinDeclSpecs;
 
2998
class WinMemberExplSpec;
 
2999
class WinTypeKeywords;
 
3000
class WinFriend;
3459
3001
class ExtAC;
3460
3002
class ExtACBuilderCoupling;
3461
3003
class ExtACSyntaxCoupling;
3462
3004
class ExtACTree;
3463
3005
class ExtACKeywords;
3464
 
class WinAsm;
3465
 
class WinDeclSpecs;
3466
 
class WinMemberExplSpec;
3467
 
class WinTypeKeywords;
 
3006
class ExtGnu;
3468
3007
class PragmaOnceUnitState;
3469
3008
class PragmaOnce;
3470
 
class CCExprResolve;
3471
 
class CExprResolve;
 
3009
class CMatchSyntax;
3472
3010
namespace Puma {
3473
3011
 
3474
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
3012
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
3475
3013
class CTypeTemplateParam : public CTypeInfo {
3476
 
#line 3477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
3014
#line 3015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
3015
  friend class ::CCExprResolve;
 
3016
  friend class ::CExprResolve;
3477
3017
  friend class ::WinIfExists;
3478
3018
  friend class ::WinImportHandler;
3479
3019
  friend class ::WinMacros;
3480
 
  friend class ::CMatchSyntax;
3481
 
  friend class ::ExtGnu;
 
3020
  friend class ::WinAsm;
 
3021
  friend class ::WinDeclSpecs;
 
3022
  friend class ::WinMemberExplSpec;
 
3023
  friend class ::WinTypeKeywords;
 
3024
  friend class ::WinFriend;
3482
3025
  friend class ::ExtAC;
3483
3026
  friend class ::ExtACBuilderCoupling;
3484
3027
  friend class ::ExtACSyntaxCoupling;
3485
3028
  friend class ::ExtACTree;
3486
3029
  friend class ::ExtACKeywords;
3487
 
  friend class ::WinAsm;
3488
 
  friend class ::WinDeclSpecs;
3489
 
  friend class ::WinMemberExplSpec;
3490
 
  friend class ::WinTypeKeywords;
 
3030
  friend class ::ExtGnu;
3491
3031
  friend class ::PragmaOnceUnitState;
3492
3032
  friend class ::PragmaOnce;
3493
 
  friend class ::CCExprResolve;
3494
 
  friend class ::CExprResolve;
 
3033
  friend class ::CMatchSyntax;
3495
3034
 
3496
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
3035
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
3497
3036
 
3498
3037
  CTemplateParamInfo *_TemplateParam;
3499
3038
 
3502
3041
  ~CTypeTemplateParam ();
3503
3042
 
3504
3043
  CTemplateParamInfo *TemplateParamInfo () const;
 
3044
  void TemplateParamInfo (CTemplateParamInfo *);
3505
3045
  bool isType () const;
3506
3046
  bool isNonType () const;
3507
3047
};
3519
3059
inline bool CTypeTemplateParam::isNonType () const
3520
3060
 { return (! isType ()); }
3521
3061
 
 
3062
inline void CTypeTemplateParam::TemplateParamInfo (CTemplateParamInfo *info)
 
3063
 { _TemplateParam = info; }
3522
3064
 
3523
3065
} // namespace Puma
3524
3066
 
3525
3067
#endif /* __CTypeTemplateParam_h__ */
3526
3068
 
3527
 
#line 280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
3069
#line 284 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
3528
3070
namespace Puma {
3529
3071
 
3530
3072
inline CTypeInfo::CTypeInfo (CTypeInfo *info, CTypeInfo::TypeId id) :
3550
3092
 
3551
3093
inline void CTypeInfo::print (ostream& out) const 
3552
3094
 { TypeText ((char)PRINT_STD, out); }
3553
 
inline void CTypeInfo::TypeText (ostream &out, const char *t, bool abs, bool tdef) const
 
3095
inline void CTypeInfo::TypeText (ostream &out, const char *t, bool abs, bool tdef, bool elaborated_type_spec) const
3554
3096
 { char flags = (char)(abs ? PRINT_ABS : PRINT_STD);
3555
 
   if (tdef) flags |= (char)PRINT_TDN; TypeText (flags, out, t); }
 
3097
   if (tdef) flags |= (char)PRINT_TDN; 
 
3098
   if (elaborated_type_spec) flags |= (char)PRINT_ELA;
 
3099
   TypeText (flags, out, t); }
3556
3100
 
3557
3101
inline long int CTypeInfo::Dimension () const
3558
3102
 { return TypeArray () ? TypeArray ()->Dimension () : 
3738
3282
 
3739
3283
#endif /* __CTypeInfo_h__ */
3740
3284
 
3741
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
3285
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
3742
3286
namespace Puma {
3743
3287
 
3744
3288
 
3745
3289
 
3746
 
#line 3747 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
3290
#line 3291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
3747
3291
} // closed Puma
 
3292
class CCExprResolve;
 
3293
class CExprResolve;
3748
3294
class WinIfExists;
3749
3295
class WinImportHandler;
3750
3296
class WinMacros;
3751
 
class CMatchSyntax;
3752
 
class ExtGnu;
 
3297
class WinAsm;
 
3298
class WinDeclSpecs;
 
3299
class WinMemberExplSpec;
 
3300
class WinTypeKeywords;
 
3301
class WinFriend;
3753
3302
class ExtAC;
3754
3303
class ExtACBuilderCoupling;
3755
3304
class ExtACSyntaxCoupling;
3756
3305
class ExtACTree;
3757
3306
class ExtACKeywords;
3758
 
class WinAsm;
3759
 
class WinDeclSpecs;
3760
 
class WinMemberExplSpec;
3761
 
class WinTypeKeywords;
 
3307
class ExtGnu;
3762
3308
class PragmaOnceUnitState;
3763
3309
class PragmaOnce;
3764
 
class CCExprResolve;
3765
 
class CExprResolve;
 
3310
class CMatchSyntax;
3766
3311
namespace Puma {
3767
3312
 
3768
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
3313
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
3769
3314
class CSemValue {
3770
 
#line 3771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
3315
#line 3316 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
3316
  friend class ::CCExprResolve;
 
3317
  friend class ::CExprResolve;
3771
3318
  friend class ::WinIfExists;
3772
3319
  friend class ::WinImportHandler;
3773
3320
  friend class ::WinMacros;
3774
 
  friend class ::CMatchSyntax;
3775
 
  friend class ::ExtGnu;
 
3321
  friend class ::WinAsm;
 
3322
  friend class ::WinDeclSpecs;
 
3323
  friend class ::WinMemberExplSpec;
 
3324
  friend class ::WinTypeKeywords;
 
3325
  friend class ::WinFriend;
3776
3326
  friend class ::ExtAC;
3777
3327
  friend class ::ExtACBuilderCoupling;
3778
3328
  friend class ::ExtACSyntaxCoupling;
3779
3329
  friend class ::ExtACTree;
3780
3330
  friend class ::ExtACKeywords;
3781
 
  friend class ::WinAsm;
3782
 
  friend class ::WinDeclSpecs;
3783
 
  friend class ::WinMemberExplSpec;
3784
 
  friend class ::WinTypeKeywords;
 
3331
  friend class ::ExtGnu;
3785
3332
  friend class ::PragmaOnceUnitState;
3786
3333
  friend class ::PragmaOnce;
3787
 
  friend class ::CCExprResolve;
3788
 
  friend class ::CExprResolve;
 
3334
  friend class ::CMatchSyntax;
3789
3335
 
3790
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
3336
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
3791
3337
 
3792
3338
  bool value_ref;
3793
3339
  bool type_ref;
3804
3350
  void setValueRef (CExprValue *);
3805
3351
  void setType (CTypeInfo *);
3806
3352
  void setTypeRef (CTypeInfo *);
 
3353
  CExprValue* getValue() { return value; }
 
3354
  CTypeInfo* getType() { return type; }
3807
3355
};
3808
3356
 
3809
3357
inline CSemValue::CSemValue () : 
3835
3383
 
3836
3384
#endif /* __CSemValue_h__ */
3837
3385
 
3838
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
3386
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
3839
3387
// This file is part of PUMA.
3840
3388
// Copyright (C) 1999-2003  The PUMA developer team.
3841
3389
//                                                                
3858
3406
#define __CStrLiteral_h__
3859
3407
 
3860
3408
 
3861
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
3409
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
3862
3410
namespace Puma {
3863
3411
 
3864
3412
 
3865
3413
 
3866
 
#line 3867 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
3414
#line 3415 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
3867
3415
} // closed Puma
 
3416
class CCExprResolve;
 
3417
class CExprResolve;
3868
3418
class WinIfExists;
3869
3419
class WinImportHandler;
3870
3420
class WinMacros;
3871
 
class CMatchSyntax;
3872
 
class ExtGnu;
 
3421
class WinAsm;
 
3422
class WinDeclSpecs;
 
3423
class WinMemberExplSpec;
 
3424
class WinTypeKeywords;
 
3425
class WinFriend;
3873
3426
class ExtAC;
3874
3427
class ExtACBuilderCoupling;
3875
3428
class ExtACSyntaxCoupling;
3876
3429
class ExtACTree;
3877
3430
class ExtACKeywords;
3878
 
class WinAsm;
3879
 
class WinDeclSpecs;
3880
 
class WinMemberExplSpec;
3881
 
class WinTypeKeywords;
 
3431
class ExtGnu;
3882
3432
class PragmaOnceUnitState;
3883
3433
class PragmaOnce;
3884
 
class CCExprResolve;
3885
 
class CExprResolve;
 
3434
class CMatchSyntax;
3886
3435
namespace Puma {
3887
3436
 
3888
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
3437
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
3889
3438
class CStrLiteral : public CExprValue {
3890
 
#line 3891 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
3439
#line 3440 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
3440
  friend class ::CCExprResolve;
 
3441
  friend class ::CExprResolve;
3891
3442
  friend class ::WinIfExists;
3892
3443
  friend class ::WinImportHandler;
3893
3444
  friend class ::WinMacros;
3894
 
  friend class ::CMatchSyntax;
3895
 
  friend class ::ExtGnu;
 
3445
  friend class ::WinAsm;
 
3446
  friend class ::WinDeclSpecs;
 
3447
  friend class ::WinMemberExplSpec;
 
3448
  friend class ::WinTypeKeywords;
 
3449
  friend class ::WinFriend;
3896
3450
  friend class ::ExtAC;
3897
3451
  friend class ::ExtACBuilderCoupling;
3898
3452
  friend class ::ExtACSyntaxCoupling;
3899
3453
  friend class ::ExtACTree;
3900
3454
  friend class ::ExtACKeywords;
3901
 
  friend class ::WinAsm;
3902
 
  friend class ::WinDeclSpecs;
3903
 
  friend class ::WinMemberExplSpec;
3904
 
  friend class ::WinTypeKeywords;
 
3455
  friend class ::ExtGnu;
3905
3456
  friend class ::PragmaOnceUnitState;
3906
3457
  friend class ::PragmaOnce;
3907
 
  friend class ::CCExprResolve;
3908
 
  friend class ::CExprResolve;
 
3458
  friend class ::CMatchSyntax;
3909
3459
 
3910
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
3460
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
3911
3461
 
3912
3462
  const char *_string;
3913
3463
  unsigned long _len;
3929
3479
 
3930
3480
#endif /* __CStrLiteral_h__ */
3931
3481
 
3932
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTokens.h"
 
3482
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTokens.h"
3933
3483
// This file is part of PUMA.
3934
3484
// Copyright (C) 1999-2003  The PUMA developer team.
3935
3485
//                                                                
3960
3510
  TOK_ZERO_VAL,
3961
3511
  TOK_INT_VAL,
3962
3512
  TOK_FLT_VAL,
 
3513
  TOK_STRING_VAL,
 
3514
  TOK_CHAR_VAL,
3963
3515
  TOK_COMMA,
3964
3516
  TOK_ASSIGN,
3965
3517
  TOK_QUESTION,
4142
3694
  TOK_LAST_AC = TOK_UNKNOWN_T,
4143
3695
  
4144
3696
  // further [A](C|C++) token
4145
 
  TOK_STRING_VAL,
4146
 
  TOK_CHAR_VAL,
4147
3697
  TOK_ID,
4148
3698
 
4149
3699
  // These two always have to be the ** last ** token listed here!!!
4156
3706
 
4157
3707
#endif /* __C_TOKENS__ */
4158
3708
 
4159
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
3709
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
4160
3710
// This file is part of PUMA.
4161
3711
// Copyright (C) 1999-2003  The PUMA developer team.
4162
3712
//                                                                
4184
3734
 
4185
3735
#include <stdlib.h>
4186
3736
 
4187
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
3737
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
4188
3738
// This file is part of PUMA.
4189
3739
// Copyright (C) 1999-2003  The PUMA developer team.
4190
3740
//                                                                
4212
3762
 
4213
3763
 
4214
3764
 
4215
 
#line 4216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
3765
#line 3766 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
4216
3766
} // closed Puma
 
3767
class CCExprResolve;
 
3768
class CExprResolve;
4217
3769
class WinIfExists;
4218
3770
class WinImportHandler;
4219
3771
class WinMacros;
4220
 
class CMatchSyntax;
4221
 
class ExtGnu;
 
3772
class WinAsm;
 
3773
class WinDeclSpecs;
 
3774
class WinMemberExplSpec;
 
3775
class WinTypeKeywords;
 
3776
class WinFriend;
4222
3777
class ExtAC;
4223
3778
class ExtACBuilderCoupling;
4224
3779
class ExtACSyntaxCoupling;
4225
3780
class ExtACTree;
4226
3781
class ExtACKeywords;
4227
 
class WinAsm;
4228
 
class WinDeclSpecs;
4229
 
class WinMemberExplSpec;
4230
 
class WinTypeKeywords;
 
3782
class ExtGnu;
4231
3783
class PragmaOnceUnitState;
4232
3784
class PragmaOnce;
4233
 
class CCExprResolve;
4234
 
class CExprResolve;
 
3785
class CMatchSyntax;
4235
3786
namespace Puma {
4236
3787
 
4237
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
3788
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
4238
3789
class LanguageID {
4239
 
#line 4240 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
3790
#line 3791 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
3791
  friend class ::CCExprResolve;
 
3792
  friend class ::CExprResolve;
4240
3793
  friend class ::WinIfExists;
4241
3794
  friend class ::WinImportHandler;
4242
3795
  friend class ::WinMacros;
4243
 
  friend class ::CMatchSyntax;
4244
 
  friend class ::ExtGnu;
 
3796
  friend class ::WinAsm;
 
3797
  friend class ::WinDeclSpecs;
 
3798
  friend class ::WinMemberExplSpec;
 
3799
  friend class ::WinTypeKeywords;
 
3800
  friend class ::WinFriend;
4245
3801
  friend class ::ExtAC;
4246
3802
  friend class ::ExtACBuilderCoupling;
4247
3803
  friend class ::ExtACSyntaxCoupling;
4248
3804
  friend class ::ExtACTree;
4249
3805
  friend class ::ExtACKeywords;
4250
 
  friend class ::WinAsm;
4251
 
  friend class ::WinDeclSpecs;
4252
 
  friend class ::WinMemberExplSpec;
4253
 
  friend class ::WinTypeKeywords;
 
3806
  friend class ::ExtGnu;
4254
3807
  friend class ::PragmaOnceUnitState;
4255
3808
  friend class ::PragmaOnce;
4256
 
  friend class ::CCExprResolve;
4257
 
  friend class ::CExprResolve;
 
3809
  friend class ::CMatchSyntax;
4258
3810
 
4259
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
3811
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
4260
3812
 
4261
3813
  const char *_id;
4262
3814
 
4273
3825
 
4274
3826
#endif /* __language_id_h__ */
4275
3827
 
4276
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
 
3828
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
4277
3829
// This file is part of PUMA.
4278
3830
// Copyright (C) 1999-2003  The PUMA developer team.
4279
3831
//                                                                
4296
3848
#define __location_h__
4297
3849
 
4298
3850
 
4299
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
3851
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
 
3852
// This file is part of PUMA.
 
3853
// Copyright (C) 1999-2003  The PUMA developer team.
 
3854
//                                                                
 
3855
// This program is free software;  you can redistribute it and/or 
 
3856
// modify it under the terms of the GNU General Public License as 
 
3857
// published by the Free Software Foundation; either version 2 of 
 
3858
// the License, or (at your option) any later version.            
 
3859
//                                                                
 
3860
// This program is distributed in the hope that it will be useful,
 
3861
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
3862
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
3863
// GNU General Public License for more details.                   
 
3864
//                                                                
 
3865
// You should have received a copy of the GNU General Public      
 
3866
// License along with this program; if not, write to the Free     
 
3867
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
3868
// MA  02111-1307  USA                                            
 
3869
 
 
3870
#ifndef __filename_h__
 
3871
#define __filename_h__
 
3872
 
 
3873
 
 
3874
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
4300
3875
// This file is part of PUMA.
4301
3876
// Copyright (C) 1999-2003  The PUMA developer team.
4302
3877
//                                                                
4319
3894
#define __smart_ptr_h__
4320
3895
 
4321
3896
 
4322
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
3897
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
4323
3898
// This file is part of PUMA.
4324
3899
// Copyright (C) 1999-2003  The PUMA developer team.
4325
3900
//                                                                
4345
3920
 
4346
3921
 
4347
3922
 
4348
 
#line 4349 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
3923
#line 3924 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
4349
3924
} // closed Puma
 
3925
class CCExprResolve;
 
3926
class CExprResolve;
4350
3927
class WinIfExists;
4351
3928
class WinImportHandler;
4352
3929
class WinMacros;
4353
 
class CMatchSyntax;
4354
 
class ExtGnu;
 
3930
class WinAsm;
 
3931
class WinDeclSpecs;
 
3932
class WinMemberExplSpec;
 
3933
class WinTypeKeywords;
 
3934
class WinFriend;
4355
3935
class ExtAC;
4356
3936
class ExtACBuilderCoupling;
4357
3937
class ExtACSyntaxCoupling;
4358
3938
class ExtACTree;
4359
3939
class ExtACKeywords;
4360
 
class WinAsm;
4361
 
class WinDeclSpecs;
4362
 
class WinMemberExplSpec;
4363
 
class WinTypeKeywords;
 
3940
class ExtGnu;
4364
3941
class PragmaOnceUnitState;
4365
3942
class PragmaOnce;
4366
 
class CCExprResolve;
4367
 
class CExprResolve;
 
3943
class CMatchSyntax;
4368
3944
namespace Puma {
4369
3945
 
4370
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
3946
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
4371
3947
class RefCnt {
4372
 
#line 4373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
3948
#line 3949 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
3949
  friend class ::CCExprResolve;
 
3950
  friend class ::CExprResolve;
4373
3951
  friend class ::WinIfExists;
4374
3952
  friend class ::WinImportHandler;
4375
3953
  friend class ::WinMacros;
4376
 
  friend class ::CMatchSyntax;
4377
 
  friend class ::ExtGnu;
 
3954
  friend class ::WinAsm;
 
3955
  friend class ::WinDeclSpecs;
 
3956
  friend class ::WinMemberExplSpec;
 
3957
  friend class ::WinTypeKeywords;
 
3958
  friend class ::WinFriend;
4378
3959
  friend class ::ExtAC;
4379
3960
  friend class ::ExtACBuilderCoupling;
4380
3961
  friend class ::ExtACSyntaxCoupling;
4381
3962
  friend class ::ExtACTree;
4382
3963
  friend class ::ExtACKeywords;
4383
 
  friend class ::WinAsm;
4384
 
  friend class ::WinDeclSpecs;
4385
 
  friend class ::WinMemberExplSpec;
4386
 
  friend class ::WinTypeKeywords;
 
3964
  friend class ::ExtGnu;
4387
3965
  friend class ::PragmaOnceUnitState;
4388
3966
  friend class ::PragmaOnce;
4389
 
  friend class ::CCExprResolve;
4390
 
  friend class ::CExprResolve;
 
3967
  friend class ::CMatchSyntax;
4391
3968
 
4392
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
3969
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
4393
3970
 
4394
3971
  int _counter;
4395
3972
 
4407
3984
 
4408
3985
#endif /* __ref_cnt_h__ */
4409
3986
 
4410
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
3987
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
4411
3988
namespace Puma {
4412
3989
 
4413
3990
 
4414
3991
 
4415
 
#line 4416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
3992
#line 3993 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
4416
3993
} // closed Puma
 
3994
class CCExprResolve;
 
3995
class CExprResolve;
4417
3996
class WinIfExists;
4418
3997
class WinImportHandler;
4419
3998
class WinMacros;
4420
 
class CMatchSyntax;
4421
 
class ExtGnu;
 
3999
class WinAsm;
 
4000
class WinDeclSpecs;
 
4001
class WinMemberExplSpec;
 
4002
class WinTypeKeywords;
 
4003
class WinFriend;
4422
4004
class ExtAC;
4423
4005
class ExtACBuilderCoupling;
4424
4006
class ExtACSyntaxCoupling;
4425
4007
class ExtACTree;
4426
4008
class ExtACKeywords;
4427
 
class WinAsm;
4428
 
class WinDeclSpecs;
4429
 
class WinMemberExplSpec;
4430
 
class WinTypeKeywords;
 
4009
class ExtGnu;
4431
4010
class PragmaOnceUnitState;
4432
4011
class PragmaOnce;
4433
 
class CCExprResolve;
4434
 
class CExprResolve;
 
4012
class CMatchSyntax;
4435
4013
namespace Puma {
4436
4014
 
4437
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
4015
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
4438
4016
class SmartPtr {
4439
 
#line 4440 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4017
#line 4018 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
4018
  friend class ::CCExprResolve;
 
4019
  friend class ::CExprResolve;
4440
4020
  friend class ::WinIfExists;
4441
4021
  friend class ::WinImportHandler;
4442
4022
  friend class ::WinMacros;
4443
 
  friend class ::CMatchSyntax;
4444
 
  friend class ::ExtGnu;
 
4023
  friend class ::WinAsm;
 
4024
  friend class ::WinDeclSpecs;
 
4025
  friend class ::WinMemberExplSpec;
 
4026
  friend class ::WinTypeKeywords;
 
4027
  friend class ::WinFriend;
4445
4028
  friend class ::ExtAC;
4446
4029
  friend class ::ExtACBuilderCoupling;
4447
4030
  friend class ::ExtACSyntaxCoupling;
4448
4031
  friend class ::ExtACTree;
4449
4032
  friend class ::ExtACKeywords;
4450
 
  friend class ::WinAsm;
4451
 
  friend class ::WinDeclSpecs;
4452
 
  friend class ::WinMemberExplSpec;
4453
 
  friend class ::WinTypeKeywords;
 
4033
  friend class ::ExtGnu;
4454
4034
  friend class ::PragmaOnceUnitState;
4455
4035
  friend class ::PragmaOnce;
4456
 
  friend class ::CCExprResolve;
4457
 
  friend class ::CExprResolve;
 
4036
  friend class ::CMatchSyntax;
4458
4037
 
4459
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
4038
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
4460
4039
 
4461
4040
  RefCnt *_data;
4462
4041
 
4478
4057
 
4479
4058
#endif /* __smart_ptr_h__ */
4480
4059
 
4481
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
4482
 
// This file is part of PUMA.
4483
 
// Copyright (C) 1999-2003  The PUMA developer team.
4484
 
//                                                                
4485
 
// This program is free software;  you can redistribute it and/or 
4486
 
// modify it under the terms of the GNU General Public License as 
4487
 
// published by the Free Software Foundation; either version 2 of 
4488
 
// the License, or (at your option) any later version.            
4489
 
//                                                                
4490
 
// This program is distributed in the hope that it will be useful,
4491
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4492
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4493
 
// GNU General Public License for more details.                   
4494
 
//                                                                
4495
 
// You should have received a copy of the GNU General Public      
4496
 
// License along with this program; if not, write to the Free     
4497
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4498
 
// MA  02111-1307  USA                                            
4499
 
 
4500
 
#ifndef __location_info_h__
4501
 
#define __location_info_h__
4502
 
 
4503
 
 
4504
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
4505
 
// This file is part of PUMA.
4506
 
// Copyright (C) 1999-2003  The PUMA developer team.
4507
 
//                                                                
4508
 
// This program is free software;  you can redistribute it and/or 
4509
 
// modify it under the terms of the GNU General Public License as 
4510
 
// published by the Free Software Foundation; either version 2 of 
4511
 
// the License, or (at your option) any later version.            
4512
 
//                                                                
4513
 
// This program is distributed in the hope that it will be useful,
4514
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4515
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4516
 
// GNU General Public License for more details.                   
4517
 
//                                                                
4518
 
// You should have received a copy of the GNU General Public      
4519
 
// License along with this program; if not, write to the Free     
4520
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4521
 
// MA  02111-1307  USA                                            
4522
 
 
4523
 
#ifndef __filename_h__
4524
 
#define __filename_h__
4525
 
 
4526
 
 
4527
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
4060
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
4528
4061
// This file is part of PUMA.
4529
4062
// Copyright (C) 1999-2003  The PUMA developer team.
4530
4063
//                                                                
4547
4080
#define __filename_info_h__
4548
4081
 
4549
4082
 
4550
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
4083
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
4551
4084
// This file is part of PUMA.
4552
4085
// Copyright (C) 1999-2003  The PUMA developer team.
4553
4086
//                                                                
4570
4103
#define __DString_h__
4571
4104
 
4572
4105
 
4573
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
4106
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
4574
4107
// This file is part of PUMA.
4575
4108
// Copyright (C) 1999-2003  The PUMA developer team.
4576
4109
//                                                                
4593
4126
#define __StrHashTable_h__
4594
4127
 
4595
4128
 
4596
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
4129
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
4597
4130
// This file is part of PUMA.
4598
4131
// Copyright (C) 1999-2003  The PUMA developer team.
4599
4132
//                                                                
4616
4149
#define __StrHashKey_h__
4617
4150
 
4618
4151
 
4619
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
4152
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
4620
4153
// This file is part of PUMA.
4621
4154
// Copyright (C) 1999-2003  The PUMA developer team.
4622
4155
//                                                                
4646
4179
class Unit;
4647
4180
 
4648
4181
 
4649
 
#line 4650 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4182
#line 4183 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
4650
4183
} // closed Puma
 
4184
class CCExprResolve;
 
4185
class CExprResolve;
4651
4186
class WinIfExists;
4652
4187
class WinImportHandler;
4653
4188
class WinMacros;
4654
 
class CMatchSyntax;
4655
 
class ExtGnu;
 
4189
class WinAsm;
 
4190
class WinDeclSpecs;
 
4191
class WinMemberExplSpec;
 
4192
class WinTypeKeywords;
 
4193
class WinFriend;
4656
4194
class ExtAC;
4657
4195
class ExtACBuilderCoupling;
4658
4196
class ExtACSyntaxCoupling;
4659
4197
class ExtACTree;
4660
4198
class ExtACKeywords;
4661
 
class WinAsm;
4662
 
class WinDeclSpecs;
4663
 
class WinMemberExplSpec;
4664
 
class WinTypeKeywords;
 
4199
class ExtGnu;
4665
4200
class PragmaOnceUnitState;
4666
4201
class PragmaOnce;
4667
 
class CCExprResolve;
4668
 
class CExprResolve;
 
4202
class CMatchSyntax;
4669
4203
namespace Puma {
4670
4204
 
4671
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
4205
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
4672
4206
class StrCol {
4673
 
#line 4674 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4207
#line 4208 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
4208
  friend class ::CCExprResolve;
 
4209
  friend class ::CExprResolve;
4674
4210
  friend class ::WinIfExists;
4675
4211
  friend class ::WinImportHandler;
4676
4212
  friend class ::WinMacros;
4677
 
  friend class ::CMatchSyntax;
4678
 
  friend class ::ExtGnu;
 
4213
  friend class ::WinAsm;
 
4214
  friend class ::WinDeclSpecs;
 
4215
  friend class ::WinMemberExplSpec;
 
4216
  friend class ::WinTypeKeywords;
 
4217
  friend class ::WinFriend;
4679
4218
  friend class ::ExtAC;
4680
4219
  friend class ::ExtACBuilderCoupling;
4681
4220
  friend class ::ExtACSyntaxCoupling;
4682
4221
  friend class ::ExtACTree;
4683
4222
  friend class ::ExtACKeywords;
4684
 
  friend class ::WinAsm;
4685
 
  friend class ::WinDeclSpecs;
4686
 
  friend class ::WinMemberExplSpec;
4687
 
  friend class ::WinTypeKeywords;
 
4223
  friend class ::ExtGnu;
4688
4224
  friend class ::PragmaOnceUnitState;
4689
4225
  friend class ::PragmaOnce;
4690
 
  friend class ::CCExprResolve;
4691
 
  friend class ::CExprResolve;
 
4226
  friend class ::CMatchSyntax;
4692
4227
 
4693
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
4228
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
4694
4229
 
4695
4230
protected:
4696
4231
  StrCol () {}
4718
4253
 
4719
4254
#endif /* __str_col__ */
4720
4255
 
4721
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
 
4256
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
4722
4257
// This file is part of PUMA.
4723
4258
// Copyright (C) 1999-2003  The PUMA developer team.
4724
4259
//                                                                
4753
4288
 
4754
4289
 
4755
4290
 
4756
 
#line 4757 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4291
#line 4292 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
4757
4292
} // closed Puma
 
4293
class CCExprResolve;
 
4294
class CExprResolve;
4758
4295
class WinIfExists;
4759
4296
class WinImportHandler;
4760
4297
class WinMacros;
4761
 
class CMatchSyntax;
4762
 
class ExtGnu;
 
4298
class WinAsm;
 
4299
class WinDeclSpecs;
 
4300
class WinMemberExplSpec;
 
4301
class WinTypeKeywords;
 
4302
class WinFriend;
4763
4303
class ExtAC;
4764
4304
class ExtACBuilderCoupling;
4765
4305
class ExtACSyntaxCoupling;
4766
4306
class ExtACTree;
4767
4307
class ExtACKeywords;
4768
 
class WinAsm;
4769
 
class WinDeclSpecs;
4770
 
class WinMemberExplSpec;
4771
 
class WinTypeKeywords;
 
4308
class ExtGnu;
4772
4309
class PragmaOnceUnitState;
4773
4310
class PragmaOnce;
4774
 
class CCExprResolve;
4775
 
class CExprResolve;
 
4311
class CMatchSyntax;
4776
4312
namespace Puma {
4777
4313
 
4778
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
 
4314
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
4779
4315
class Chain {
4780
 
#line 4781 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4316
#line 4317 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
4317
  friend class ::CCExprResolve;
 
4318
  friend class ::CExprResolve;
4781
4319
  friend class ::WinIfExists;
4782
4320
  friend class ::WinImportHandler;
4783
4321
  friend class ::WinMacros;
4784
 
  friend class ::CMatchSyntax;
4785
 
  friend class ::ExtGnu;
 
4322
  friend class ::WinAsm;
 
4323
  friend class ::WinDeclSpecs;
 
4324
  friend class ::WinMemberExplSpec;
 
4325
  friend class ::WinTypeKeywords;
 
4326
  friend class ::WinFriend;
4786
4327
  friend class ::ExtAC;
4787
4328
  friend class ::ExtACBuilderCoupling;
4788
4329
  friend class ::ExtACSyntaxCoupling;
4789
4330
  friend class ::ExtACTree;
4790
4331
  friend class ::ExtACKeywords;
4791
 
  friend class ::WinAsm;
4792
 
  friend class ::WinDeclSpecs;
4793
 
  friend class ::WinMemberExplSpec;
4794
 
  friend class ::WinTypeKeywords;
 
4332
  friend class ::ExtGnu;
4795
4333
  friend class ::PragmaOnceUnitState;
4796
4334
  friend class ::PragmaOnce;
4797
 
  friend class ::CCExprResolve;
4798
 
  friend class ::CExprResolve;
 
4335
  friend class ::CMatchSyntax;
4799
4336
 
4800
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
 
4337
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
4801
4338
 
4802
4339
  Chain *next;
4803
4340
 
4861
4398
 
4862
4399
#endif /* __Chain_h__ */
4863
4400
 
4864
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
4401
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
4865
4402
namespace Puma {
4866
4403
 
4867
4404
 
4868
4405
 
4869
 
#line 4870 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4406
#line 4407 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
4870
4407
} // closed Puma
 
4408
class CCExprResolve;
 
4409
class CExprResolve;
4871
4410
class WinIfExists;
4872
4411
class WinImportHandler;
4873
4412
class WinMacros;
4874
 
class CMatchSyntax;
4875
 
class ExtGnu;
 
4413
class WinAsm;
 
4414
class WinDeclSpecs;
 
4415
class WinMemberExplSpec;
 
4416
class WinTypeKeywords;
 
4417
class WinFriend;
4876
4418
class ExtAC;
4877
4419
class ExtACBuilderCoupling;
4878
4420
class ExtACSyntaxCoupling;
4879
4421
class ExtACTree;
4880
4422
class ExtACKeywords;
4881
 
class WinAsm;
4882
 
class WinDeclSpecs;
4883
 
class WinMemberExplSpec;
4884
 
class WinTypeKeywords;
 
4423
class ExtGnu;
4885
4424
class PragmaOnceUnitState;
4886
4425
class PragmaOnce;
4887
 
class CCExprResolve;
4888
 
class CExprResolve;
 
4426
class CMatchSyntax;
4889
4427
namespace Puma {
4890
4428
 
4891
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
4429
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
4892
4430
class StrHashKey : public Chain {
4893
 
#line 4894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4431
#line 4432 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
4432
  friend class ::CCExprResolve;
 
4433
  friend class ::CExprResolve;
4894
4434
  friend class ::WinIfExists;
4895
4435
  friend class ::WinImportHandler;
4896
4436
  friend class ::WinMacros;
4897
 
  friend class ::CMatchSyntax;
4898
 
  friend class ::ExtGnu;
 
4437
  friend class ::WinAsm;
 
4438
  friend class ::WinDeclSpecs;
 
4439
  friend class ::WinMemberExplSpec;
 
4440
  friend class ::WinTypeKeywords;
 
4441
  friend class ::WinFriend;
4899
4442
  friend class ::ExtAC;
4900
4443
  friend class ::ExtACBuilderCoupling;
4901
4444
  friend class ::ExtACSyntaxCoupling;
4902
4445
  friend class ::ExtACTree;
4903
4446
  friend class ::ExtACKeywords;
4904
 
  friend class ::WinAsm;
4905
 
  friend class ::WinDeclSpecs;
4906
 
  friend class ::WinMemberExplSpec;
4907
 
  friend class ::WinTypeKeywords;
 
4447
  friend class ::ExtGnu;
4908
4448
  friend class ::PragmaOnceUnitState;
4909
4449
  friend class ::PragmaOnce;
4910
 
  friend class ::CCExprResolve;
4911
 
  friend class ::CExprResolve;
 
4450
  friend class ::CMatchSyntax;
4912
4451
 
4913
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
4452
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
4914
4453
 
4915
4454
  unsigned int m_Magic;
4916
4455
  unsigned int m_Len;
4921
4460
public:
4922
4461
  StrHashKey (int m, const char *s, int l) : 
4923
4462
    m_Magic (m), m_Len (l), m_Str (StrCol::dup (s, l)) {}
 
4463
  ~StrHashKey () { if (m_Str) delete[] m_Str; }
4924
4464
 
4925
4465
  unsigned int getMagic () const { return m_Magic; }
4926
4466
  unsigned int length () const { return m_Len; }
4932
4472
 
4933
4473
#endif /* __StrHashKey_h__ */
4934
4474
 
4935
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
4475
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
4936
4476
#include <assert.h>
4937
4477
 
4938
4478
namespace Puma {
4939
4479
 
4940
4480
 
4941
4481
 
4942
 
#line 4943 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4482
#line 4483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
4943
4483
} // closed Puma
 
4484
class CCExprResolve;
 
4485
class CExprResolve;
4944
4486
class WinIfExists;
4945
4487
class WinImportHandler;
4946
4488
class WinMacros;
4947
 
class CMatchSyntax;
4948
 
class ExtGnu;
 
4489
class WinAsm;
 
4490
class WinDeclSpecs;
 
4491
class WinMemberExplSpec;
 
4492
class WinTypeKeywords;
 
4493
class WinFriend;
4949
4494
class ExtAC;
4950
4495
class ExtACBuilderCoupling;
4951
4496
class ExtACSyntaxCoupling;
4952
4497
class ExtACTree;
4953
4498
class ExtACKeywords;
4954
 
class WinAsm;
4955
 
class WinDeclSpecs;
4956
 
class WinMemberExplSpec;
4957
 
class WinTypeKeywords;
 
4499
class ExtGnu;
4958
4500
class PragmaOnceUnitState;
4959
4501
class PragmaOnce;
4960
 
class CCExprResolve;
4961
 
class CExprResolve;
 
4502
class CMatchSyntax;
4962
4503
namespace Puma {
4963
4504
 
4964
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
4505
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
4965
4506
class StrHashTable {
4966
 
#line 4967 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4507
#line 4508 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
4508
  friend class ::CCExprResolve;
 
4509
  friend class ::CExprResolve;
4967
4510
  friend class ::WinIfExists;
4968
4511
  friend class ::WinImportHandler;
4969
4512
  friend class ::WinMacros;
4970
 
  friend class ::CMatchSyntax;
4971
 
  friend class ::ExtGnu;
 
4513
  friend class ::WinAsm;
 
4514
  friend class ::WinDeclSpecs;
 
4515
  friend class ::WinMemberExplSpec;
 
4516
  friend class ::WinTypeKeywords;
 
4517
  friend class ::WinFriend;
4972
4518
  friend class ::ExtAC;
4973
4519
  friend class ::ExtACBuilderCoupling;
4974
4520
  friend class ::ExtACSyntaxCoupling;
4975
4521
  friend class ::ExtACTree;
4976
4522
  friend class ::ExtACKeywords;
4977
 
  friend class ::WinAsm;
4978
 
  friend class ::WinDeclSpecs;
4979
 
  friend class ::WinMemberExplSpec;
4980
 
  friend class ::WinTypeKeywords;
 
4523
  friend class ::ExtGnu;
4981
4524
  friend class ::PragmaOnceUnitState;
4982
4525
  friend class ::PragmaOnce;
4983
 
  friend class ::CCExprResolve;
4984
 
  friend class ::CExprResolve;
 
4526
  friend class ::CMatchSyntax;
4985
4527
 
4986
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
4528
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
4987
4529
 
4988
4530
  StrHashKey *_emptyKey;
4989
4531
 
4996
4538
  StrHashKey *empty () const { assert (_emptyKey); return _emptyKey; }
4997
4539
  StrHashKey *insert (const char *);
4998
4540
  void remove (StrHashKey *);
 
4541
  void clear ();
4999
4542
 
5000
4543
  enum { STRHASHTABLE_SIZE=0xffff };
5001
4544
  
5003
4546
  Chain m_Table[STRHASHTABLE_SIZE];
5004
4547
 
5005
4548
  StrHashKey *find (unsigned int, const char *, unsigned int);
5006
 
  unsigned int hash (const char *, unsigned int);
 
4549
  unsigned int hash (const char *, unsigned int &);
5007
4550
};
5008
4551
 
5009
4552
 
5011
4554
 
5012
4555
#endif /* __StrHashTable_h__ */
5013
4556
 
5014
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
4557
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
5015
4558
#include <assert.h>
5016
4559
 
5017
4560
namespace Puma {
5020
4563
extern StrHashTable ___str_dict;
5021
4564
 
5022
4565
 
5023
 
#line 5024 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4566
#line 4567 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
5024
4567
} // closed Puma
 
4568
class CCExprResolve;
 
4569
class CExprResolve;
5025
4570
class WinIfExists;
5026
4571
class WinImportHandler;
5027
4572
class WinMacros;
5028
 
class CMatchSyntax;
5029
 
class ExtGnu;
 
4573
class WinAsm;
 
4574
class WinDeclSpecs;
 
4575
class WinMemberExplSpec;
 
4576
class WinTypeKeywords;
 
4577
class WinFriend;
5030
4578
class ExtAC;
5031
4579
class ExtACBuilderCoupling;
5032
4580
class ExtACSyntaxCoupling;
5033
4581
class ExtACTree;
5034
4582
class ExtACKeywords;
5035
 
class WinAsm;
5036
 
class WinDeclSpecs;
5037
 
class WinMemberExplSpec;
5038
 
class WinTypeKeywords;
 
4583
class ExtGnu;
5039
4584
class PragmaOnceUnitState;
5040
4585
class PragmaOnce;
5041
 
class CCExprResolve;
5042
 
class CExprResolve;
 
4586
class CMatchSyntax;
5043
4587
namespace Puma {
5044
4588
 
5045
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
4589
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
5046
4590
class DString {
5047
 
#line 5048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4591
#line 4592 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
4592
  friend class ::CCExprResolve;
 
4593
  friend class ::CExprResolve;
5048
4594
  friend class ::WinIfExists;
5049
4595
  friend class ::WinImportHandler;
5050
4596
  friend class ::WinMacros;
5051
 
  friend class ::CMatchSyntax;
5052
 
  friend class ::ExtGnu;
 
4597
  friend class ::WinAsm;
 
4598
  friend class ::WinDeclSpecs;
 
4599
  friend class ::WinMemberExplSpec;
 
4600
  friend class ::WinTypeKeywords;
 
4601
  friend class ::WinFriend;
5053
4602
  friend class ::ExtAC;
5054
4603
  friend class ::ExtACBuilderCoupling;
5055
4604
  friend class ::ExtACSyntaxCoupling;
5056
4605
  friend class ::ExtACTree;
5057
4606
  friend class ::ExtACKeywords;
5058
 
  friend class ::WinAsm;
5059
 
  friend class ::WinDeclSpecs;
5060
 
  friend class ::WinMemberExplSpec;
5061
 
  friend class ::WinTypeKeywords;
 
4607
  friend class ::ExtGnu;
5062
4608
  friend class ::PragmaOnceUnitState;
5063
4609
  friend class ::PragmaOnce;
5064
 
  friend class ::CCExprResolve;
5065
 
  friend class ::CExprResolve;
 
4610
  friend class ::CMatchSyntax;
5066
4611
 
5067
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
4612
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
5068
4613
 
5069
4614
  StrHashKey *m_Key;
5070
4615
 
5131
4676
    assert (m_Key);
5132
4677
    return c_str ();
5133
4678
  }
 
4679
  
 
4680
  static void clearDict() {
 
4681
    ___str_dict.clear ();
 
4682
  }
5134
4683
};
5135
4684
 
5136
4685
 
5138
4687
 
5139
4688
#endif /* __DString_h__ */
5140
4689
 
5141
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
4690
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
5142
4691
namespace Puma {
5143
4692
 
5144
4693
 
5145
4694
 
5146
 
#line 5147 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4695
#line 4696 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
5147
4696
} // closed Puma
 
4697
class CCExprResolve;
 
4698
class CExprResolve;
5148
4699
class WinIfExists;
5149
4700
class WinImportHandler;
5150
4701
class WinMacros;
5151
 
class CMatchSyntax;
5152
 
class ExtGnu;
 
4702
class WinAsm;
 
4703
class WinDeclSpecs;
 
4704
class WinMemberExplSpec;
 
4705
class WinTypeKeywords;
 
4706
class WinFriend;
5153
4707
class ExtAC;
5154
4708
class ExtACBuilderCoupling;
5155
4709
class ExtACSyntaxCoupling;
5156
4710
class ExtACTree;
5157
4711
class ExtACKeywords;
5158
 
class WinAsm;
5159
 
class WinDeclSpecs;
5160
 
class WinMemberExplSpec;
5161
 
class WinTypeKeywords;
 
4712
class ExtGnu;
5162
4713
class PragmaOnceUnitState;
5163
4714
class PragmaOnce;
5164
 
class CCExprResolve;
5165
 
class CExprResolve;
 
4715
class CMatchSyntax;
5166
4716
namespace Puma {
5167
4717
 
5168
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
4718
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
5169
4719
class FilenameInfo : public RefCnt {
5170
 
#line 5171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4720
#line 4721 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
4721
  friend class ::CCExprResolve;
 
4722
  friend class ::CExprResolve;
5171
4723
  friend class ::WinIfExists;
5172
4724
  friend class ::WinImportHandler;
5173
4725
  friend class ::WinMacros;
5174
 
  friend class ::CMatchSyntax;
5175
 
  friend class ::ExtGnu;
 
4726
  friend class ::WinAsm;
 
4727
  friend class ::WinDeclSpecs;
 
4728
  friend class ::WinMemberExplSpec;
 
4729
  friend class ::WinTypeKeywords;
 
4730
  friend class ::WinFriend;
5176
4731
  friend class ::ExtAC;
5177
4732
  friend class ::ExtACBuilderCoupling;
5178
4733
  friend class ::ExtACSyntaxCoupling;
5179
4734
  friend class ::ExtACTree;
5180
4735
  friend class ::ExtACKeywords;
5181
 
  friend class ::WinAsm;
5182
 
  friend class ::WinDeclSpecs;
5183
 
  friend class ::WinMemberExplSpec;
5184
 
  friend class ::WinTypeKeywords;
 
4736
  friend class ::ExtGnu;
5185
4737
  friend class ::PragmaOnceUnitState;
5186
4738
  friend class ::PragmaOnce;
5187
 
  friend class ::CCExprResolve;
5188
 
  friend class ::CExprResolve;
 
4739
  friend class ::CMatchSyntax;
5189
4740
 
5190
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
4741
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
5191
4742
 
5192
4743
  DString _name;
5193
4744
  const char *_path;
5197
4748
  FilenameInfo () : _path ((const char*)0), _root ((const char*)0) {}
5198
4749
  ~FilenameInfo ();
5199
4750
  void name (const char *n);
5200
 
  void name (const DString &dsn) { _name = dsn; }
 
4751
//  void name (const DString &dsn) { _name = dsn; }
5201
4752
  const char *name () const { return _name.c_str (); }
5202
4753
  const char *path ();
5203
4754
  const char *root ();
5212
4763
 
5213
4764
#endif /* __filename_info_h__ */
5214
4765
 
5215
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
 
4766
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
5216
4767
namespace Puma {
5217
4768
 
5218
4769
 
5219
4770
 
5220
 
#line 5221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4771
#line 4772 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
5221
4772
} // closed Puma
 
4773
class CCExprResolve;
 
4774
class CExprResolve;
5222
4775
class WinIfExists;
5223
4776
class WinImportHandler;
5224
4777
class WinMacros;
5225
 
class CMatchSyntax;
5226
 
class ExtGnu;
 
4778
class WinAsm;
 
4779
class WinDeclSpecs;
 
4780
class WinMemberExplSpec;
 
4781
class WinTypeKeywords;
 
4782
class WinFriend;
5227
4783
class ExtAC;
5228
4784
class ExtACBuilderCoupling;
5229
4785
class ExtACSyntaxCoupling;
5230
4786
class ExtACTree;
5231
4787
class ExtACKeywords;
5232
 
class WinAsm;
5233
 
class WinDeclSpecs;
5234
 
class WinMemberExplSpec;
5235
 
class WinTypeKeywords;
 
4788
class ExtGnu;
5236
4789
class PragmaOnceUnitState;
5237
4790
class PragmaOnce;
5238
 
class CCExprResolve;
5239
 
class CExprResolve;
 
4791
class CMatchSyntax;
5240
4792
namespace Puma {
5241
4793
 
5242
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
 
4794
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
5243
4795
class Filename : public SmartPtr, public Printable {
5244
 
#line 5245 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4796
#line 4797 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
4797
  friend class ::CCExprResolve;
 
4798
  friend class ::CExprResolve;
5245
4799
  friend class ::WinIfExists;
5246
4800
  friend class ::WinImportHandler;
5247
4801
  friend class ::WinMacros;
5248
 
  friend class ::CMatchSyntax;
5249
 
  friend class ::ExtGnu;
 
4802
  friend class ::WinAsm;
 
4803
  friend class ::WinDeclSpecs;
 
4804
  friend class ::WinMemberExplSpec;
 
4805
  friend class ::WinTypeKeywords;
 
4806
  friend class ::WinFriend;
5250
4807
  friend class ::ExtAC;
5251
4808
  friend class ::ExtACBuilderCoupling;
5252
4809
  friend class ::ExtACSyntaxCoupling;
5253
4810
  friend class ::ExtACTree;
5254
4811
  friend class ::ExtACKeywords;
5255
 
  friend class ::WinAsm;
5256
 
  friend class ::WinDeclSpecs;
5257
 
  friend class ::WinMemberExplSpec;
5258
 
  friend class ::WinTypeKeywords;
 
4812
  friend class ::ExtGnu;
5259
4813
  friend class ::PragmaOnceUnitState;
5260
4814
  friend class ::PragmaOnce;
5261
 
  friend class ::CCExprResolve;
5262
 
  friend class ::CExprResolve;
 
4815
  friend class ::CMatchSyntax;
5263
4816
 
5264
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
 
4817
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
5265
4818
 
5266
4819
  FilenameInfo *info () const { return (FilenameInfo*)data (); }
5267
4820
 
5269
4822
  Filename () {}
5270
4823
  Filename (const char *n) { name (n); }
5271
4824
  Filename &operator = (const char *n) { name (n); return *this; }
 
4825
  bool operator ~ () const { return info () != 0; }
5272
4826
  void name (const char *n);
5273
4827
  const char *name () const;
5274
4828
  const char *path () const;
5284
4838
 
5285
4839
#endif /* __filename_h__ */
5286
4840
 
5287
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
 
4841
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
5288
4842
namespace Puma {
5289
4843
 
5290
4844
 
5291
4845
 
5292
 
#line 5293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4846
#line 4847 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
5293
4847
} // closed Puma
 
4848
class CCExprResolve;
 
4849
class CExprResolve;
5294
4850
class WinIfExists;
5295
4851
class WinImportHandler;
5296
4852
class WinMacros;
5297
 
class CMatchSyntax;
5298
 
class ExtGnu;
 
4853
class WinAsm;
 
4854
class WinDeclSpecs;
 
4855
class WinMemberExplSpec;
 
4856
class WinTypeKeywords;
 
4857
class WinFriend;
5299
4858
class ExtAC;
5300
4859
class ExtACBuilderCoupling;
5301
4860
class ExtACSyntaxCoupling;
5302
4861
class ExtACTree;
5303
4862
class ExtACKeywords;
5304
 
class WinAsm;
5305
 
class WinDeclSpecs;
5306
 
class WinMemberExplSpec;
5307
 
class WinTypeKeywords;
 
4863
class ExtGnu;
5308
4864
class PragmaOnceUnitState;
5309
4865
class PragmaOnce;
5310
 
class CCExprResolve;
5311
 
class CExprResolve;
 
4866
class CMatchSyntax;
5312
4867
namespace Puma {
5313
4868
 
5314
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
5315
 
class LocationInfo : public RefCnt {
5316
 
#line 5317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4869
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
 
4870
class Location {
 
4871
#line 4872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
4872
  friend class ::CCExprResolve;
 
4873
  friend class ::CExprResolve;
5317
4874
  friend class ::WinIfExists;
5318
4875
  friend class ::WinImportHandler;
5319
4876
  friend class ::WinMacros;
5320
 
  friend class ::CMatchSyntax;
5321
 
  friend class ::ExtGnu;
 
4877
  friend class ::WinAsm;
 
4878
  friend class ::WinDeclSpecs;
 
4879
  friend class ::WinMemberExplSpec;
 
4880
  friend class ::WinTypeKeywords;
 
4881
  friend class ::WinFriend;
5322
4882
  friend class ::ExtAC;
5323
4883
  friend class ::ExtACBuilderCoupling;
5324
4884
  friend class ::ExtACSyntaxCoupling;
5325
4885
  friend class ::ExtACTree;
5326
4886
  friend class ::ExtACKeywords;
5327
 
  friend class ::WinAsm;
5328
 
  friend class ::WinDeclSpecs;
5329
 
  friend class ::WinMemberExplSpec;
5330
 
  friend class ::WinTypeKeywords;
 
4887
  friend class ::ExtGnu;
5331
4888
  friend class ::PragmaOnceUnitState;
5332
4889
  friend class ::PragmaOnce;
5333
 
  friend class ::CCExprResolve;
5334
 
  friend class ::CExprResolve;
 
4890
  friend class ::CMatchSyntax;
5335
4891
 
5336
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
 
4892
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
5337
4893
 
5338
4894
  Filename _filename;
5339
4895
  int _line;
 
4896
  int _column;
5340
4897
 
5341
4898
public:
5342
 
  LocationInfo () : _filename (), _line (0) {}
5343
 
  void setup (Filename f, int l);
 
4899
  Location () : _filename (), _line (0), _column (0) {}
 
4900
  Location (Filename f, int l, int c = 0) { setup (f, l, c); }
 
4901
  void setup (Filename f, int l, int c = 0) {
 
4902
    _filename = f;
 
4903
    _line     = l;
 
4904
    _column   = c;
 
4905
  }
5344
4906
  const Filename &filename () const { return _filename; }
5345
4907
  int line () const { return _line; }
5346
 
  bool operator < (const LocationInfo &l) const;
5347
 
  bool operator == (const LocationInfo &l) const;
5348
 
};
5349
 
 
5350
 
 
5351
 
} // namespace Puma
5352
 
 
5353
 
#endif /* __location_info_h__ */
5354
 
 
5355
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
5356
 
namespace Puma {
5357
 
 
5358
 
 
5359
 
 
5360
 
#line 5361 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
5361
 
} // closed Puma
5362
 
class WinIfExists;
5363
 
class WinImportHandler;
5364
 
class WinMacros;
5365
 
class CMatchSyntax;
5366
 
class ExtGnu;
5367
 
class ExtAC;
5368
 
class ExtACBuilderCoupling;
5369
 
class ExtACSyntaxCoupling;
5370
 
class ExtACTree;
5371
 
class ExtACKeywords;
5372
 
class WinAsm;
5373
 
class WinDeclSpecs;
5374
 
class WinMemberExplSpec;
5375
 
class WinTypeKeywords;
5376
 
class PragmaOnceUnitState;
5377
 
class PragmaOnce;
5378
 
class CCExprResolve;
5379
 
class CExprResolve;
5380
 
namespace Puma {
5381
 
 
5382
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
5383
 
class Location : public SmartPtr, public Printable {
5384
 
#line 5385 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
5385
 
  friend class ::WinIfExists;
5386
 
  friend class ::WinImportHandler;
5387
 
  friend class ::WinMacros;
5388
 
  friend class ::CMatchSyntax;
5389
 
  friend class ::ExtGnu;
5390
 
  friend class ::ExtAC;
5391
 
  friend class ::ExtACBuilderCoupling;
5392
 
  friend class ::ExtACSyntaxCoupling;
5393
 
  friend class ::ExtACTree;
5394
 
  friend class ::ExtACKeywords;
5395
 
  friend class ::WinAsm;
5396
 
  friend class ::WinDeclSpecs;
5397
 
  friend class ::WinMemberExplSpec;
5398
 
  friend class ::WinTypeKeywords;
5399
 
  friend class ::PragmaOnceUnitState;
5400
 
  friend class ::PragmaOnce;
5401
 
  friend class ::CCExprResolve;
5402
 
  friend class ::CExprResolve;
5403
 
 
5404
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
5405
 
 
5406
 
  LocationInfo *info () const { return (LocationInfo*)data (); }
5407
 
 
5408
 
public:
5409
 
  Location () {}
5410
 
  Location (Filename f, int l) { setup (f, l); }
5411
 
  Location (LocationInfo *lptr) : SmartPtr (lptr) {}
5412
 
  LocationInfo *operator ~ () { if (info ()) info ()->ref (); return info (); }
5413
 
  void setup (Filename f, int l);
5414
 
  const Filename &filename () const   { return info ()->filename (); }
5415
 
  int line () const;
5416
 
  bool operator == (const Location &l) const;
 
4908
  int column () const { return _column; }
 
4909
  bool operator == (const Location &l) const {
 
4910
    return filename () == l.filename () && line () == l.line () &&
 
4911
      column () == l.column ();
 
4912
  }
5417
4913
  bool operator != (const Location &l) const { return ! (*this == l); }
5418
 
  bool operator < (const Location &l) const;
 
4914
  bool operator < (const Location &l) const {
 
4915
    // TODO: does it make sense to compare the filenames? better assert?
 
4916
    if (filename () != l.filename ())
 
4917
      return false;
 
4918
    return line () < l.line () && column () < l.column ();
 
4919
  }
 
4920
};
5419
4921
 
5420
 
  virtual void print (ostream &os) const {
5421
 
    if (info ())
 
4922
inline std::ostream &operator << (std::ostream &os, const Location &loc) {
5422
4923
#ifdef VISUAL_STUDIO
5423
 
      os << filename () << "(" << line () << ")";
 
4924
  os << loc.filename () << "(" << loc.line () << ")";
5424
4925
#else
5425
 
      os << filename () << ":" << line ();
 
4926
  os << loc.filename () << ":" << loc.line ();
5426
4927
#endif
5427
 
  }
5428
 
};
5429
 
 
5430
 
 
 
4928
  return os;  
 
4929
}
5431
4930
} // namespace Puma
5432
4931
 
5433
4932
#endif /* __location_h__ */
5434
4933
 
5435
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
4934
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
5436
4935
// This file is part of PUMA.
5437
4936
// Copyright (C) 1999-2003  The PUMA developer team.
5438
4937
//                                                                
5467
4966
class List;
5468
4967
 
5469
4968
 
5470
 
#line 5471 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4969
#line 4970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
5471
4970
} // closed Puma
 
4971
class CCExprResolve;
 
4972
class CExprResolve;
5472
4973
class WinIfExists;
5473
4974
class WinImportHandler;
5474
4975
class WinMacros;
5475
 
class CMatchSyntax;
5476
 
class ExtGnu;
 
4976
class WinAsm;
 
4977
class WinDeclSpecs;
 
4978
class WinMemberExplSpec;
 
4979
class WinTypeKeywords;
 
4980
class WinFriend;
5477
4981
class ExtAC;
5478
4982
class ExtACBuilderCoupling;
5479
4983
class ExtACSyntaxCoupling;
5480
4984
class ExtACTree;
5481
4985
class ExtACKeywords;
5482
 
class WinAsm;
5483
 
class WinDeclSpecs;
5484
 
class WinMemberExplSpec;
5485
 
class WinTypeKeywords;
 
4986
class ExtGnu;
5486
4987
class PragmaOnceUnitState;
5487
4988
class PragmaOnce;
5488
 
class CCExprResolve;
5489
 
class CExprResolve;
 
4989
class CMatchSyntax;
5490
4990
namespace Puma {
5491
4991
 
5492
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
4992
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
5493
4993
class ListElement {
5494
 
#line 5495 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
4994
#line 4995 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
4995
  friend class ::CCExprResolve;
 
4996
  friend class ::CExprResolve;
5495
4997
  friend class ::WinIfExists;
5496
4998
  friend class ::WinImportHandler;
5497
4999
  friend class ::WinMacros;
5498
 
  friend class ::CMatchSyntax;
5499
 
  friend class ::ExtGnu;
 
5000
  friend class ::WinAsm;
 
5001
  friend class ::WinDeclSpecs;
 
5002
  friend class ::WinMemberExplSpec;
 
5003
  friend class ::WinTypeKeywords;
 
5004
  friend class ::WinFriend;
5500
5005
  friend class ::ExtAC;
5501
5006
  friend class ::ExtACBuilderCoupling;
5502
5007
  friend class ::ExtACSyntaxCoupling;
5503
5008
  friend class ::ExtACTree;
5504
5009
  friend class ::ExtACKeywords;
5505
 
  friend class ::WinAsm;
5506
 
  friend class ::WinDeclSpecs;
5507
 
  friend class ::WinMemberExplSpec;
5508
 
  friend class ::WinTypeKeywords;
 
5010
  friend class ::ExtGnu;
5509
5011
  friend class ::PragmaOnceUnitState;
5510
5012
  friend class ::PragmaOnce;
5511
 
  friend class ::CCExprResolve;
5512
 
  friend class ::CExprResolve;
 
5013
  friend class ::CMatchSyntax;
5513
5014
 
5514
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
5015
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
5515
5016
 
5516
5017
  friend class List;
5517
5018
 
5532
5033
 
5533
5034
#endif /* __list_element_h__ */
5534
5035
 
5535
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
5036
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
5536
5037
#include <assert.h>
5537
5038
 
5538
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
5039
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
5539
5040
namespace Puma {
5540
5041
 
5541
5042
 
5542
5043
 
5543
 
#line 5544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
5044
#line 5045 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
5544
5045
} // closed Puma
 
5046
class CCExprResolve;
 
5047
class CExprResolve;
5545
5048
class WinIfExists;
5546
5049
class WinImportHandler;
5547
5050
class WinMacros;
5548
 
class CMatchSyntax;
5549
 
class ExtGnu;
 
5051
class WinAsm;
 
5052
class WinDeclSpecs;
 
5053
class WinMemberExplSpec;
 
5054
class WinTypeKeywords;
 
5055
class WinFriend;
5550
5056
class ExtAC;
5551
5057
class ExtACBuilderCoupling;
5552
5058
class ExtACSyntaxCoupling;
5553
5059
class ExtACTree;
5554
5060
class ExtACKeywords;
5555
 
class WinAsm;
5556
 
class WinDeclSpecs;
5557
 
class WinMemberExplSpec;
5558
 
class WinTypeKeywords;
 
5061
class ExtGnu;
5559
5062
class PragmaOnceUnitState;
5560
5063
class PragmaOnce;
5561
 
class CCExprResolve;
5562
 
class CExprResolve;
 
5064
class CMatchSyntax;
5563
5065
namespace Puma {
5564
5066
 
5565
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
5067
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
5566
5068
class Token : public ListElement {
5567
 
#line 5568 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
5069
#line 5070 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5070
  friend class ::CCExprResolve;
 
5071
  friend class ::CExprResolve;
5568
5072
  friend class ::WinIfExists;
5569
5073
  friend class ::WinImportHandler;
5570
5074
  friend class ::WinMacros;
5571
 
  friend class ::CMatchSyntax;
5572
 
  friend class ::ExtGnu;
 
5075
  friend class ::WinAsm;
 
5076
  friend class ::WinDeclSpecs;
 
5077
  friend class ::WinMemberExplSpec;
 
5078
  friend class ::WinTypeKeywords;
 
5079
  friend class ::WinFriend;
5573
5080
  friend class ::ExtAC;
5574
5081
  friend class ::ExtACBuilderCoupling;
5575
5082
  friend class ::ExtACSyntaxCoupling;
5576
5083
  friend class ::ExtACTree;
5577
5084
  friend class ::ExtACKeywords;
5578
 
  friend class ::WinAsm;
5579
 
  friend class ::WinDeclSpecs;
5580
 
  friend class ::WinMemberExplSpec;
5581
 
  friend class ::WinTypeKeywords;
 
5085
  friend class ::ExtGnu;
5582
5086
  friend class ::PragmaOnceUnitState;
5583
5087
  friend class ::PragmaOnce;
5584
 
  friend class ::CCExprResolve;
5585
 
  friend class ::CExprResolve;
 
5088
  friend class ::CMatchSyntax;
5586
5089
 
5587
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
5090
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
5588
5091
 
5589
5092
  int _type, _real_type;
5590
5093
 
5591
5094
  Location _location;
5592
5095
  LanguageID _language;
5593
 
  DString _text;
 
5096
  const char *_text;
 
5097
  mutable DString _dtext;
5594
5098
 
5595
5099
  Array<int> *_cont_lines;
5596
5100
   
5631
5135
  void macro_generated ()           { _flags |= TK_MACRO_GENERATED; }
5632
5136
  void macro_call ()                { _flags |= TK_MACRO_CALL; }
5633
5137
  
5634
 
  const DString &text () const     { return _text; }
 
5138
  const char *text () const;
 
5139
  DString &dtext () const;
5635
5140
  char *get_static_text () const;
5636
5141
  int type () const                 { return _type; }
5637
5142
  const Location &location () const { return _location; }
5708
5213
 
5709
5214
#endif /* __Token_h__ */
5710
5215
 
5711
 
#line 167 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5712
 
using namespace std;
5713
 
 
5714
 
namespace Puma {
5715
 
 
5716
 
 
5717
 
class ErrorStream;
5718
 
class CObjectInfo;
5719
 
class CStructure;
5720
 
 
5721
 
/*****************************************************************************/
5722
 
/*                                                                           */
5723
 
/*                    S y n t a x  t r e e  n o d e s                        */
5724
 
/*                                                                           */
5725
 
/*****************************************************************************/
5726
 
 
5727
 
 
5728
 
#line 5729 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
5729
 
} // closed Puma
5730
 
class WinIfExists;
5731
 
class WinImportHandler;
5732
 
class WinMacros;
5733
 
class CMatchSyntax;
5734
 
class ExtGnu;
5735
 
class ExtAC;
5736
 
class ExtACBuilderCoupling;
5737
 
class ExtACSyntaxCoupling;
5738
 
class ExtACTree;
5739
 
class ExtACKeywords;
5740
 
class WinAsm;
5741
 
class WinDeclSpecs;
5742
 
class WinMemberExplSpec;
5743
 
class WinTypeKeywords;
5744
 
class PragmaOnceUnitState;
5745
 
class PragmaOnce;
5746
 
class CCExprResolve;
5747
 
class CExprResolve;
5748
 
namespace Puma {
5749
 
 
5750
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5751
 
class CTree {
5752
 
#line 5753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
5753
 
  friend class ::WinIfExists;
5754
 
  friend class ::WinImportHandler;
5755
 
  friend class ::WinMacros;
5756
 
  friend class ::CMatchSyntax;
5757
 
  friend class ::ExtGnu;
5758
 
  friend class ::ExtAC;
5759
 
  friend class ::ExtACBuilderCoupling;
5760
 
  friend class ::ExtACSyntaxCoupling;
5761
 
  friend class ::ExtACTree;
5762
 
  friend class ::ExtACKeywords;
5763
 
  friend class ::WinAsm;
5764
 
  friend class ::WinDeclSpecs;
5765
 
  friend class ::WinMemberExplSpec;
5766
 
  friend class ::WinTypeKeywords;
5767
 
  friend class ::PragmaOnceUnitState;
5768
 
  friend class ::PragmaOnce;
5769
 
  friend class ::CCExprResolve;
5770
 
  friend class ::CExprResolve;
5771
 
 
5772
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5773
 
 
5774
 
public:
5775
 
  /*DEBUG*/static int alloc;
5776
 
  /*DEBUG*/static int release;
5777
 
 
5778
 
protected:
5779
 
  CTree *Son (CTree * const *, int, int) const;
5780
 
  int Sons (CTree * const *, int) const;
5781
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
5782
 
  
5783
 
protected:
5784
 
  CTree () { /*DEBUG*/alloc++; }
5785
 
 
5786
 
public:
5787
 
  virtual ~CTree () { /*DEBUG*/release++; }
5788
 
  virtual int Sons () const = 0;
5789
 
  virtual CTree *Son (int n) const { return (CTree*)0; }
5790
 
  virtual const char *NodeName () const = 0;
5791
 
  virtual Token *token () const;
5792
 
  virtual Token *end_token () const;
5793
 
  virtual CT_Token *token_node () const;
5794
 
  virtual CT_Token *end_token_node () const;
5795
 
  virtual void ReplaceSon (CTree *, CTree *) {}
5796
 
 
5797
 
public: // semantic information
5798
 
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
5799
 
  virtual CExprValue *Value () const { return (CExprValue*)0; }
5800
 
  
5801
 
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
5802
 
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
5803
 
  
5804
 
public: // node classification function
5805
 
  virtual CT_SimpleName *IsSimpleName () { return 0; }
5806
 
  virtual CT_Declarator *IsDeclarator () { return 0; }
5807
 
   private:
5808
 
  typedef CTree CCExprResolveCTree;
5809
 
 
5810
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
5811
 
 public :
5812
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
5813
 
  typedef CTree CExprResolveCTree;
5814
 
 
5815
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
5816
 
 public :
5817
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
5818
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5819
 
};
5820
 
 
5821
 
 
5822
 
#line 5823 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
5823
 
} // closed Puma
5824
 
class WinIfExists;
5825
 
class WinImportHandler;
5826
 
class WinMacros;
5827
 
class CMatchSyntax;
5828
 
class ExtGnu;
5829
 
class ExtAC;
5830
 
class ExtACBuilderCoupling;
5831
 
class ExtACSyntaxCoupling;
5832
 
class ExtACTree;
5833
 
class ExtACKeywords;
5834
 
class WinAsm;
5835
 
class WinDeclSpecs;
5836
 
class WinMemberExplSpec;
5837
 
class WinTypeKeywords;
5838
 
class PragmaOnceUnitState;
5839
 
class PragmaOnce;
5840
 
class CCExprResolve;
5841
 
class CExprResolve;
5842
 
namespace Puma {
5843
 
 
5844
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5845
 
class CT_Error : public CTree {
5846
 
#line 5847 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
5847
 
  friend class ::WinIfExists;
5848
 
  friend class ::WinImportHandler;
5849
 
  friend class ::WinMacros;
5850
 
  friend class ::CMatchSyntax;
5851
 
  friend class ::ExtGnu;
5852
 
  friend class ::ExtAC;
5853
 
  friend class ::ExtACBuilderCoupling;
5854
 
  friend class ::ExtACSyntaxCoupling;
5855
 
  friend class ::ExtACTree;
5856
 
  friend class ::ExtACKeywords;
5857
 
  friend class ::WinAsm;
5858
 
  friend class ::WinDeclSpecs;
5859
 
  friend class ::WinMemberExplSpec;
5860
 
  friend class ::WinTypeKeywords;
5861
 
  friend class ::PragmaOnceUnitState;
5862
 
  friend class ::PragmaOnce;
5863
 
  friend class ::CCExprResolve;
5864
 
  friend class ::CExprResolve;
5865
 
 
5866
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5867
 
 
5868
 
public:
5869
 
  static const char *NodeId ();
5870
 
  const char *NodeName () const { return NodeId (); }
5871
 
  int Sons () const { return 0; }
5872
 
};
5873
 
 
5874
 
 
5875
 
#line 5876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
5876
 
} // closed Puma
5877
 
class WinIfExists;
5878
 
class WinImportHandler;
5879
 
class WinMacros;
5880
 
class CMatchSyntax;
5881
 
class ExtGnu;
5882
 
class ExtAC;
5883
 
class ExtACBuilderCoupling;
5884
 
class ExtACSyntaxCoupling;
5885
 
class ExtACTree;
5886
 
class ExtACKeywords;
5887
 
class WinAsm;
5888
 
class WinDeclSpecs;
5889
 
class WinMemberExplSpec;
5890
 
class WinTypeKeywords;
5891
 
class PragmaOnceUnitState;
5892
 
class PragmaOnce;
5893
 
class CCExprResolve;
5894
 
class CExprResolve;
5895
 
namespace Puma {
5896
 
 
5897
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5898
 
class CT_Token : public CTree {
5899
 
#line 5900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
5900
 
  friend class ::WinIfExists;
5901
 
  friend class ::WinImportHandler;
5902
 
  friend class ::WinMacros;
5903
 
  friend class ::CMatchSyntax;
5904
 
  friend class ::ExtGnu;
5905
 
  friend class ::ExtAC;
5906
 
  friend class ::ExtACBuilderCoupling;
5907
 
  friend class ::ExtACSyntaxCoupling;
5908
 
  friend class ::ExtACTree;
5909
 
  friend class ::ExtACKeywords;
5910
 
  friend class ::WinAsm;
5911
 
  friend class ::WinDeclSpecs;
5912
 
  friend class ::WinMemberExplSpec;
5913
 
  friend class ::WinTypeKeywords;
5914
 
  friend class ::PragmaOnceUnitState;
5915
 
  friend class ::PragmaOnce;
5916
 
  friend class ::CCExprResolve;
5917
 
  friend class ::CExprResolve;
5918
 
 
5919
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5920
 
 
5921
 
  Token *_token;
5922
 
  unsigned long int _number;
5923
 
  
5924
 
public:
5925
 
  CT_Token (Token *t, unsigned long int n = 0) : 
5926
 
    _token (t), _number (n) {}
5927
 
  static const char *NodeId ();
5928
 
  const char *NodeName () const { return NodeId (); }
5929
 
  int Sons () const { return 0; }
5930
 
  Token *token () const { return _token; }
5931
 
  Token *end_token () const { return _token; }
5932
 
  CT_Token *token_node () const { return (CT_Token*)this; }
5933
 
  CT_Token *end_token_node () const { return (CT_Token*)this; }
5934
 
  void Number (unsigned long int n) { _number = n; }
5935
 
  unsigned long int Number () const { return _number; }
5936
 
  // special new / delete with reusing memory
5937
 
  void *operator new (size_t);
5938
 
  void  operator delete (void *);
5939
 
};
5940
 
 
5941
 
/*****************************************************************************/
5942
 
/*                                                                           */
5943
 
/*                              List nodes                                   */
5944
 
/*                                                                           */
5945
 
/*****************************************************************************/
5946
 
 
5947
 
 
5948
 
#line 5949 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
5949
 
} // closed Puma
5950
 
class WinIfExists;
5951
 
class WinImportHandler;
5952
 
class WinMacros;
5953
 
class CMatchSyntax;
5954
 
class ExtGnu;
5955
 
class ExtAC;
5956
 
class ExtACBuilderCoupling;
5957
 
class ExtACSyntaxCoupling;
5958
 
class ExtACTree;
5959
 
class ExtACKeywords;
5960
 
class WinAsm;
5961
 
class WinDeclSpecs;
5962
 
class WinMemberExplSpec;
5963
 
class WinTypeKeywords;
5964
 
class PragmaOnceUnitState;
5965
 
class PragmaOnce;
5966
 
class CCExprResolve;
5967
 
class CExprResolve;
5968
 
namespace Puma {
5969
 
 
5970
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5971
 
class CT_List : public CTree {
5972
 
#line 5973 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
5973
 
  friend class ::WinIfExists;
5974
 
  friend class ::WinImportHandler;
5975
 
  friend class ::WinMacros;
5976
 
  friend class ::CMatchSyntax;
5977
 
  friend class ::ExtGnu;
5978
 
  friend class ::ExtAC;
5979
 
  friend class ::ExtACBuilderCoupling;
5980
 
  friend class ::ExtACSyntaxCoupling;
5981
 
  friend class ::ExtACTree;
5982
 
  friend class ::ExtACKeywords;
5983
 
  friend class ::WinAsm;
5984
 
  friend class ::WinDeclSpecs;
5985
 
  friend class ::WinMemberExplSpec;
5986
 
  friend class ::WinTypeKeywords;
5987
 
  friend class ::PragmaOnceUnitState;
5988
 
  friend class ::PragmaOnce;
5989
 
  friend class ::CCExprResolve;
5990
 
  friend class ::CExprResolve;
5991
 
 
5992
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5993
 
 
5994
 
  Array<CTree*> _sons;
5995
 
  int _properties;
5996
 
 
5997
 
protected:
5998
 
  CT_List(int size = 5, int incr = 5, int props = 0) : 
5999
 
    _sons (size, incr), _properties (props) {}
6000
 
 
6001
 
public:
6002
 
  enum {
6003
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
6004
 
    CLOSE = 2,
6005
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
6006
 
    SEPARATORS = 4,   // the list has separators like ','
6007
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
6008
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
6009
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
6010
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
6011
 
  };
6012
 
 
6013
 
  int Entries () const;
6014
 
  CTree *Entry (int no) const;
6015
 
  int Sons () const { return _sons.length (); }
6016
 
  CTree *Son (int n) const { return _sons.lookup (n); }
6017
 
  int GetProperties () const { return _properties; }
6018
 
  void AddProperties (int p) { _properties |= p; }
6019
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
6020
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
6021
 
  void InsertSon (CTree *, CTree *);  // before given son
6022
 
  void ReplaceSon (CTree *, CTree *);
6023
 
  void RemoveSon (CTree *);
6024
 
  void InsertSon (int idx, CTree *s)
6025
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
6026
 
  void ReplaceSon (int idx, CTree *s) 
6027
 
   { if (idx < Sons ()) _sons[idx] = s; }
6028
 
  void RemoveSon (int idx) 
6029
 
   { if (idx < Sons ()) _sons.remove (idx); }
6030
 
};
6031
 
 
6032
 
 
6033
 
#line 6034 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6034
 
} // closed Puma
6035
 
class WinIfExists;
6036
 
class WinImportHandler;
6037
 
class WinMacros;
6038
 
class CMatchSyntax;
6039
 
class ExtGnu;
6040
 
class ExtAC;
6041
 
class ExtACBuilderCoupling;
6042
 
class ExtACSyntaxCoupling;
6043
 
class ExtACTree;
6044
 
class ExtACKeywords;
6045
 
class WinAsm;
6046
 
class WinDeclSpecs;
6047
 
class WinMemberExplSpec;
6048
 
class WinTypeKeywords;
6049
 
class PragmaOnceUnitState;
6050
 
class PragmaOnce;
6051
 
class CCExprResolve;
6052
 
class CExprResolve;
6053
 
namespace Puma {
6054
 
 
6055
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6056
 
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
6057
 
#line 6058 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6058
 
  friend class ::WinIfExists;
6059
 
  friend class ::WinImportHandler;
6060
 
  friend class ::WinMacros;
6061
 
  friend class ::CMatchSyntax;
6062
 
  friend class ::ExtGnu;
6063
 
  friend class ::ExtAC;
6064
 
  friend class ::ExtACBuilderCoupling;
6065
 
  friend class ::ExtACSyntaxCoupling;
6066
 
  friend class ::ExtACTree;
6067
 
  friend class ::ExtACKeywords;
6068
 
  friend class ::WinAsm;
6069
 
  friend class ::WinDeclSpecs;
6070
 
  friend class ::WinMemberExplSpec;
6071
 
  friend class ::WinTypeKeywords;
6072
 
  friend class ::PragmaOnceUnitState;
6073
 
  friend class ::PragmaOnce;
6074
 
  friend class ::CCExprResolve;
6075
 
  friend class ::CExprResolve;
6076
 
 
6077
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6078
 
 
6079
 
public:
6080
 
  CT_ExprList () { AddProperties (SEPARATORS); }
6081
 
  static const char *NodeId ();
6082
 
  const char *NodeName () const { return NodeId (); }
6083
 
 
6084
 
  CTypeInfo *Type () const { return type; }
6085
 
  CExprValue *Value () const { return value; }
6086
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
6087
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
6088
 
};
6089
 
 
6090
 
 
6091
 
#line 6092 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6092
 
} // closed Puma
6093
 
class WinIfExists;
6094
 
class WinImportHandler;
6095
 
class WinMacros;
6096
 
class CMatchSyntax;
6097
 
class ExtGnu;
6098
 
class ExtAC;
6099
 
class ExtACBuilderCoupling;
6100
 
class ExtACSyntaxCoupling;
6101
 
class ExtACTree;
6102
 
class ExtACKeywords;
6103
 
class WinAsm;
6104
 
class WinDeclSpecs;
6105
 
class WinMemberExplSpec;
6106
 
class WinTypeKeywords;
6107
 
class PragmaOnceUnitState;
6108
 
class PragmaOnce;
6109
 
class CCExprResolve;
6110
 
class CExprResolve;
6111
 
namespace Puma {
6112
 
 
6113
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6114
 
class CT_DeclaratorList : public CT_List {
6115
 
#line 6116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6116
 
  friend class ::WinIfExists;
6117
 
  friend class ::WinImportHandler;
6118
 
  friend class ::WinMacros;
6119
 
  friend class ::CMatchSyntax;
6120
 
  friend class ::ExtGnu;
6121
 
  friend class ::ExtAC;
6122
 
  friend class ::ExtACBuilderCoupling;
6123
 
  friend class ::ExtACSyntaxCoupling;
6124
 
  friend class ::ExtACTree;
6125
 
  friend class ::ExtACKeywords;
6126
 
  friend class ::WinAsm;
6127
 
  friend class ::WinDeclSpecs;
6128
 
  friend class ::WinMemberExplSpec;
6129
 
  friend class ::WinTypeKeywords;
6130
 
  friend class ::PragmaOnceUnitState;
6131
 
  friend class ::PragmaOnce;
6132
 
  friend class ::CCExprResolve;
6133
 
  friend class ::CExprResolve;
6134
 
 
6135
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6136
 
 
6137
 
public:
6138
 
  static const char *NodeId ();
6139
 
  const char *NodeName () const { return NodeId (); }
6140
 
};
6141
 
 
6142
 
 
6143
 
#line 6144 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6144
 
} // closed Puma
6145
 
class WinIfExists;
6146
 
class WinImportHandler;
6147
 
class WinMacros;
6148
 
class CMatchSyntax;
6149
 
class ExtGnu;
6150
 
class ExtAC;
6151
 
class ExtACBuilderCoupling;
6152
 
class ExtACSyntaxCoupling;
6153
 
class ExtACTree;
6154
 
class ExtACKeywords;
6155
 
class WinAsm;
6156
 
class WinDeclSpecs;
6157
 
class WinMemberExplSpec;
6158
 
class WinTypeKeywords;
6159
 
class PragmaOnceUnitState;
6160
 
class PragmaOnce;
6161
 
class CCExprResolve;
6162
 
class CExprResolve;
6163
 
namespace Puma {
6164
 
 
6165
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6166
 
class CT_EnumeratorList : public CT_List {
6167
 
#line 6168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6168
 
  friend class ::WinIfExists;
6169
 
  friend class ::WinImportHandler;
6170
 
  friend class ::WinMacros;
6171
 
  friend class ::CMatchSyntax;
6172
 
  friend class ::ExtGnu;
6173
 
  friend class ::ExtAC;
6174
 
  friend class ::ExtACBuilderCoupling;
6175
 
  friend class ::ExtACSyntaxCoupling;
6176
 
  friend class ::ExtACTree;
6177
 
  friend class ::ExtACKeywords;
6178
 
  friend class ::WinAsm;
6179
 
  friend class ::WinDeclSpecs;
6180
 
  friend class ::WinMemberExplSpec;
6181
 
  friend class ::WinTypeKeywords;
6182
 
  friend class ::PragmaOnceUnitState;
6183
 
  friend class ::PragmaOnce;
6184
 
  friend class ::CCExprResolve;
6185
 
  friend class ::CExprResolve;
6186
 
 
6187
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6188
 
 
6189
 
public:
6190
 
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
6191
 
  static const char *NodeId ();
6192
 
  const char *NodeName () const { return NodeId (); }
6193
 
};
6194
 
   
6195
 
 
6196
 
#line 6197 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6197
 
} // closed Puma
6198
 
class WinIfExists;
6199
 
class WinImportHandler;
6200
 
class WinMacros;
6201
 
class CMatchSyntax;
6202
 
class ExtGnu;
6203
 
class ExtAC;
6204
 
class ExtACBuilderCoupling;
6205
 
class ExtACSyntaxCoupling;
6206
 
class ExtACTree;
6207
 
class ExtACKeywords;
6208
 
class WinAsm;
6209
 
class WinDeclSpecs;
6210
 
class WinMemberExplSpec;
6211
 
class WinTypeKeywords;
6212
 
class PragmaOnceUnitState;
6213
 
class PragmaOnce;
6214
 
class CCExprResolve;
6215
 
class CExprResolve;
6216
 
namespace Puma {
6217
 
 
6218
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6219
 
class CT_DeclList : public CT_List {
6220
 
#line 6221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6221
 
  friend class ::WinIfExists;
6222
 
  friend class ::WinImportHandler;
6223
 
  friend class ::WinMacros;
6224
 
  friend class ::CMatchSyntax;
6225
 
  friend class ::ExtGnu;
6226
 
  friend class ::ExtAC;
6227
 
  friend class ::ExtACBuilderCoupling;
6228
 
  friend class ::ExtACSyntaxCoupling;
6229
 
  friend class ::ExtACTree;
6230
 
  friend class ::ExtACKeywords;
6231
 
  friend class ::WinAsm;
6232
 
  friend class ::WinDeclSpecs;
6233
 
  friend class ::WinMemberExplSpec;
6234
 
  friend class ::WinTypeKeywords;
6235
 
  friend class ::PragmaOnceUnitState;
6236
 
  friend class ::PragmaOnce;
6237
 
  friend class ::CCExprResolve;
6238
 
  friend class ::CExprResolve;
6239
 
 
6240
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6241
 
 
6242
 
public:
6243
 
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
6244
 
  static const char *NodeId ();
6245
 
  const char *NodeName () const { return NodeId (); }
6246
 
  void Linkage (CT_LinkageSpec *l);
6247
 
};
6248
 
 
6249
 
 
6250
 
#line 6251 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6251
 
} // closed Puma
6252
 
class WinIfExists;
6253
 
class WinImportHandler;
6254
 
class WinMacros;
6255
 
class CMatchSyntax;
6256
 
class ExtGnu;
6257
 
class ExtAC;
6258
 
class ExtACBuilderCoupling;
6259
 
class ExtACSyntaxCoupling;
6260
 
class ExtACTree;
6261
 
class ExtACKeywords;
6262
 
class WinAsm;
6263
 
class WinDeclSpecs;
6264
 
class WinMemberExplSpec;
6265
 
class WinTypeKeywords;
6266
 
class PragmaOnceUnitState;
6267
 
class PragmaOnce;
6268
 
class CCExprResolve;
6269
 
class CExprResolve;
6270
 
namespace Puma {
6271
 
 
6272
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6273
 
class CT_DeclSpecSeq : public CT_List {
6274
 
#line 6275 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6275
 
  friend class ::WinIfExists;
6276
 
  friend class ::WinImportHandler;
6277
 
  friend class ::WinMacros;
6278
 
  friend class ::CMatchSyntax;
6279
 
  friend class ::ExtGnu;
6280
 
  friend class ::ExtAC;
6281
 
  friend class ::ExtACBuilderCoupling;
6282
 
  friend class ::ExtACSyntaxCoupling;
6283
 
  friend class ::ExtACTree;
6284
 
  friend class ::ExtACKeywords;
6285
 
  friend class ::WinAsm;
6286
 
  friend class ::WinDeclSpecs;
6287
 
  friend class ::WinMemberExplSpec;
6288
 
  friend class ::WinTypeKeywords;
6289
 
  friend class ::PragmaOnceUnitState;
6290
 
  friend class ::PragmaOnce;
6291
 
  friend class ::CCExprResolve;
6292
 
  friend class ::CExprResolve;
6293
 
 
6294
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6295
 
 
6296
 
public:
6297
 
  static const char *NodeId ();
6298
 
  const char *NodeName () const { return NodeId (); }
6299
 
};
6300
 
 
6301
 
 
6302
 
#line 6303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6303
 
} // closed Puma
6304
 
class WinIfExists;
6305
 
class WinImportHandler;
6306
 
class WinMacros;
6307
 
class CMatchSyntax;
6308
 
class ExtGnu;
6309
 
class ExtAC;
6310
 
class ExtACBuilderCoupling;
6311
 
class ExtACSyntaxCoupling;
6312
 
class ExtACTree;
6313
 
class ExtACKeywords;
6314
 
class WinAsm;
6315
 
class WinDeclSpecs;
6316
 
class WinMemberExplSpec;
6317
 
class WinTypeKeywords;
6318
 
class PragmaOnceUnitState;
6319
 
class PragmaOnce;
6320
 
class CCExprResolve;
6321
 
class CExprResolve;
6322
 
namespace Puma {
6323
 
 
6324
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6325
 
class CT_CmpdStmt : public CT_List, public CSemScope {
6326
 
#line 6327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6327
 
  friend class ::WinIfExists;
6328
 
  friend class ::WinImportHandler;
6329
 
  friend class ::WinMacros;
6330
 
  friend class ::CMatchSyntax;
6331
 
  friend class ::ExtGnu;
6332
 
  friend class ::ExtAC;
6333
 
  friend class ::ExtACBuilderCoupling;
6334
 
  friend class ::ExtACSyntaxCoupling;
6335
 
  friend class ::ExtACTree;
6336
 
  friend class ::ExtACKeywords;
6337
 
  friend class ::WinAsm;
6338
 
  friend class ::WinDeclSpecs;
6339
 
  friend class ::WinMemberExplSpec;
6340
 
  friend class ::WinTypeKeywords;
6341
 
  friend class ::PragmaOnceUnitState;
6342
 
  friend class ::PragmaOnce;
6343
 
  friend class ::CCExprResolve;
6344
 
  friend class ::CExprResolve;
6345
 
 
6346
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6347
 
 
6348
 
public:
6349
 
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
6350
 
  static const char *NodeId ();
6351
 
  const char *NodeName () const { return NodeId (); }
6352
 
};
6353
 
 
6354
 
 
6355
 
#line 6356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6356
 
} // closed Puma
6357
 
class WinIfExists;
6358
 
class WinImportHandler;
6359
 
class WinMacros;
6360
 
class CMatchSyntax;
6361
 
class ExtGnu;
6362
 
class ExtAC;
6363
 
class ExtACBuilderCoupling;
6364
 
class ExtACSyntaxCoupling;
6365
 
class ExtACTree;
6366
 
class ExtACKeywords;
6367
 
class WinAsm;
6368
 
class WinDeclSpecs;
6369
 
class WinMemberExplSpec;
6370
 
class WinTypeKeywords;
6371
 
class PragmaOnceUnitState;
6372
 
class PragmaOnce;
6373
 
class CCExprResolve;
6374
 
class CExprResolve;
6375
 
namespace Puma {
6376
 
 
6377
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6378
 
class CT_HandlerSeq : public CT_List {
6379
 
#line 6380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6380
 
  friend class ::WinIfExists;
6381
 
  friend class ::WinImportHandler;
6382
 
  friend class ::WinMacros;
6383
 
  friend class ::CMatchSyntax;
6384
 
  friend class ::ExtGnu;
6385
 
  friend class ::ExtAC;
6386
 
  friend class ::ExtACBuilderCoupling;
6387
 
  friend class ::ExtACSyntaxCoupling;
6388
 
  friend class ::ExtACTree;
6389
 
  friend class ::ExtACKeywords;
6390
 
  friend class ::WinAsm;
6391
 
  friend class ::WinDeclSpecs;
6392
 
  friend class ::WinMemberExplSpec;
6393
 
  friend class ::WinTypeKeywords;
6394
 
  friend class ::PragmaOnceUnitState;
6395
 
  friend class ::PragmaOnce;
6396
 
  friend class ::CCExprResolve;
6397
 
  friend class ::CExprResolve;
6398
 
 
6399
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6400
 
 
6401
 
public:
6402
 
  static const char *NodeId ();
6403
 
  const char *NodeName () const { return NodeId (); }
6404
 
};
6405
 
 
6406
 
 
6407
 
#line 6408 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6408
 
} // closed Puma
6409
 
class WinIfExists;
6410
 
class WinImportHandler;
6411
 
class WinMacros;
6412
 
class CMatchSyntax;
6413
 
class ExtGnu;
6414
 
class ExtAC;
6415
 
class ExtACBuilderCoupling;
6416
 
class ExtACSyntaxCoupling;
6417
 
class ExtACTree;
6418
 
class ExtACKeywords;
6419
 
class WinAsm;
6420
 
class WinDeclSpecs;
6421
 
class WinMemberExplSpec;
6422
 
class WinTypeKeywords;
6423
 
class PragmaOnceUnitState;
6424
 
class PragmaOnce;
6425
 
class CCExprResolve;
6426
 
class CExprResolve;
6427
 
namespace Puma {
6428
 
 
6429
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6430
 
class CT_TemplateParamList : public CT_List, public CSemScope {
6431
 
#line 6432 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6432
 
  friend class ::WinIfExists;
6433
 
  friend class ::WinImportHandler;
6434
 
  friend class ::WinMacros;
6435
 
  friend class ::CMatchSyntax;
6436
 
  friend class ::ExtGnu;
6437
 
  friend class ::ExtAC;
6438
 
  friend class ::ExtACBuilderCoupling;
6439
 
  friend class ::ExtACSyntaxCoupling;
6440
 
  friend class ::ExtACTree;
6441
 
  friend class ::ExtACKeywords;
6442
 
  friend class ::WinAsm;
6443
 
  friend class ::WinDeclSpecs;
6444
 
  friend class ::WinMemberExplSpec;
6445
 
  friend class ::WinTypeKeywords;
6446
 
  friend class ::PragmaOnceUnitState;
6447
 
  friend class ::PragmaOnce;
6448
 
  friend class ::CCExprResolve;
6449
 
  friend class ::CExprResolve;
6450
 
 
6451
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6452
 
 
6453
 
public:
6454
 
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
6455
 
  static const char *NodeId ();
6456
 
  const char *NodeName () const { return NodeId (); }
6457
 
};
6458
 
 
6459
 
 
6460
 
#line 6461 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6461
 
} // closed Puma
6462
 
class WinIfExists;
6463
 
class WinImportHandler;
6464
 
class WinMacros;
6465
 
class CMatchSyntax;
6466
 
class ExtGnu;
6467
 
class ExtAC;
6468
 
class ExtACBuilderCoupling;
6469
 
class ExtACSyntaxCoupling;
6470
 
class ExtACTree;
6471
 
class ExtACKeywords;
6472
 
class WinAsm;
6473
 
class WinDeclSpecs;
6474
 
class WinMemberExplSpec;
6475
 
class WinTypeKeywords;
6476
 
class PragmaOnceUnitState;
6477
 
class PragmaOnce;
6478
 
class CCExprResolve;
6479
 
class CExprResolve;
6480
 
namespace Puma {
6481
 
 
6482
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6483
 
class CT_TemplateArgList : public CT_List {
6484
 
#line 6485 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6485
 
  friend class ::WinIfExists;
6486
 
  friend class ::WinImportHandler;
6487
 
  friend class ::WinMacros;
6488
 
  friend class ::CMatchSyntax;
6489
 
  friend class ::ExtGnu;
6490
 
  friend class ::ExtAC;
6491
 
  friend class ::ExtACBuilderCoupling;
6492
 
  friend class ::ExtACSyntaxCoupling;
6493
 
  friend class ::ExtACTree;
6494
 
  friend class ::ExtACKeywords;
6495
 
  friend class ::WinAsm;
6496
 
  friend class ::WinDeclSpecs;
6497
 
  friend class ::WinMemberExplSpec;
6498
 
  friend class ::WinTypeKeywords;
6499
 
  friend class ::PragmaOnceUnitState;
6500
 
  friend class ::PragmaOnce;
6501
 
  friend class ::CCExprResolve;
6502
 
  friend class ::CExprResolve;
6503
 
 
6504
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6505
 
 
6506
 
public:
6507
 
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
6508
 
  static const char *NodeId ();
6509
 
  const char *NodeName () const { return NodeId (); }
6510
 
};
6511
 
 
6512
 
/*****************************************************************************/
6513
 
/*                                                                           */
6514
 
/*                              Expressions                                  */
6515
 
/*                                                                           */
6516
 
/*****************************************************************************/
6517
 
 
6518
 
 
6519
 
#line 6520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6520
 
} // closed Puma
6521
 
class WinIfExists;
6522
 
class WinImportHandler;
6523
 
class WinMacros;
6524
 
class CMatchSyntax;
6525
 
class ExtGnu;
6526
 
class ExtAC;
6527
 
class ExtACBuilderCoupling;
6528
 
class ExtACSyntaxCoupling;
6529
 
class ExtACTree;
6530
 
class ExtACKeywords;
6531
 
class WinAsm;
6532
 
class WinDeclSpecs;
6533
 
class WinMemberExplSpec;
6534
 
class WinTypeKeywords;
6535
 
class PragmaOnceUnitState;
6536
 
class PragmaOnce;
6537
 
class CCExprResolve;
6538
 
class CExprResolve;
6539
 
namespace Puma {
6540
 
 
6541
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6542
 
class CT_Expression : public CTree, public CSemValue {
6543
 
#line 6544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6544
 
  friend class ::WinIfExists;
6545
 
  friend class ::WinImportHandler;
6546
 
  friend class ::WinMacros;
6547
 
  friend class ::CMatchSyntax;
6548
 
  friend class ::ExtGnu;
6549
 
  friend class ::ExtAC;
6550
 
  friend class ::ExtACBuilderCoupling;
6551
 
  friend class ::ExtACSyntaxCoupling;
6552
 
  friend class ::ExtACTree;
6553
 
  friend class ::ExtACKeywords;
6554
 
  friend class ::WinAsm;
6555
 
  friend class ::WinDeclSpecs;
6556
 
  friend class ::WinMemberExplSpec;
6557
 
  friend class ::WinTypeKeywords;
6558
 
  friend class ::PragmaOnceUnitState;
6559
 
  friend class ::PragmaOnce;
6560
 
  friend class ::CCExprResolve;
6561
 
  friend class ::CExprResolve;
6562
 
 
6563
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6564
 
 
6565
 
protected:
6566
 
  CT_Expression () {}
6567
 
 
6568
 
public:
6569
 
  static const char *NodeId ();
6570
 
  const char *NodeName () const { return NodeId (); }
6571
 
  CTypeInfo *Type () const { return type; }
6572
 
  CExprValue *Value () const { return value; }
6573
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
6574
 
   private:
6575
 
  typedef CT_Expression CCExprResolveExpr;
6576
 
 
6577
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6578
 
 public :
6579
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
6580
 
  typedef CT_Expression CExprResolveExpr;
6581
 
 
6582
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6583
 
 public :
6584
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6585
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6586
 
};
6587
 
 
6588
 
 
6589
 
#line 6590 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6590
 
} // closed Puma
6591
 
class WinIfExists;
6592
 
class WinImportHandler;
6593
 
class WinMacros;
6594
 
class CMatchSyntax;
6595
 
class ExtGnu;
6596
 
class ExtAC;
6597
 
class ExtACBuilderCoupling;
6598
 
class ExtACSyntaxCoupling;
6599
 
class ExtACTree;
6600
 
class ExtACKeywords;
6601
 
class WinAsm;
6602
 
class WinDeclSpecs;
6603
 
class WinMemberExplSpec;
6604
 
class WinTypeKeywords;
6605
 
class PragmaOnceUnitState;
6606
 
class PragmaOnce;
6607
 
class CCExprResolve;
6608
 
class CExprResolve;
6609
 
namespace Puma {
6610
 
 
6611
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6612
 
class CT_String : public CT_List, public CSemValue {
6613
 
#line 6614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6614
 
  friend class ::WinIfExists;
6615
 
  friend class ::WinImportHandler;
6616
 
  friend class ::WinMacros;
6617
 
  friend class ::CMatchSyntax;
6618
 
  friend class ::ExtGnu;
6619
 
  friend class ::ExtAC;
6620
 
  friend class ::ExtACBuilderCoupling;
6621
 
  friend class ::ExtACSyntaxCoupling;
6622
 
  friend class ::ExtACTree;
6623
 
  friend class ::ExtACKeywords;
6624
 
  friend class ::WinAsm;
6625
 
  friend class ::WinDeclSpecs;
6626
 
  friend class ::WinMemberExplSpec;
6627
 
  friend class ::WinTypeKeywords;
6628
 
  friend class ::PragmaOnceUnitState;
6629
 
  friend class ::PragmaOnce;
6630
 
  friend class ::CCExprResolve;
6631
 
  friend class ::CExprResolve;
6632
 
 
6633
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6634
 
 
6635
 
public:
6636
 
  CT_String (int size) : CT_List (size, 1) {}
6637
 
  static const char *NodeId ();
6638
 
  const char *NodeName () const { return NodeId (); }
6639
 
 
6640
 
  CTypeInfo *Type () const { return type; }
6641
 
  CExprValue *Value () const { return value; }
6642
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
6643
 
   private:
6644
 
  typedef CT_String CCExprResolveExpr;
6645
 
 
6646
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6647
 
 public :
6648
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
6649
 
  typedef CT_String CExprResolveExpr;
6650
 
 
6651
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6652
 
 public :
6653
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6654
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6655
 
};
6656
 
 
6657
 
 
6658
 
#line 6659 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6659
 
} // closed Puma
6660
 
class WinIfExists;
6661
 
class WinImportHandler;
6662
 
class WinMacros;
6663
 
class CMatchSyntax;
6664
 
class ExtGnu;
6665
 
class ExtAC;
6666
 
class ExtACBuilderCoupling;
6667
 
class ExtACSyntaxCoupling;
6668
 
class ExtACTree;
6669
 
class ExtACKeywords;
6670
 
class WinAsm;
6671
 
class WinDeclSpecs;
6672
 
class WinMemberExplSpec;
6673
 
class WinTypeKeywords;
6674
 
class PragmaOnceUnitState;
6675
 
class PragmaOnce;
6676
 
class CCExprResolve;
6677
 
class CExprResolve;
6678
 
namespace Puma {
6679
 
 
6680
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6681
 
class CT_WideString : public CT_String {
6682
 
#line 6683 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6683
 
  friend class ::WinIfExists;
6684
 
  friend class ::WinImportHandler;
6685
 
  friend class ::WinMacros;
6686
 
  friend class ::CMatchSyntax;
6687
 
  friend class ::ExtGnu;
6688
 
  friend class ::ExtAC;
6689
 
  friend class ::ExtACBuilderCoupling;
6690
 
  friend class ::ExtACSyntaxCoupling;
6691
 
  friend class ::ExtACTree;
6692
 
  friend class ::ExtACKeywords;
6693
 
  friend class ::WinAsm;
6694
 
  friend class ::WinDeclSpecs;
6695
 
  friend class ::WinMemberExplSpec;
6696
 
  friend class ::WinTypeKeywords;
6697
 
  friend class ::PragmaOnceUnitState;
6698
 
  friend class ::PragmaOnce;
6699
 
  friend class ::CCExprResolve;
6700
 
  friend class ::CExprResolve;
6701
 
 
6702
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6703
 
 
6704
 
public:
6705
 
  CT_WideString (int size) : CT_String (size) {}
6706
 
  static const char *NodeId ();
6707
 
  const char *NodeName () const { return NodeId (); }
6708
 
   private:
6709
 
  typedef CT_WideString CCExprResolveExpr;
6710
 
 
6711
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6712
 
 public :
6713
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
6714
 
  typedef CT_WideString CExprResolveExpr;
6715
 
 
6716
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6717
 
 public :
6718
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6719
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6720
 
};
6721
 
 
6722
 
 
6723
 
#line 6724 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6724
 
} // closed Puma
6725
 
class WinIfExists;
6726
 
class WinImportHandler;
6727
 
class WinMacros;
6728
 
class CMatchSyntax;
6729
 
class ExtGnu;
6730
 
class ExtAC;
6731
 
class ExtACBuilderCoupling;
6732
 
class ExtACSyntaxCoupling;
6733
 
class ExtACTree;
6734
 
class ExtACKeywords;
6735
 
class WinAsm;
6736
 
class WinDeclSpecs;
6737
 
class WinMemberExplSpec;
6738
 
class WinTypeKeywords;
6739
 
class PragmaOnceUnitState;
6740
 
class PragmaOnce;
6741
 
class CCExprResolve;
6742
 
class CExprResolve;
6743
 
namespace Puma {
6744
 
 
6745
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6746
 
class CT_Integer : public CT_Expression {
6747
 
#line 6748 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6748
 
  friend class ::WinIfExists;
6749
 
  friend class ::WinImportHandler;
6750
 
  friend class ::WinMacros;
6751
 
  friend class ::CMatchSyntax;
6752
 
  friend class ::ExtGnu;
6753
 
  friend class ::ExtAC;
6754
 
  friend class ::ExtACBuilderCoupling;
6755
 
  friend class ::ExtACSyntaxCoupling;
6756
 
  friend class ::ExtACTree;
6757
 
  friend class ::ExtACKeywords;
6758
 
  friend class ::WinAsm;
6759
 
  friend class ::WinDeclSpecs;
6760
 
  friend class ::WinMemberExplSpec;
6761
 
  friend class ::WinTypeKeywords;
6762
 
  friend class ::PragmaOnceUnitState;
6763
 
  friend class ::PragmaOnce;
6764
 
  friend class ::CCExprResolve;
6765
 
  friend class ::CExprResolve;
6766
 
 
6767
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6768
 
 
6769
 
  CTree *_value;  // CT_Token
6770
 
 
6771
 
public:
6772
 
  CT_Integer (CTree *t) : _value (t) {}
6773
 
  static const char *NodeId ();
6774
 
  const char *NodeName () const { return NodeId (); }
6775
 
  int Sons () const { return _value ? 1 : 0; }
6776
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
6777
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
6778
 
   { if (old_son == _value) _value = new_son; }
6779
 
   private:
6780
 
  typedef CT_Integer CCExprResolveExpr;
6781
 
 
6782
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6783
 
 public :
6784
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
6785
 
  typedef CT_Integer CExprResolveExpr;
6786
 
 
6787
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6788
 
 public :
6789
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6790
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6791
 
};
6792
 
 
6793
 
 
6794
 
#line 6795 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6795
 
} // closed Puma
6796
 
class WinIfExists;
6797
 
class WinImportHandler;
6798
 
class WinMacros;
6799
 
class CMatchSyntax;
6800
 
class ExtGnu;
6801
 
class ExtAC;
6802
 
class ExtACBuilderCoupling;
6803
 
class ExtACSyntaxCoupling;
6804
 
class ExtACTree;
6805
 
class ExtACKeywords;
6806
 
class WinAsm;
6807
 
class WinDeclSpecs;
6808
 
class WinMemberExplSpec;
6809
 
class WinTypeKeywords;
6810
 
class PragmaOnceUnitState;
6811
 
class PragmaOnce;
6812
 
class CCExprResolve;
6813
 
class CExprResolve;
6814
 
namespace Puma {
6815
 
 
6816
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6817
 
class CT_Character : public CT_Expression {
6818
 
#line 6819 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6819
 
  friend class ::WinIfExists;
6820
 
  friend class ::WinImportHandler;
6821
 
  friend class ::WinMacros;
6822
 
  friend class ::CMatchSyntax;
6823
 
  friend class ::ExtGnu;
6824
 
  friend class ::ExtAC;
6825
 
  friend class ::ExtACBuilderCoupling;
6826
 
  friend class ::ExtACSyntaxCoupling;
6827
 
  friend class ::ExtACTree;
6828
 
  friend class ::ExtACKeywords;
6829
 
  friend class ::WinAsm;
6830
 
  friend class ::WinDeclSpecs;
6831
 
  friend class ::WinMemberExplSpec;
6832
 
  friend class ::WinTypeKeywords;
6833
 
  friend class ::PragmaOnceUnitState;
6834
 
  friend class ::PragmaOnce;
6835
 
  friend class ::CCExprResolve;
6836
 
  friend class ::CExprResolve;
6837
 
 
6838
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6839
 
 
6840
 
  CTree *_value;  // CT_Token
6841
 
 
6842
 
public:
6843
 
  CT_Character (CTree *t) : _value (t) {}
6844
 
  static const char *NodeId ();
6845
 
  const char *NodeName () const { return NodeId (); }
6846
 
  int Sons () const { return 1; }
6847
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
6848
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
6849
 
   { if (old_son == _value) _value = new_son; }
6850
 
   private:
6851
 
  typedef CT_Character CCExprResolveExpr;
6852
 
 
6853
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6854
 
 public :
6855
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
6856
 
  typedef CT_Character CExprResolveExpr;
6857
 
 
6858
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6859
 
 public :
6860
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6861
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6862
 
};
6863
 
 
6864
 
 
6865
 
#line 6866 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6866
 
} // closed Puma
6867
 
class WinIfExists;
6868
 
class WinImportHandler;
6869
 
class WinMacros;
6870
 
class CMatchSyntax;
6871
 
class ExtGnu;
6872
 
class ExtAC;
6873
 
class ExtACBuilderCoupling;
6874
 
class ExtACSyntaxCoupling;
6875
 
class ExtACTree;
6876
 
class ExtACKeywords;
6877
 
class WinAsm;
6878
 
class WinDeclSpecs;
6879
 
class WinMemberExplSpec;
6880
 
class WinTypeKeywords;
6881
 
class PragmaOnceUnitState;
6882
 
class PragmaOnce;
6883
 
class CCExprResolve;
6884
 
class CExprResolve;
6885
 
namespace Puma {
6886
 
 
6887
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6888
 
class CT_WideCharacter : public CT_Character {
6889
 
#line 6890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6890
 
  friend class ::WinIfExists;
6891
 
  friend class ::WinImportHandler;
6892
 
  friend class ::WinMacros;
6893
 
  friend class ::CMatchSyntax;
6894
 
  friend class ::ExtGnu;
6895
 
  friend class ::ExtAC;
6896
 
  friend class ::ExtACBuilderCoupling;
6897
 
  friend class ::ExtACSyntaxCoupling;
6898
 
  friend class ::ExtACTree;
6899
 
  friend class ::ExtACKeywords;
6900
 
  friend class ::WinAsm;
6901
 
  friend class ::WinDeclSpecs;
6902
 
  friend class ::WinMemberExplSpec;
6903
 
  friend class ::WinTypeKeywords;
6904
 
  friend class ::PragmaOnceUnitState;
6905
 
  friend class ::PragmaOnce;
6906
 
  friend class ::CCExprResolve;
6907
 
  friend class ::CExprResolve;
6908
 
 
6909
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6910
 
 
6911
 
  CTree *_value;  // CT_Token
6912
 
 
6913
 
public:
6914
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
6915
 
  static const char *NodeId ();
6916
 
  const char *NodeName () const { return NodeId (); }
6917
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
6918
 
   { if (old_son == _value) _value = new_son; }
6919
 
   private:
6920
 
  typedef CT_WideCharacter CCExprResolveExpr;
6921
 
 
6922
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6923
 
 public :
6924
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
6925
 
  typedef CT_WideCharacter CExprResolveExpr;
6926
 
 
6927
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6928
 
 public :
6929
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6930
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6931
 
};
6932
 
 
6933
 
 
6934
 
#line 6935 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6935
 
} // closed Puma
6936
 
class WinIfExists;
6937
 
class WinImportHandler;
6938
 
class WinMacros;
6939
 
class CMatchSyntax;
6940
 
class ExtGnu;
6941
 
class ExtAC;
6942
 
class ExtACBuilderCoupling;
6943
 
class ExtACSyntaxCoupling;
6944
 
class ExtACTree;
6945
 
class ExtACKeywords;
6946
 
class WinAsm;
6947
 
class WinDeclSpecs;
6948
 
class WinMemberExplSpec;
6949
 
class WinTypeKeywords;
6950
 
class PragmaOnceUnitState;
6951
 
class PragmaOnce;
6952
 
class CCExprResolve;
6953
 
class CExprResolve;
6954
 
namespace Puma {
6955
 
 
6956
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6957
 
class CT_Float : public CT_Expression {
6958
 
#line 6959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
6959
 
  friend class ::WinIfExists;
6960
 
  friend class ::WinImportHandler;
6961
 
  friend class ::WinMacros;
6962
 
  friend class ::CMatchSyntax;
6963
 
  friend class ::ExtGnu;
6964
 
  friend class ::ExtAC;
6965
 
  friend class ::ExtACBuilderCoupling;
6966
 
  friend class ::ExtACSyntaxCoupling;
6967
 
  friend class ::ExtACTree;
6968
 
  friend class ::ExtACKeywords;
6969
 
  friend class ::WinAsm;
6970
 
  friend class ::WinDeclSpecs;
6971
 
  friend class ::WinMemberExplSpec;
6972
 
  friend class ::WinTypeKeywords;
6973
 
  friend class ::PragmaOnceUnitState;
6974
 
  friend class ::PragmaOnce;
6975
 
  friend class ::CCExprResolve;
6976
 
  friend class ::CExprResolve;
6977
 
 
6978
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6979
 
 
6980
 
  CTree *_value;  // CT_Token
6981
 
 
6982
 
public:
6983
 
  CT_Float (CTree *t) : _value (t) {}
6984
 
  static const char *NodeId ();
6985
 
  const char *NodeName () const { return NodeId (); }
6986
 
  int Sons () const { return 1; }
6987
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
6988
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
6989
 
   { if (old_son == _value) _value = new_son; }
6990
 
   private:
6991
 
  typedef CT_Float CCExprResolveExpr;
6992
 
 
6993
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6994
 
 public :
6995
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
6996
 
  typedef CT_Float CExprResolveExpr;
6997
 
 
6998
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6999
 
 public :
7000
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7001
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7002
 
};
7003
 
 
7004
 
 
7005
 
#line 7006 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7006
 
} // closed Puma
7007
 
class WinIfExists;
7008
 
class WinImportHandler;
7009
 
class WinMacros;
7010
 
class CMatchSyntax;
7011
 
class ExtGnu;
7012
 
class ExtAC;
7013
 
class ExtACBuilderCoupling;
7014
 
class ExtACSyntaxCoupling;
7015
 
class ExtACTree;
7016
 
class ExtACKeywords;
7017
 
class WinAsm;
7018
 
class WinDeclSpecs;
7019
 
class WinMemberExplSpec;
7020
 
class WinTypeKeywords;
7021
 
class PragmaOnceUnitState;
7022
 
class PragmaOnce;
7023
 
class CCExprResolve;
7024
 
class CExprResolve;
7025
 
namespace Puma {
7026
 
 
7027
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7028
 
class CT_Bool : public CT_Expression {
7029
 
#line 7030 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7030
 
  friend class ::WinIfExists;
7031
 
  friend class ::WinImportHandler;
7032
 
  friend class ::WinMacros;
7033
 
  friend class ::CMatchSyntax;
7034
 
  friend class ::ExtGnu;
7035
 
  friend class ::ExtAC;
7036
 
  friend class ::ExtACBuilderCoupling;
7037
 
  friend class ::ExtACSyntaxCoupling;
7038
 
  friend class ::ExtACTree;
7039
 
  friend class ::ExtACKeywords;
7040
 
  friend class ::WinAsm;
7041
 
  friend class ::WinDeclSpecs;
7042
 
  friend class ::WinMemberExplSpec;
7043
 
  friend class ::WinTypeKeywords;
7044
 
  friend class ::PragmaOnceUnitState;
7045
 
  friend class ::PragmaOnce;
7046
 
  friend class ::CCExprResolve;
7047
 
  friend class ::CExprResolve;
7048
 
 
7049
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7050
 
 
7051
 
  CTree *_value;  // CT_Token
7052
 
 
7053
 
public:
7054
 
  CT_Bool (CTree *t) : _value (t) {}
7055
 
  static const char *NodeId ();
7056
 
  const char *NodeName () const { return NodeId (); }
7057
 
  int Sons () const { return 1; }
7058
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
7059
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
7060
 
   { if (old_son == _value) _value = new_son; }
7061
 
   private:
7062
 
  typedef CT_Bool CCExprResolveExpr;
7063
 
 
7064
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7065
 
 public :
7066
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7067
 
  typedef CT_Bool CExprResolveExpr;
7068
 
 
7069
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7070
 
 public :
7071
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7072
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7073
 
};
7074
 
 
7075
 
 
7076
 
#line 7077 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7077
 
} // closed Puma
7078
 
class WinIfExists;
7079
 
class WinImportHandler;
7080
 
class WinMacros;
7081
 
class CMatchSyntax;
7082
 
class ExtGnu;
7083
 
class ExtAC;
7084
 
class ExtACBuilderCoupling;
7085
 
class ExtACSyntaxCoupling;
7086
 
class ExtACTree;
7087
 
class ExtACKeywords;
7088
 
class WinAsm;
7089
 
class WinDeclSpecs;
7090
 
class WinMemberExplSpec;
7091
 
class WinTypeKeywords;
7092
 
class PragmaOnceUnitState;
7093
 
class PragmaOnce;
7094
 
class CCExprResolve;
7095
 
class CExprResolve;
7096
 
namespace Puma {
7097
 
 
7098
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7099
 
class CT_BracedExpr : public CT_Expression {
7100
 
#line 7101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7101
 
  friend class ::WinIfExists;
7102
 
  friend class ::WinImportHandler;
7103
 
  friend class ::WinMacros;
7104
 
  friend class ::CMatchSyntax;
7105
 
  friend class ::ExtGnu;
7106
 
  friend class ::ExtAC;
7107
 
  friend class ::ExtACBuilderCoupling;
7108
 
  friend class ::ExtACSyntaxCoupling;
7109
 
  friend class ::ExtACTree;
7110
 
  friend class ::ExtACKeywords;
7111
 
  friend class ::WinAsm;
7112
 
  friend class ::WinDeclSpecs;
7113
 
  friend class ::WinMemberExplSpec;
7114
 
  friend class ::WinTypeKeywords;
7115
 
  friend class ::PragmaOnceUnitState;
7116
 
  friend class ::PragmaOnce;
7117
 
  friend class ::CCExprResolve;
7118
 
  friend class ::CExprResolve;
7119
 
 
7120
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7121
 
 
7122
 
  CTree *sons[3]; // open, expr, close
7123
 
 
7124
 
public:
7125
 
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
7126
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
7127
 
  }
7128
 
  static const char *NodeId ();
7129
 
  const char *NodeName () const { return NodeId (); }
7130
 
  int Sons () const { return 3; }
7131
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
7132
 
  CTree *Expr () const { return sons[1]; }
7133
 
  CTypeInfo *Type () const { return Expr ()->Type (); }
7134
 
  CExprValue *Value () const { return Expr ()->Value (); }
7135
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
7136
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
7137
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
7138
 
  }
7139
 
   private:
7140
 
  typedef CT_BracedExpr CCExprResolveExpr;
7141
 
 
7142
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7143
 
 public :
7144
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7145
 
  typedef CT_BracedExpr CExprResolveExpr;
7146
 
 
7147
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7148
 
 public :
7149
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7150
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7151
 
};
7152
 
 
7153
 
 
7154
 
#line 7155 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7155
 
} // closed Puma
7156
 
class WinIfExists;
7157
 
class WinImportHandler;
7158
 
class WinMacros;
7159
 
class CMatchSyntax;
7160
 
class ExtGnu;
7161
 
class ExtAC;
7162
 
class ExtACBuilderCoupling;
7163
 
class ExtACSyntaxCoupling;
7164
 
class ExtACTree;
7165
 
class ExtACKeywords;
7166
 
class WinAsm;
7167
 
class WinDeclSpecs;
7168
 
class WinMemberExplSpec;
7169
 
class WinTypeKeywords;
7170
 
class PragmaOnceUnitState;
7171
 
class PragmaOnce;
7172
 
class CCExprResolve;
7173
 
class CExprResolve;
7174
 
namespace Puma {
7175
 
 
7176
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7177
 
class CT_SimpleName : public CT_List, public Printable, 
7178
 
                      public CSemValue, public CSemObject {
7179
 
#line 7180 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7180
 
  friend class ::WinIfExists;
7181
 
  friend class ::WinImportHandler;
7182
 
  friend class ::WinMacros;
7183
 
  friend class ::CMatchSyntax;
7184
 
  friend class ::ExtGnu;
7185
 
  friend class ::ExtAC;
7186
 
  friend class ::ExtACBuilderCoupling;
7187
 
  friend class ::ExtACSyntaxCoupling;
7188
 
  friend class ::ExtACTree;
7189
 
  friend class ::ExtACKeywords;
7190
 
  friend class ::WinAsm;
7191
 
  friend class ::WinDeclSpecs;
7192
 
  friend class ::WinMemberExplSpec;
7193
 
  friend class ::WinTypeKeywords;
7194
 
  friend class ::PragmaOnceUnitState;
7195
 
  friend class ::PragmaOnce;
7196
 
  friend class ::CCExprResolve;
7197
 
  friend class ::CExprResolve;
7198
 
 
7199
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7200
 
 
7201
 
protected:
7202
 
  CT_SimpleName (int size) : CT_List (size, 1) {}
7203
 
  CT_SimpleName (int size, int properties) : 
7204
 
    CT_List (size, 2, properties) {}
7205
 
  
7206
 
public:
7207
 
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
7208
 
  static const char *NodeId ();
7209
 
  const char *NodeName () const { return NodeId (); }
7210
 
  virtual const char *Text () const 
7211
 
   { return Son (Sons ()-1)->token ()->text (); }
7212
 
  virtual void print (ostream &os) const { os << Text (); }
7213
 
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
7214
 
  CTypeInfo *Type () const { return type; }
7215
 
  CExprValue *Value () const { return value; }
7216
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
7217
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
7218
 
  // special new / delete with reusing memory
7219
 
  void *operator new (size_t);
7220
 
  void  operator delete (void *);
7221
 
  // classification function
7222
 
  virtual CT_SimpleName *IsSimpleName () { return this; }  
7223
 
   private:
7224
 
  typedef CT_SimpleName CCExprResolveExpr;
7225
 
 
7226
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7227
 
 public :
7228
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7229
 
  typedef CT_SimpleName CExprResolveExpr;
7230
 
 
7231
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7232
 
 public :
7233
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7234
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7235
 
};
7236
 
 
7237
 
 
7238
 
#line 7239 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7239
 
} // closed Puma
7240
 
class WinIfExists;
7241
 
class WinImportHandler;
7242
 
class WinMacros;
7243
 
class CMatchSyntax;
7244
 
class ExtGnu;
7245
 
class ExtAC;
7246
 
class ExtACBuilderCoupling;
7247
 
class ExtACSyntaxCoupling;
7248
 
class ExtACTree;
7249
 
class ExtACKeywords;
7250
 
class WinAsm;
7251
 
class WinDeclSpecs;
7252
 
class WinMemberExplSpec;
7253
 
class WinTypeKeywords;
7254
 
class PragmaOnceUnitState;
7255
 
class PragmaOnce;
7256
 
class CCExprResolve;
7257
 
class CExprResolve;
7258
 
namespace Puma {
7259
 
 
7260
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7261
 
class CT_SpecialName : public CT_SimpleName {
7262
 
#line 7263 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7263
 
  friend class ::WinIfExists;
7264
 
  friend class ::WinImportHandler;
7265
 
  friend class ::WinMacros;
7266
 
  friend class ::CMatchSyntax;
7267
 
  friend class ::ExtGnu;
7268
 
  friend class ::ExtAC;
7269
 
  friend class ::ExtACBuilderCoupling;
7270
 
  friend class ::ExtACSyntaxCoupling;
7271
 
  friend class ::ExtACTree;
7272
 
  friend class ::ExtACKeywords;
7273
 
  friend class ::WinAsm;
7274
 
  friend class ::WinDeclSpecs;
7275
 
  friend class ::WinMemberExplSpec;
7276
 
  friend class ::WinTypeKeywords;
7277
 
  friend class ::PragmaOnceUnitState;
7278
 
  friend class ::PragmaOnce;
7279
 
  friend class ::CCExprResolve;
7280
 
  friend class ::CExprResolve;
7281
 
 
7282
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7283
 
 
7284
 
  char *_name;
7285
 
  
7286
 
protected:
7287
 
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
7288
 
  
7289
 
public:
7290
 
  ~CT_SpecialName () { if (_name) delete[] _name; }
7291
 
  const char *Text () const { return _name; }
7292
 
  void Name (const char *n) { 
7293
 
    if (n) { 
7294
 
      _name = new char[strlen(n) + 1];
7295
 
      strcpy (_name,n);
7296
 
    }
7297
 
  }
7298
 
  // special new / delete with reusing memory
7299
 
  void *operator new (size_t);
7300
 
  void  operator delete (void *);
7301
 
   private:
7302
 
  typedef CT_SpecialName CCExprResolveExpr;
7303
 
 
7304
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7305
 
 public :
7306
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7307
 
  typedef CT_SpecialName CExprResolveExpr;
7308
 
 
7309
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7310
 
 public :
7311
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7312
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7313
 
};
7314
 
 
7315
 
 
7316
 
#line 7317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7317
 
} // closed Puma
7318
 
class WinIfExists;
7319
 
class WinImportHandler;
7320
 
class WinMacros;
7321
 
class CMatchSyntax;
7322
 
class ExtGnu;
7323
 
class ExtAC;
7324
 
class ExtACBuilderCoupling;
7325
 
class ExtACSyntaxCoupling;
7326
 
class ExtACTree;
7327
 
class ExtACKeywords;
7328
 
class WinAsm;
7329
 
class WinDeclSpecs;
7330
 
class WinMemberExplSpec;
7331
 
class WinTypeKeywords;
7332
 
class PragmaOnceUnitState;
7333
 
class PragmaOnce;
7334
 
class CCExprResolve;
7335
 
class CExprResolve;
7336
 
namespace Puma {
7337
 
 
7338
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7339
 
class CT_PrivateName : public CT_SpecialName {
7340
 
#line 7341 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7341
 
  friend class ::WinIfExists;
7342
 
  friend class ::WinImportHandler;
7343
 
  friend class ::WinMacros;
7344
 
  friend class ::CMatchSyntax;
7345
 
  friend class ::ExtGnu;
7346
 
  friend class ::ExtAC;
7347
 
  friend class ::ExtACBuilderCoupling;
7348
 
  friend class ::ExtACSyntaxCoupling;
7349
 
  friend class ::ExtACTree;
7350
 
  friend class ::ExtACKeywords;
7351
 
  friend class ::WinAsm;
7352
 
  friend class ::WinDeclSpecs;
7353
 
  friend class ::WinMemberExplSpec;
7354
 
  friend class ::WinTypeKeywords;
7355
 
  friend class ::PragmaOnceUnitState;
7356
 
  friend class ::PragmaOnce;
7357
 
  friend class ::CCExprResolve;
7358
 
  friend class ::CExprResolve;
7359
 
 
7360
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7361
 
 
7362
 
public:
7363
 
  CT_PrivateName (const char *n) { Name (n); }
7364
 
  static const char *NodeId ();
7365
 
  const char *NodeName () const { return NodeId (); }
7366
 
  int Sons () const { return 0; }
7367
 
  CTree *Son (int n) const { return (CTree*)0; }
7368
 
  // special new / delete with reusing memory
7369
 
  void *operator new (size_t);
7370
 
  void  operator delete (void *);
7371
 
   private:
7372
 
  typedef CT_PrivateName CCExprResolveExpr;
7373
 
 
7374
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7375
 
 public :
7376
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7377
 
  typedef CT_PrivateName CExprResolveExpr;
7378
 
 
7379
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7380
 
 public :
7381
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7382
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7383
 
};
7384
 
 
7385
 
 
7386
 
#line 7387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7387
 
} // closed Puma
7388
 
class WinIfExists;
7389
 
class WinImportHandler;
7390
 
class WinMacros;
7391
 
class CMatchSyntax;
7392
 
class ExtGnu;
7393
 
class ExtAC;
7394
 
class ExtACBuilderCoupling;
7395
 
class ExtACSyntaxCoupling;
7396
 
class ExtACTree;
7397
 
class ExtACKeywords;
7398
 
class WinAsm;
7399
 
class WinDeclSpecs;
7400
 
class WinMemberExplSpec;
7401
 
class WinTypeKeywords;
7402
 
class PragmaOnceUnitState;
7403
 
class PragmaOnce;
7404
 
class CCExprResolve;
7405
 
class CExprResolve;
7406
 
namespace Puma {
7407
 
 
7408
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7409
 
class CT_DestructorName : public CT_SpecialName {
7410
 
#line 7411 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7411
 
  friend class ::WinIfExists;
7412
 
  friend class ::WinImportHandler;
7413
 
  friend class ::WinMacros;
7414
 
  friend class ::CMatchSyntax;
7415
 
  friend class ::ExtGnu;
7416
 
  friend class ::ExtAC;
7417
 
  friend class ::ExtACBuilderCoupling;
7418
 
  friend class ::ExtACSyntaxCoupling;
7419
 
  friend class ::ExtACTree;
7420
 
  friend class ::ExtACKeywords;
7421
 
  friend class ::WinAsm;
7422
 
  friend class ::WinDeclSpecs;
7423
 
  friend class ::WinMemberExplSpec;
7424
 
  friend class ::WinTypeKeywords;
7425
 
  friend class ::PragmaOnceUnitState;
7426
 
  friend class ::PragmaOnce;
7427
 
  friend class ::CCExprResolve;
7428
 
  friend class ::CExprResolve;
7429
 
 
7430
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7431
 
 
7432
 
public:
7433
 
  CT_DestructorName (CTree *, CTree *);
7434
 
  static const char *NodeId ();
7435
 
  const char *NodeName () const { return NodeId (); }
7436
 
  // special new / delete with reusing memory
7437
 
  void *operator new (size_t);
7438
 
  void  operator delete (void *);
7439
 
   private:
7440
 
  typedef CT_DestructorName CCExprResolveExpr;
7441
 
 
7442
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7443
 
 public :
7444
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7445
 
  typedef CT_DestructorName CExprResolveExpr;
7446
 
 
7447
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7448
 
 public :
7449
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7450
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7451
 
};
7452
 
 
7453
 
 
7454
 
#line 7455 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7455
 
} // closed Puma
7456
 
class WinIfExists;
7457
 
class WinImportHandler;
7458
 
class WinMacros;
7459
 
class CMatchSyntax;
7460
 
class ExtGnu;
7461
 
class ExtAC;
7462
 
class ExtACBuilderCoupling;
7463
 
class ExtACSyntaxCoupling;
7464
 
class ExtACTree;
7465
 
class ExtACKeywords;
7466
 
class WinAsm;
7467
 
class WinDeclSpecs;
7468
 
class WinMemberExplSpec;
7469
 
class WinTypeKeywords;
7470
 
class PragmaOnceUnitState;
7471
 
class PragmaOnce;
7472
 
class CCExprResolve;
7473
 
class CExprResolve;
7474
 
namespace Puma {
7475
 
 
7476
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7477
 
class CT_TemplateName : public CT_SpecialName {
7478
 
#line 7479 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7479
 
  friend class ::WinIfExists;
7480
 
  friend class ::WinImportHandler;
7481
 
  friend class ::WinMacros;
7482
 
  friend class ::CMatchSyntax;
7483
 
  friend class ::ExtGnu;
7484
 
  friend class ::ExtAC;
7485
 
  friend class ::ExtACBuilderCoupling;
7486
 
  friend class ::ExtACSyntaxCoupling;
7487
 
  friend class ::ExtACTree;
7488
 
  friend class ::ExtACKeywords;
7489
 
  friend class ::WinAsm;
7490
 
  friend class ::WinDeclSpecs;
7491
 
  friend class ::WinMemberExplSpec;
7492
 
  friend class ::WinTypeKeywords;
7493
 
  friend class ::PragmaOnceUnitState;
7494
 
  friend class ::PragmaOnce;
7495
 
  friend class ::CCExprResolve;
7496
 
  friend class ::CExprResolve;
7497
 
 
7498
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7499
 
 
7500
 
public:
7501
 
  CT_TemplateName (CTree *n, CTree *a) 
7502
 
   { AddSon (n); AddSon (a); }
7503
 
  static const char *NodeId ();
7504
 
  const char *NodeName () const { return NodeId (); }
7505
 
  CT_TemplateArgList *Arguments () const 
7506
 
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
7507
 
  CT_SimpleName *TemplateName () const 
7508
 
   { return (CT_SimpleName*)Son (Sons ()-2); }
7509
 
  // may change in the future
7510
 
  const char *Text () const { return TemplateName ()->Text (); }
7511
 
  // special new / delete with reusing memory
7512
 
  void *operator new (size_t);
7513
 
  void  operator delete (void *);
7514
 
   private:
7515
 
  typedef CT_TemplateName CCExprResolveExpr;
7516
 
 
7517
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7518
 
 public :
7519
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7520
 
  typedef CT_TemplateName CExprResolveExpr;
7521
 
 
7522
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7523
 
 public :
7524
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7525
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7526
 
};
7527
 
 
7528
 
 
7529
 
#line 7530 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7530
 
} // closed Puma
7531
 
class WinIfExists;
7532
 
class WinImportHandler;
7533
 
class WinMacros;
7534
 
class CMatchSyntax;
7535
 
class ExtGnu;
7536
 
class ExtAC;
7537
 
class ExtACBuilderCoupling;
7538
 
class ExtACSyntaxCoupling;
7539
 
class ExtACTree;
7540
 
class ExtACKeywords;
7541
 
class WinAsm;
7542
 
class WinDeclSpecs;
7543
 
class WinMemberExplSpec;
7544
 
class WinTypeKeywords;
7545
 
class PragmaOnceUnitState;
7546
 
class PragmaOnce;
7547
 
class CCExprResolve;
7548
 
class CExprResolve;
7549
 
namespace Puma {
7550
 
 
7551
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7552
 
class CT_OperatorName : public CT_SpecialName {
7553
 
#line 7554 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7554
 
  friend class ::WinIfExists;
7555
 
  friend class ::WinImportHandler;
7556
 
  friend class ::WinMacros;
7557
 
  friend class ::CMatchSyntax;
7558
 
  friend class ::ExtGnu;
7559
 
  friend class ::ExtAC;
7560
 
  friend class ::ExtACBuilderCoupling;
7561
 
  friend class ::ExtACSyntaxCoupling;
7562
 
  friend class ::ExtACTree;
7563
 
  friend class ::ExtACKeywords;
7564
 
  friend class ::WinAsm;
7565
 
  friend class ::WinDeclSpecs;
7566
 
  friend class ::WinMemberExplSpec;
7567
 
  friend class ::WinTypeKeywords;
7568
 
  friend class ::PragmaOnceUnitState;
7569
 
  friend class ::PragmaOnce;
7570
 
  friend class ::CCExprResolve;
7571
 
  friend class ::CExprResolve;
7572
 
 
7573
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7574
 
 
7575
 
  int _oper;
7576
 
 
7577
 
public:
7578
 
  enum { // complex operators
7579
 
    FCT_CALL = -100,
7580
 
    SUBSCRIPT,
7581
 
    NEW_ARRAY,
7582
 
    DEL_ARRAY
7583
 
  };
7584
 
 
7585
 
public:
7586
 
  CT_OperatorName (CTree *);
7587
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
7588
 
  static const char *NodeId ();
7589
 
  const char *NodeName () const { return NodeId (); }
7590
 
  int Operator () const { return _oper; }
7591
 
  // special new / delete with reusing memory
7592
 
  void *operator new (size_t);
7593
 
  void  operator delete (void *);
7594
 
   private:
7595
 
  typedef CT_OperatorName CCExprResolveExpr;
7596
 
 
7597
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7598
 
 public :
7599
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7600
 
  typedef CT_OperatorName CExprResolveExpr;
7601
 
 
7602
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7603
 
 public :
7604
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7605
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7606
 
};
7607
 
 
7608
 
 
7609
 
#line 7610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7610
 
} // closed Puma
7611
 
class WinIfExists;
7612
 
class WinImportHandler;
7613
 
class WinMacros;
7614
 
class CMatchSyntax;
7615
 
class ExtGnu;
7616
 
class ExtAC;
7617
 
class ExtACBuilderCoupling;
7618
 
class ExtACSyntaxCoupling;
7619
 
class ExtACTree;
7620
 
class ExtACKeywords;
7621
 
class WinAsm;
7622
 
class WinDeclSpecs;
7623
 
class WinMemberExplSpec;
7624
 
class WinTypeKeywords;
7625
 
class PragmaOnceUnitState;
7626
 
class PragmaOnce;
7627
 
class CCExprResolve;
7628
 
class CExprResolve;
7629
 
namespace Puma {
7630
 
 
7631
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7632
 
class CT_ConversionName : public CT_SpecialName {
7633
 
#line 7634 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7634
 
  friend class ::WinIfExists;
7635
 
  friend class ::WinImportHandler;
7636
 
  friend class ::WinMacros;
7637
 
  friend class ::CMatchSyntax;
7638
 
  friend class ::ExtGnu;
7639
 
  friend class ::ExtAC;
7640
 
  friend class ::ExtACBuilderCoupling;
7641
 
  friend class ::ExtACSyntaxCoupling;
7642
 
  friend class ::ExtACTree;
7643
 
  friend class ::ExtACKeywords;
7644
 
  friend class ::WinAsm;
7645
 
  friend class ::WinDeclSpecs;
7646
 
  friend class ::WinMemberExplSpec;
7647
 
  friend class ::WinTypeKeywords;
7648
 
  friend class ::PragmaOnceUnitState;
7649
 
  friend class ::PragmaOnce;
7650
 
  friend class ::CCExprResolve;
7651
 
  friend class ::CExprResolve;
7652
 
 
7653
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7654
 
 
7655
 
public:
7656
 
  CT_ConversionName (CTree *, CTree *);
7657
 
  static const char *NodeId ();
7658
 
  const char *NodeName () const { return NodeId (); }
7659
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
7660
 
  // special new / delete with reusing memory
7661
 
  void *operator new (size_t);
7662
 
  void  operator delete (void *);
7663
 
   private:
7664
 
  typedef CT_ConversionName CCExprResolveExpr;
7665
 
 
7666
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7667
 
 public :
7668
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7669
 
  typedef CT_ConversionName CExprResolveExpr;
7670
 
 
7671
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7672
 
 public :
7673
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7674
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7675
 
};
7676
 
 
7677
 
 
7678
 
#line 7679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7679
 
} // closed Puma
7680
 
class WinIfExists;
7681
 
class WinImportHandler;
7682
 
class WinMacros;
7683
 
class CMatchSyntax;
7684
 
class ExtGnu;
7685
 
class ExtAC;
7686
 
class ExtACBuilderCoupling;
7687
 
class ExtACSyntaxCoupling;
7688
 
class ExtACTree;
7689
 
class ExtACKeywords;
7690
 
class WinAsm;
7691
 
class WinDeclSpecs;
7692
 
class WinMemberExplSpec;
7693
 
class WinTypeKeywords;
7694
 
class PragmaOnceUnitState;
7695
 
class PragmaOnce;
7696
 
class CCExprResolve;
7697
 
class CExprResolve;
7698
 
namespace Puma {
7699
 
 
7700
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7701
 
class CT_QualName : public CT_SimpleName {
7702
 
#line 7703 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7703
 
  friend class ::WinIfExists;
7704
 
  friend class ::WinImportHandler;
7705
 
  friend class ::WinMacros;
7706
 
  friend class ::CMatchSyntax;
7707
 
  friend class ::ExtGnu;
7708
 
  friend class ::ExtAC;
7709
 
  friend class ::ExtACBuilderCoupling;
7710
 
  friend class ::ExtACSyntaxCoupling;
7711
 
  friend class ::ExtACTree;
7712
 
  friend class ::ExtACKeywords;
7713
 
  friend class ::WinAsm;
7714
 
  friend class ::WinDeclSpecs;
7715
 
  friend class ::WinMemberExplSpec;
7716
 
  friend class ::WinTypeKeywords;
7717
 
  friend class ::PragmaOnceUnitState;
7718
 
  friend class ::PragmaOnce;
7719
 
  friend class ::CCExprResolve;
7720
 
  friend class ::CExprResolve;
7721
 
 
7722
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7723
 
 
7724
 
public:
7725
 
  CT_QualName (int size = 3) : 
7726
 
    CT_SimpleName (size, CT_List::SEPARATORS) {}
7727
 
  static const char *NodeId ();
7728
 
  const char *NodeName () const { return NodeId (); }
7729
 
  void print (ostream &) const;
7730
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
7731
 
  const char *Text () const { return Name ()->Text (); }
7732
 
  CTypeInfo *Type () const { return Name ()->Type (); }
7733
 
  CExprValue *Value () const { return Name ()->Value (); }
7734
 
  CSemValue *SemValue () const { return Name ()->SemValue (); }
7735
 
  CSemObject *SemObject () const { return Name ()->SemObject (); }
7736
 
  // special new / delete with reusing memory
7737
 
  void *operator new (size_t);
7738
 
  void  operator delete (void *);
7739
 
   private:
7740
 
  typedef CT_QualName CCExprResolveExpr;
7741
 
 
7742
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7743
 
 public :
7744
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7745
 
  typedef CT_QualName CExprResolveExpr;
7746
 
 
7747
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7748
 
 public :
7749
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7750
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7751
 
};
7752
 
 
7753
 
 
7754
 
#line 7755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7755
 
} // closed Puma
7756
 
class WinIfExists;
7757
 
class WinImportHandler;
7758
 
class WinMacros;
7759
 
class CMatchSyntax;
7760
 
class ExtGnu;
7761
 
class ExtAC;
7762
 
class ExtACBuilderCoupling;
7763
 
class ExtACSyntaxCoupling;
7764
 
class ExtACTree;
7765
 
class ExtACKeywords;
7766
 
class WinAsm;
7767
 
class WinDeclSpecs;
7768
 
class WinMemberExplSpec;
7769
 
class WinTypeKeywords;
7770
 
class PragmaOnceUnitState;
7771
 
class PragmaOnce;
7772
 
class CCExprResolve;
7773
 
class CExprResolve;
7774
 
namespace Puma {
7775
 
 
7776
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7777
 
class CT_RootQualName : public CT_QualName {
7778
 
#line 7779 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7779
 
  friend class ::WinIfExists;
7780
 
  friend class ::WinImportHandler;
7781
 
  friend class ::WinMacros;
7782
 
  friend class ::CMatchSyntax;
7783
 
  friend class ::ExtGnu;
7784
 
  friend class ::ExtAC;
7785
 
  friend class ::ExtACBuilderCoupling;
7786
 
  friend class ::ExtACSyntaxCoupling;
7787
 
  friend class ::ExtACTree;
7788
 
  friend class ::ExtACKeywords;
7789
 
  friend class ::WinAsm;
7790
 
  friend class ::WinDeclSpecs;
7791
 
  friend class ::WinMemberExplSpec;
7792
 
  friend class ::WinTypeKeywords;
7793
 
  friend class ::PragmaOnceUnitState;
7794
 
  friend class ::PragmaOnce;
7795
 
  friend class ::CCExprResolve;
7796
 
  friend class ::CExprResolve;
7797
 
 
7798
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7799
 
 
7800
 
public:
7801
 
  CT_RootQualName (int size = 2) : 
7802
 
    CT_QualName (size) { AddProperties (INTRO); }
7803
 
  static const char *NodeId ();
7804
 
  const char *NodeName () const { return NodeId (); }
7805
 
  // special new / delete with reusing memory
7806
 
  void *operator new (size_t);
7807
 
  void  operator delete (void *);
7808
 
   private:
7809
 
  typedef CT_RootQualName CCExprResolveExpr;
7810
 
 
7811
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7812
 
 public :
7813
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7814
 
  typedef CT_RootQualName CExprResolveExpr;
7815
 
 
7816
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7817
 
 public :
7818
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7819
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7820
 
};
7821
 
 
7822
 
 
7823
 
#line 7824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7824
 
} // closed Puma
7825
 
class WinIfExists;
7826
 
class WinImportHandler;
7827
 
class WinMacros;
7828
 
class CMatchSyntax;
7829
 
class ExtGnu;
7830
 
class ExtAC;
7831
 
class ExtACBuilderCoupling;
7832
 
class ExtACSyntaxCoupling;
7833
 
class ExtACTree;
7834
 
class ExtACKeywords;
7835
 
class WinAsm;
7836
 
class WinDeclSpecs;
7837
 
class WinMemberExplSpec;
7838
 
class WinTypeKeywords;
7839
 
class PragmaOnceUnitState;
7840
 
class PragmaOnce;
7841
 
class CCExprResolve;
7842
 
class CExprResolve;
7843
 
namespace Puma {
7844
 
 
7845
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7846
 
class CT_BinaryExpr : public CT_Expression {
7847
 
#line 7848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7848
 
  friend class ::WinIfExists;
7849
 
  friend class ::WinImportHandler;
7850
 
  friend class ::WinMacros;
7851
 
  friend class ::CMatchSyntax;
7852
 
  friend class ::ExtGnu;
7853
 
  friend class ::ExtAC;
7854
 
  friend class ::ExtACBuilderCoupling;
7855
 
  friend class ::ExtACSyntaxCoupling;
7856
 
  friend class ::ExtACTree;
7857
 
  friend class ::ExtACKeywords;
7858
 
  friend class ::WinAsm;
7859
 
  friend class ::WinDeclSpecs;
7860
 
  friend class ::WinMemberExplSpec;
7861
 
  friend class ::WinTypeKeywords;
7862
 
  friend class ::PragmaOnceUnitState;
7863
 
  friend class ::PragmaOnce;
7864
 
  friend class ::CCExprResolve;
7865
 
  friend class ::CExprResolve;
7866
 
 
7867
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7868
 
 
7869
 
  CTree *sons[3]; // expr, oper, expr
7870
 
 
7871
 
public:
7872
 
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
7873
 
    sons[0] = l; sons[1] = o; sons[2] = r;
7874
 
  }
7875
 
  static const char *NodeId ();
7876
 
  const char *NodeName () const { return NodeId (); }
7877
 
  int Sons () const { return 3; }
7878
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
7879
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
7880
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
7881
 
  }
7882
 
   private:
7883
 
  typedef CT_BinaryExpr CCExprResolveExpr;
7884
 
 
7885
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7886
 
 public :
7887
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7888
 
  typedef CT_BinaryExpr CExprResolveExpr;
7889
 
 
7890
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7891
 
 public :
7892
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7893
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7894
 
};
7895
 
 
7896
 
 
7897
 
#line 7898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7898
 
} // closed Puma
7899
 
class WinIfExists;
7900
 
class WinImportHandler;
7901
 
class WinMacros;
7902
 
class CMatchSyntax;
7903
 
class ExtGnu;
7904
 
class ExtAC;
7905
 
class ExtACBuilderCoupling;
7906
 
class ExtACSyntaxCoupling;
7907
 
class ExtACTree;
7908
 
class ExtACKeywords;
7909
 
class WinAsm;
7910
 
class WinDeclSpecs;
7911
 
class WinMemberExplSpec;
7912
 
class WinTypeKeywords;
7913
 
class PragmaOnceUnitState;
7914
 
class PragmaOnce;
7915
 
class CCExprResolve;
7916
 
class CExprResolve;
7917
 
namespace Puma {
7918
 
 
7919
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7920
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
7921
 
#line 7922 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7922
 
  friend class ::WinIfExists;
7923
 
  friend class ::WinImportHandler;
7924
 
  friend class ::WinMacros;
7925
 
  friend class ::CMatchSyntax;
7926
 
  friend class ::ExtGnu;
7927
 
  friend class ::ExtAC;
7928
 
  friend class ::ExtACBuilderCoupling;
7929
 
  friend class ::ExtACSyntaxCoupling;
7930
 
  friend class ::ExtACTree;
7931
 
  friend class ::ExtACKeywords;
7932
 
  friend class ::WinAsm;
7933
 
  friend class ::WinDeclSpecs;
7934
 
  friend class ::WinMemberExplSpec;
7935
 
  friend class ::WinTypeKeywords;
7936
 
  friend class ::PragmaOnceUnitState;
7937
 
  friend class ::PragmaOnce;
7938
 
  friend class ::CCExprResolve;
7939
 
  friend class ::CExprResolve;
7940
 
 
7941
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7942
 
 
7943
 
public:
7944
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
7945
 
    CT_BinaryExpr (e, o, i) {}
7946
 
  static const char *NodeId ();
7947
 
  const char *NodeName () const { return NodeId (); }
7948
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
7949
 
   private:
7950
 
  typedef CT_MembPtrExpr CCExprResolveExpr;
7951
 
 
7952
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7953
 
 public :
7954
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7955
 
  typedef CT_MembPtrExpr CExprResolveExpr;
7956
 
 
7957
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7958
 
 public :
7959
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7960
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7961
 
};
7962
 
 
7963
 
 
7964
 
#line 7965 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7965
 
} // closed Puma
7966
 
class WinIfExists;
7967
 
class WinImportHandler;
7968
 
class WinMacros;
7969
 
class CMatchSyntax;
7970
 
class ExtGnu;
7971
 
class ExtAC;
7972
 
class ExtACBuilderCoupling;
7973
 
class ExtACSyntaxCoupling;
7974
 
class ExtACTree;
7975
 
class ExtACKeywords;
7976
 
class WinAsm;
7977
 
class WinDeclSpecs;
7978
 
class WinMemberExplSpec;
7979
 
class WinTypeKeywords;
7980
 
class PragmaOnceUnitState;
7981
 
class PragmaOnce;
7982
 
class CCExprResolve;
7983
 
class CExprResolve;
7984
 
namespace Puma {
7985
 
 
7986
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7987
 
class CT_MembRefExpr : public CT_MembPtrExpr {
7988
 
#line 7989 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
7989
 
  friend class ::WinIfExists;
7990
 
  friend class ::WinImportHandler;
7991
 
  friend class ::WinMacros;
7992
 
  friend class ::CMatchSyntax;
7993
 
  friend class ::ExtGnu;
7994
 
  friend class ::ExtAC;
7995
 
  friend class ::ExtACBuilderCoupling;
7996
 
  friend class ::ExtACSyntaxCoupling;
7997
 
  friend class ::ExtACTree;
7998
 
  friend class ::ExtACKeywords;
7999
 
  friend class ::WinAsm;
8000
 
  friend class ::WinDeclSpecs;
8001
 
  friend class ::WinMemberExplSpec;
8002
 
  friend class ::WinTypeKeywords;
8003
 
  friend class ::PragmaOnceUnitState;
8004
 
  friend class ::PragmaOnce;
8005
 
  friend class ::CCExprResolve;
8006
 
  friend class ::CExprResolve;
8007
 
 
8008
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8009
 
 
8010
 
public:
8011
 
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
8012
 
    CT_MembPtrExpr (e, o, i) {}
8013
 
  static const char *NodeId ();
8014
 
  const char *NodeName () const { return NodeId (); }
8015
 
   private:
8016
 
  typedef CT_MembRefExpr CCExprResolveExpr;
8017
 
 
8018
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8019
 
 public :
8020
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8021
 
  typedef CT_MembRefExpr CExprResolveExpr;
8022
 
 
8023
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8024
 
 public :
8025
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8026
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8027
 
};
8028
 
 
8029
 
 
8030
 
#line 8031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8031
 
} // closed Puma
8032
 
class WinIfExists;
8033
 
class WinImportHandler;
8034
 
class WinMacros;
8035
 
class CMatchSyntax;
8036
 
class ExtGnu;
8037
 
class ExtAC;
8038
 
class ExtACBuilderCoupling;
8039
 
class ExtACSyntaxCoupling;
8040
 
class ExtACTree;
8041
 
class ExtACKeywords;
8042
 
class WinAsm;
8043
 
class WinDeclSpecs;
8044
 
class WinMemberExplSpec;
8045
 
class WinTypeKeywords;
8046
 
class PragmaOnceUnitState;
8047
 
class PragmaOnce;
8048
 
class CCExprResolve;
8049
 
class CExprResolve;
8050
 
namespace Puma {
8051
 
 
8052
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8053
 
class CT_UnaryExpr : public CT_Expression {
8054
 
#line 8055 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8055
 
  friend class ::WinIfExists;
8056
 
  friend class ::WinImportHandler;
8057
 
  friend class ::WinMacros;
8058
 
  friend class ::CMatchSyntax;
8059
 
  friend class ::ExtGnu;
8060
 
  friend class ::ExtAC;
8061
 
  friend class ::ExtACBuilderCoupling;
8062
 
  friend class ::ExtACSyntaxCoupling;
8063
 
  friend class ::ExtACTree;
8064
 
  friend class ::ExtACKeywords;
8065
 
  friend class ::WinAsm;
8066
 
  friend class ::WinDeclSpecs;
8067
 
  friend class ::WinMemberExplSpec;
8068
 
  friend class ::WinTypeKeywords;
8069
 
  friend class ::PragmaOnceUnitState;
8070
 
  friend class ::PragmaOnce;
8071
 
  friend class ::CCExprResolve;
8072
 
  friend class ::CExprResolve;
8073
 
 
8074
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8075
 
 
8076
 
  CTree *sons[2]; // oper, expr
8077
 
 
8078
 
public:
8079
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
8080
 
  static const char *NodeId ();
8081
 
  const char *NodeName () const { return NodeId (); }
8082
 
  int Sons () const { return 2; }
8083
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
8084
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8085
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8086
 
  }
8087
 
  CTree *Expr () const { return sons[1]; }
8088
 
   private:
8089
 
  typedef CT_UnaryExpr CCExprResolveExpr;
8090
 
 
8091
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8092
 
 public :
8093
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8094
 
  typedef CT_UnaryExpr CExprResolveExpr;
8095
 
 
8096
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8097
 
 public :
8098
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8099
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8100
 
};
8101
 
 
8102
 
 
8103
 
#line 8104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8104
 
} // closed Puma
8105
 
class WinIfExists;
8106
 
class WinImportHandler;
8107
 
class WinMacros;
8108
 
class CMatchSyntax;
8109
 
class ExtGnu;
8110
 
class ExtAC;
8111
 
class ExtACBuilderCoupling;
8112
 
class ExtACSyntaxCoupling;
8113
 
class ExtACTree;
8114
 
class ExtACKeywords;
8115
 
class WinAsm;
8116
 
class WinDeclSpecs;
8117
 
class WinMemberExplSpec;
8118
 
class WinTypeKeywords;
8119
 
class PragmaOnceUnitState;
8120
 
class PragmaOnce;
8121
 
class CCExprResolve;
8122
 
class CExprResolve;
8123
 
namespace Puma {
8124
 
 
8125
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8126
 
class CT_PostfixExpr : public CT_UnaryExpr {
8127
 
#line 8128 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8128
 
  friend class ::WinIfExists;
8129
 
  friend class ::WinImportHandler;
8130
 
  friend class ::WinMacros;
8131
 
  friend class ::CMatchSyntax;
8132
 
  friend class ::ExtGnu;
8133
 
  friend class ::ExtAC;
8134
 
  friend class ::ExtACBuilderCoupling;
8135
 
  friend class ::ExtACSyntaxCoupling;
8136
 
  friend class ::ExtACTree;
8137
 
  friend class ::ExtACKeywords;
8138
 
  friend class ::WinAsm;
8139
 
  friend class ::WinDeclSpecs;
8140
 
  friend class ::WinMemberExplSpec;
8141
 
  friend class ::WinTypeKeywords;
8142
 
  friend class ::PragmaOnceUnitState;
8143
 
  friend class ::PragmaOnce;
8144
 
  friend class ::CCExprResolve;
8145
 
  friend class ::CExprResolve;
8146
 
 
8147
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8148
 
 
8149
 
public:
8150
 
  CT_PostfixExpr (CTree *e, CTree *o) :
8151
 
    CT_UnaryExpr (e, o) {}
8152
 
  static const char *NodeId ();
8153
 
  const char *NodeName () const { return NodeId (); }
8154
 
   private:
8155
 
  typedef CT_PostfixExpr CCExprResolveExpr;
8156
 
 
8157
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8158
 
 public :
8159
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8160
 
  typedef CT_PostfixExpr CExprResolveExpr;
8161
 
 
8162
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8163
 
 public :
8164
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8165
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8166
 
};
8167
 
 
8168
 
 
8169
 
#line 8170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8170
 
} // closed Puma
8171
 
class WinIfExists;
8172
 
class WinImportHandler;
8173
 
class WinMacros;
8174
 
class CMatchSyntax;
8175
 
class ExtGnu;
8176
 
class ExtAC;
8177
 
class ExtACBuilderCoupling;
8178
 
class ExtACSyntaxCoupling;
8179
 
class ExtACTree;
8180
 
class ExtACKeywords;
8181
 
class WinAsm;
8182
 
class WinDeclSpecs;
8183
 
class WinMemberExplSpec;
8184
 
class WinTypeKeywords;
8185
 
class PragmaOnceUnitState;
8186
 
class PragmaOnce;
8187
 
class CCExprResolve;
8188
 
class CExprResolve;
8189
 
namespace Puma {
8190
 
 
8191
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8192
 
class CT_AddrExpr : public CT_UnaryExpr {
8193
 
#line 8194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8194
 
  friend class ::WinIfExists;
8195
 
  friend class ::WinImportHandler;
8196
 
  friend class ::WinMacros;
8197
 
  friend class ::CMatchSyntax;
8198
 
  friend class ::ExtGnu;
8199
 
  friend class ::ExtAC;
8200
 
  friend class ::ExtACBuilderCoupling;
8201
 
  friend class ::ExtACSyntaxCoupling;
8202
 
  friend class ::ExtACTree;
8203
 
  friend class ::ExtACKeywords;
8204
 
  friend class ::WinAsm;
8205
 
  friend class ::WinDeclSpecs;
8206
 
  friend class ::WinMemberExplSpec;
8207
 
  friend class ::WinTypeKeywords;
8208
 
  friend class ::PragmaOnceUnitState;
8209
 
  friend class ::PragmaOnce;
8210
 
  friend class ::CCExprResolve;
8211
 
  friend class ::CExprResolve;
8212
 
 
8213
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8214
 
 
8215
 
public:
8216
 
  CT_AddrExpr (CTree *o, CTree *e) :
8217
 
    CT_UnaryExpr (o, e) {}
8218
 
  static const char *NodeId ();
8219
 
  const char *NodeName () const { return NodeId (); }
8220
 
   private:
8221
 
  typedef CT_AddrExpr CCExprResolveExpr;
8222
 
 
8223
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8224
 
 public :
8225
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8226
 
  typedef CT_AddrExpr CExprResolveExpr;
8227
 
 
8228
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8229
 
 public :
8230
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8231
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8232
 
};
8233
 
 
8234
 
 
8235
 
#line 8236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8236
 
} // closed Puma
8237
 
class WinIfExists;
8238
 
class WinImportHandler;
8239
 
class WinMacros;
8240
 
class CMatchSyntax;
8241
 
class ExtGnu;
8242
 
class ExtAC;
8243
 
class ExtACBuilderCoupling;
8244
 
class ExtACSyntaxCoupling;
8245
 
class ExtACTree;
8246
 
class ExtACKeywords;
8247
 
class WinAsm;
8248
 
class WinDeclSpecs;
8249
 
class WinMemberExplSpec;
8250
 
class WinTypeKeywords;
8251
 
class PragmaOnceUnitState;
8252
 
class PragmaOnce;
8253
 
class CCExprResolve;
8254
 
class CExprResolve;
8255
 
namespace Puma {
8256
 
 
8257
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8258
 
class CT_DerefExpr : public CT_UnaryExpr {
8259
 
#line 8260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8260
 
  friend class ::WinIfExists;
8261
 
  friend class ::WinImportHandler;
8262
 
  friend class ::WinMacros;
8263
 
  friend class ::CMatchSyntax;
8264
 
  friend class ::ExtGnu;
8265
 
  friend class ::ExtAC;
8266
 
  friend class ::ExtACBuilderCoupling;
8267
 
  friend class ::ExtACSyntaxCoupling;
8268
 
  friend class ::ExtACTree;
8269
 
  friend class ::ExtACKeywords;
8270
 
  friend class ::WinAsm;
8271
 
  friend class ::WinDeclSpecs;
8272
 
  friend class ::WinMemberExplSpec;
8273
 
  friend class ::WinTypeKeywords;
8274
 
  friend class ::PragmaOnceUnitState;
8275
 
  friend class ::PragmaOnce;
8276
 
  friend class ::CCExprResolve;
8277
 
  friend class ::CExprResolve;
8278
 
 
8279
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8280
 
 
8281
 
public:
8282
 
  CT_DerefExpr (CTree *o, CTree *e) :
8283
 
    CT_UnaryExpr (o, e) {}
8284
 
  static const char *NodeId ();
8285
 
  const char *NodeName () const { return NodeId (); }
8286
 
   private:
8287
 
  typedef CT_DerefExpr CCExprResolveExpr;
8288
 
 
8289
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8290
 
 public :
8291
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8292
 
  typedef CT_DerefExpr CExprResolveExpr;
8293
 
 
8294
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8295
 
 public :
8296
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8297
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8298
 
};
8299
 
 
8300
 
 
8301
 
#line 8302 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8302
 
} // closed Puma
8303
 
class WinIfExists;
8304
 
class WinImportHandler;
8305
 
class WinMacros;
8306
 
class CMatchSyntax;
8307
 
class ExtGnu;
8308
 
class ExtAC;
8309
 
class ExtACBuilderCoupling;
8310
 
class ExtACSyntaxCoupling;
8311
 
class ExtACTree;
8312
 
class ExtACKeywords;
8313
 
class WinAsm;
8314
 
class WinDeclSpecs;
8315
 
class WinMemberExplSpec;
8316
 
class WinTypeKeywords;
8317
 
class PragmaOnceUnitState;
8318
 
class PragmaOnce;
8319
 
class CCExprResolve;
8320
 
class CExprResolve;
8321
 
namespace Puma {
8322
 
 
8323
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8324
 
class CT_DeleteExpr : public CT_Expression, public CSemObject {
8325
 
#line 8326 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8326
 
  friend class ::WinIfExists;
8327
 
  friend class ::WinImportHandler;
8328
 
  friend class ::WinMacros;
8329
 
  friend class ::CMatchSyntax;
8330
 
  friend class ::ExtGnu;
8331
 
  friend class ::ExtAC;
8332
 
  friend class ::ExtACBuilderCoupling;
8333
 
  friend class ::ExtACSyntaxCoupling;
8334
 
  friend class ::ExtACTree;
8335
 
  friend class ::ExtACKeywords;
8336
 
  friend class ::WinAsm;
8337
 
  friend class ::WinDeclSpecs;
8338
 
  friend class ::WinMemberExplSpec;
8339
 
  friend class ::WinTypeKeywords;
8340
 
  friend class ::PragmaOnceUnitState;
8341
 
  friend class ::PragmaOnce;
8342
 
  friend class ::CCExprResolve;
8343
 
  friend class ::CExprResolve;
8344
 
 
8345
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8346
 
 
8347
 
  CTree *sons[2]; // oper, expr
8348
 
 
8349
 
public:
8350
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
8351
 
  static const char *NodeId ();
8352
 
  const char *NodeName () const { return NodeId (); }
8353
 
  int Sons () const { return 2; }
8354
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
8355
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8356
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8357
 
  }
8358
 
  CTree *Expr () const { return sons[1]; }
8359
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
8360
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
8361
 
   private:
8362
 
  typedef CT_DeleteExpr CCExprResolveExpr;
8363
 
 
8364
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8365
 
 public :
8366
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8367
 
  typedef CT_DeleteExpr CExprResolveExpr;
8368
 
 
8369
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8370
 
 public :
8371
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8372
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8373
 
};
8374
 
 
8375
 
 
8376
 
#line 8377 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8377
 
} // closed Puma
8378
 
class WinIfExists;
8379
 
class WinImportHandler;
8380
 
class WinMacros;
8381
 
class CMatchSyntax;
8382
 
class ExtGnu;
8383
 
class ExtAC;
8384
 
class ExtACBuilderCoupling;
8385
 
class ExtACSyntaxCoupling;
8386
 
class ExtACTree;
8387
 
class ExtACKeywords;
8388
 
class WinAsm;
8389
 
class WinDeclSpecs;
8390
 
class WinMemberExplSpec;
8391
 
class WinTypeKeywords;
8392
 
class PragmaOnceUnitState;
8393
 
class PragmaOnce;
8394
 
class CCExprResolve;
8395
 
class CExprResolve;
8396
 
namespace Puma {
8397
 
 
8398
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8399
 
class CT_NewExpr : public CT_Expression, public CSemObject {
8400
 
#line 8401 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8401
 
  friend class ::WinIfExists;
8402
 
  friend class ::WinImportHandler;
8403
 
  friend class ::WinMacros;
8404
 
  friend class ::CMatchSyntax;
8405
 
  friend class ::ExtGnu;
8406
 
  friend class ::ExtAC;
8407
 
  friend class ::ExtACBuilderCoupling;
8408
 
  friend class ::ExtACSyntaxCoupling;
8409
 
  friend class ::ExtACTree;
8410
 
  friend class ::ExtACKeywords;
8411
 
  friend class ::WinAsm;
8412
 
  friend class ::WinDeclSpecs;
8413
 
  friend class ::WinMemberExplSpec;
8414
 
  friend class ::WinTypeKeywords;
8415
 
  friend class ::PragmaOnceUnitState;
8416
 
  friend class ::PragmaOnce;
8417
 
  friend class ::CCExprResolve;
8418
 
  friend class ::CExprResolve;
8419
 
 
8420
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8421
 
 
8422
 
  CTree *sons[6]; // oper, placement, open, type, close, init
8423
 
 
8424
 
public:
8425
 
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
8426
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
8427
 
  }
8428
 
  static const char *NodeId ();
8429
 
  const char *NodeName () const { return NodeId (); }
8430
 
  int Sons () const { return CTree::Sons (sons, 6); }
8431
 
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
8432
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8433
 
    CTree::ReplaceSon (sons, 6, old_son, new_son);
8434
 
  }
8435
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
8436
 
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
8437
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
8438
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
8439
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
8440
 
   private:
8441
 
  typedef CT_NewExpr CCExprResolveExpr;
8442
 
 
8443
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8444
 
 public :
8445
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8446
 
  typedef CT_NewExpr CExprResolveExpr;
8447
 
 
8448
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8449
 
 public :
8450
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8451
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8452
 
};
8453
 
 
8454
 
 
8455
 
#line 8456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8456
 
} // closed Puma
8457
 
class WinIfExists;
8458
 
class WinImportHandler;
8459
 
class WinMacros;
8460
 
class CMatchSyntax;
8461
 
class ExtGnu;
8462
 
class ExtAC;
8463
 
class ExtACBuilderCoupling;
8464
 
class ExtACSyntaxCoupling;
8465
 
class ExtACTree;
8466
 
class ExtACKeywords;
8467
 
class WinAsm;
8468
 
class WinDeclSpecs;
8469
 
class WinMemberExplSpec;
8470
 
class WinTypeKeywords;
8471
 
class PragmaOnceUnitState;
8472
 
class PragmaOnce;
8473
 
class CCExprResolve;
8474
 
class CExprResolve;
8475
 
namespace Puma {
8476
 
 
8477
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8478
 
class CT_IfThenExpr : public CT_Expression {
8479
 
#line 8480 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8480
 
  friend class ::WinIfExists;
8481
 
  friend class ::WinImportHandler;
8482
 
  friend class ::WinMacros;
8483
 
  friend class ::CMatchSyntax;
8484
 
  friend class ::ExtGnu;
8485
 
  friend class ::ExtAC;
8486
 
  friend class ::ExtACBuilderCoupling;
8487
 
  friend class ::ExtACSyntaxCoupling;
8488
 
  friend class ::ExtACTree;
8489
 
  friend class ::ExtACKeywords;
8490
 
  friend class ::WinAsm;
8491
 
  friend class ::WinDeclSpecs;
8492
 
  friend class ::WinMemberExplSpec;
8493
 
  friend class ::WinTypeKeywords;
8494
 
  friend class ::PragmaOnceUnitState;
8495
 
  friend class ::PragmaOnce;
8496
 
  friend class ::CCExprResolve;
8497
 
  friend class ::CExprResolve;
8498
 
 
8499
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8500
 
 
8501
 
  CTree *sons[5]; // cond, oper, left, colon, right
8502
 
 
8503
 
public:
8504
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
8505
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
8506
 
  }
8507
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
8508
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
8509
 
  }
8510
 
  static const char *NodeId ();
8511
 
  const char *NodeName () const { return NodeId (); }
8512
 
  int Sons () const { return CTree::Sons (sons, 5); }
8513
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
8514
 
  CTree *Condition () const { return sons[0]; }
8515
 
  CTree *LeftOperand () const { return sons[2]; }
8516
 
  CTree *RightOperand () const { return sons[4]; }
8517
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8518
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
8519
 
  }
8520
 
   private:
8521
 
  typedef CT_IfThenExpr CCExprResolveExpr;
8522
 
 
8523
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8524
 
 public :
8525
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8526
 
  typedef CT_IfThenExpr CExprResolveExpr;
8527
 
 
8528
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8529
 
 public :
8530
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8531
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8532
 
};
8533
 
 
8534
 
 
8535
 
#line 8536 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8536
 
} // closed Puma
8537
 
class WinIfExists;
8538
 
class WinImportHandler;
8539
 
class WinMacros;
8540
 
class CMatchSyntax;
8541
 
class ExtGnu;
8542
 
class ExtAC;
8543
 
class ExtACBuilderCoupling;
8544
 
class ExtACSyntaxCoupling;
8545
 
class ExtACTree;
8546
 
class ExtACKeywords;
8547
 
class WinAsm;
8548
 
class WinDeclSpecs;
8549
 
class WinMemberExplSpec;
8550
 
class WinTypeKeywords;
8551
 
class PragmaOnceUnitState;
8552
 
class PragmaOnce;
8553
 
class CCExprResolve;
8554
 
class CExprResolve;
8555
 
namespace Puma {
8556
 
 
8557
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8558
 
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
8559
 
#line 8560 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8560
 
  friend class ::WinIfExists;
8561
 
  friend class ::WinImportHandler;
8562
 
  friend class ::WinMacros;
8563
 
  friend class ::CMatchSyntax;
8564
 
  friend class ::ExtGnu;
8565
 
  friend class ::ExtAC;
8566
 
  friend class ::ExtACBuilderCoupling;
8567
 
  friend class ::ExtACSyntaxCoupling;
8568
 
  friend class ::ExtACTree;
8569
 
  friend class ::ExtACKeywords;
8570
 
  friend class ::WinAsm;
8571
 
  friend class ::WinDeclSpecs;
8572
 
  friend class ::WinMemberExplSpec;
8573
 
  friend class ::WinTypeKeywords;
8574
 
  friend class ::PragmaOnceUnitState;
8575
 
  friend class ::PragmaOnce;
8576
 
  friend class ::CCExprResolve;
8577
 
  friend class ::CExprResolve;
8578
 
 
8579
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8580
 
 
8581
 
  CTree *sons[4]; // open, type, close, init
8582
 
 
8583
 
public:
8584
 
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
8585
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
8586
 
  }
8587
 
  static const char *NodeId ();
8588
 
  const char *NodeName () const { return NodeId (); }
8589
 
  int Sons () const { return 4; }
8590
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
8591
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8592
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
8593
 
  }
8594
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
8595
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
8596
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
8597
 
   private:
8598
 
  typedef CT_CmpdLiteral CCExprResolveExpr;
8599
 
 
8600
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8601
 
 public :
8602
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8603
 
  typedef CT_CmpdLiteral CExprResolveExpr;
8604
 
 
8605
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8606
 
 public :
8607
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8608
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8609
 
};
8610
 
 
8611
 
 
8612
 
#line 8613 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8613
 
} // closed Puma
8614
 
class WinIfExists;
8615
 
class WinImportHandler;
8616
 
class WinMacros;
8617
 
class CMatchSyntax;
8618
 
class ExtGnu;
8619
 
class ExtAC;
8620
 
class ExtACBuilderCoupling;
8621
 
class ExtACSyntaxCoupling;
8622
 
class ExtACTree;
8623
 
class ExtACKeywords;
8624
 
class WinAsm;
8625
 
class WinDeclSpecs;
8626
 
class WinMemberExplSpec;
8627
 
class WinTypeKeywords;
8628
 
class PragmaOnceUnitState;
8629
 
class PragmaOnce;
8630
 
class CCExprResolve;
8631
 
class CExprResolve;
8632
 
namespace Puma {
8633
 
 
8634
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8635
 
class CT_ConstructExpr : public CT_Expression, public CSemObject {
8636
 
#line 8637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8637
 
  friend class ::WinIfExists;
8638
 
  friend class ::WinImportHandler;
8639
 
  friend class ::WinMacros;
8640
 
  friend class ::CMatchSyntax;
8641
 
  friend class ::ExtGnu;
8642
 
  friend class ::ExtAC;
8643
 
  friend class ::ExtACBuilderCoupling;
8644
 
  friend class ::ExtACSyntaxCoupling;
8645
 
  friend class ::ExtACTree;
8646
 
  friend class ::ExtACKeywords;
8647
 
  friend class ::WinAsm;
8648
 
  friend class ::WinDeclSpecs;
8649
 
  friend class ::WinMemberExplSpec;
8650
 
  friend class ::WinTypeKeywords;
8651
 
  friend class ::PragmaOnceUnitState;
8652
 
  friend class ::PragmaOnce;
8653
 
  friend class ::CCExprResolve;
8654
 
  friend class ::CExprResolve;
8655
 
 
8656
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8657
 
 
8658
 
  CTree *sons[2]; // type, init
8659
 
 
8660
 
public:
8661
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
8662
 
  static const char *NodeId ();
8663
 
  const char *NodeName () const { return NodeId (); }
8664
 
  int Sons () const { return 2; }
8665
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
8666
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8667
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8668
 
  }
8669
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
8670
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
8671
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
8672
 
   private:
8673
 
  typedef CT_ConstructExpr CCExprResolveExpr;
8674
 
 
8675
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8676
 
 public :
8677
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8678
 
  typedef CT_ConstructExpr CExprResolveExpr;
8679
 
 
8680
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8681
 
 public :
8682
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8683
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8684
 
};
8685
 
 
8686
 
 
8687
 
#line 8688 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8688
 
} // closed Puma
8689
 
class WinIfExists;
8690
 
class WinImportHandler;
8691
 
class WinMacros;
8692
 
class CMatchSyntax;
8693
 
class ExtGnu;
8694
 
class ExtAC;
8695
 
class ExtACBuilderCoupling;
8696
 
class ExtACSyntaxCoupling;
8697
 
class ExtACTree;
8698
 
class ExtACKeywords;
8699
 
class WinAsm;
8700
 
class WinDeclSpecs;
8701
 
class WinMemberExplSpec;
8702
 
class WinTypeKeywords;
8703
 
class PragmaOnceUnitState;
8704
 
class PragmaOnce;
8705
 
class CCExprResolve;
8706
 
class CExprResolve;
8707
 
namespace Puma {
8708
 
 
8709
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8710
 
class CT_ThrowExpr : public CT_Expression {
8711
 
#line 8712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8712
 
  friend class ::WinIfExists;
8713
 
  friend class ::WinImportHandler;
8714
 
  friend class ::WinMacros;
8715
 
  friend class ::CMatchSyntax;
8716
 
  friend class ::ExtGnu;
8717
 
  friend class ::ExtAC;
8718
 
  friend class ::ExtACBuilderCoupling;
8719
 
  friend class ::ExtACSyntaxCoupling;
8720
 
  friend class ::ExtACTree;
8721
 
  friend class ::ExtACKeywords;
8722
 
  friend class ::WinAsm;
8723
 
  friend class ::WinDeclSpecs;
8724
 
  friend class ::WinMemberExplSpec;
8725
 
  friend class ::WinTypeKeywords;
8726
 
  friend class ::PragmaOnceUnitState;
8727
 
  friend class ::PragmaOnce;
8728
 
  friend class ::CCExprResolve;
8729
 
  friend class ::CExprResolve;
8730
 
 
8731
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8732
 
 
8733
 
  CTree *sons[2]; // throw, expr
8734
 
 
8735
 
public:
8736
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
8737
 
  static const char *NodeId ();
8738
 
  const char *NodeName () const { return NodeId (); }
8739
 
  int Sons () const { return CTree::Sons (sons, 2); }
8740
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
8741
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8742
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8743
 
  }
8744
 
  CTree *Expr () const { return sons[1]; }
8745
 
   private:
8746
 
  typedef CT_ThrowExpr CCExprResolveExpr;
8747
 
 
8748
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8749
 
 public :
8750
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8751
 
  typedef CT_ThrowExpr CExprResolveExpr;
8752
 
 
8753
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8754
 
 public :
8755
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8756
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8757
 
};
8758
 
 
8759
 
 
8760
 
#line 8761 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8761
 
} // closed Puma
8762
 
class WinIfExists;
8763
 
class WinImportHandler;
8764
 
class WinMacros;
8765
 
class CMatchSyntax;
8766
 
class ExtGnu;
8767
 
class ExtAC;
8768
 
class ExtACBuilderCoupling;
8769
 
class ExtACSyntaxCoupling;
8770
 
class ExtACTree;
8771
 
class ExtACKeywords;
8772
 
class WinAsm;
8773
 
class WinDeclSpecs;
8774
 
class WinMemberExplSpec;
8775
 
class WinTypeKeywords;
8776
 
class PragmaOnceUnitState;
8777
 
class PragmaOnce;
8778
 
class CCExprResolve;
8779
 
class CExprResolve;
8780
 
namespace Puma {
8781
 
 
8782
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8783
 
class CT_IndexExpr : public CT_Expression {
8784
 
#line 8785 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8785
 
  friend class ::WinIfExists;
8786
 
  friend class ::WinImportHandler;
8787
 
  friend class ::WinMacros;
8788
 
  friend class ::CMatchSyntax;
8789
 
  friend class ::ExtGnu;
8790
 
  friend class ::ExtAC;
8791
 
  friend class ::ExtACBuilderCoupling;
8792
 
  friend class ::ExtACSyntaxCoupling;
8793
 
  friend class ::ExtACTree;
8794
 
  friend class ::ExtACKeywords;
8795
 
  friend class ::WinAsm;
8796
 
  friend class ::WinDeclSpecs;
8797
 
  friend class ::WinMemberExplSpec;
8798
 
  friend class ::WinTypeKeywords;
8799
 
  friend class ::PragmaOnceUnitState;
8800
 
  friend class ::PragmaOnce;
8801
 
  friend class ::CCExprResolve;
8802
 
  friend class ::CExprResolve;
8803
 
 
8804
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8805
 
 
8806
 
  CTree *sons[4]; // expr, open, index, close
8807
 
 
8808
 
public:
8809
 
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
8810
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
8811
 
  }
8812
 
  static const char *NodeId ();
8813
 
  const char *NodeName () const { return NodeId (); }
8814
 
  int Sons () const { return 4; }
8815
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
8816
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8817
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
8818
 
  }
8819
 
   private:
8820
 
  typedef CT_IndexExpr CCExprResolveExpr;
8821
 
 
8822
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8823
 
 public :
8824
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8825
 
  typedef CT_IndexExpr CExprResolveExpr;
8826
 
 
8827
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8828
 
 public :
8829
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8830
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8831
 
};
8832
 
 
8833
 
 
8834
 
#line 8835 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8835
 
} // closed Puma
8836
 
class WinIfExists;
8837
 
class WinImportHandler;
8838
 
class WinMacros;
8839
 
class CMatchSyntax;
8840
 
class ExtGnu;
8841
 
class ExtAC;
8842
 
class ExtACBuilderCoupling;
8843
 
class ExtACSyntaxCoupling;
8844
 
class ExtACTree;
8845
 
class ExtACKeywords;
8846
 
class WinAsm;
8847
 
class WinDeclSpecs;
8848
 
class WinMemberExplSpec;
8849
 
class WinTypeKeywords;
8850
 
class PragmaOnceUnitState;
8851
 
class PragmaOnce;
8852
 
class CCExprResolve;
8853
 
class CExprResolve;
8854
 
namespace Puma {
8855
 
 
8856
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8857
 
class CT_CallExpr : public CT_Expression, public CSemObject {
8858
 
#line 8859 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8859
 
  friend class ::WinIfExists;
8860
 
  friend class ::WinImportHandler;
8861
 
  friend class ::WinMacros;
8862
 
  friend class ::CMatchSyntax;
8863
 
  friend class ::ExtGnu;
8864
 
  friend class ::ExtAC;
8865
 
  friend class ::ExtACBuilderCoupling;
8866
 
  friend class ::ExtACSyntaxCoupling;
8867
 
  friend class ::ExtACTree;
8868
 
  friend class ::ExtACKeywords;
8869
 
  friend class ::WinAsm;
8870
 
  friend class ::WinDeclSpecs;
8871
 
  friend class ::WinMemberExplSpec;
8872
 
  friend class ::WinTypeKeywords;
8873
 
  friend class ::PragmaOnceUnitState;
8874
 
  friend class ::PragmaOnce;
8875
 
  friend class ::CCExprResolve;
8876
 
  friend class ::CExprResolve;
8877
 
 
8878
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8879
 
 
8880
 
  CTree *sons[2]; // expr, args
8881
 
 
8882
 
public:
8883
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
8884
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
8885
 
  static const char *NodeId ();
8886
 
  const char *NodeName () const { return NodeId (); }
8887
 
  int Sons () const { return CTree::Sons (sons, 2); }
8888
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
8889
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8890
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8891
 
  }
8892
 
  CTree *Expr () const { return sons[0]; }
8893
 
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
8894
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
8895
 
   private:
8896
 
  typedef CT_CallExpr CCExprResolveExpr;
8897
 
 
8898
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8899
 
 public :
8900
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8901
 
  typedef CT_CallExpr CExprResolveExpr;
8902
 
 
8903
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8904
 
 public :
8905
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8906
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8907
 
};
8908
 
 
8909
 
 
8910
 
#line 8911 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8911
 
} // closed Puma
8912
 
class WinIfExists;
8913
 
class WinImportHandler;
8914
 
class WinMacros;
8915
 
class CMatchSyntax;
8916
 
class ExtGnu;
8917
 
class ExtAC;
8918
 
class ExtACBuilderCoupling;
8919
 
class ExtACSyntaxCoupling;
8920
 
class ExtACTree;
8921
 
class ExtACKeywords;
8922
 
class WinAsm;
8923
 
class WinDeclSpecs;
8924
 
class WinMemberExplSpec;
8925
 
class WinTypeKeywords;
8926
 
class PragmaOnceUnitState;
8927
 
class PragmaOnce;
8928
 
class CCExprResolve;
8929
 
class CExprResolve;
8930
 
namespace Puma {
8931
 
 
8932
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8933
 
class CT_CastExpr : public CT_Expression {
8934
 
#line 8935 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8935
 
  friend class ::WinIfExists;
8936
 
  friend class ::WinImportHandler;
8937
 
  friend class ::WinMacros;
8938
 
  friend class ::CMatchSyntax;
8939
 
  friend class ::ExtGnu;
8940
 
  friend class ::ExtAC;
8941
 
  friend class ::ExtACBuilderCoupling;
8942
 
  friend class ::ExtACSyntaxCoupling;
8943
 
  friend class ::ExtACTree;
8944
 
  friend class ::ExtACKeywords;
8945
 
  friend class ::WinAsm;
8946
 
  friend class ::WinDeclSpecs;
8947
 
  friend class ::WinMemberExplSpec;
8948
 
  friend class ::WinTypeKeywords;
8949
 
  friend class ::PragmaOnceUnitState;
8950
 
  friend class ::PragmaOnce;
8951
 
  friend class ::CCExprResolve;
8952
 
  friend class ::CExprResolve;
8953
 
 
8954
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8955
 
 
8956
 
  CTree *sons[4]; // open, type, close, expr
8957
 
 
8958
 
public:
8959
 
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
8960
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
8961
 
  }
8962
 
  static const char *NodeId ();
8963
 
  const char *NodeName () const { return NodeId (); }
8964
 
  int Sons () const { return 4; }
8965
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
8966
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8967
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
8968
 
  }
8969
 
  CTree *Expr () const { return sons[3]; }
8970
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
8971
 
   private:
8972
 
  typedef CT_CastExpr CCExprResolveExpr;
8973
 
 
8974
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8975
 
 public :
8976
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8977
 
  typedef CT_CastExpr CExprResolveExpr;
8978
 
 
8979
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8980
 
 public :
8981
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8982
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8983
 
};
8984
 
 
8985
 
 
8986
 
#line 8987 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
8987
 
} // closed Puma
8988
 
class WinIfExists;
8989
 
class WinImportHandler;
8990
 
class WinMacros;
8991
 
class CMatchSyntax;
8992
 
class ExtGnu;
8993
 
class ExtAC;
8994
 
class ExtACBuilderCoupling;
8995
 
class ExtACSyntaxCoupling;
8996
 
class ExtACTree;
8997
 
class ExtACKeywords;
8998
 
class WinAsm;
8999
 
class WinDeclSpecs;
9000
 
class WinMemberExplSpec;
9001
 
class WinTypeKeywords;
9002
 
class PragmaOnceUnitState;
9003
 
class PragmaOnce;
9004
 
class CCExprResolve;
9005
 
class CExprResolve;
9006
 
namespace Puma {
9007
 
 
9008
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9009
 
class CT_StaticCast : public CT_Expression {
9010
 
#line 9011 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9011
 
  friend class ::WinIfExists;
9012
 
  friend class ::WinImportHandler;
9013
 
  friend class ::WinMacros;
9014
 
  friend class ::CMatchSyntax;
9015
 
  friend class ::ExtGnu;
9016
 
  friend class ::ExtAC;
9017
 
  friend class ::ExtACBuilderCoupling;
9018
 
  friend class ::ExtACSyntaxCoupling;
9019
 
  friend class ::ExtACTree;
9020
 
  friend class ::ExtACKeywords;
9021
 
  friend class ::WinAsm;
9022
 
  friend class ::WinDeclSpecs;
9023
 
  friend class ::WinMemberExplSpec;
9024
 
  friend class ::WinTypeKeywords;
9025
 
  friend class ::PragmaOnceUnitState;
9026
 
  friend class ::PragmaOnce;
9027
 
  friend class ::CCExprResolve;
9028
 
  friend class ::CExprResolve;
9029
 
 
9030
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9031
 
 
9032
 
  CTree *sons[5]; // cast, open, type, close, expr
9033
 
 
9034
 
public:
9035
 
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
9036
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
9037
 
  }
9038
 
  static const char *NodeId ();
9039
 
  const char *NodeName () const { return NodeId (); }
9040
 
  int Sons () const { return 5; }
9041
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
9042
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9043
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
9044
 
  }
9045
 
  CTree *Expr () const { return sons[4]; }
9046
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
9047
 
   private:
9048
 
  typedef CT_StaticCast CCExprResolveExpr;
9049
 
 
9050
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9051
 
 public :
9052
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9053
 
  typedef CT_StaticCast CExprResolveExpr;
9054
 
 
9055
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9056
 
 public :
9057
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9058
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9059
 
};
9060
 
 
9061
 
 
9062
 
#line 9063 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9063
 
} // closed Puma
9064
 
class WinIfExists;
9065
 
class WinImportHandler;
9066
 
class WinMacros;
9067
 
class CMatchSyntax;
9068
 
class ExtGnu;
9069
 
class ExtAC;
9070
 
class ExtACBuilderCoupling;
9071
 
class ExtACSyntaxCoupling;
9072
 
class ExtACTree;
9073
 
class ExtACKeywords;
9074
 
class WinAsm;
9075
 
class WinDeclSpecs;
9076
 
class WinMemberExplSpec;
9077
 
class WinTypeKeywords;
9078
 
class PragmaOnceUnitState;
9079
 
class PragmaOnce;
9080
 
class CCExprResolve;
9081
 
class CExprResolve;
9082
 
namespace Puma {
9083
 
 
9084
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9085
 
class CT_ConstCast : public CT_StaticCast {
9086
 
#line 9087 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9087
 
  friend class ::WinIfExists;
9088
 
  friend class ::WinImportHandler;
9089
 
  friend class ::WinMacros;
9090
 
  friend class ::CMatchSyntax;
9091
 
  friend class ::ExtGnu;
9092
 
  friend class ::ExtAC;
9093
 
  friend class ::ExtACBuilderCoupling;
9094
 
  friend class ::ExtACSyntaxCoupling;
9095
 
  friend class ::ExtACTree;
9096
 
  friend class ::ExtACKeywords;
9097
 
  friend class ::WinAsm;
9098
 
  friend class ::WinDeclSpecs;
9099
 
  friend class ::WinMemberExplSpec;
9100
 
  friend class ::WinTypeKeywords;
9101
 
  friend class ::PragmaOnceUnitState;
9102
 
  friend class ::PragmaOnce;
9103
 
  friend class ::CCExprResolve;
9104
 
  friend class ::CExprResolve;
9105
 
 
9106
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9107
 
 
9108
 
public:
9109
 
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
9110
 
    CT_StaticCast (cst, o, t, c, e) {}
9111
 
  static const char *NodeId ();
9112
 
  const char *NodeName () const { return NodeId (); }
9113
 
   private:
9114
 
  typedef CT_ConstCast CCExprResolveExpr;
9115
 
 
9116
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9117
 
 public :
9118
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9119
 
  typedef CT_ConstCast CExprResolveExpr;
9120
 
 
9121
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9122
 
 public :
9123
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9124
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9125
 
};
9126
 
 
9127
 
 
9128
 
#line 9129 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9129
 
} // closed Puma
9130
 
class WinIfExists;
9131
 
class WinImportHandler;
9132
 
class WinMacros;
9133
 
class CMatchSyntax;
9134
 
class ExtGnu;
9135
 
class ExtAC;
9136
 
class ExtACBuilderCoupling;
9137
 
class ExtACSyntaxCoupling;
9138
 
class ExtACTree;
9139
 
class ExtACKeywords;
9140
 
class WinAsm;
9141
 
class WinDeclSpecs;
9142
 
class WinMemberExplSpec;
9143
 
class WinTypeKeywords;
9144
 
class PragmaOnceUnitState;
9145
 
class PragmaOnce;
9146
 
class CCExprResolve;
9147
 
class CExprResolve;
9148
 
namespace Puma {
9149
 
 
9150
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9151
 
class CT_ReintCast : public CT_StaticCast {
9152
 
#line 9153 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9153
 
  friend class ::WinIfExists;
9154
 
  friend class ::WinImportHandler;
9155
 
  friend class ::WinMacros;
9156
 
  friend class ::CMatchSyntax;
9157
 
  friend class ::ExtGnu;
9158
 
  friend class ::ExtAC;
9159
 
  friend class ::ExtACBuilderCoupling;
9160
 
  friend class ::ExtACSyntaxCoupling;
9161
 
  friend class ::ExtACTree;
9162
 
  friend class ::ExtACKeywords;
9163
 
  friend class ::WinAsm;
9164
 
  friend class ::WinDeclSpecs;
9165
 
  friend class ::WinMemberExplSpec;
9166
 
  friend class ::WinTypeKeywords;
9167
 
  friend class ::PragmaOnceUnitState;
9168
 
  friend class ::PragmaOnce;
9169
 
  friend class ::CCExprResolve;
9170
 
  friend class ::CExprResolve;
9171
 
 
9172
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9173
 
 
9174
 
public:
9175
 
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
9176
 
    CT_StaticCast (cst, o, t, c, e) {}
9177
 
  static const char *NodeId ();
9178
 
  const char *NodeName () const { return NodeId (); }
9179
 
   private:
9180
 
  typedef CT_ReintCast CCExprResolveExpr;
9181
 
 
9182
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9183
 
 public :
9184
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9185
 
  typedef CT_ReintCast CExprResolveExpr;
9186
 
 
9187
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9188
 
 public :
9189
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9190
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9191
 
};
9192
 
 
9193
 
 
9194
 
#line 9195 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9195
 
} // closed Puma
9196
 
class WinIfExists;
9197
 
class WinImportHandler;
9198
 
class WinMacros;
9199
 
class CMatchSyntax;
9200
 
class ExtGnu;
9201
 
class ExtAC;
9202
 
class ExtACBuilderCoupling;
9203
 
class ExtACSyntaxCoupling;
9204
 
class ExtACTree;
9205
 
class ExtACKeywords;
9206
 
class WinAsm;
9207
 
class WinDeclSpecs;
9208
 
class WinMemberExplSpec;
9209
 
class WinTypeKeywords;
9210
 
class PragmaOnceUnitState;
9211
 
class PragmaOnce;
9212
 
class CCExprResolve;
9213
 
class CExprResolve;
9214
 
namespace Puma {
9215
 
 
9216
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9217
 
class CT_DynamicCast : public CT_StaticCast {
9218
 
#line 9219 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9219
 
  friend class ::WinIfExists;
9220
 
  friend class ::WinImportHandler;
9221
 
  friend class ::WinMacros;
9222
 
  friend class ::CMatchSyntax;
9223
 
  friend class ::ExtGnu;
9224
 
  friend class ::ExtAC;
9225
 
  friend class ::ExtACBuilderCoupling;
9226
 
  friend class ::ExtACSyntaxCoupling;
9227
 
  friend class ::ExtACTree;
9228
 
  friend class ::ExtACKeywords;
9229
 
  friend class ::WinAsm;
9230
 
  friend class ::WinDeclSpecs;
9231
 
  friend class ::WinMemberExplSpec;
9232
 
  friend class ::WinTypeKeywords;
9233
 
  friend class ::PragmaOnceUnitState;
9234
 
  friend class ::PragmaOnce;
9235
 
  friend class ::CCExprResolve;
9236
 
  friend class ::CExprResolve;
9237
 
 
9238
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9239
 
 
9240
 
public:
9241
 
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
9242
 
    CT_StaticCast (cst, o, t, c, e) {}
9243
 
  static const char *NodeId ();
9244
 
  const char *NodeName () const { return NodeId (); }
9245
 
   private:
9246
 
  typedef CT_DynamicCast CCExprResolveExpr;
9247
 
 
9248
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9249
 
 public :
9250
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9251
 
  typedef CT_DynamicCast CExprResolveExpr;
9252
 
 
9253
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9254
 
 public :
9255
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9256
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9257
 
};
9258
 
 
9259
 
 
9260
 
#line 9261 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9261
 
} // closed Puma
9262
 
class WinIfExists;
9263
 
class WinImportHandler;
9264
 
class WinMacros;
9265
 
class CMatchSyntax;
9266
 
class ExtGnu;
9267
 
class ExtAC;
9268
 
class ExtACBuilderCoupling;
9269
 
class ExtACSyntaxCoupling;
9270
 
class ExtACTree;
9271
 
class ExtACKeywords;
9272
 
class WinAsm;
9273
 
class WinDeclSpecs;
9274
 
class WinMemberExplSpec;
9275
 
class WinTypeKeywords;
9276
 
class PragmaOnceUnitState;
9277
 
class PragmaOnce;
9278
 
class CCExprResolve;
9279
 
class CExprResolve;
9280
 
namespace Puma {
9281
 
 
9282
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9283
 
class CT_ImplicitCast : public CT_Expression {
9284
 
#line 9285 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9285
 
  friend class ::WinIfExists;
9286
 
  friend class ::WinImportHandler;
9287
 
  friend class ::WinMacros;
9288
 
  friend class ::CMatchSyntax;
9289
 
  friend class ::ExtGnu;
9290
 
  friend class ::ExtAC;
9291
 
  friend class ::ExtACBuilderCoupling;
9292
 
  friend class ::ExtACSyntaxCoupling;
9293
 
  friend class ::ExtACTree;
9294
 
  friend class ::ExtACKeywords;
9295
 
  friend class ::WinAsm;
9296
 
  friend class ::WinDeclSpecs;
9297
 
  friend class ::WinMemberExplSpec;
9298
 
  friend class ::WinTypeKeywords;
9299
 
  friend class ::PragmaOnceUnitState;
9300
 
  friend class ::PragmaOnce;
9301
 
  friend class ::CCExprResolve;
9302
 
  friend class ::CExprResolve;
9303
 
 
9304
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9305
 
 
9306
 
  CTree *_expr; // casted expression
9307
 
 
9308
 
public:
9309
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
9310
 
  static const char *NodeId ();
9311
 
  const char *NodeName () const { return NodeId (); }
9312
 
  int Sons () const { return 1; }
9313
 
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
9314
 
  CTree *Expr () const { return _expr; }
9315
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
9316
 
   { if (old_son == _expr) _expr = new_son; }
9317
 
   private:
9318
 
  typedef CT_ImplicitCast CCExprResolveExpr;
9319
 
 
9320
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9321
 
 public :
9322
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9323
 
  typedef CT_ImplicitCast CExprResolveExpr;
9324
 
 
9325
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9326
 
 public :
9327
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9328
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9329
 
};
9330
 
 
9331
 
 
9332
 
#line 9333 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9333
 
} // closed Puma
9334
 
class WinIfExists;
9335
 
class WinImportHandler;
9336
 
class WinMacros;
9337
 
class CMatchSyntax;
9338
 
class ExtGnu;
9339
 
class ExtAC;
9340
 
class ExtACBuilderCoupling;
9341
 
class ExtACSyntaxCoupling;
9342
 
class ExtACTree;
9343
 
class ExtACKeywords;
9344
 
class WinAsm;
9345
 
class WinDeclSpecs;
9346
 
class WinMemberExplSpec;
9347
 
class WinTypeKeywords;
9348
 
class PragmaOnceUnitState;
9349
 
class PragmaOnce;
9350
 
class CCExprResolve;
9351
 
class CExprResolve;
9352
 
namespace Puma {
9353
 
 
9354
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9355
 
class CT_TypeidExpr : public CT_Expression {
9356
 
#line 9357 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9357
 
  friend class ::WinIfExists;
9358
 
  friend class ::WinImportHandler;
9359
 
  friend class ::WinMacros;
9360
 
  friend class ::CMatchSyntax;
9361
 
  friend class ::ExtGnu;
9362
 
  friend class ::ExtAC;
9363
 
  friend class ::ExtACBuilderCoupling;
9364
 
  friend class ::ExtACSyntaxCoupling;
9365
 
  friend class ::ExtACTree;
9366
 
  friend class ::ExtACKeywords;
9367
 
  friend class ::WinAsm;
9368
 
  friend class ::WinDeclSpecs;
9369
 
  friend class ::WinMemberExplSpec;
9370
 
  friend class ::WinTypeKeywords;
9371
 
  friend class ::PragmaOnceUnitState;
9372
 
  friend class ::PragmaOnce;
9373
 
  friend class ::CCExprResolve;
9374
 
  friend class ::CExprResolve;
9375
 
 
9376
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9377
 
 
9378
 
  CTree *sons[4]; // typeid, open, type_id/expr, close
9379
 
 
9380
 
public:
9381
 
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
9382
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
9383
 
  }
9384
 
  static const char *NodeId ();
9385
 
  const char *NodeName () const { return NodeId (); }
9386
 
  int Sons () const { return 4; }
9387
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
9388
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9389
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
9390
 
  }
9391
 
  CTree *Arg () const { return sons[2]; }
9392
 
   private:
9393
 
  typedef CT_TypeidExpr CCExprResolveExpr;
9394
 
 
9395
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9396
 
 public :
9397
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9398
 
  typedef CT_TypeidExpr CExprResolveExpr;
9399
 
 
9400
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9401
 
 public :
9402
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9403
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9404
 
};
9405
 
 
9406
 
 
9407
 
#line 9408 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9408
 
} // closed Puma
9409
 
class WinIfExists;
9410
 
class WinImportHandler;
9411
 
class WinMacros;
9412
 
class CMatchSyntax;
9413
 
class ExtGnu;
9414
 
class ExtAC;
9415
 
class ExtACBuilderCoupling;
9416
 
class ExtACSyntaxCoupling;
9417
 
class ExtACTree;
9418
 
class ExtACKeywords;
9419
 
class WinAsm;
9420
 
class WinDeclSpecs;
9421
 
class WinMemberExplSpec;
9422
 
class WinTypeKeywords;
9423
 
class PragmaOnceUnitState;
9424
 
class PragmaOnce;
9425
 
class CCExprResolve;
9426
 
class CExprResolve;
9427
 
namespace Puma {
9428
 
 
9429
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9430
 
class CT_SizeofExpr : public CT_Expression {
9431
 
#line 9432 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9432
 
  friend class ::WinIfExists;
9433
 
  friend class ::WinImportHandler;
9434
 
  friend class ::WinMacros;
9435
 
  friend class ::CMatchSyntax;
9436
 
  friend class ::ExtGnu;
9437
 
  friend class ::ExtAC;
9438
 
  friend class ::ExtACBuilderCoupling;
9439
 
  friend class ::ExtACSyntaxCoupling;
9440
 
  friend class ::ExtACTree;
9441
 
  friend class ::ExtACKeywords;
9442
 
  friend class ::WinAsm;
9443
 
  friend class ::WinDeclSpecs;
9444
 
  friend class ::WinMemberExplSpec;
9445
 
  friend class ::WinTypeKeywords;
9446
 
  friend class ::PragmaOnceUnitState;
9447
 
  friend class ::PragmaOnce;
9448
 
  friend class ::CCExprResolve;
9449
 
  friend class ::CExprResolve;
9450
 
 
9451
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9452
 
 
9453
 
  CTree *sons[5]; // key, open, type, close, expr
9454
 
 
9455
 
public:
9456
 
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
9457
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
9458
 
  }
9459
 
  CT_SizeofExpr (CTree *k, CTree *e) {
9460
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
9461
 
  }
9462
 
  static const char *NodeId ();
9463
 
  const char *NodeName () const { return NodeId (); }
9464
 
  int Sons () const { return CTree::Sons (sons, 5); }
9465
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
9466
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9467
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
9468
 
  }
9469
 
  CTree *Expr () const { return sons[4]; }
9470
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
9471
 
   private:
9472
 
  typedef CT_SizeofExpr CCExprResolveExpr;
9473
 
 
9474
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9475
 
 public :
9476
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9477
 
  typedef CT_SizeofExpr CExprResolveExpr;
9478
 
 
9479
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9480
 
 public :
9481
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9482
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9483
 
};
9484
 
 
9485
 
 
9486
 
#line 9487 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9487
 
} // closed Puma
9488
 
class WinIfExists;
9489
 
class WinImportHandler;
9490
 
class WinMacros;
9491
 
class CMatchSyntax;
9492
 
class ExtGnu;
9493
 
class ExtAC;
9494
 
class ExtACBuilderCoupling;
9495
 
class ExtACSyntaxCoupling;
9496
 
class ExtACTree;
9497
 
class ExtACKeywords;
9498
 
class WinAsm;
9499
 
class WinDeclSpecs;
9500
 
class WinMemberExplSpec;
9501
 
class WinTypeKeywords;
9502
 
class PragmaOnceUnitState;
9503
 
class PragmaOnce;
9504
 
class CCExprResolve;
9505
 
class CExprResolve;
9506
 
namespace Puma {
9507
 
 
9508
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9509
 
class CT_IndexDesignator : public CT_Expression {
9510
 
#line 9511 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9511
 
  friend class ::WinIfExists;
9512
 
  friend class ::WinImportHandler;
9513
 
  friend class ::WinMacros;
9514
 
  friend class ::CMatchSyntax;
9515
 
  friend class ::ExtGnu;
9516
 
  friend class ::ExtAC;
9517
 
  friend class ::ExtACBuilderCoupling;
9518
 
  friend class ::ExtACSyntaxCoupling;
9519
 
  friend class ::ExtACTree;
9520
 
  friend class ::ExtACKeywords;
9521
 
  friend class ::WinAsm;
9522
 
  friend class ::WinDeclSpecs;
9523
 
  friend class ::WinMemberExplSpec;
9524
 
  friend class ::WinTypeKeywords;
9525
 
  friend class ::PragmaOnceUnitState;
9526
 
  friend class ::PragmaOnce;
9527
 
  friend class ::CCExprResolve;
9528
 
  friend class ::CExprResolve;
9529
 
 
9530
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9531
 
 
9532
 
  CTree *sons[3]; // open, index, close
9533
 
 
9534
 
public:
9535
 
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
9536
 
    sons[0] = o; sons[1] = i; sons[2] = c;
9537
 
  }
9538
 
  static const char *NodeId ();
9539
 
  const char *NodeName () const { return NodeId (); }
9540
 
  int Sons () const { return 3; }
9541
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
9542
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9543
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
9544
 
  }
9545
 
   private:
9546
 
  typedef CT_IndexDesignator CCExprResolveExpr;
9547
 
 
9548
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9549
 
 public :
9550
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9551
 
  typedef CT_IndexDesignator CExprResolveExpr;
9552
 
 
9553
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9554
 
 public :
9555
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9556
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9557
 
};
9558
 
 
9559
 
 
9560
 
#line 9561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9561
 
} // closed Puma
9562
 
class WinIfExists;
9563
 
class WinImportHandler;
9564
 
class WinMacros;
9565
 
class CMatchSyntax;
9566
 
class ExtGnu;
9567
 
class ExtAC;
9568
 
class ExtACBuilderCoupling;
9569
 
class ExtACSyntaxCoupling;
9570
 
class ExtACTree;
9571
 
class ExtACKeywords;
9572
 
class WinAsm;
9573
 
class WinDeclSpecs;
9574
 
class WinMemberExplSpec;
9575
 
class WinTypeKeywords;
9576
 
class PragmaOnceUnitState;
9577
 
class PragmaOnce;
9578
 
class CCExprResolve;
9579
 
class CExprResolve;
9580
 
namespace Puma {
9581
 
 
9582
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9583
 
class CT_MembDesignator : public CT_Expression {
9584
 
#line 9585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9585
 
  friend class ::WinIfExists;
9586
 
  friend class ::WinImportHandler;
9587
 
  friend class ::WinMacros;
9588
 
  friend class ::CMatchSyntax;
9589
 
  friend class ::ExtGnu;
9590
 
  friend class ::ExtAC;
9591
 
  friend class ::ExtACBuilderCoupling;
9592
 
  friend class ::ExtACSyntaxCoupling;
9593
 
  friend class ::ExtACTree;
9594
 
  friend class ::ExtACKeywords;
9595
 
  friend class ::WinAsm;
9596
 
  friend class ::WinDeclSpecs;
9597
 
  friend class ::WinMemberExplSpec;
9598
 
  friend class ::WinTypeKeywords;
9599
 
  friend class ::PragmaOnceUnitState;
9600
 
  friend class ::PragmaOnce;
9601
 
  friend class ::CCExprResolve;
9602
 
  friend class ::CExprResolve;
9603
 
 
9604
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9605
 
 
9606
 
  CTree *sons[2]; // dot, member
9607
 
 
9608
 
public:
9609
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
9610
 
  static const char *NodeId ();
9611
 
  const char *NodeName () const { return NodeId (); }
9612
 
  int Sons () const { return 2; }
9613
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
9614
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9615
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
9616
 
  }
9617
 
   private:
9618
 
  typedef CT_MembDesignator CCExprResolveExpr;
9619
 
 
9620
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9621
 
 public :
9622
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9623
 
  typedef CT_MembDesignator CExprResolveExpr;
9624
 
 
9625
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9626
 
 public :
9627
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9628
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9629
 
};
9630
 
 
9631
 
 
9632
 
#line 9633 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9633
 
} // closed Puma
9634
 
class WinIfExists;
9635
 
class WinImportHandler;
9636
 
class WinMacros;
9637
 
class CMatchSyntax;
9638
 
class ExtGnu;
9639
 
class ExtAC;
9640
 
class ExtACBuilderCoupling;
9641
 
class ExtACSyntaxCoupling;
9642
 
class ExtACTree;
9643
 
class ExtACKeywords;
9644
 
class WinAsm;
9645
 
class WinDeclSpecs;
9646
 
class WinMemberExplSpec;
9647
 
class WinTypeKeywords;
9648
 
class PragmaOnceUnitState;
9649
 
class PragmaOnce;
9650
 
class CCExprResolve;
9651
 
class CExprResolve;
9652
 
namespace Puma {
9653
 
 
9654
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9655
 
class CT_DesignatorSeq : public CT_List, public CSemValue {
9656
 
#line 9657 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9657
 
  friend class ::WinIfExists;
9658
 
  friend class ::WinImportHandler;
9659
 
  friend class ::WinMacros;
9660
 
  friend class ::CMatchSyntax;
9661
 
  friend class ::ExtGnu;
9662
 
  friend class ::ExtAC;
9663
 
  friend class ::ExtACBuilderCoupling;
9664
 
  friend class ::ExtACSyntaxCoupling;
9665
 
  friend class ::ExtACTree;
9666
 
  friend class ::ExtACKeywords;
9667
 
  friend class ::WinAsm;
9668
 
  friend class ::WinDeclSpecs;
9669
 
  friend class ::WinMemberExplSpec;
9670
 
  friend class ::WinTypeKeywords;
9671
 
  friend class ::PragmaOnceUnitState;
9672
 
  friend class ::PragmaOnce;
9673
 
  friend class ::CCExprResolve;
9674
 
  friend class ::CExprResolve;
9675
 
 
9676
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9677
 
 
9678
 
public:
9679
 
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
9680
 
  static const char *NodeId ();
9681
 
  const char *NodeName () const { return NodeId (); }
9682
 
 
9683
 
  CTypeInfo *Type () const { return type; }
9684
 
  CExprValue *Value () const { return value; }
9685
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
9686
 
};
9687
 
 
9688
 
/*****************************************************************************/
9689
 
/*                                                                           */
9690
 
/*                         Declaration specifiers                            */
9691
 
/*                                                                           */
9692
 
/*****************************************************************************/
9693
 
 
9694
 
 
9695
 
#line 9696 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9696
 
} // closed Puma
9697
 
class WinIfExists;
9698
 
class WinImportHandler;
9699
 
class WinMacros;
9700
 
class CMatchSyntax;
9701
 
class ExtGnu;
9702
 
class ExtAC;
9703
 
class ExtACBuilderCoupling;
9704
 
class ExtACSyntaxCoupling;
9705
 
class ExtACTree;
9706
 
class ExtACKeywords;
9707
 
class WinAsm;
9708
 
class WinDeclSpecs;
9709
 
class WinMemberExplSpec;
9710
 
class WinTypeKeywords;
9711
 
class PragmaOnceUnitState;
9712
 
class PragmaOnce;
9713
 
class CCExprResolve;
9714
 
class CExprResolve;
9715
 
namespace Puma {
9716
 
 
9717
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9718
 
class CT_DeclSpec : public CTree {
9719
 
#line 9720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9720
 
  friend class ::WinIfExists;
9721
 
  friend class ::WinImportHandler;
9722
 
  friend class ::WinMacros;
9723
 
  friend class ::CMatchSyntax;
9724
 
  friend class ::ExtGnu;
9725
 
  friend class ::ExtAC;
9726
 
  friend class ::ExtACBuilderCoupling;
9727
 
  friend class ::ExtACSyntaxCoupling;
9728
 
  friend class ::ExtACTree;
9729
 
  friend class ::ExtACKeywords;
9730
 
  friend class ::WinAsm;
9731
 
  friend class ::WinDeclSpecs;
9732
 
  friend class ::WinMemberExplSpec;
9733
 
  friend class ::WinTypeKeywords;
9734
 
  friend class ::PragmaOnceUnitState;
9735
 
  friend class ::PragmaOnce;
9736
 
  friend class ::CCExprResolve;
9737
 
  friend class ::CExprResolve;
9738
 
 
9739
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9740
 
 
9741
 
protected:
9742
 
  CT_DeclSpec () {}
9743
 
};
9744
 
 
9745
 
 
9746
 
#line 9747 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9747
 
} // closed Puma
9748
 
class WinIfExists;
9749
 
class WinImportHandler;
9750
 
class WinMacros;
9751
 
class CMatchSyntax;
9752
 
class ExtGnu;
9753
 
class ExtAC;
9754
 
class ExtACBuilderCoupling;
9755
 
class ExtACSyntaxCoupling;
9756
 
class ExtACTree;
9757
 
class ExtACKeywords;
9758
 
class WinAsm;
9759
 
class WinDeclSpecs;
9760
 
class WinMemberExplSpec;
9761
 
class WinTypeKeywords;
9762
 
class PragmaOnceUnitState;
9763
 
class PragmaOnce;
9764
 
class CCExprResolve;
9765
 
class CExprResolve;
9766
 
namespace Puma {
9767
 
 
9768
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9769
 
class CT_PrimDeclSpec : public CT_DeclSpec {
9770
 
#line 9771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9771
 
  friend class ::WinIfExists;
9772
 
  friend class ::WinImportHandler;
9773
 
  friend class ::WinMacros;
9774
 
  friend class ::CMatchSyntax;
9775
 
  friend class ::ExtGnu;
9776
 
  friend class ::ExtAC;
9777
 
  friend class ::ExtACBuilderCoupling;
9778
 
  friend class ::ExtACSyntaxCoupling;
9779
 
  friend class ::ExtACTree;
9780
 
  friend class ::ExtACKeywords;
9781
 
  friend class ::WinAsm;
9782
 
  friend class ::WinDeclSpecs;
9783
 
  friend class ::WinMemberExplSpec;
9784
 
  friend class ::WinTypeKeywords;
9785
 
  friend class ::PragmaOnceUnitState;
9786
 
  friend class ::PragmaOnce;
9787
 
  friend class ::CCExprResolve;
9788
 
  friend class ::CExprResolve;
9789
 
 
9790
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9791
 
 
9792
 
public:
9793
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
9794
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
9795
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
9796
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
9797
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
9798
 
              // AspectC++ specific type specifier
9799
 
              PDS_UNKNOWN_T,
9800
 
              // Win specific declaration specifiers
9801
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
9802
 
              PDS_UNKNOWN, PDS_NUM };
9803
 
 
9804
 
private:
9805
 
  Type _type;
9806
 
  CT_Token *_token;
9807
 
 
9808
 
  void determine_type ();
9809
 
 
9810
 
public:
9811
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
9812
 
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
9813
 
  static const char *NodeId ();
9814
 
  const char *NodeName () const { return NodeId (); }
9815
 
  int Sons () const { return _token ? 1 : 0; }
9816
 
  CTree *Son (int n) const 
9817
 
   { return (n == 0) ? _token : (CTree*)0; }
9818
 
  const char *SpecText () const 
9819
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
9820
 
  Type SpecType () const { return _type; }
9821
 
  static const int NumTypes = PDS_NUM;
9822
 
};
9823
 
 
9824
 
 
9825
 
#line 9826 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9826
 
} // closed Puma
9827
 
class WinIfExists;
9828
 
class WinImportHandler;
9829
 
class WinMacros;
9830
 
class CMatchSyntax;
9831
 
class ExtGnu;
9832
 
class ExtAC;
9833
 
class ExtACBuilderCoupling;
9834
 
class ExtACSyntaxCoupling;
9835
 
class ExtACTree;
9836
 
class ExtACKeywords;
9837
 
class WinAsm;
9838
 
class WinDeclSpecs;
9839
 
class WinMemberExplSpec;
9840
 
class WinTypeKeywords;
9841
 
class PragmaOnceUnitState;
9842
 
class PragmaOnce;
9843
 
class CCExprResolve;
9844
 
class CExprResolve;
9845
 
namespace Puma {
9846
 
 
9847
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9848
 
class CT_NamedType : public CT_DeclSpec, public CSemObject {
9849
 
#line 9850 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9850
 
  friend class ::WinIfExists;
9851
 
  friend class ::WinImportHandler;
9852
 
  friend class ::WinMacros;
9853
 
  friend class ::CMatchSyntax;
9854
 
  friend class ::ExtGnu;
9855
 
  friend class ::ExtAC;
9856
 
  friend class ::ExtACBuilderCoupling;
9857
 
  friend class ::ExtACSyntaxCoupling;
9858
 
  friend class ::ExtACTree;
9859
 
  friend class ::ExtACKeywords;
9860
 
  friend class ::WinAsm;
9861
 
  friend class ::WinDeclSpecs;
9862
 
  friend class ::WinMemberExplSpec;
9863
 
  friend class ::WinTypeKeywords;
9864
 
  friend class ::PragmaOnceUnitState;
9865
 
  friend class ::PragmaOnce;
9866
 
  friend class ::CCExprResolve;
9867
 
  friend class ::CExprResolve;
9868
 
 
9869
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9870
 
 
9871
 
  CTree *sons[2]; // declspecs, declarator
9872
 
 
9873
 
public:
9874
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
9875
 
  static const char *NodeId ();
9876
 
  const char *NodeName () const { return NodeId (); }
9877
 
  int Sons () const { return CTree::Sons (sons, 2); }
9878
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
9879
 
  CTree *Declarator () const { return sons[1]; }
9880
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9881
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
9882
 
  }
9883
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
9884
 
};
9885
 
      
9886
 
 
9887
 
#line 9888 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9888
 
} // closed Puma
9889
 
class WinIfExists;
9890
 
class WinImportHandler;
9891
 
class WinMacros;
9892
 
class CMatchSyntax;
9893
 
class ExtGnu;
9894
 
class ExtAC;
9895
 
class ExtACBuilderCoupling;
9896
 
class ExtACSyntaxCoupling;
9897
 
class ExtACTree;
9898
 
class ExtACKeywords;
9899
 
class WinAsm;
9900
 
class WinDeclSpecs;
9901
 
class WinMemberExplSpec;
9902
 
class WinTypeKeywords;
9903
 
class PragmaOnceUnitState;
9904
 
class PragmaOnce;
9905
 
class CCExprResolve;
9906
 
class CExprResolve;
9907
 
namespace Puma {
9908
 
 
9909
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9910
 
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
9911
 
#line 9912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9912
 
  friend class ::WinIfExists;
9913
 
  friend class ::WinImportHandler;
9914
 
  friend class ::WinMacros;
9915
 
  friend class ::CMatchSyntax;
9916
 
  friend class ::ExtGnu;
9917
 
  friend class ::ExtAC;
9918
 
  friend class ::ExtACBuilderCoupling;
9919
 
  friend class ::ExtACSyntaxCoupling;
9920
 
  friend class ::ExtACTree;
9921
 
  friend class ::ExtACKeywords;
9922
 
  friend class ::WinAsm;
9923
 
  friend class ::WinDeclSpecs;
9924
 
  friend class ::WinMemberExplSpec;
9925
 
  friend class ::WinTypeKeywords;
9926
 
  friend class ::PragmaOnceUnitState;
9927
 
  friend class ::PragmaOnce;
9928
 
  friend class ::CCExprResolve;
9929
 
  friend class ::CExprResolve;
9930
 
 
9931
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9932
 
 
9933
 
  CTree *sons[2]; // key, name
9934
 
  
9935
 
public:
9936
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
9937
 
  static const char *NodeId ();
9938
 
  const char *NodeName () const { return NodeId (); }
9939
 
  int Sons () const { return 2; }
9940
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
9941
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
9942
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
9943
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9944
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
9945
 
  }
9946
 
};
9947
 
 
9948
 
 
9949
 
#line 9950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9950
 
} // closed Puma
9951
 
class WinIfExists;
9952
 
class WinImportHandler;
9953
 
class WinMacros;
9954
 
class CMatchSyntax;
9955
 
class ExtGnu;
9956
 
class ExtAC;
9957
 
class ExtACBuilderCoupling;
9958
 
class ExtACSyntaxCoupling;
9959
 
class ExtACTree;
9960
 
class ExtACKeywords;
9961
 
class WinAsm;
9962
 
class WinDeclSpecs;
9963
 
class WinMemberExplSpec;
9964
 
class WinTypeKeywords;
9965
 
class PragmaOnceUnitState;
9966
 
class PragmaOnce;
9967
 
class CCExprResolve;
9968
 
class CExprResolve;
9969
 
namespace Puma {
9970
 
 
9971
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9972
 
class CT_UnionSpec : public CT_ClassSpec {
9973
 
#line 9974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
9974
 
  friend class ::WinIfExists;
9975
 
  friend class ::WinImportHandler;
9976
 
  friend class ::WinMacros;
9977
 
  friend class ::CMatchSyntax;
9978
 
  friend class ::ExtGnu;
9979
 
  friend class ::ExtAC;
9980
 
  friend class ::ExtACBuilderCoupling;
9981
 
  friend class ::ExtACSyntaxCoupling;
9982
 
  friend class ::ExtACTree;
9983
 
  friend class ::ExtACKeywords;
9984
 
  friend class ::WinAsm;
9985
 
  friend class ::WinDeclSpecs;
9986
 
  friend class ::WinMemberExplSpec;
9987
 
  friend class ::WinTypeKeywords;
9988
 
  friend class ::PragmaOnceUnitState;
9989
 
  friend class ::PragmaOnce;
9990
 
  friend class ::CCExprResolve;
9991
 
  friend class ::CExprResolve;
9992
 
 
9993
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9994
 
 
9995
 
public:
9996
 
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
9997
 
  static const char *NodeId ();
9998
 
  const char *NodeName () const { return NodeId (); }
9999
 
};
10000
 
 
10001
 
 
10002
 
#line 10003 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10003
 
} // closed Puma
10004
 
class WinIfExists;
10005
 
class WinImportHandler;
10006
 
class WinMacros;
10007
 
class CMatchSyntax;
10008
 
class ExtGnu;
10009
 
class ExtAC;
10010
 
class ExtACBuilderCoupling;
10011
 
class ExtACSyntaxCoupling;
10012
 
class ExtACTree;
10013
 
class ExtACKeywords;
10014
 
class WinAsm;
10015
 
class WinDeclSpecs;
10016
 
class WinMemberExplSpec;
10017
 
class WinTypeKeywords;
10018
 
class PragmaOnceUnitState;
10019
 
class PragmaOnce;
10020
 
class CCExprResolve;
10021
 
class CExprResolve;
10022
 
namespace Puma {
10023
 
 
10024
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10025
 
class CT_EnumSpec : public CT_ClassSpec {
10026
 
#line 10027 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10027
 
  friend class ::WinIfExists;
10028
 
  friend class ::WinImportHandler;
10029
 
  friend class ::WinMacros;
10030
 
  friend class ::CMatchSyntax;
10031
 
  friend class ::ExtGnu;
10032
 
  friend class ::ExtAC;
10033
 
  friend class ::ExtACBuilderCoupling;
10034
 
  friend class ::ExtACSyntaxCoupling;
10035
 
  friend class ::ExtACTree;
10036
 
  friend class ::ExtACKeywords;
10037
 
  friend class ::WinAsm;
10038
 
  friend class ::WinDeclSpecs;
10039
 
  friend class ::WinMemberExplSpec;
10040
 
  friend class ::WinTypeKeywords;
10041
 
  friend class ::PragmaOnceUnitState;
10042
 
  friend class ::PragmaOnce;
10043
 
  friend class ::CCExprResolve;
10044
 
  friend class ::CExprResolve;
10045
 
 
10046
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10047
 
 
10048
 
public:
10049
 
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
10050
 
  static const char *NodeId ();
10051
 
  const char *NodeName () const { return NodeId (); }
10052
 
};
10053
 
 
10054
 
 
10055
 
#line 10056 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10056
 
} // closed Puma
10057
 
class WinIfExists;
10058
 
class WinImportHandler;
10059
 
class WinMacros;
10060
 
class CMatchSyntax;
10061
 
class ExtGnu;
10062
 
class ExtAC;
10063
 
class ExtACBuilderCoupling;
10064
 
class ExtACSyntaxCoupling;
10065
 
class ExtACTree;
10066
 
class ExtACKeywords;
10067
 
class WinAsm;
10068
 
class WinDeclSpecs;
10069
 
class WinMemberExplSpec;
10070
 
class WinTypeKeywords;
10071
 
class PragmaOnceUnitState;
10072
 
class PragmaOnce;
10073
 
class CCExprResolve;
10074
 
class CExprResolve;
10075
 
namespace Puma {
10076
 
 
10077
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10078
 
class CT_ExceptionSpec : public CT_DeclSpec {
10079
 
#line 10080 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10080
 
  friend class ::WinIfExists;
10081
 
  friend class ::WinImportHandler;
10082
 
  friend class ::WinMacros;
10083
 
  friend class ::CMatchSyntax;
10084
 
  friend class ::ExtGnu;
10085
 
  friend class ::ExtAC;
10086
 
  friend class ::ExtACBuilderCoupling;
10087
 
  friend class ::ExtACSyntaxCoupling;
10088
 
  friend class ::ExtACTree;
10089
 
  friend class ::ExtACKeywords;
10090
 
  friend class ::WinAsm;
10091
 
  friend class ::WinDeclSpecs;
10092
 
  friend class ::WinMemberExplSpec;
10093
 
  friend class ::WinTypeKeywords;
10094
 
  friend class ::PragmaOnceUnitState;
10095
 
  friend class ::PragmaOnce;
10096
 
  friend class ::CCExprResolve;
10097
 
  friend class ::CExprResolve;
10098
 
 
10099
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10100
 
 
10101
 
  CTree *sons[2]; // throw, type_id_list
10102
 
  
10103
 
public:
10104
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
10105
 
  static const char *NodeId ();
10106
 
  const char *NodeName () const { return NodeId (); }
10107
 
  int Sons () const { return 2; }
10108
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
10109
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
10110
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10111
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
10112
 
  }
10113
 
};
10114
 
 
10115
 
/*****************************************************************************/
10116
 
/*                                                                           */
10117
 
/*                              Declarations                                 */
10118
 
/*                                                                           */
10119
 
/*****************************************************************************/
10120
 
 
10121
 
 
10122
 
#line 10123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10123
 
} // closed Puma
10124
 
class WinIfExists;
10125
 
class WinImportHandler;
10126
 
class WinMacros;
10127
 
class CMatchSyntax;
10128
 
class ExtGnu;
10129
 
class ExtAC;
10130
 
class ExtACBuilderCoupling;
10131
 
class ExtACSyntaxCoupling;
10132
 
class ExtACTree;
10133
 
class ExtACKeywords;
10134
 
class WinAsm;
10135
 
class WinDeclSpecs;
10136
 
class WinMemberExplSpec;
10137
 
class WinTypeKeywords;
10138
 
class PragmaOnceUnitState;
10139
 
class PragmaOnce;
10140
 
class CCExprResolve;
10141
 
class CExprResolve;
10142
 
namespace Puma {
10143
 
 
10144
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10145
 
class CT_Decl : public CTree {
10146
 
#line 10147 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10147
 
  friend class ::WinIfExists;
10148
 
  friend class ::WinImportHandler;
10149
 
  friend class ::WinMacros;
10150
 
  friend class ::CMatchSyntax;
10151
 
  friend class ::ExtGnu;
10152
 
  friend class ::ExtAC;
10153
 
  friend class ::ExtACBuilderCoupling;
10154
 
  friend class ::ExtACSyntaxCoupling;
10155
 
  friend class ::ExtACTree;
10156
 
  friend class ::ExtACKeywords;
10157
 
  friend class ::WinAsm;
10158
 
  friend class ::WinDeclSpecs;
10159
 
  friend class ::WinMemberExplSpec;
10160
 
  friend class ::WinTypeKeywords;
10161
 
  friend class ::PragmaOnceUnitState;
10162
 
  friend class ::PragmaOnce;
10163
 
  friend class ::CCExprResolve;
10164
 
  friend class ::CExprResolve;
10165
 
 
10166
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10167
 
 
10168
 
  CT_LinkageSpec *_linkage;
10169
 
protected:
10170
 
  CT_Decl () : _linkage (0) {}
10171
 
public:
10172
 
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
10173
 
  CT_LinkageSpec *Linkage () const { return _linkage; }
10174
 
};
10175
 
 
10176
 
 
10177
 
#line 10178 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10178
 
} // closed Puma
10179
 
class WinIfExists;
10180
 
class WinImportHandler;
10181
 
class WinMacros;
10182
 
class CMatchSyntax;
10183
 
class ExtGnu;
10184
 
class ExtAC;
10185
 
class ExtACBuilderCoupling;
10186
 
class ExtACSyntaxCoupling;
10187
 
class ExtACTree;
10188
 
class ExtACKeywords;
10189
 
class WinAsm;
10190
 
class WinDeclSpecs;
10191
 
class WinMemberExplSpec;
10192
 
class WinTypeKeywords;
10193
 
class PragmaOnceUnitState;
10194
 
class PragmaOnce;
10195
 
class CCExprResolve;
10196
 
class CExprResolve;
10197
 
namespace Puma {
10198
 
 
10199
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10200
 
class CT_Program : public CT_DeclList, public CSemScope {
10201
 
#line 10202 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10202
 
  friend class ::WinIfExists;
10203
 
  friend class ::WinImportHandler;
10204
 
  friend class ::WinMacros;
10205
 
  friend class ::CMatchSyntax;
10206
 
  friend class ::ExtGnu;
10207
 
  friend class ::ExtAC;
10208
 
  friend class ::ExtACBuilderCoupling;
10209
 
  friend class ::ExtACSyntaxCoupling;
10210
 
  friend class ::ExtACTree;
10211
 
  friend class ::ExtACKeywords;
10212
 
  friend class ::WinAsm;
10213
 
  friend class ::WinDeclSpecs;
10214
 
  friend class ::WinMemberExplSpec;
10215
 
  friend class ::WinTypeKeywords;
10216
 
  friend class ::PragmaOnceUnitState;
10217
 
  friend class ::PragmaOnce;
10218
 
  friend class ::CCExprResolve;
10219
 
  friend class ::CExprResolve;
10220
 
 
10221
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10222
 
 
10223
 
public:
10224
 
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
10225
 
  static const char *NodeId ();
10226
 
  const char *NodeName () const { return NodeId (); }
10227
 
};
10228
 
   
10229
 
 
10230
 
#line 10231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10231
 
} // closed Puma
10232
 
class WinIfExists;
10233
 
class WinImportHandler;
10234
 
class WinMacros;
10235
 
class CMatchSyntax;
10236
 
class ExtGnu;
10237
 
class ExtAC;
10238
 
class ExtACBuilderCoupling;
10239
 
class ExtACSyntaxCoupling;
10240
 
class ExtACTree;
10241
 
class ExtACKeywords;
10242
 
class WinAsm;
10243
 
class WinDeclSpecs;
10244
 
class WinMemberExplSpec;
10245
 
class WinTypeKeywords;
10246
 
class PragmaOnceUnitState;
10247
 
class PragmaOnce;
10248
 
class CCExprResolve;
10249
 
class CExprResolve;
10250
 
namespace Puma {
10251
 
 
10252
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10253
 
class CT_ObjDecl : public CT_Decl {
10254
 
#line 10255 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10255
 
  friend class ::WinIfExists;
10256
 
  friend class ::WinImportHandler;
10257
 
  friend class ::WinMacros;
10258
 
  friend class ::CMatchSyntax;
10259
 
  friend class ::ExtGnu;
10260
 
  friend class ::ExtAC;
10261
 
  friend class ::ExtACBuilderCoupling;
10262
 
  friend class ::ExtACSyntaxCoupling;
10263
 
  friend class ::ExtACTree;
10264
 
  friend class ::ExtACKeywords;
10265
 
  friend class ::WinAsm;
10266
 
  friend class ::WinDeclSpecs;
10267
 
  friend class ::WinMemberExplSpec;
10268
 
  friend class ::WinTypeKeywords;
10269
 
  friend class ::PragmaOnceUnitState;
10270
 
  friend class ::PragmaOnce;
10271
 
  friend class ::CCExprResolve;
10272
 
  friend class ::CExprResolve;
10273
 
 
10274
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10275
 
 
10276
 
  CTree *sons[3]; // declspecs, declarators, colon
10277
 
 
10278
 
public:
10279
 
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
10280
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
10281
 
  }
10282
 
  static const char *NodeId ();
10283
 
  const char *NodeName () const { return NodeId (); }
10284
 
  int Sons () const { return 3; }
10285
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
10286
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
10287
 
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
10288
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10289
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
10290
 
  }
10291
 
};
10292
 
 
10293
 
 
10294
 
#line 10295 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10295
 
} // closed Puma
10296
 
class WinIfExists;
10297
 
class WinImportHandler;
10298
 
class WinMacros;
10299
 
class CMatchSyntax;
10300
 
class ExtGnu;
10301
 
class ExtAC;
10302
 
class ExtACBuilderCoupling;
10303
 
class ExtACSyntaxCoupling;
10304
 
class ExtACTree;
10305
 
class ExtACKeywords;
10306
 
class WinAsm;
10307
 
class WinDeclSpecs;
10308
 
class WinMemberExplSpec;
10309
 
class WinTypeKeywords;
10310
 
class PragmaOnceUnitState;
10311
 
class PragmaOnce;
10312
 
class CCExprResolve;
10313
 
class CExprResolve;
10314
 
namespace Puma {
10315
 
 
10316
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10317
 
class CT_TemplateDecl : public CT_Decl, public CSemScope {
10318
 
#line 10319 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10319
 
  friend class ::WinIfExists;
10320
 
  friend class ::WinImportHandler;
10321
 
  friend class ::WinMacros;
10322
 
  friend class ::CMatchSyntax;
10323
 
  friend class ::ExtGnu;
10324
 
  friend class ::ExtAC;
10325
 
  friend class ::ExtACBuilderCoupling;
10326
 
  friend class ::ExtACSyntaxCoupling;
10327
 
  friend class ::ExtACTree;
10328
 
  friend class ::ExtACKeywords;
10329
 
  friend class ::WinAsm;
10330
 
  friend class ::WinDeclSpecs;
10331
 
  friend class ::WinMemberExplSpec;
10332
 
  friend class ::WinTypeKeywords;
10333
 
  friend class ::PragmaOnceUnitState;
10334
 
  friend class ::PragmaOnce;
10335
 
  friend class ::CCExprResolve;
10336
 
  friend class ::CExprResolve;
10337
 
 
10338
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10339
 
 
10340
 
  CTree *sons[3]; // export, param_list, decl
10341
 
 
10342
 
public:
10343
 
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
10344
 
    sons[0] = e; sons[1] = p; sons[2] = d;
10345
 
  }
10346
 
  static const char *NodeId ();
10347
 
  const char *NodeName () const { return NodeId (); }
10348
 
  int Sons () const { return CTree::Sons (sons, 3); }
10349
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
10350
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10351
 
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
10352
 
  }
10353
 
  CTree *Export () const { return sons[0]; }
10354
 
  CT_TemplateParamList *Parameters () const { 
10355
 
    return (CT_TemplateParamList*)sons[1]; 
10356
 
  }
10357
 
  CTree *Declaration () const { return sons[2]; }
10358
 
};
10359
 
 
10360
 
 
10361
 
#line 10362 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10362
 
} // closed Puma
10363
 
class WinIfExists;
10364
 
class WinImportHandler;
10365
 
class WinMacros;
10366
 
class CMatchSyntax;
10367
 
class ExtGnu;
10368
 
class ExtAC;
10369
 
class ExtACBuilderCoupling;
10370
 
class ExtACSyntaxCoupling;
10371
 
class ExtACTree;
10372
 
class ExtACKeywords;
10373
 
class WinAsm;
10374
 
class WinDeclSpecs;
10375
 
class WinMemberExplSpec;
10376
 
class WinTypeKeywords;
10377
 
class PragmaOnceUnitState;
10378
 
class PragmaOnce;
10379
 
class CCExprResolve;
10380
 
class CExprResolve;
10381
 
namespace Puma {
10382
 
 
10383
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10384
 
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
10385
 
#line 10386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10386
 
  friend class ::WinIfExists;
10387
 
  friend class ::WinImportHandler;
10388
 
  friend class ::WinMacros;
10389
 
  friend class ::CMatchSyntax;
10390
 
  friend class ::ExtGnu;
10391
 
  friend class ::ExtAC;
10392
 
  friend class ::ExtACBuilderCoupling;
10393
 
  friend class ::ExtACSyntaxCoupling;
10394
 
  friend class ::ExtACTree;
10395
 
  friend class ::ExtACKeywords;
10396
 
  friend class ::WinAsm;
10397
 
  friend class ::WinDeclSpecs;
10398
 
  friend class ::WinMemberExplSpec;
10399
 
  friend class ::WinTypeKeywords;
10400
 
  friend class ::PragmaOnceUnitState;
10401
 
  friend class ::PragmaOnce;
10402
 
  friend class ::CCExprResolve;
10403
 
  friend class ::CExprResolve;
10404
 
 
10405
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10406
 
 
10407
 
protected:
10408
 
  CT_TemplateParamDecl () {}
10409
 
  
10410
 
public:
10411
 
  virtual CT_ExprList *DefaultArgument () const = 0;
10412
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
10413
 
};
10414
 
 
10415
 
 
10416
 
#line 10417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10417
 
} // closed Puma
10418
 
class WinIfExists;
10419
 
class WinImportHandler;
10420
 
class WinMacros;
10421
 
class CMatchSyntax;
10422
 
class ExtGnu;
10423
 
class ExtAC;
10424
 
class ExtACBuilderCoupling;
10425
 
class ExtACSyntaxCoupling;
10426
 
class ExtACTree;
10427
 
class ExtACKeywords;
10428
 
class WinAsm;
10429
 
class WinDeclSpecs;
10430
 
class WinMemberExplSpec;
10431
 
class WinTypeKeywords;
10432
 
class PragmaOnceUnitState;
10433
 
class PragmaOnce;
10434
 
class CCExprResolve;
10435
 
class CExprResolve;
10436
 
namespace Puma {
10437
 
 
10438
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10439
 
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
10440
 
#line 10441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10441
 
  friend class ::WinIfExists;
10442
 
  friend class ::WinImportHandler;
10443
 
  friend class ::WinMacros;
10444
 
  friend class ::CMatchSyntax;
10445
 
  friend class ::ExtGnu;
10446
 
  friend class ::ExtAC;
10447
 
  friend class ::ExtACBuilderCoupling;
10448
 
  friend class ::ExtACSyntaxCoupling;
10449
 
  friend class ::ExtACTree;
10450
 
  friend class ::ExtACKeywords;
10451
 
  friend class ::WinAsm;
10452
 
  friend class ::WinDeclSpecs;
10453
 
  friend class ::WinMemberExplSpec;
10454
 
  friend class ::WinTypeKeywords;
10455
 
  friend class ::PragmaOnceUnitState;
10456
 
  friend class ::PragmaOnce;
10457
 
  friend class ::CCExprResolve;
10458
 
  friend class ::CExprResolve;
10459
 
 
10460
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10461
 
 
10462
 
  CTree *sons[3]; // declspecs, declarator, init
10463
 
 
10464
 
public:
10465
 
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
10466
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
10467
 
  }
10468
 
  static const char *NodeId ();
10469
 
  const char *NodeName () const { return NodeId (); }
10470
 
  int Sons () const { return CTree::Sons (sons, 3); }
10471
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
10472
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
10473
 
  CTree *Declarator () const { return sons[1]; }
10474
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
10475
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
10476
 
  void Initializer (CTree *i) { sons[2] = i; }
10477
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10478
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
10479
 
  }
10480
 
};
10481
 
 
10482
 
 
10483
 
#line 10484 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10484
 
} // closed Puma
10485
 
class WinIfExists;
10486
 
class WinImportHandler;
10487
 
class WinMacros;
10488
 
class CMatchSyntax;
10489
 
class ExtGnu;
10490
 
class ExtAC;
10491
 
class ExtACBuilderCoupling;
10492
 
class ExtACSyntaxCoupling;
10493
 
class ExtACTree;
10494
 
class ExtACKeywords;
10495
 
class WinAsm;
10496
 
class WinDeclSpecs;
10497
 
class WinMemberExplSpec;
10498
 
class WinTypeKeywords;
10499
 
class PragmaOnceUnitState;
10500
 
class PragmaOnce;
10501
 
class CCExprResolve;
10502
 
class CExprResolve;
10503
 
namespace Puma {
10504
 
 
10505
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10506
 
class CT_TypeParamDecl : public CT_TemplateParamDecl {
10507
 
#line 10508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10508
 
  friend class ::WinIfExists;
10509
 
  friend class ::WinImportHandler;
10510
 
  friend class ::WinMacros;
10511
 
  friend class ::CMatchSyntax;
10512
 
  friend class ::ExtGnu;
10513
 
  friend class ::ExtAC;
10514
 
  friend class ::ExtACBuilderCoupling;
10515
 
  friend class ::ExtACSyntaxCoupling;
10516
 
  friend class ::ExtACTree;
10517
 
  friend class ::ExtACKeywords;
10518
 
  friend class ::WinAsm;
10519
 
  friend class ::WinDeclSpecs;
10520
 
  friend class ::WinMemberExplSpec;
10521
 
  friend class ::WinTypeKeywords;
10522
 
  friend class ::PragmaOnceUnitState;
10523
 
  friend class ::PragmaOnce;
10524
 
  friend class ::CCExprResolve;
10525
 
  friend class ::CExprResolve;
10526
 
 
10527
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10528
 
 
10529
 
  CTree *sons[4]; // params, key, id, init
10530
 
 
10531
 
public:
10532
 
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
10533
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
10534
 
  }
10535
 
  static const char *NodeId ();
10536
 
  const char *NodeName () const { return NodeId (); }
10537
 
  int Sons () const { return CTree::Sons (sons, 4); }
10538
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
10539
 
  CT_TemplateParamList *Parameters () const { 
10540
 
    return (CT_TemplateParamList*)sons[0]; 
10541
 
  }
10542
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
10543
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
10544
 
  void Initializer (CTree *i) { sons[3] = i; }
10545
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10546
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
10547
 
  }
10548
 
};
10549
 
 
10550
 
 
10551
 
#line 10552 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10552
 
} // closed Puma
10553
 
class WinIfExists;
10554
 
class WinImportHandler;
10555
 
class WinMacros;
10556
 
class CMatchSyntax;
10557
 
class ExtGnu;
10558
 
class ExtAC;
10559
 
class ExtACBuilderCoupling;
10560
 
class ExtACSyntaxCoupling;
10561
 
class ExtACTree;
10562
 
class ExtACKeywords;
10563
 
class WinAsm;
10564
 
class WinDeclSpecs;
10565
 
class WinMemberExplSpec;
10566
 
class WinTypeKeywords;
10567
 
class PragmaOnceUnitState;
10568
 
class PragmaOnce;
10569
 
class CCExprResolve;
10570
 
class CExprResolve;
10571
 
namespace Puma {
10572
 
 
10573
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10574
 
class CT_EnumDef : public CT_Decl, public CSemObject {
10575
 
#line 10576 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10576
 
  friend class ::WinIfExists;
10577
 
  friend class ::WinImportHandler;
10578
 
  friend class ::WinMacros;
10579
 
  friend class ::CMatchSyntax;
10580
 
  friend class ::ExtGnu;
10581
 
  friend class ::ExtAC;
10582
 
  friend class ::ExtACBuilderCoupling;
10583
 
  friend class ::ExtACSyntaxCoupling;
10584
 
  friend class ::ExtACTree;
10585
 
  friend class ::ExtACKeywords;
10586
 
  friend class ::WinAsm;
10587
 
  friend class ::WinDeclSpecs;
10588
 
  friend class ::WinMemberExplSpec;
10589
 
  friend class ::WinTypeKeywords;
10590
 
  friend class ::PragmaOnceUnitState;
10591
 
  friend class ::PragmaOnce;
10592
 
  friend class ::CCExprResolve;
10593
 
  friend class ::CExprResolve;
10594
 
 
10595
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10596
 
 
10597
 
  CTree *sons[3]; // key, name, enumerators
10598
 
 
10599
 
public:
10600
 
  CT_EnumDef (CTree *k, CTree *n) {
10601
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
10602
 
  }
10603
 
  static const char *NodeId ();
10604
 
  const char *NodeName () const { return NodeId (); }
10605
 
  int Sons () const { return CTree::Sons (sons, 3); }
10606
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
10607
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
10608
 
  void Enumerators (CTree *el) { sons[2] = el; }
10609
 
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
10610
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10611
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
10612
 
  }
10613
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
10614
 
};
10615
 
 
10616
 
 
10617
 
#line 10618 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10618
 
} // closed Puma
10619
 
class WinIfExists;
10620
 
class WinImportHandler;
10621
 
class WinMacros;
10622
 
class CMatchSyntax;
10623
 
class ExtGnu;
10624
 
class ExtAC;
10625
 
class ExtACBuilderCoupling;
10626
 
class ExtACSyntaxCoupling;
10627
 
class ExtACTree;
10628
 
class ExtACKeywords;
10629
 
class WinAsm;
10630
 
class WinDeclSpecs;
10631
 
class WinMemberExplSpec;
10632
 
class WinTypeKeywords;
10633
 
class PragmaOnceUnitState;
10634
 
class PragmaOnce;
10635
 
class CCExprResolve;
10636
 
class CExprResolve;
10637
 
namespace Puma {
10638
 
 
10639
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10640
 
class CT_Enumerator : public CT_Decl, public CSemObject {
10641
 
#line 10642 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10642
 
  friend class ::WinIfExists;
10643
 
  friend class ::WinImportHandler;
10644
 
  friend class ::WinMacros;
10645
 
  friend class ::CMatchSyntax;
10646
 
  friend class ::ExtGnu;
10647
 
  friend class ::ExtAC;
10648
 
  friend class ::ExtACBuilderCoupling;
10649
 
  friend class ::ExtACSyntaxCoupling;
10650
 
  friend class ::ExtACTree;
10651
 
  friend class ::ExtACKeywords;
10652
 
  friend class ::WinAsm;
10653
 
  friend class ::WinDeclSpecs;
10654
 
  friend class ::WinMemberExplSpec;
10655
 
  friend class ::WinTypeKeywords;
10656
 
  friend class ::PragmaOnceUnitState;
10657
 
  friend class ::PragmaOnce;
10658
 
  friend class ::CCExprResolve;
10659
 
  friend class ::CExprResolve;
10660
 
 
10661
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10662
 
 
10663
 
  CTree *sons[2]; // name, init
10664
 
 
10665
 
public:
10666
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
10667
 
  static const char *NodeId ();
10668
 
  const char *NodeName () const { return NodeId (); }
10669
 
  int Sons () const { return CTree::Sons (sons, 2); }
10670
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
10671
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
10672
 
  void Initializer (CTree *i) { sons[1] = i; }
10673
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
10674
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10675
 
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
10676
 
  }
10677
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
10678
 
};
10679
 
 
10680
 
 
10681
 
#line 10682 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10682
 
} // closed Puma
10683
 
class WinIfExists;
10684
 
class WinImportHandler;
10685
 
class WinMacros;
10686
 
class CMatchSyntax;
10687
 
class ExtGnu;
10688
 
class ExtAC;
10689
 
class ExtACBuilderCoupling;
10690
 
class ExtACSyntaxCoupling;
10691
 
class ExtACTree;
10692
 
class ExtACKeywords;
10693
 
class WinAsm;
10694
 
class WinDeclSpecs;
10695
 
class WinMemberExplSpec;
10696
 
class WinTypeKeywords;
10697
 
class PragmaOnceUnitState;
10698
 
class PragmaOnce;
10699
 
class CCExprResolve;
10700
 
class CExprResolve;
10701
 
namespace Puma {
10702
 
 
10703
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10704
 
class CT_FctDef : public CT_Decl, public CSemObject {
10705
 
#line 10706 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10706
 
  friend class ::WinIfExists;
10707
 
  friend class ::WinImportHandler;
10708
 
  friend class ::WinMacros;
10709
 
  friend class ::CMatchSyntax;
10710
 
  friend class ::ExtGnu;
10711
 
  friend class ::ExtAC;
10712
 
  friend class ::ExtACBuilderCoupling;
10713
 
  friend class ::ExtACSyntaxCoupling;
10714
 
  friend class ::ExtACTree;
10715
 
  friend class ::ExtACKeywords;
10716
 
  friend class ::WinAsm;
10717
 
  friend class ::WinDeclSpecs;
10718
 
  friend class ::WinMemberExplSpec;
10719
 
  friend class ::WinTypeKeywords;
10720
 
  friend class ::PragmaOnceUnitState;
10721
 
  friend class ::PragmaOnce;
10722
 
  friend class ::CCExprResolve;
10723
 
  friend class ::CExprResolve;
10724
 
 
10725
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10726
 
 
10727
 
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
10728
 
 
10729
 
public:
10730
 
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
10731
 
             CTree *b, CTree *hs) {
10732
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
10733
 
    sons[5] = b; sons[6] = hs; 
10734
 
  }
10735
 
  static const char *NodeId ();
10736
 
  const char *NodeName () const { return NodeId (); }
10737
 
  int Sons () const { return CTree::Sons (sons, 7); }
10738
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
10739
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
10740
 
  CTree *Declarator () const { return sons[1]; }
10741
 
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
10742
 
  CTree *CtorInit () const { return sons[3]; }
10743
 
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
10744
 
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
10745
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
10746
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
10747
 
  void CtorInit (CTree *i) { sons[3] = i; }
10748
 
  void Body (CTree *b) { sons[5] = b; }
10749
 
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
10750
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
10751
 
  }
10752
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10753
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
10754
 
  }
10755
 
};
10756
 
 
10757
 
 
10758
 
#line 10759 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10759
 
} // closed Puma
10760
 
class WinIfExists;
10761
 
class WinImportHandler;
10762
 
class WinMacros;
10763
 
class CMatchSyntax;
10764
 
class ExtGnu;
10765
 
class ExtAC;
10766
 
class ExtACBuilderCoupling;
10767
 
class ExtACSyntaxCoupling;
10768
 
class ExtACTree;
10769
 
class ExtACKeywords;
10770
 
class WinAsm;
10771
 
class WinDeclSpecs;
10772
 
class WinMemberExplSpec;
10773
 
class WinTypeKeywords;
10774
 
class PragmaOnceUnitState;
10775
 
class PragmaOnce;
10776
 
class CCExprResolve;
10777
 
class CExprResolve;
10778
 
namespace Puma {
10779
 
 
10780
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10781
 
class CT_AsmDef : public CT_Decl {
10782
 
#line 10783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10783
 
  friend class ::WinIfExists;
10784
 
  friend class ::WinImportHandler;
10785
 
  friend class ::WinMacros;
10786
 
  friend class ::CMatchSyntax;
10787
 
  friend class ::ExtGnu;
10788
 
  friend class ::ExtAC;
10789
 
  friend class ::ExtACBuilderCoupling;
10790
 
  friend class ::ExtACSyntaxCoupling;
10791
 
  friend class ::ExtACTree;
10792
 
  friend class ::ExtACKeywords;
10793
 
  friend class ::WinAsm;
10794
 
  friend class ::WinDeclSpecs;
10795
 
  friend class ::WinMemberExplSpec;
10796
 
  friend class ::WinTypeKeywords;
10797
 
  friend class ::PragmaOnceUnitState;
10798
 
  friend class ::PragmaOnce;
10799
 
  friend class ::CCExprResolve;
10800
 
  friend class ::CExprResolve;
10801
 
 
10802
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10803
 
 
10804
 
  CTree *sons[5]; // asm, open, str, close, semi_colon
10805
 
 
10806
 
public:
10807
 
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
10808
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
10809
 
  }
10810
 
  static const char *NodeId ();
10811
 
  const char *NodeName () const { return NodeId (); }
10812
 
  int Sons () const { return 5; }
10813
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
10814
 
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
10815
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10816
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
10817
 
  }
10818
 
};
10819
 
 
10820
 
 
10821
 
#line 10822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10822
 
} // closed Puma
10823
 
class WinIfExists;
10824
 
class WinImportHandler;
10825
 
class WinMacros;
10826
 
class CMatchSyntax;
10827
 
class ExtGnu;
10828
 
class ExtAC;
10829
 
class ExtACBuilderCoupling;
10830
 
class ExtACSyntaxCoupling;
10831
 
class ExtACTree;
10832
 
class ExtACKeywords;
10833
 
class WinAsm;
10834
 
class WinDeclSpecs;
10835
 
class WinMemberExplSpec;
10836
 
class WinTypeKeywords;
10837
 
class PragmaOnceUnitState;
10838
 
class PragmaOnce;
10839
 
class CCExprResolve;
10840
 
class CExprResolve;
10841
 
namespace Puma {
10842
 
 
10843
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10844
 
class CT_Handler : public CT_Decl, public CSemScope {
10845
 
#line 10846 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10846
 
  friend class ::WinIfExists;
10847
 
  friend class ::WinImportHandler;
10848
 
  friend class ::WinMacros;
10849
 
  friend class ::CMatchSyntax;
10850
 
  friend class ::ExtGnu;
10851
 
  friend class ::ExtAC;
10852
 
  friend class ::ExtACBuilderCoupling;
10853
 
  friend class ::ExtACSyntaxCoupling;
10854
 
  friend class ::ExtACTree;
10855
 
  friend class ::ExtACKeywords;
10856
 
  friend class ::WinAsm;
10857
 
  friend class ::WinDeclSpecs;
10858
 
  friend class ::WinMemberExplSpec;
10859
 
  friend class ::WinTypeKeywords;
10860
 
  friend class ::PragmaOnceUnitState;
10861
 
  friend class ::PragmaOnce;
10862
 
  friend class ::CCExprResolve;
10863
 
  friend class ::CExprResolve;
10864
 
 
10865
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10866
 
 
10867
 
  CTree *sons[3]; // catch, exception_decl, stmt
10868
 
 
10869
 
public:
10870
 
  CT_Handler (CTree *c, CTree *e, CTree *s) {
10871
 
    sons[0] = c; sons[1] = e; sons[2] = s;
10872
 
  }
10873
 
  static const char *NodeId ();
10874
 
  const char *NodeName () const { return NodeId (); }
10875
 
  int Sons () const { return 3; }
10876
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
10877
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
10878
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
10879
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10880
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
10881
 
  }
10882
 
};
10883
 
 
10884
 
 
10885
 
#line 10886 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10886
 
} // closed Puma
10887
 
class WinIfExists;
10888
 
class WinImportHandler;
10889
 
class WinMacros;
10890
 
class CMatchSyntax;
10891
 
class ExtGnu;
10892
 
class ExtAC;
10893
 
class ExtACBuilderCoupling;
10894
 
class ExtACSyntaxCoupling;
10895
 
class ExtACTree;
10896
 
class ExtACKeywords;
10897
 
class WinAsm;
10898
 
class WinDeclSpecs;
10899
 
class WinMemberExplSpec;
10900
 
class WinTypeKeywords;
10901
 
class PragmaOnceUnitState;
10902
 
class PragmaOnce;
10903
 
class CCExprResolve;
10904
 
class CExprResolve;
10905
 
namespace Puma {
10906
 
 
10907
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10908
 
class CT_LinkageSpec : public CT_Decl {
10909
 
#line 10910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10910
 
  friend class ::WinIfExists;
10911
 
  friend class ::WinImportHandler;
10912
 
  friend class ::WinMacros;
10913
 
  friend class ::CMatchSyntax;
10914
 
  friend class ::ExtGnu;
10915
 
  friend class ::ExtAC;
10916
 
  friend class ::ExtACBuilderCoupling;
10917
 
  friend class ::ExtACSyntaxCoupling;
10918
 
  friend class ::ExtACTree;
10919
 
  friend class ::ExtACKeywords;
10920
 
  friend class ::WinAsm;
10921
 
  friend class ::WinDeclSpecs;
10922
 
  friend class ::WinMemberExplSpec;
10923
 
  friend class ::WinTypeKeywords;
10924
 
  friend class ::PragmaOnceUnitState;
10925
 
  friend class ::PragmaOnce;
10926
 
  friend class ::CCExprResolve;
10927
 
  friend class ::CExprResolve;
10928
 
 
10929
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10930
 
 
10931
 
  CTree *sons[5]; // extern, str, open, decls, close
10932
 
 
10933
 
public:
10934
 
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
10935
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
10936
 
    if (isList ())
10937
 
      ((CT_DeclList*)Decls ())->Linkage (this);
10938
 
    else
10939
 
      ((CT_Decl*)Decls ())->Linkage (this);
10940
 
  }
10941
 
  static const char *NodeId ();
10942
 
  const char *NodeName () const { return NodeId (); }
10943
 
  int Sons () const { return CTree::Sons (sons, 5); }
10944
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
10945
 
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
10946
 
  CTree *Decls () const { return sons[3]; }
10947
 
  bool isList () const {
10948
 
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
10949
 
  }
10950
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10951
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
10952
 
  }
10953
 
};
10954
 
 
10955
 
 
10956
 
#line 10957 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10957
 
} // closed Puma
10958
 
class WinIfExists;
10959
 
class WinImportHandler;
10960
 
class WinMacros;
10961
 
class CMatchSyntax;
10962
 
class ExtGnu;
10963
 
class ExtAC;
10964
 
class ExtACBuilderCoupling;
10965
 
class ExtACSyntaxCoupling;
10966
 
class ExtACTree;
10967
 
class ExtACKeywords;
10968
 
class WinAsm;
10969
 
class WinDeclSpecs;
10970
 
class WinMemberExplSpec;
10971
 
class WinTypeKeywords;
10972
 
class PragmaOnceUnitState;
10973
 
class PragmaOnce;
10974
 
class CCExprResolve;
10975
 
class CExprResolve;
10976
 
namespace Puma {
10977
 
 
10978
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10979
 
class CT_ArgDecl : public CT_Decl, public CSemObject {
10980
 
#line 10981 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
10981
 
  friend class ::WinIfExists;
10982
 
  friend class ::WinImportHandler;
10983
 
  friend class ::WinMacros;
10984
 
  friend class ::CMatchSyntax;
10985
 
  friend class ::ExtGnu;
10986
 
  friend class ::ExtAC;
10987
 
  friend class ::ExtACBuilderCoupling;
10988
 
  friend class ::ExtACSyntaxCoupling;
10989
 
  friend class ::ExtACTree;
10990
 
  friend class ::ExtACKeywords;
10991
 
  friend class ::WinAsm;
10992
 
  friend class ::WinDeclSpecs;
10993
 
  friend class ::WinMemberExplSpec;
10994
 
  friend class ::WinTypeKeywords;
10995
 
  friend class ::PragmaOnceUnitState;
10996
 
  friend class ::PragmaOnce;
10997
 
  friend class ::CCExprResolve;
10998
 
  friend class ::CExprResolve;
10999
 
 
11000
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11001
 
 
11002
 
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
11003
 
 
11004
 
public:
11005
 
  CT_ArgDecl (CTree *dsl, CTree *d) {
11006
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
11007
 
  }
11008
 
  CT_ArgDecl (CTree *ellipsis) {
11009
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
11010
 
  }
11011
 
  static const char *NodeId ();
11012
 
  const char *NodeName () const { return NodeId (); }
11013
 
  int Sons () const { return CTree::Sons (sons, 4); }
11014
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11015
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
11016
 
  CTree *Declarator () const { return sons[1]; }
11017
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
11018
 
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
11019
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
11020
 
  void Initializer (CTree *i) { sons[2] = i; }
11021
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11022
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11023
 
  }
11024
 
};
11025
 
 
11026
 
 
11027
 
#line 11028 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11028
 
} // closed Puma
11029
 
class WinIfExists;
11030
 
class WinImportHandler;
11031
 
class WinMacros;
11032
 
class CMatchSyntax;
11033
 
class ExtGnu;
11034
 
class ExtAC;
11035
 
class ExtACBuilderCoupling;
11036
 
class ExtACSyntaxCoupling;
11037
 
class ExtACTree;
11038
 
class ExtACKeywords;
11039
 
class WinAsm;
11040
 
class WinDeclSpecs;
11041
 
class WinMemberExplSpec;
11042
 
class WinTypeKeywords;
11043
 
class PragmaOnceUnitState;
11044
 
class PragmaOnce;
11045
 
class CCExprResolve;
11046
 
class CExprResolve;
11047
 
namespace Puma {
11048
 
 
11049
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11050
 
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
11051
 
#line 11052 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11052
 
  friend class ::WinIfExists;
11053
 
  friend class ::WinImportHandler;
11054
 
  friend class ::WinMacros;
11055
 
  friend class ::CMatchSyntax;
11056
 
  friend class ::ExtGnu;
11057
 
  friend class ::ExtAC;
11058
 
  friend class ::ExtACBuilderCoupling;
11059
 
  friend class ::ExtACSyntaxCoupling;
11060
 
  friend class ::ExtACTree;
11061
 
  friend class ::ExtACKeywords;
11062
 
  friend class ::WinAsm;
11063
 
  friend class ::WinDeclSpecs;
11064
 
  friend class ::WinMemberExplSpec;
11065
 
  friend class ::WinTypeKeywords;
11066
 
  friend class ::PragmaOnceUnitState;
11067
 
  friend class ::PragmaOnce;
11068
 
  friend class ::CCExprResolve;
11069
 
  friend class ::CExprResolve;
11070
 
 
11071
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11072
 
 
11073
 
public:
11074
 
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
11075
 
   CT_DeclList (size, 2) { AddProperties (props); }
11076
 
  static const char *NodeId ();
11077
 
  const char *NodeName () const { return NodeId (); }
11078
 
};
11079
 
 
11080
 
 
11081
 
#line 11082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11082
 
} // closed Puma
11083
 
class WinIfExists;
11084
 
class WinImportHandler;
11085
 
class WinMacros;
11086
 
class CMatchSyntax;
11087
 
class ExtGnu;
11088
 
class ExtAC;
11089
 
class ExtACBuilderCoupling;
11090
 
class ExtACSyntaxCoupling;
11091
 
class ExtACTree;
11092
 
class ExtACKeywords;
11093
 
class WinAsm;
11094
 
class WinDeclSpecs;
11095
 
class WinMemberExplSpec;
11096
 
class WinTypeKeywords;
11097
 
class PragmaOnceUnitState;
11098
 
class PragmaOnce;
11099
 
class CCExprResolve;
11100
 
class CExprResolve;
11101
 
namespace Puma {
11102
 
 
11103
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11104
 
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
11105
 
#line 11106 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11106
 
  friend class ::WinIfExists;
11107
 
  friend class ::WinImportHandler;
11108
 
  friend class ::WinMacros;
11109
 
  friend class ::CMatchSyntax;
11110
 
  friend class ::ExtGnu;
11111
 
  friend class ::ExtAC;
11112
 
  friend class ::ExtACBuilderCoupling;
11113
 
  friend class ::ExtACSyntaxCoupling;
11114
 
  friend class ::ExtACTree;
11115
 
  friend class ::ExtACKeywords;
11116
 
  friend class ::WinAsm;
11117
 
  friend class ::WinDeclSpecs;
11118
 
  friend class ::WinMemberExplSpec;
11119
 
  friend class ::WinTypeKeywords;
11120
 
  friend class ::PragmaOnceUnitState;
11121
 
  friend class ::PragmaOnce;
11122
 
  friend class ::CCExprResolve;
11123
 
  friend class ::CExprResolve;
11124
 
 
11125
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11126
 
 
11127
 
public:
11128
 
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
11129
 
  static const char *NodeId ();
11130
 
  const char *NodeName () const { return NodeId (); }
11131
 
};
11132
 
 
11133
 
 
11134
 
#line 11135 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11135
 
} // closed Puma
11136
 
class WinIfExists;
11137
 
class WinImportHandler;
11138
 
class WinMacros;
11139
 
class CMatchSyntax;
11140
 
class ExtGnu;
11141
 
class ExtAC;
11142
 
class ExtACBuilderCoupling;
11143
 
class ExtACSyntaxCoupling;
11144
 
class ExtACTree;
11145
 
class ExtACKeywords;
11146
 
class WinAsm;
11147
 
class WinDeclSpecs;
11148
 
class WinMemberExplSpec;
11149
 
class WinTypeKeywords;
11150
 
class PragmaOnceUnitState;
11151
 
class PragmaOnce;
11152
 
class CCExprResolve;
11153
 
class CExprResolve;
11154
 
namespace Puma {
11155
 
 
11156
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11157
 
class CT_ArgNameList : public CT_ArgDeclList {
11158
 
#line 11159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11159
 
  friend class ::WinIfExists;
11160
 
  friend class ::WinImportHandler;
11161
 
  friend class ::WinMacros;
11162
 
  friend class ::CMatchSyntax;
11163
 
  friend class ::ExtGnu;
11164
 
  friend class ::ExtAC;
11165
 
  friend class ::ExtACBuilderCoupling;
11166
 
  friend class ::ExtACSyntaxCoupling;
11167
 
  friend class ::ExtACTree;
11168
 
  friend class ::ExtACKeywords;
11169
 
  friend class ::WinAsm;
11170
 
  friend class ::WinDeclSpecs;
11171
 
  friend class ::WinMemberExplSpec;
11172
 
  friend class ::WinTypeKeywords;
11173
 
  friend class ::PragmaOnceUnitState;
11174
 
  friend class ::PragmaOnce;
11175
 
  friend class ::CCExprResolve;
11176
 
  friend class ::CExprResolve;
11177
 
 
11178
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11179
 
 
11180
 
public:
11181
 
  CT_ArgNameList () : CT_ArgDeclList () {}
11182
 
  static const char *NodeId ();
11183
 
  const char *NodeName () const { return NodeId (); }
11184
 
};
11185
 
 
11186
 
 
11187
 
#line 11188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11188
 
} // closed Puma
11189
 
class WinIfExists;
11190
 
class WinImportHandler;
11191
 
class WinMacros;
11192
 
class CMatchSyntax;
11193
 
class ExtGnu;
11194
 
class ExtAC;
11195
 
class ExtACBuilderCoupling;
11196
 
class ExtACSyntaxCoupling;
11197
 
class ExtACTree;
11198
 
class ExtACKeywords;
11199
 
class WinAsm;
11200
 
class WinDeclSpecs;
11201
 
class WinMemberExplSpec;
11202
 
class WinTypeKeywords;
11203
 
class PragmaOnceUnitState;
11204
 
class PragmaOnce;
11205
 
class CCExprResolve;
11206
 
class CExprResolve;
11207
 
namespace Puma {
11208
 
 
11209
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11210
 
class CT_NamespaceDef : public CT_Decl, public CSemObject {
11211
 
#line 11212 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11212
 
  friend class ::WinIfExists;
11213
 
  friend class ::WinImportHandler;
11214
 
  friend class ::WinMacros;
11215
 
  friend class ::CMatchSyntax;
11216
 
  friend class ::ExtGnu;
11217
 
  friend class ::ExtAC;
11218
 
  friend class ::ExtACBuilderCoupling;
11219
 
  friend class ::ExtACSyntaxCoupling;
11220
 
  friend class ::ExtACTree;
11221
 
  friend class ::ExtACKeywords;
11222
 
  friend class ::WinAsm;
11223
 
  friend class ::WinDeclSpecs;
11224
 
  friend class ::WinMemberExplSpec;
11225
 
  friend class ::WinTypeKeywords;
11226
 
  friend class ::PragmaOnceUnitState;
11227
 
  friend class ::PragmaOnce;
11228
 
  friend class ::CCExprResolve;
11229
 
  friend class ::CExprResolve;
11230
 
 
11231
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11232
 
 
11233
 
  CTree *sons[3]; // ns, name, members
11234
 
 
11235
 
public:
11236
 
  CT_NamespaceDef (CTree *n, CTree *nm) {
11237
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
11238
 
  }
11239
 
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
11240
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
11241
 
  }
11242
 
  static const char *NodeId ();
11243
 
  const char *NodeName () const { return NodeId (); }
11244
 
  int Sons () const { return CTree::Sons (sons, 3); }
11245
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
11246
 
  void Members (CTree *m) { sons[2] = m; }
11247
 
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
11248
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
11249
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
11250
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11251
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
11252
 
  }
11253
 
};
11254
 
 
11255
 
 
11256
 
#line 11257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11257
 
} // closed Puma
11258
 
class WinIfExists;
11259
 
class WinImportHandler;
11260
 
class WinMacros;
11261
 
class CMatchSyntax;
11262
 
class ExtGnu;
11263
 
class ExtAC;
11264
 
class ExtACBuilderCoupling;
11265
 
class ExtACSyntaxCoupling;
11266
 
class ExtACTree;
11267
 
class ExtACKeywords;
11268
 
class WinAsm;
11269
 
class WinDeclSpecs;
11270
 
class WinMemberExplSpec;
11271
 
class WinTypeKeywords;
11272
 
class PragmaOnceUnitState;
11273
 
class PragmaOnce;
11274
 
class CCExprResolve;
11275
 
class CExprResolve;
11276
 
namespace Puma {
11277
 
 
11278
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11279
 
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
11280
 
#line 11281 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11281
 
  friend class ::WinIfExists;
11282
 
  friend class ::WinImportHandler;
11283
 
  friend class ::WinMacros;
11284
 
  friend class ::CMatchSyntax;
11285
 
  friend class ::ExtGnu;
11286
 
  friend class ::ExtAC;
11287
 
  friend class ::ExtACBuilderCoupling;
11288
 
  friend class ::ExtACSyntaxCoupling;
11289
 
  friend class ::ExtACTree;
11290
 
  friend class ::ExtACKeywords;
11291
 
  friend class ::WinAsm;
11292
 
  friend class ::WinDeclSpecs;
11293
 
  friend class ::WinMemberExplSpec;
11294
 
  friend class ::WinTypeKeywords;
11295
 
  friend class ::PragmaOnceUnitState;
11296
 
  friend class ::PragmaOnce;
11297
 
  friend class ::CCExprResolve;
11298
 
  friend class ::CExprResolve;
11299
 
 
11300
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11301
 
 
11302
 
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
11303
 
 
11304
 
public:
11305
 
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
11306
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
11307
 
  }
11308
 
  static const char *NodeId ();
11309
 
  const char *NodeName () const { return NodeId (); }
11310
 
  int Sons () const { return 5; }
11311
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
11312
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
11313
 
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
11314
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
11315
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11316
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
11317
 
  }
11318
 
};
11319
 
 
11320
 
 
11321
 
#line 11322 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11322
 
} // closed Puma
11323
 
class WinIfExists;
11324
 
class WinImportHandler;
11325
 
class WinMacros;
11326
 
class CMatchSyntax;
11327
 
class ExtGnu;
11328
 
class ExtAC;
11329
 
class ExtACBuilderCoupling;
11330
 
class ExtACSyntaxCoupling;
11331
 
class ExtACTree;
11332
 
class ExtACKeywords;
11333
 
class WinAsm;
11334
 
class WinDeclSpecs;
11335
 
class WinMemberExplSpec;
11336
 
class WinTypeKeywords;
11337
 
class PragmaOnceUnitState;
11338
 
class PragmaOnce;
11339
 
class CCExprResolve;
11340
 
class CExprResolve;
11341
 
namespace Puma {
11342
 
 
11343
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11344
 
class CT_UsingDirective : public CT_Decl {
11345
 
#line 11346 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11346
 
  friend class ::WinIfExists;
11347
 
  friend class ::WinImportHandler;
11348
 
  friend class ::WinMacros;
11349
 
  friend class ::CMatchSyntax;
11350
 
  friend class ::ExtGnu;
11351
 
  friend class ::ExtAC;
11352
 
  friend class ::ExtACBuilderCoupling;
11353
 
  friend class ::ExtACSyntaxCoupling;
11354
 
  friend class ::ExtACTree;
11355
 
  friend class ::ExtACKeywords;
11356
 
  friend class ::WinAsm;
11357
 
  friend class ::WinDeclSpecs;
11358
 
  friend class ::WinMemberExplSpec;
11359
 
  friend class ::WinTypeKeywords;
11360
 
  friend class ::PragmaOnceUnitState;
11361
 
  friend class ::PragmaOnce;
11362
 
  friend class ::CCExprResolve;
11363
 
  friend class ::CExprResolve;
11364
 
 
11365
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11366
 
 
11367
 
  CTree *sons[4]; // using, ns, name, semi_colon
11368
 
 
11369
 
public:
11370
 
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
11371
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
11372
 
  }
11373
 
  static const char *NodeId ();
11374
 
  const char *NodeName () const { return NodeId (); }
11375
 
  int Sons () const { return 4; }
11376
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11377
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
11378
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11379
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11380
 
  }
11381
 
};
11382
 
 
11383
 
/*****************************************************************************/
11384
 
/*                                                                           */
11385
 
/*                              Declarators                                  */
11386
 
/*                                                                           */
11387
 
/*****************************************************************************/
11388
 
 
11389
 
 
11390
 
#line 11391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11391
 
} // closed Puma
11392
 
class WinIfExists;
11393
 
class WinImportHandler;
11394
 
class WinMacros;
11395
 
class CMatchSyntax;
11396
 
class ExtGnu;
11397
 
class ExtAC;
11398
 
class ExtACBuilderCoupling;
11399
 
class ExtACSyntaxCoupling;
11400
 
class ExtACTree;
11401
 
class ExtACKeywords;
11402
 
class WinAsm;
11403
 
class WinDeclSpecs;
11404
 
class WinMemberExplSpec;
11405
 
class WinTypeKeywords;
11406
 
class PragmaOnceUnitState;
11407
 
class PragmaOnce;
11408
 
class CCExprResolve;
11409
 
class CExprResolve;
11410
 
namespace Puma {
11411
 
 
11412
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11413
 
class CT_Declarator : public CTree {
11414
 
#line 11415 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11415
 
  friend class ::WinIfExists;
11416
 
  friend class ::WinImportHandler;
11417
 
  friend class ::WinMacros;
11418
 
  friend class ::CMatchSyntax;
11419
 
  friend class ::ExtGnu;
11420
 
  friend class ::ExtAC;
11421
 
  friend class ::ExtACBuilderCoupling;
11422
 
  friend class ::ExtACSyntaxCoupling;
11423
 
  friend class ::ExtACTree;
11424
 
  friend class ::ExtACKeywords;
11425
 
  friend class ::WinAsm;
11426
 
  friend class ::WinDeclSpecs;
11427
 
  friend class ::WinMemberExplSpec;
11428
 
  friend class ::WinTypeKeywords;
11429
 
  friend class ::PragmaOnceUnitState;
11430
 
  friend class ::PragmaOnce;
11431
 
  friend class ::CCExprResolve;
11432
 
  friend class ::CExprResolve;
11433
 
 
11434
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11435
 
 
11436
 
protected:
11437
 
  CT_Declarator () {}
11438
 
 
11439
 
public:
11440
 
  virtual CTree *Declarator () const = 0;
11441
 
  //classification function
11442
 
  virtual CT_Declarator *IsDeclarator () { return this; }
11443
 
  // locate the name node
11444
 
  CT_SimpleName *Name ();
11445
 
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
11446
 
};
11447
 
 
11448
 
 
11449
 
#line 11450 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11450
 
} // closed Puma
11451
 
class WinIfExists;
11452
 
class WinImportHandler;
11453
 
class WinMacros;
11454
 
class CMatchSyntax;
11455
 
class ExtGnu;
11456
 
class ExtAC;
11457
 
class ExtACBuilderCoupling;
11458
 
class ExtACSyntaxCoupling;
11459
 
class ExtACTree;
11460
 
class ExtACKeywords;
11461
 
class WinAsm;
11462
 
class WinDeclSpecs;
11463
 
class WinMemberExplSpec;
11464
 
class WinTypeKeywords;
11465
 
class PragmaOnceUnitState;
11466
 
class PragmaOnce;
11467
 
class CCExprResolve;
11468
 
class CExprResolve;
11469
 
namespace Puma {
11470
 
 
11471
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11472
 
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
11473
 
#line 11474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11474
 
  friend class ::WinIfExists;
11475
 
  friend class ::WinImportHandler;
11476
 
  friend class ::WinMacros;
11477
 
  friend class ::CMatchSyntax;
11478
 
  friend class ::ExtGnu;
11479
 
  friend class ::ExtAC;
11480
 
  friend class ::ExtACBuilderCoupling;
11481
 
  friend class ::ExtACSyntaxCoupling;
11482
 
  friend class ::ExtACTree;
11483
 
  friend class ::ExtACKeywords;
11484
 
  friend class ::WinAsm;
11485
 
  friend class ::WinDeclSpecs;
11486
 
  friend class ::WinMemberExplSpec;
11487
 
  friend class ::WinTypeKeywords;
11488
 
  friend class ::PragmaOnceUnitState;
11489
 
  friend class ::PragmaOnce;
11490
 
  friend class ::CCExprResolve;
11491
 
  friend class ::CExprResolve;
11492
 
 
11493
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11494
 
 
11495
 
  CTree *sons[2]; // declarator, init
11496
 
  CTree *obj_decl;
11497
 
 
11498
 
public:
11499
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
11500
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
11501
 
  }
11502
 
  static const char *NodeId ();
11503
 
  const char *NodeName () const { return NodeId (); }
11504
 
  int Sons () const { return CTree::Sons (sons, 2); }
11505
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
11506
 
  CTree *Declarator () const { return sons[0]; }
11507
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
11508
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
11509
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
11510
 
  void Initializer (CTree* i) { sons[1] = i; }
11511
 
  void ObjDecl (CTree *od) { obj_decl = od; }
11512
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11513
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
11514
 
  }
11515
 
};
11516
 
 
11517
 
 
11518
 
#line 11519 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11519
 
} // closed Puma
11520
 
class WinIfExists;
11521
 
class WinImportHandler;
11522
 
class WinMacros;
11523
 
class CMatchSyntax;
11524
 
class ExtGnu;
11525
 
class ExtAC;
11526
 
class ExtACBuilderCoupling;
11527
 
class ExtACSyntaxCoupling;
11528
 
class ExtACTree;
11529
 
class ExtACKeywords;
11530
 
class WinAsm;
11531
 
class WinDeclSpecs;
11532
 
class WinMemberExplSpec;
11533
 
class WinTypeKeywords;
11534
 
class PragmaOnceUnitState;
11535
 
class PragmaOnce;
11536
 
class CCExprResolve;
11537
 
class CExprResolve;
11538
 
namespace Puma {
11539
 
 
11540
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11541
 
class CT_BracedDeclarator : public CT_Declarator {
11542
 
#line 11543 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11543
 
  friend class ::WinIfExists;
11544
 
  friend class ::WinImportHandler;
11545
 
  friend class ::WinMacros;
11546
 
  friend class ::CMatchSyntax;
11547
 
  friend class ::ExtGnu;
11548
 
  friend class ::ExtAC;
11549
 
  friend class ::ExtACBuilderCoupling;
11550
 
  friend class ::ExtACSyntaxCoupling;
11551
 
  friend class ::ExtACTree;
11552
 
  friend class ::ExtACKeywords;
11553
 
  friend class ::WinAsm;
11554
 
  friend class ::WinDeclSpecs;
11555
 
  friend class ::WinMemberExplSpec;
11556
 
  friend class ::WinTypeKeywords;
11557
 
  friend class ::PragmaOnceUnitState;
11558
 
  friend class ::PragmaOnce;
11559
 
  friend class ::CCExprResolve;
11560
 
  friend class ::CExprResolve;
11561
 
 
11562
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11563
 
 
11564
 
  CTree *sons[4]; // open, win_specs, declarator, close
11565
 
 
11566
 
public:
11567
 
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
11568
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
11569
 
  }
11570
 
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
11571
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
11572
 
  }
11573
 
  static const char *NodeId ();
11574
 
  const char *NodeName () const { return NodeId (); }
11575
 
  int Sons () const { return CTree::Sons (sons, 4); }
11576
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11577
 
  CTree *Declarator () const { return sons[2]; }
11578
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11579
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11580
 
  }
11581
 
};
11582
 
 
11583
 
 
11584
 
#line 11585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11585
 
} // closed Puma
11586
 
class WinIfExists;
11587
 
class WinImportHandler;
11588
 
class WinMacros;
11589
 
class CMatchSyntax;
11590
 
class ExtGnu;
11591
 
class ExtAC;
11592
 
class ExtACBuilderCoupling;
11593
 
class ExtACSyntaxCoupling;
11594
 
class ExtACTree;
11595
 
class ExtACKeywords;
11596
 
class WinAsm;
11597
 
class WinDeclSpecs;
11598
 
class WinMemberExplSpec;
11599
 
class WinTypeKeywords;
11600
 
class PragmaOnceUnitState;
11601
 
class PragmaOnce;
11602
 
class CCExprResolve;
11603
 
class CExprResolve;
11604
 
namespace Puma {
11605
 
 
11606
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11607
 
class CT_ArrayDelimiter : public CTree {
11608
 
#line 11609 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11609
 
  friend class ::WinIfExists;
11610
 
  friend class ::WinImportHandler;
11611
 
  friend class ::WinMacros;
11612
 
  friend class ::CMatchSyntax;
11613
 
  friend class ::ExtGnu;
11614
 
  friend class ::ExtAC;
11615
 
  friend class ::ExtACBuilderCoupling;
11616
 
  friend class ::ExtACSyntaxCoupling;
11617
 
  friend class ::ExtACTree;
11618
 
  friend class ::ExtACKeywords;
11619
 
  friend class ::WinAsm;
11620
 
  friend class ::WinDeclSpecs;
11621
 
  friend class ::WinMemberExplSpec;
11622
 
  friend class ::WinTypeKeywords;
11623
 
  friend class ::PragmaOnceUnitState;
11624
 
  friend class ::PragmaOnce;
11625
 
  friend class ::CCExprResolve;
11626
 
  friend class ::CExprResolve;
11627
 
 
11628
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11629
 
 
11630
 
  CTree *sons[4]; // star, static, quals, expr
11631
 
  bool pos0;
11632
 
 
11633
 
public:
11634
 
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
11635
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
11636
 
  }
11637
 
  static const char *NodeId ();
11638
 
  const char *NodeName () const { return NodeId (); }
11639
 
  int Sons () const { return CTree::Sons (sons, 4); }
11640
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11641
 
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
11642
 
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
11643
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
11644
 
  CTree *Expr () const { return sons[3]; }
11645
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11646
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11647
 
  }
11648
 
};
11649
 
 
11650
 
 
11651
 
#line 11652 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11652
 
} // closed Puma
11653
 
class WinIfExists;
11654
 
class WinImportHandler;
11655
 
class WinMacros;
11656
 
class CMatchSyntax;
11657
 
class ExtGnu;
11658
 
class ExtAC;
11659
 
class ExtACBuilderCoupling;
11660
 
class ExtACSyntaxCoupling;
11661
 
class ExtACTree;
11662
 
class ExtACKeywords;
11663
 
class WinAsm;
11664
 
class WinDeclSpecs;
11665
 
class WinMemberExplSpec;
11666
 
class WinTypeKeywords;
11667
 
class PragmaOnceUnitState;
11668
 
class PragmaOnce;
11669
 
class CCExprResolve;
11670
 
class CExprResolve;
11671
 
namespace Puma {
11672
 
 
11673
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11674
 
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
11675
 
#line 11676 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11676
 
  friend class ::WinIfExists;
11677
 
  friend class ::WinImportHandler;
11678
 
  friend class ::WinMacros;
11679
 
  friend class ::CMatchSyntax;
11680
 
  friend class ::ExtGnu;
11681
 
  friend class ::ExtAC;
11682
 
  friend class ::ExtACBuilderCoupling;
11683
 
  friend class ::ExtACSyntaxCoupling;
11684
 
  friend class ::ExtACTree;
11685
 
  friend class ::ExtACKeywords;
11686
 
  friend class ::WinAsm;
11687
 
  friend class ::WinDeclSpecs;
11688
 
  friend class ::WinMemberExplSpec;
11689
 
  friend class ::WinTypeKeywords;
11690
 
  friend class ::PragmaOnceUnitState;
11691
 
  friend class ::PragmaOnce;
11692
 
  friend class ::CCExprResolve;
11693
 
  friend class ::CExprResolve;
11694
 
 
11695
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11696
 
 
11697
 
  CTree *sons[4]; // declarator, open, delim, close
11698
 
 
11699
 
public:
11700
 
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
11701
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
11702
 
  }
11703
 
  static const char *NodeId ();
11704
 
  const char *NodeName () const { return NodeId (); }
11705
 
  int Sons () const { return 4; }
11706
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11707
 
  CTree *Declarator () const { return sons[0]; }
11708
 
  CT_ArrayDelimiter *Delimiter () const 
11709
 
   { return (CT_ArrayDelimiter*)sons[2]; }
11710
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11711
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11712
 
  }
11713
 
  CTypeInfo *Type () const { return type; }
11714
 
  CExprValue *Value () const { return value; }
11715
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
11716
 
};
11717
 
 
11718
 
 
11719
 
#line 11720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11720
 
} // closed Puma
11721
 
class WinIfExists;
11722
 
class WinImportHandler;
11723
 
class WinMacros;
11724
 
class CMatchSyntax;
11725
 
class ExtGnu;
11726
 
class ExtAC;
11727
 
class ExtACBuilderCoupling;
11728
 
class ExtACSyntaxCoupling;
11729
 
class ExtACTree;
11730
 
class ExtACKeywords;
11731
 
class WinAsm;
11732
 
class WinDeclSpecs;
11733
 
class WinMemberExplSpec;
11734
 
class WinTypeKeywords;
11735
 
class PragmaOnceUnitState;
11736
 
class PragmaOnce;
11737
 
class CCExprResolve;
11738
 
class CExprResolve;
11739
 
namespace Puma {
11740
 
 
11741
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11742
 
class CT_FctDeclarator : public CT_Declarator {
11743
 
#line 11744 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11744
 
  friend class ::WinIfExists;
11745
 
  friend class ::WinImportHandler;
11746
 
  friend class ::WinMacros;
11747
 
  friend class ::CMatchSyntax;
11748
 
  friend class ::ExtGnu;
11749
 
  friend class ::ExtAC;
11750
 
  friend class ::ExtACBuilderCoupling;
11751
 
  friend class ::ExtACSyntaxCoupling;
11752
 
  friend class ::ExtACTree;
11753
 
  friend class ::ExtACKeywords;
11754
 
  friend class ::WinAsm;
11755
 
  friend class ::WinDeclSpecs;
11756
 
  friend class ::WinMemberExplSpec;
11757
 
  friend class ::WinTypeKeywords;
11758
 
  friend class ::PragmaOnceUnitState;
11759
 
  friend class ::PragmaOnce;
11760
 
  friend class ::CCExprResolve;
11761
 
  friend class ::CExprResolve;
11762
 
 
11763
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11764
 
 
11765
 
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
11766
 
 
11767
 
public:
11768
 
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
11769
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
11770
 
  }
11771
 
  static const char *NodeId ();
11772
 
  const char *NodeName () const { return NodeId (); }
11773
 
  int Sons () const { return CTree::Sons (sons, 4); }
11774
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11775
 
  CTree *Declarator () const { return sons[0]; }
11776
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
11777
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
11778
 
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
11779
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11780
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11781
 
  }
11782
 
};
11783
 
 
11784
 
 
11785
 
#line 11786 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11786
 
} // closed Puma
11787
 
class WinIfExists;
11788
 
class WinImportHandler;
11789
 
class WinMacros;
11790
 
class CMatchSyntax;
11791
 
class ExtGnu;
11792
 
class ExtAC;
11793
 
class ExtACBuilderCoupling;
11794
 
class ExtACSyntaxCoupling;
11795
 
class ExtACTree;
11796
 
class ExtACKeywords;
11797
 
class WinAsm;
11798
 
class WinDeclSpecs;
11799
 
class WinMemberExplSpec;
11800
 
class WinTypeKeywords;
11801
 
class PragmaOnceUnitState;
11802
 
class PragmaOnce;
11803
 
class CCExprResolve;
11804
 
class CExprResolve;
11805
 
namespace Puma {
11806
 
 
11807
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11808
 
class CT_RefDeclarator : public CT_Declarator {
11809
 
#line 11810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11810
 
  friend class ::WinIfExists;
11811
 
  friend class ::WinImportHandler;
11812
 
  friend class ::WinMacros;
11813
 
  friend class ::CMatchSyntax;
11814
 
  friend class ::ExtGnu;
11815
 
  friend class ::ExtAC;
11816
 
  friend class ::ExtACBuilderCoupling;
11817
 
  friend class ::ExtACSyntaxCoupling;
11818
 
  friend class ::ExtACTree;
11819
 
  friend class ::ExtACKeywords;
11820
 
  friend class ::WinAsm;
11821
 
  friend class ::WinDeclSpecs;
11822
 
  friend class ::WinMemberExplSpec;
11823
 
  friend class ::WinTypeKeywords;
11824
 
  friend class ::PragmaOnceUnitState;
11825
 
  friend class ::PragmaOnce;
11826
 
  friend class ::CCExprResolve;
11827
 
  friend class ::CExprResolve;
11828
 
 
11829
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11830
 
 
11831
 
  CTree *sons[2]; // ref, declarator
11832
 
 
11833
 
public:
11834
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
11835
 
  static const char *NodeId ();
11836
 
  const char *NodeName () const { return NodeId (); }
11837
 
  int Sons () const { return 2; }
11838
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
11839
 
  CTree *Declarator () const { return sons[1]; }
11840
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
11841
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
11842
 
  }
11843
 
};
11844
 
 
11845
 
 
11846
 
#line 11847 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11847
 
} // closed Puma
11848
 
class WinIfExists;
11849
 
class WinImportHandler;
11850
 
class WinMacros;
11851
 
class CMatchSyntax;
11852
 
class ExtGnu;
11853
 
class ExtAC;
11854
 
class ExtACBuilderCoupling;
11855
 
class ExtACSyntaxCoupling;
11856
 
class ExtACTree;
11857
 
class ExtACKeywords;
11858
 
class WinAsm;
11859
 
class WinDeclSpecs;
11860
 
class WinMemberExplSpec;
11861
 
class WinTypeKeywords;
11862
 
class PragmaOnceUnitState;
11863
 
class PragmaOnce;
11864
 
class CCExprResolve;
11865
 
class CExprResolve;
11866
 
namespace Puma {
11867
 
 
11868
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11869
 
class CT_PtrDeclarator : public CT_Declarator {
11870
 
#line 11871 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11871
 
  friend class ::WinIfExists;
11872
 
  friend class ::WinImportHandler;
11873
 
  friend class ::WinMacros;
11874
 
  friend class ::CMatchSyntax;
11875
 
  friend class ::ExtGnu;
11876
 
  friend class ::ExtAC;
11877
 
  friend class ::ExtACBuilderCoupling;
11878
 
  friend class ::ExtACSyntaxCoupling;
11879
 
  friend class ::ExtACTree;
11880
 
  friend class ::ExtACKeywords;
11881
 
  friend class ::WinAsm;
11882
 
  friend class ::WinDeclSpecs;
11883
 
  friend class ::WinMemberExplSpec;
11884
 
  friend class ::WinTypeKeywords;
11885
 
  friend class ::PragmaOnceUnitState;
11886
 
  friend class ::PragmaOnce;
11887
 
  friend class ::CCExprResolve;
11888
 
  friend class ::CExprResolve;
11889
 
 
11890
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11891
 
 
11892
 
  CTree *sons[3]; // ptr, cv_quals, declarator
11893
 
 
11894
 
public:
11895
 
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
11896
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
11897
 
  }
11898
 
  static const char *NodeId ();
11899
 
  const char *NodeName () const { return NodeId (); }
11900
 
  int Sons () const { return CTree::Sons (sons, 3); }
11901
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
11902
 
  CTree *Declarator () const { return sons[2]; }
11903
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
11904
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11905
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
11906
 
  }
11907
 
};
11908
 
 
11909
 
 
11910
 
#line 11911 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11911
 
} // closed Puma
11912
 
class WinIfExists;
11913
 
class WinImportHandler;
11914
 
class WinMacros;
11915
 
class CMatchSyntax;
11916
 
class ExtGnu;
11917
 
class ExtAC;
11918
 
class ExtACBuilderCoupling;
11919
 
class ExtACSyntaxCoupling;
11920
 
class ExtACTree;
11921
 
class ExtACKeywords;
11922
 
class WinAsm;
11923
 
class WinDeclSpecs;
11924
 
class WinMemberExplSpec;
11925
 
class WinTypeKeywords;
11926
 
class PragmaOnceUnitState;
11927
 
class PragmaOnce;
11928
 
class CCExprResolve;
11929
 
class CExprResolve;
11930
 
namespace Puma {
11931
 
 
11932
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11933
 
class CT_MembPtrDeclarator : public CT_Declarator {
11934
 
#line 11935 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11935
 
  friend class ::WinIfExists;
11936
 
  friend class ::WinImportHandler;
11937
 
  friend class ::WinMacros;
11938
 
  friend class ::CMatchSyntax;
11939
 
  friend class ::ExtGnu;
11940
 
  friend class ::ExtAC;
11941
 
  friend class ::ExtACBuilderCoupling;
11942
 
  friend class ::ExtACSyntaxCoupling;
11943
 
  friend class ::ExtACTree;
11944
 
  friend class ::ExtACKeywords;
11945
 
  friend class ::WinAsm;
11946
 
  friend class ::WinDeclSpecs;
11947
 
  friend class ::WinMemberExplSpec;
11948
 
  friend class ::WinTypeKeywords;
11949
 
  friend class ::PragmaOnceUnitState;
11950
 
  friend class ::PragmaOnce;
11951
 
  friend class ::CCExprResolve;
11952
 
  friend class ::CExprResolve;
11953
 
 
11954
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11955
 
 
11956
 
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
11957
 
 
11958
 
public:
11959
 
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
11960
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
11961
 
  }
11962
 
  static const char *NodeId ();
11963
 
  const char *NodeName () const { return NodeId (); }
11964
 
  int Sons () const { return CTree::Sons (sons, 5); }
11965
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
11966
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
11967
 
  CTree *Declarator () const { return sons[4]; }
11968
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
11969
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11970
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
11971
 
  }
11972
 
};
11973
 
 
11974
 
 
11975
 
#line 11976 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
11976
 
} // closed Puma
11977
 
class WinIfExists;
11978
 
class WinImportHandler;
11979
 
class WinMacros;
11980
 
class CMatchSyntax;
11981
 
class ExtGnu;
11982
 
class ExtAC;
11983
 
class ExtACBuilderCoupling;
11984
 
class ExtACSyntaxCoupling;
11985
 
class ExtACTree;
11986
 
class ExtACKeywords;
11987
 
class WinAsm;
11988
 
class WinDeclSpecs;
11989
 
class WinMemberExplSpec;
11990
 
class WinTypeKeywords;
11991
 
class PragmaOnceUnitState;
11992
 
class PragmaOnce;
11993
 
class CCExprResolve;
11994
 
class CExprResolve;
11995
 
namespace Puma {
11996
 
 
11997
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11998
 
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
11999
 
#line 12000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12000
 
  friend class ::WinIfExists;
12001
 
  friend class ::WinImportHandler;
12002
 
  friend class ::WinMacros;
12003
 
  friend class ::CMatchSyntax;
12004
 
  friend class ::ExtGnu;
12005
 
  friend class ::ExtAC;
12006
 
  friend class ::ExtACBuilderCoupling;
12007
 
  friend class ::ExtACSyntaxCoupling;
12008
 
  friend class ::ExtACTree;
12009
 
  friend class ::ExtACKeywords;
12010
 
  friend class ::WinAsm;
12011
 
  friend class ::WinDeclSpecs;
12012
 
  friend class ::WinMemberExplSpec;
12013
 
  friend class ::WinTypeKeywords;
12014
 
  friend class ::PragmaOnceUnitState;
12015
 
  friend class ::PragmaOnce;
12016
 
  friend class ::CCExprResolve;
12017
 
  friend class ::CExprResolve;
12018
 
 
12019
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12020
 
 
12021
 
  CTree *sons[3]; // declarator, colon, expr
12022
 
 
12023
 
public:
12024
 
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
12025
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
12026
 
  }
12027
 
  static const char *NodeId ();
12028
 
  const char *NodeName () const { return NodeId (); }
12029
 
  int Sons () const { return CTree::Sons (sons, 3); }
12030
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12031
 
  CTree *Declarator () const { return sons[0]; }
12032
 
  CTree *Expr () const { return sons[2]; }
12033
 
  void FieldSize (CTree *s) { sons[2] = s; }
12034
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
12035
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12036
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12037
 
  }
12038
 
};
12039
 
 
12040
 
/*****************************************************************************/
12041
 
/*                                                                           */
12042
 
/*                              Statements                                   */
12043
 
/*                                                                           */
12044
 
/*****************************************************************************/
12045
 
 
12046
 
 
12047
 
#line 12048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12048
 
} // closed Puma
12049
 
class WinIfExists;
12050
 
class WinImportHandler;
12051
 
class WinMacros;
12052
 
class CMatchSyntax;
12053
 
class ExtGnu;
12054
 
class ExtAC;
12055
 
class ExtACBuilderCoupling;
12056
 
class ExtACSyntaxCoupling;
12057
 
class ExtACTree;
12058
 
class ExtACKeywords;
12059
 
class WinAsm;
12060
 
class WinDeclSpecs;
12061
 
class WinMemberExplSpec;
12062
 
class WinTypeKeywords;
12063
 
class PragmaOnceUnitState;
12064
 
class PragmaOnce;
12065
 
class CCExprResolve;
12066
 
class CExprResolve;
12067
 
namespace Puma {
12068
 
 
12069
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12070
 
class CT_Statement : public CTree {
12071
 
#line 12072 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12072
 
  friend class ::WinIfExists;
12073
 
  friend class ::WinImportHandler;
12074
 
  friend class ::WinMacros;
12075
 
  friend class ::CMatchSyntax;
12076
 
  friend class ::ExtGnu;
12077
 
  friend class ::ExtAC;
12078
 
  friend class ::ExtACBuilderCoupling;
12079
 
  friend class ::ExtACSyntaxCoupling;
12080
 
  friend class ::ExtACTree;
12081
 
  friend class ::ExtACKeywords;
12082
 
  friend class ::WinAsm;
12083
 
  friend class ::WinDeclSpecs;
12084
 
  friend class ::WinMemberExplSpec;
12085
 
  friend class ::WinTypeKeywords;
12086
 
  friend class ::PragmaOnceUnitState;
12087
 
  friend class ::PragmaOnce;
12088
 
  friend class ::CCExprResolve;
12089
 
  friend class ::CExprResolve;
12090
 
 
12091
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12092
 
 
12093
 
protected:
12094
 
  CT_Statement () {}
12095
 
};
12096
 
 
12097
 
 
12098
 
#line 12099 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12099
 
} // closed Puma
12100
 
class WinIfExists;
12101
 
class WinImportHandler;
12102
 
class WinMacros;
12103
 
class CMatchSyntax;
12104
 
class ExtGnu;
12105
 
class ExtAC;
12106
 
class ExtACBuilderCoupling;
12107
 
class ExtACSyntaxCoupling;
12108
 
class ExtACTree;
12109
 
class ExtACKeywords;
12110
 
class WinAsm;
12111
 
class WinDeclSpecs;
12112
 
class WinMemberExplSpec;
12113
 
class WinTypeKeywords;
12114
 
class PragmaOnceUnitState;
12115
 
class PragmaOnce;
12116
 
class CCExprResolve;
12117
 
class CExprResolve;
12118
 
namespace Puma {
12119
 
 
12120
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12121
 
class CT_LabelStmt : public CT_Statement {
12122
 
#line 12123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12123
 
  friend class ::WinIfExists;
12124
 
  friend class ::WinImportHandler;
12125
 
  friend class ::WinMacros;
12126
 
  friend class ::CMatchSyntax;
12127
 
  friend class ::ExtGnu;
12128
 
  friend class ::ExtAC;
12129
 
  friend class ::ExtACBuilderCoupling;
12130
 
  friend class ::ExtACSyntaxCoupling;
12131
 
  friend class ::ExtACTree;
12132
 
  friend class ::ExtACKeywords;
12133
 
  friend class ::WinAsm;
12134
 
  friend class ::WinDeclSpecs;
12135
 
  friend class ::WinMemberExplSpec;
12136
 
  friend class ::WinTypeKeywords;
12137
 
  friend class ::PragmaOnceUnitState;
12138
 
  friend class ::PragmaOnce;
12139
 
  friend class ::CCExprResolve;
12140
 
  friend class ::CExprResolve;
12141
 
 
12142
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12143
 
 
12144
 
  CTree *sons[3]; // id, colon, stmt
12145
 
 
12146
 
public:
12147
 
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
12148
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
12149
 
  }
12150
 
  static const char *NodeId ();
12151
 
  const char *NodeName () const { return NodeId (); }
12152
 
  int Sons () const { return 3; }
12153
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12154
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
12155
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
12156
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12157
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12158
 
  }
12159
 
};
12160
 
 
12161
 
 
12162
 
#line 12163 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12163
 
} // closed Puma
12164
 
class WinIfExists;
12165
 
class WinImportHandler;
12166
 
class WinMacros;
12167
 
class CMatchSyntax;
12168
 
class ExtGnu;
12169
 
class ExtAC;
12170
 
class ExtACBuilderCoupling;
12171
 
class ExtACSyntaxCoupling;
12172
 
class ExtACTree;
12173
 
class ExtACKeywords;
12174
 
class WinAsm;
12175
 
class WinDeclSpecs;
12176
 
class WinMemberExplSpec;
12177
 
class WinTypeKeywords;
12178
 
class PragmaOnceUnitState;
12179
 
class PragmaOnce;
12180
 
class CCExprResolve;
12181
 
class CExprResolve;
12182
 
namespace Puma {
12183
 
 
12184
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12185
 
class CT_DefaultStmt : public CT_Statement {
12186
 
#line 12187 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12187
 
  friend class ::WinIfExists;
12188
 
  friend class ::WinImportHandler;
12189
 
  friend class ::WinMacros;
12190
 
  friend class ::CMatchSyntax;
12191
 
  friend class ::ExtGnu;
12192
 
  friend class ::ExtAC;
12193
 
  friend class ::ExtACBuilderCoupling;
12194
 
  friend class ::ExtACSyntaxCoupling;
12195
 
  friend class ::ExtACTree;
12196
 
  friend class ::ExtACKeywords;
12197
 
  friend class ::WinAsm;
12198
 
  friend class ::WinDeclSpecs;
12199
 
  friend class ::WinMemberExplSpec;
12200
 
  friend class ::WinTypeKeywords;
12201
 
  friend class ::PragmaOnceUnitState;
12202
 
  friend class ::PragmaOnce;
12203
 
  friend class ::CCExprResolve;
12204
 
  friend class ::CExprResolve;
12205
 
 
12206
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12207
 
 
12208
 
  CTree *sons[3]; // keyword, colon, stmt
12209
 
 
12210
 
public:
12211
 
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
12212
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
12213
 
  }
12214
 
  static const char *NodeId ();
12215
 
  const char *NodeName () const { return NodeId (); }
12216
 
  int Sons () const { return 3; }
12217
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12218
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
12219
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12220
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12221
 
  }
12222
 
};
12223
 
 
12224
 
 
12225
 
#line 12226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12226
 
} // closed Puma
12227
 
class WinIfExists;
12228
 
class WinImportHandler;
12229
 
class WinMacros;
12230
 
class CMatchSyntax;
12231
 
class ExtGnu;
12232
 
class ExtAC;
12233
 
class ExtACBuilderCoupling;
12234
 
class ExtACSyntaxCoupling;
12235
 
class ExtACTree;
12236
 
class ExtACKeywords;
12237
 
class WinAsm;
12238
 
class WinDeclSpecs;
12239
 
class WinMemberExplSpec;
12240
 
class WinTypeKeywords;
12241
 
class PragmaOnceUnitState;
12242
 
class PragmaOnce;
12243
 
class CCExprResolve;
12244
 
class CExprResolve;
12245
 
namespace Puma {
12246
 
 
12247
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12248
 
class CT_TryStmt : public CT_Statement {
12249
 
#line 12250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12250
 
  friend class ::WinIfExists;
12251
 
  friend class ::WinImportHandler;
12252
 
  friend class ::WinMacros;
12253
 
  friend class ::CMatchSyntax;
12254
 
  friend class ::ExtGnu;
12255
 
  friend class ::ExtAC;
12256
 
  friend class ::ExtACBuilderCoupling;
12257
 
  friend class ::ExtACSyntaxCoupling;
12258
 
  friend class ::ExtACTree;
12259
 
  friend class ::ExtACKeywords;
12260
 
  friend class ::WinAsm;
12261
 
  friend class ::WinDeclSpecs;
12262
 
  friend class ::WinMemberExplSpec;
12263
 
  friend class ::WinTypeKeywords;
12264
 
  friend class ::PragmaOnceUnitState;
12265
 
  friend class ::PragmaOnce;
12266
 
  friend class ::CCExprResolve;
12267
 
  friend class ::CExprResolve;
12268
 
 
12269
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12270
 
 
12271
 
  CTree *sons[3]; // try, stmt, handlers
12272
 
 
12273
 
public:
12274
 
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
12275
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
12276
 
  }
12277
 
  static const char *NodeId ();
12278
 
  const char *NodeName () const { return NodeId (); }
12279
 
  int Sons () const { return 3; }
12280
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12281
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
12282
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
12283
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12284
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12285
 
  }
12286
 
};
12287
 
 
12288
 
 
12289
 
#line 12290 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12290
 
} // closed Puma
12291
 
class WinIfExists;
12292
 
class WinImportHandler;
12293
 
class WinMacros;
12294
 
class CMatchSyntax;
12295
 
class ExtGnu;
12296
 
class ExtAC;
12297
 
class ExtACBuilderCoupling;
12298
 
class ExtACSyntaxCoupling;
12299
 
class ExtACTree;
12300
 
class ExtACKeywords;
12301
 
class WinAsm;
12302
 
class WinDeclSpecs;
12303
 
class WinMemberExplSpec;
12304
 
class WinTypeKeywords;
12305
 
class PragmaOnceUnitState;
12306
 
class PragmaOnce;
12307
 
class CCExprResolve;
12308
 
class CExprResolve;
12309
 
namespace Puma {
12310
 
 
12311
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12312
 
class CT_CaseStmt : public CT_Statement {
12313
 
#line 12314 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12314
 
  friend class ::WinIfExists;
12315
 
  friend class ::WinImportHandler;
12316
 
  friend class ::WinMacros;
12317
 
  friend class ::CMatchSyntax;
12318
 
  friend class ::ExtGnu;
12319
 
  friend class ::ExtAC;
12320
 
  friend class ::ExtACBuilderCoupling;
12321
 
  friend class ::ExtACSyntaxCoupling;
12322
 
  friend class ::ExtACTree;
12323
 
  friend class ::ExtACKeywords;
12324
 
  friend class ::WinAsm;
12325
 
  friend class ::WinDeclSpecs;
12326
 
  friend class ::WinMemberExplSpec;
12327
 
  friend class ::WinTypeKeywords;
12328
 
  friend class ::PragmaOnceUnitState;
12329
 
  friend class ::PragmaOnce;
12330
 
  friend class ::CCExprResolve;
12331
 
  friend class ::CExprResolve;
12332
 
 
12333
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12334
 
 
12335
 
  CTree *sons[4]; // keyword, expr, colon, stmt
12336
 
 
12337
 
public:
12338
 
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
12339
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
12340
 
  }
12341
 
  static const char *NodeId ();
12342
 
  const char *NodeName () const { return NodeId (); }
12343
 
  int Sons () const { return 4; }
12344
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
12345
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
12346
 
  CTree *Expr () const { return sons[1]; }
12347
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12348
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
12349
 
  }
12350
 
};
12351
 
 
12352
 
 
12353
 
#line 12354 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12354
 
} // closed Puma
12355
 
class WinIfExists;
12356
 
class WinImportHandler;
12357
 
class WinMacros;
12358
 
class CMatchSyntax;
12359
 
class ExtGnu;
12360
 
class ExtAC;
12361
 
class ExtACBuilderCoupling;
12362
 
class ExtACSyntaxCoupling;
12363
 
class ExtACTree;
12364
 
class ExtACKeywords;
12365
 
class WinAsm;
12366
 
class WinDeclSpecs;
12367
 
class WinMemberExplSpec;
12368
 
class WinTypeKeywords;
12369
 
class PragmaOnceUnitState;
12370
 
class PragmaOnce;
12371
 
class CCExprResolve;
12372
 
class CExprResolve;
12373
 
namespace Puma {
12374
 
 
12375
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12376
 
class CT_ExprStmt : public CT_Statement {
12377
 
#line 12378 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12378
 
  friend class ::WinIfExists;
12379
 
  friend class ::WinImportHandler;
12380
 
  friend class ::WinMacros;
12381
 
  friend class ::CMatchSyntax;
12382
 
  friend class ::ExtGnu;
12383
 
  friend class ::ExtAC;
12384
 
  friend class ::ExtACBuilderCoupling;
12385
 
  friend class ::ExtACSyntaxCoupling;
12386
 
  friend class ::ExtACTree;
12387
 
  friend class ::ExtACKeywords;
12388
 
  friend class ::WinAsm;
12389
 
  friend class ::WinDeclSpecs;
12390
 
  friend class ::WinMemberExplSpec;
12391
 
  friend class ::WinTypeKeywords;
12392
 
  friend class ::PragmaOnceUnitState;
12393
 
  friend class ::PragmaOnce;
12394
 
  friend class ::CCExprResolve;
12395
 
  friend class ::CExprResolve;
12396
 
 
12397
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12398
 
 
12399
 
  CTree *sons[2]; // expr, semi_colon
12400
 
 
12401
 
public:
12402
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
12403
 
  static const char *NodeId ();
12404
 
  const char *NodeName () const { return NodeId (); }
12405
 
  int Sons () const { return CTree::Sons (sons, 2); }
12406
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
12407
 
  CTree *Expr () const { return sons[0]; }
12408
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12409
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
12410
 
  }
12411
 
};
12412
 
 
12413
 
 
12414
 
#line 12415 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12415
 
} // closed Puma
12416
 
class WinIfExists;
12417
 
class WinImportHandler;
12418
 
class WinMacros;
12419
 
class CMatchSyntax;
12420
 
class ExtGnu;
12421
 
class ExtAC;
12422
 
class ExtACBuilderCoupling;
12423
 
class ExtACSyntaxCoupling;
12424
 
class ExtACTree;
12425
 
class ExtACKeywords;
12426
 
class WinAsm;
12427
 
class WinDeclSpecs;
12428
 
class WinMemberExplSpec;
12429
 
class WinTypeKeywords;
12430
 
class PragmaOnceUnitState;
12431
 
class PragmaOnce;
12432
 
class CCExprResolve;
12433
 
class CExprResolve;
12434
 
namespace Puma {
12435
 
 
12436
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12437
 
class CT_DeclStmt : public CT_Statement {
12438
 
#line 12439 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12439
 
  friend class ::WinIfExists;
12440
 
  friend class ::WinImportHandler;
12441
 
  friend class ::WinMacros;
12442
 
  friend class ::CMatchSyntax;
12443
 
  friend class ::ExtGnu;
12444
 
  friend class ::ExtAC;
12445
 
  friend class ::ExtACBuilderCoupling;
12446
 
  friend class ::ExtACSyntaxCoupling;
12447
 
  friend class ::ExtACTree;
12448
 
  friend class ::ExtACKeywords;
12449
 
  friend class ::WinAsm;
12450
 
  friend class ::WinDeclSpecs;
12451
 
  friend class ::WinMemberExplSpec;
12452
 
  friend class ::WinTypeKeywords;
12453
 
  friend class ::PragmaOnceUnitState;
12454
 
  friend class ::PragmaOnce;
12455
 
  friend class ::CCExprResolve;
12456
 
  friend class ::CExprResolve;
12457
 
 
12458
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12459
 
 
12460
 
  CTree *_decl;
12461
 
 
12462
 
public:
12463
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
12464
 
  static const char *NodeId ();
12465
 
  const char *NodeName () const { return NodeId (); }
12466
 
  int Sons () const { return 1; }
12467
 
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
12468
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
12469
 
   { if (old_son == _decl) _decl = new_son; }
12470
 
};
12471
 
 
12472
 
 
12473
 
#line 12474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12474
 
} // closed Puma
12475
 
class WinIfExists;
12476
 
class WinImportHandler;
12477
 
class WinMacros;
12478
 
class CMatchSyntax;
12479
 
class ExtGnu;
12480
 
class ExtAC;
12481
 
class ExtACBuilderCoupling;
12482
 
class ExtACSyntaxCoupling;
12483
 
class ExtACTree;
12484
 
class ExtACKeywords;
12485
 
class WinAsm;
12486
 
class WinDeclSpecs;
12487
 
class WinMemberExplSpec;
12488
 
class WinTypeKeywords;
12489
 
class PragmaOnceUnitState;
12490
 
class PragmaOnce;
12491
 
class CCExprResolve;
12492
 
class CExprResolve;
12493
 
namespace Puma {
12494
 
 
12495
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12496
 
class CT_SwitchStmt : public CT_Statement, public CSemScope {
12497
 
#line 12498 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12498
 
  friend class ::WinIfExists;
12499
 
  friend class ::WinImportHandler;
12500
 
  friend class ::WinMacros;
12501
 
  friend class ::CMatchSyntax;
12502
 
  friend class ::ExtGnu;
12503
 
  friend class ::ExtAC;
12504
 
  friend class ::ExtACBuilderCoupling;
12505
 
  friend class ::ExtACSyntaxCoupling;
12506
 
  friend class ::ExtACTree;
12507
 
  friend class ::ExtACKeywords;
12508
 
  friend class ::WinAsm;
12509
 
  friend class ::WinDeclSpecs;
12510
 
  friend class ::WinMemberExplSpec;
12511
 
  friend class ::WinTypeKeywords;
12512
 
  friend class ::PragmaOnceUnitState;
12513
 
  friend class ::PragmaOnce;
12514
 
  friend class ::CCExprResolve;
12515
 
  friend class ::CExprResolve;
12516
 
 
12517
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12518
 
 
12519
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
12520
 
 
12521
 
public:
12522
 
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
12523
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
12524
 
  }
12525
 
  static const char *NodeId ();
12526
 
  const char *NodeName () const { return NodeId (); }
12527
 
  int Sons () const { return 5; }
12528
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
12529
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
12530
 
  CTree *Condition () const { return sons[2]; }
12531
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12532
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
12533
 
  }
12534
 
};
12535
 
 
12536
 
 
12537
 
#line 12538 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12538
 
} // closed Puma
12539
 
class WinIfExists;
12540
 
class WinImportHandler;
12541
 
class WinMacros;
12542
 
class CMatchSyntax;
12543
 
class ExtGnu;
12544
 
class ExtAC;
12545
 
class ExtACBuilderCoupling;
12546
 
class ExtACSyntaxCoupling;
12547
 
class ExtACTree;
12548
 
class ExtACKeywords;
12549
 
class WinAsm;
12550
 
class WinDeclSpecs;
12551
 
class WinMemberExplSpec;
12552
 
class WinTypeKeywords;
12553
 
class PragmaOnceUnitState;
12554
 
class PragmaOnce;
12555
 
class CCExprResolve;
12556
 
class CExprResolve;
12557
 
namespace Puma {
12558
 
 
12559
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12560
 
class CT_IfStmt : public CT_Statement, public CSemScope {
12561
 
#line 12562 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12562
 
  friend class ::WinIfExists;
12563
 
  friend class ::WinImportHandler;
12564
 
  friend class ::WinMacros;
12565
 
  friend class ::CMatchSyntax;
12566
 
  friend class ::ExtGnu;
12567
 
  friend class ::ExtAC;
12568
 
  friend class ::ExtACBuilderCoupling;
12569
 
  friend class ::ExtACSyntaxCoupling;
12570
 
  friend class ::ExtACTree;
12571
 
  friend class ::ExtACKeywords;
12572
 
  friend class ::WinAsm;
12573
 
  friend class ::WinDeclSpecs;
12574
 
  friend class ::WinMemberExplSpec;
12575
 
  friend class ::WinTypeKeywords;
12576
 
  friend class ::PragmaOnceUnitState;
12577
 
  friend class ::PragmaOnce;
12578
 
  friend class ::CCExprResolve;
12579
 
  friend class ::CExprResolve;
12580
 
 
12581
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12582
 
 
12583
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
12584
 
 
12585
 
public:
12586
 
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
12587
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
12588
 
  }
12589
 
  static const char *NodeId ();
12590
 
  const char *NodeName () const { return NodeId (); }
12591
 
  int Sons () const { return 5; }
12592
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
12593
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
12594
 
  CTree *Condition () const { return sons[2]; }
12595
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12596
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
12597
 
  }
12598
 
};
12599
 
 
12600
 
 
12601
 
#line 12602 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12602
 
} // closed Puma
12603
 
class WinIfExists;
12604
 
class WinImportHandler;
12605
 
class WinMacros;
12606
 
class CMatchSyntax;
12607
 
class ExtGnu;
12608
 
class ExtAC;
12609
 
class ExtACBuilderCoupling;
12610
 
class ExtACSyntaxCoupling;
12611
 
class ExtACTree;
12612
 
class ExtACKeywords;
12613
 
class WinAsm;
12614
 
class WinDeclSpecs;
12615
 
class WinMemberExplSpec;
12616
 
class WinTypeKeywords;
12617
 
class PragmaOnceUnitState;
12618
 
class PragmaOnce;
12619
 
class CCExprResolve;
12620
 
class CExprResolve;
12621
 
namespace Puma {
12622
 
 
12623
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12624
 
class CT_IfElseStmt : public CT_Statement, public CSemScope {
12625
 
#line 12626 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12626
 
  friend class ::WinIfExists;
12627
 
  friend class ::WinImportHandler;
12628
 
  friend class ::WinMacros;
12629
 
  friend class ::CMatchSyntax;
12630
 
  friend class ::ExtGnu;
12631
 
  friend class ::ExtAC;
12632
 
  friend class ::ExtACBuilderCoupling;
12633
 
  friend class ::ExtACSyntaxCoupling;
12634
 
  friend class ::ExtACTree;
12635
 
  friend class ::ExtACKeywords;
12636
 
  friend class ::WinAsm;
12637
 
  friend class ::WinDeclSpecs;
12638
 
  friend class ::WinMemberExplSpec;
12639
 
  friend class ::WinTypeKeywords;
12640
 
  friend class ::PragmaOnceUnitState;
12641
 
  friend class ::PragmaOnce;
12642
 
  friend class ::CCExprResolve;
12643
 
  friend class ::CExprResolve;
12644
 
 
12645
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12646
 
 
12647
 
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
12648
 
 
12649
 
public:
12650
 
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
12651
 
                 CTree *is, CTree *e, CTree *es) {
12652
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
12653
 
    sons[5] = e; sons[6] = es; 
12654
 
  }
12655
 
  static const char *NodeId ();
12656
 
  const char *NodeName () const { return NodeId (); }
12657
 
  int Sons () const { return 7; }
12658
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
12659
 
  CTree *Condition () const { return sons[2]; }
12660
 
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
12661
 
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
12662
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12663
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
12664
 
  }
12665
 
};
12666
 
 
12667
 
 
12668
 
#line 12669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12669
 
} // closed Puma
12670
 
class WinIfExists;
12671
 
class WinImportHandler;
12672
 
class WinMacros;
12673
 
class CMatchSyntax;
12674
 
class ExtGnu;
12675
 
class ExtAC;
12676
 
class ExtACBuilderCoupling;
12677
 
class ExtACSyntaxCoupling;
12678
 
class ExtACTree;
12679
 
class ExtACKeywords;
12680
 
class WinAsm;
12681
 
class WinDeclSpecs;
12682
 
class WinMemberExplSpec;
12683
 
class WinTypeKeywords;
12684
 
class PragmaOnceUnitState;
12685
 
class PragmaOnce;
12686
 
class CCExprResolve;
12687
 
class CExprResolve;
12688
 
namespace Puma {
12689
 
 
12690
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12691
 
class CT_BreakStmt : public CT_Statement {
12692
 
#line 12693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12693
 
  friend class ::WinIfExists;
12694
 
  friend class ::WinImportHandler;
12695
 
  friend class ::WinMacros;
12696
 
  friend class ::CMatchSyntax;
12697
 
  friend class ::ExtGnu;
12698
 
  friend class ::ExtAC;
12699
 
  friend class ::ExtACBuilderCoupling;
12700
 
  friend class ::ExtACSyntaxCoupling;
12701
 
  friend class ::ExtACTree;
12702
 
  friend class ::ExtACKeywords;
12703
 
  friend class ::WinAsm;
12704
 
  friend class ::WinDeclSpecs;
12705
 
  friend class ::WinMemberExplSpec;
12706
 
  friend class ::WinTypeKeywords;
12707
 
  friend class ::PragmaOnceUnitState;
12708
 
  friend class ::PragmaOnce;
12709
 
  friend class ::CCExprResolve;
12710
 
  friend class ::CExprResolve;
12711
 
 
12712
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12713
 
 
12714
 
  CTree *sons[2]; // key, semi_colon
12715
 
 
12716
 
public:
12717
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
12718
 
  static const char *NodeId ();
12719
 
  const char *NodeName () const { return NodeId (); }
12720
 
  int Sons () const { return 2; }
12721
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
12722
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12723
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
12724
 
  }
12725
 
};
12726
 
 
12727
 
 
12728
 
#line 12729 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12729
 
} // closed Puma
12730
 
class WinIfExists;
12731
 
class WinImportHandler;
12732
 
class WinMacros;
12733
 
class CMatchSyntax;
12734
 
class ExtGnu;
12735
 
class ExtAC;
12736
 
class ExtACBuilderCoupling;
12737
 
class ExtACSyntaxCoupling;
12738
 
class ExtACTree;
12739
 
class ExtACKeywords;
12740
 
class WinAsm;
12741
 
class WinDeclSpecs;
12742
 
class WinMemberExplSpec;
12743
 
class WinTypeKeywords;
12744
 
class PragmaOnceUnitState;
12745
 
class PragmaOnce;
12746
 
class CCExprResolve;
12747
 
class CExprResolve;
12748
 
namespace Puma {
12749
 
 
12750
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12751
 
class CT_ContinueStmt : public CT_Statement {
12752
 
#line 12753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12753
 
  friend class ::WinIfExists;
12754
 
  friend class ::WinImportHandler;
12755
 
  friend class ::WinMacros;
12756
 
  friend class ::CMatchSyntax;
12757
 
  friend class ::ExtGnu;
12758
 
  friend class ::ExtAC;
12759
 
  friend class ::ExtACBuilderCoupling;
12760
 
  friend class ::ExtACSyntaxCoupling;
12761
 
  friend class ::ExtACTree;
12762
 
  friend class ::ExtACKeywords;
12763
 
  friend class ::WinAsm;
12764
 
  friend class ::WinDeclSpecs;
12765
 
  friend class ::WinMemberExplSpec;
12766
 
  friend class ::WinTypeKeywords;
12767
 
  friend class ::PragmaOnceUnitState;
12768
 
  friend class ::PragmaOnce;
12769
 
  friend class ::CCExprResolve;
12770
 
  friend class ::CExprResolve;
12771
 
 
12772
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12773
 
 
12774
 
  CTree *sons[2]; // key, semi_colon
12775
 
 
12776
 
public:
12777
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
12778
 
  static const char *NodeId ();
12779
 
  const char *NodeName () const { return NodeId (); }
12780
 
  int Sons () const { return 2; }
12781
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
12782
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12783
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
12784
 
  }
12785
 
};
12786
 
 
12787
 
 
12788
 
#line 12789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12789
 
} // closed Puma
12790
 
class WinIfExists;
12791
 
class WinImportHandler;
12792
 
class WinMacros;
12793
 
class CMatchSyntax;
12794
 
class ExtGnu;
12795
 
class ExtAC;
12796
 
class ExtACBuilderCoupling;
12797
 
class ExtACSyntaxCoupling;
12798
 
class ExtACTree;
12799
 
class ExtACKeywords;
12800
 
class WinAsm;
12801
 
class WinDeclSpecs;
12802
 
class WinMemberExplSpec;
12803
 
class WinTypeKeywords;
12804
 
class PragmaOnceUnitState;
12805
 
class PragmaOnce;
12806
 
class CCExprResolve;
12807
 
class CExprResolve;
12808
 
namespace Puma {
12809
 
 
12810
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12811
 
class CT_GotoStmt : public CT_Statement {
12812
 
#line 12813 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12813
 
  friend class ::WinIfExists;
12814
 
  friend class ::WinImportHandler;
12815
 
  friend class ::WinMacros;
12816
 
  friend class ::CMatchSyntax;
12817
 
  friend class ::ExtGnu;
12818
 
  friend class ::ExtAC;
12819
 
  friend class ::ExtACBuilderCoupling;
12820
 
  friend class ::ExtACSyntaxCoupling;
12821
 
  friend class ::ExtACTree;
12822
 
  friend class ::ExtACKeywords;
12823
 
  friend class ::WinAsm;
12824
 
  friend class ::WinDeclSpecs;
12825
 
  friend class ::WinMemberExplSpec;
12826
 
  friend class ::WinTypeKeywords;
12827
 
  friend class ::PragmaOnceUnitState;
12828
 
  friend class ::PragmaOnce;
12829
 
  friend class ::CCExprResolve;
12830
 
  friend class ::CExprResolve;
12831
 
 
12832
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12833
 
 
12834
 
  CTree *sons[3]; // key, label, semi_colon
12835
 
 
12836
 
public:
12837
 
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
12838
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
12839
 
  }
12840
 
  static const char *NodeId ();
12841
 
  const char *NodeName () const { return NodeId (); }
12842
 
  int Sons () const { return 3; }
12843
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12844
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
12845
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12846
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12847
 
  }
12848
 
};
12849
 
 
12850
 
 
12851
 
#line 12852 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12852
 
} // closed Puma
12853
 
class WinIfExists;
12854
 
class WinImportHandler;
12855
 
class WinMacros;
12856
 
class CMatchSyntax;
12857
 
class ExtGnu;
12858
 
class ExtAC;
12859
 
class ExtACBuilderCoupling;
12860
 
class ExtACSyntaxCoupling;
12861
 
class ExtACTree;
12862
 
class ExtACKeywords;
12863
 
class WinAsm;
12864
 
class WinDeclSpecs;
12865
 
class WinMemberExplSpec;
12866
 
class WinTypeKeywords;
12867
 
class PragmaOnceUnitState;
12868
 
class PragmaOnce;
12869
 
class CCExprResolve;
12870
 
class CExprResolve;
12871
 
namespace Puma {
12872
 
 
12873
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12874
 
class CT_ReturnStmt : public CT_Statement {
12875
 
#line 12876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12876
 
  friend class ::WinIfExists;
12877
 
  friend class ::WinImportHandler;
12878
 
  friend class ::WinMacros;
12879
 
  friend class ::CMatchSyntax;
12880
 
  friend class ::ExtGnu;
12881
 
  friend class ::ExtAC;
12882
 
  friend class ::ExtACBuilderCoupling;
12883
 
  friend class ::ExtACSyntaxCoupling;
12884
 
  friend class ::ExtACTree;
12885
 
  friend class ::ExtACKeywords;
12886
 
  friend class ::WinAsm;
12887
 
  friend class ::WinDeclSpecs;
12888
 
  friend class ::WinMemberExplSpec;
12889
 
  friend class ::WinTypeKeywords;
12890
 
  friend class ::PragmaOnceUnitState;
12891
 
  friend class ::PragmaOnce;
12892
 
  friend class ::CCExprResolve;
12893
 
  friend class ::CExprResolve;
12894
 
 
12895
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12896
 
 
12897
 
  CTree *sons[3]; // key, expr, semi_colon
12898
 
 
12899
 
public:
12900
 
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
12901
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
12902
 
  }
12903
 
  static const char *NodeId ();
12904
 
  const char *NodeName () const { return NodeId (); }
12905
 
  int Sons () const { return CTree::Sons (sons, 3); }
12906
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12907
 
  CTree *Expr () const { return sons[1]; }
12908
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12909
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12910
 
  }
12911
 
};
12912
 
 
12913
 
 
12914
 
#line 12915 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12915
 
} // closed Puma
12916
 
class WinIfExists;
12917
 
class WinImportHandler;
12918
 
class WinMacros;
12919
 
class CMatchSyntax;
12920
 
class ExtGnu;
12921
 
class ExtAC;
12922
 
class ExtACBuilderCoupling;
12923
 
class ExtACSyntaxCoupling;
12924
 
class ExtACTree;
12925
 
class ExtACKeywords;
12926
 
class WinAsm;
12927
 
class WinDeclSpecs;
12928
 
class WinMemberExplSpec;
12929
 
class WinTypeKeywords;
12930
 
class PragmaOnceUnitState;
12931
 
class PragmaOnce;
12932
 
class CCExprResolve;
12933
 
class CExprResolve;
12934
 
namespace Puma {
12935
 
 
12936
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12937
 
class CT_WhileStmt : public CT_Statement, public CSemScope {
12938
 
#line 12939 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12939
 
  friend class ::WinIfExists;
12940
 
  friend class ::WinImportHandler;
12941
 
  friend class ::WinMacros;
12942
 
  friend class ::CMatchSyntax;
12943
 
  friend class ::ExtGnu;
12944
 
  friend class ::ExtAC;
12945
 
  friend class ::ExtACBuilderCoupling;
12946
 
  friend class ::ExtACSyntaxCoupling;
12947
 
  friend class ::ExtACTree;
12948
 
  friend class ::ExtACKeywords;
12949
 
  friend class ::WinAsm;
12950
 
  friend class ::WinDeclSpecs;
12951
 
  friend class ::WinMemberExplSpec;
12952
 
  friend class ::WinTypeKeywords;
12953
 
  friend class ::PragmaOnceUnitState;
12954
 
  friend class ::PragmaOnce;
12955
 
  friend class ::CCExprResolve;
12956
 
  friend class ::CExprResolve;
12957
 
 
12958
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12959
 
 
12960
 
  CTree *sons[5]; // key, open, cond, close, stmt
12961
 
 
12962
 
public:
12963
 
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
12964
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
12965
 
  }
12966
 
  static const char *NodeId ();
12967
 
  const char *NodeName () const { return NodeId (); }
12968
 
  int Sons () const { return 5; }
12969
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
12970
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
12971
 
  CTree *Condition () const { return sons[2]; }
12972
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12973
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
12974
 
  }
12975
 
};
12976
 
 
12977
 
 
12978
 
#line 12979 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
12979
 
} // closed Puma
12980
 
class WinIfExists;
12981
 
class WinImportHandler;
12982
 
class WinMacros;
12983
 
class CMatchSyntax;
12984
 
class ExtGnu;
12985
 
class ExtAC;
12986
 
class ExtACBuilderCoupling;
12987
 
class ExtACSyntaxCoupling;
12988
 
class ExtACTree;
12989
 
class ExtACKeywords;
12990
 
class WinAsm;
12991
 
class WinDeclSpecs;
12992
 
class WinMemberExplSpec;
12993
 
class WinTypeKeywords;
12994
 
class PragmaOnceUnitState;
12995
 
class PragmaOnce;
12996
 
class CCExprResolve;
12997
 
class CExprResolve;
12998
 
namespace Puma {
12999
 
 
13000
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13001
 
class CT_DoStmt : public CT_Statement {
13002
 
#line 13003 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13003
 
  friend class ::WinIfExists;
13004
 
  friend class ::WinImportHandler;
13005
 
  friend class ::WinMacros;
13006
 
  friend class ::CMatchSyntax;
13007
 
  friend class ::ExtGnu;
13008
 
  friend class ::ExtAC;
13009
 
  friend class ::ExtACBuilderCoupling;
13010
 
  friend class ::ExtACSyntaxCoupling;
13011
 
  friend class ::ExtACTree;
13012
 
  friend class ::ExtACKeywords;
13013
 
  friend class ::WinAsm;
13014
 
  friend class ::WinDeclSpecs;
13015
 
  friend class ::WinMemberExplSpec;
13016
 
  friend class ::WinTypeKeywords;
13017
 
  friend class ::PragmaOnceUnitState;
13018
 
  friend class ::PragmaOnce;
13019
 
  friend class ::CCExprResolve;
13020
 
  friend class ::CExprResolve;
13021
 
 
13022
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13023
 
 
13024
 
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
13025
 
 
13026
 
public:
13027
 
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
13028
 
             CTree *c, CTree *sc) {
13029
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
13030
 
    sons[5] = c; sons[6] = sc; 
13031
 
  }
13032
 
  static const char *NodeId ();
13033
 
  const char *NodeName () const { return NodeId (); }
13034
 
  int Sons () const { return 7; }
13035
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
13036
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
13037
 
  CTree *Expr () const { return sons[4]; }
13038
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13039
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
13040
 
  }
13041
 
};
13042
 
 
13043
 
 
13044
 
#line 13045 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13045
 
} // closed Puma
13046
 
class WinIfExists;
13047
 
class WinImportHandler;
13048
 
class WinMacros;
13049
 
class CMatchSyntax;
13050
 
class ExtGnu;
13051
 
class ExtAC;
13052
 
class ExtACBuilderCoupling;
13053
 
class ExtACSyntaxCoupling;
13054
 
class ExtACTree;
13055
 
class ExtACKeywords;
13056
 
class WinAsm;
13057
 
class WinDeclSpecs;
13058
 
class WinMemberExplSpec;
13059
 
class WinTypeKeywords;
13060
 
class PragmaOnceUnitState;
13061
 
class PragmaOnce;
13062
 
class CCExprResolve;
13063
 
class CExprResolve;
13064
 
namespace Puma {
13065
 
 
13066
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13067
 
class CT_ForStmt : public CT_Statement, public CSemScope {
13068
 
#line 13069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13069
 
  friend class ::WinIfExists;
13070
 
  friend class ::WinImportHandler;
13071
 
  friend class ::WinMacros;
13072
 
  friend class ::CMatchSyntax;
13073
 
  friend class ::ExtGnu;
13074
 
  friend class ::ExtAC;
13075
 
  friend class ::ExtACBuilderCoupling;
13076
 
  friend class ::ExtACSyntaxCoupling;
13077
 
  friend class ::ExtACTree;
13078
 
  friend class ::ExtACKeywords;
13079
 
  friend class ::WinAsm;
13080
 
  friend class ::WinDeclSpecs;
13081
 
  friend class ::WinMemberExplSpec;
13082
 
  friend class ::WinTypeKeywords;
13083
 
  friend class ::PragmaOnceUnitState;
13084
 
  friend class ::PragmaOnce;
13085
 
  friend class ::CCExprResolve;
13086
 
  friend class ::CExprResolve;
13087
 
 
13088
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13089
 
 
13090
 
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
13091
 
 
13092
 
public:
13093
 
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
13094
 
              CTree *e, CTree *c, CTree *stmt) {
13095
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
13096
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
13097
 
  }
13098
 
  static const char *NodeId ();
13099
 
  const char *NodeName () const { return NodeId (); }
13100
 
  int Sons () const { return CTree::Sons (sons, 8); }
13101
 
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
13102
 
  CTree *InitStmt () const { return sons[2]; }
13103
 
  CTree *Condition () const { return sons[3]; }
13104
 
  CTree *Expr () const { return sons[5]; }
13105
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
13106
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13107
 
    CTree::ReplaceSon (sons, 8, old_son, new_son);
13108
 
  }
13109
 
};
13110
 
 
13111
 
 
13112
 
#line 13113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13113
 
} // closed Puma
13114
 
class WinIfExists;
13115
 
class WinImportHandler;
13116
 
class WinMacros;
13117
 
class CMatchSyntax;
13118
 
class ExtGnu;
13119
 
class ExtAC;
13120
 
class ExtACBuilderCoupling;
13121
 
class ExtACSyntaxCoupling;
13122
 
class ExtACTree;
13123
 
class ExtACKeywords;
13124
 
class WinAsm;
13125
 
class WinDeclSpecs;
13126
 
class WinMemberExplSpec;
13127
 
class WinTypeKeywords;
13128
 
class PragmaOnceUnitState;
13129
 
class PragmaOnce;
13130
 
class CCExprResolve;
13131
 
class CExprResolve;
13132
 
namespace Puma {
13133
 
 
13134
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13135
 
class CT_Condition : public CT_Decl, public CSemObject {
13136
 
#line 13137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13137
 
  friend class ::WinIfExists;
13138
 
  friend class ::WinImportHandler;
13139
 
  friend class ::WinMacros;
13140
 
  friend class ::CMatchSyntax;
13141
 
  friend class ::ExtGnu;
13142
 
  friend class ::ExtAC;
13143
 
  friend class ::ExtACBuilderCoupling;
13144
 
  friend class ::ExtACSyntaxCoupling;
13145
 
  friend class ::ExtACTree;
13146
 
  friend class ::ExtACKeywords;
13147
 
  friend class ::WinAsm;
13148
 
  friend class ::WinDeclSpecs;
13149
 
  friend class ::WinMemberExplSpec;
13150
 
  friend class ::WinTypeKeywords;
13151
 
  friend class ::PragmaOnceUnitState;
13152
 
  friend class ::PragmaOnce;
13153
 
  friend class ::CCExprResolve;
13154
 
  friend class ::CExprResolve;
13155
 
 
13156
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13157
 
 
13158
 
  CTree *sons[3]; // declspecs, declarator, init
13159
 
 
13160
 
public:
13161
 
  CT_Condition (CTree *dsl, CTree *d) {
13162
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
13163
 
  }
13164
 
  static const char *NodeId ();
13165
 
  const char *NodeName () const { return NodeId (); }
13166
 
  int Sons () const { return CTree::Sons (sons, 3); }
13167
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13168
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
13169
 
  CTree *Declarator () const { return sons[1]; }
13170
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
13171
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
13172
 
  void Initializer (CTree *i) { sons[2] = i; }
13173
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13174
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13175
 
  }
13176
 
};
13177
 
 
13178
 
/*****************************************************************************/
13179
 
/*                                                                           */
13180
 
/*                              Classes                                      */
13181
 
/*                                                                           */
13182
 
/*****************************************************************************/
13183
 
 
13184
 
 
13185
 
#line 13186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13186
 
} // closed Puma
13187
 
class WinIfExists;
13188
 
class WinImportHandler;
13189
 
class WinMacros;
13190
 
class CMatchSyntax;
13191
 
class ExtGnu;
13192
 
class ExtAC;
13193
 
class ExtACBuilderCoupling;
13194
 
class ExtACSyntaxCoupling;
13195
 
class ExtACTree;
13196
 
class ExtACKeywords;
13197
 
class WinAsm;
13198
 
class WinDeclSpecs;
13199
 
class WinMemberExplSpec;
13200
 
class WinTypeKeywords;
13201
 
class PragmaOnceUnitState;
13202
 
class PragmaOnce;
13203
 
class CCExprResolve;
13204
 
class CExprResolve;
13205
 
namespace Puma {
13206
 
 
13207
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13208
 
class CT_ClassDef : public CT_Decl, public CSemObject {
13209
 
#line 13210 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13210
 
  friend class ::WinIfExists;
13211
 
  friend class ::WinImportHandler;
13212
 
  friend class ::WinMacros;
13213
 
  friend class ::CMatchSyntax;
13214
 
  friend class ::ExtGnu;
13215
 
  friend class ::ExtAC;
13216
 
  friend class ::ExtACBuilderCoupling;
13217
 
  friend class ::ExtACSyntaxCoupling;
13218
 
  friend class ::ExtACTree;
13219
 
  friend class ::ExtACKeywords;
13220
 
  friend class ::WinAsm;
13221
 
  friend class ::WinDeclSpecs;
13222
 
  friend class ::WinMemberExplSpec;
13223
 
  friend class ::WinTypeKeywords;
13224
 
  friend class ::PragmaOnceUnitState;
13225
 
  friend class ::PragmaOnce;
13226
 
  friend class ::CCExprResolve;
13227
 
  friend class ::CExprResolve;
13228
 
 
13229
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13230
 
 
13231
 
   
13232
 
#line 13233 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13233
 
 
13234
 
  struct __ac_wrapper_sons {
13235
 
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
13236
 
    operator A& () { return _data; }
13237
 
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
13238
 
    operator const A& () { return _data; }
13239
 
    operator const A& () const { return _data; }
13240
 
    operator void* () { return _data; }
13241
 
    operator void* () const { return (void*)_data; }
13242
 
    operator const void* () { return _data; }
13243
 
    operator const void* () const { return _data; }
13244
 
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
13245
 
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
13246
 
  } sons
13247
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13248
 
 
13249
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13250
 
; // key, name, bases, members
13251
 
  CTree *obj_decl;
13252
 
 
13253
 
public:
13254
 
  
13255
 
#line 13256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13256
 
 
13257
 
 
13258
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
13259
 
  typedef void Result;
13260
 
  typedef ::Puma::CT_ClassDef That;
13261
 
  typedef ::Puma::CT_ClassDef Target;
13262
 
  static const int JPID = 4;
13263
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
13264
 
  struct Res {
13265
 
    typedef void Type;
13266
 
    typedef void ReferredType;
13267
 
  };
13268
 
  enum { ARGS = 3 };
13269
 
  template <int I, int DUMMY = 0> struct Arg {
13270
 
    typedef void Type;
13271
 
    typedef void ReferredType;
13272
 
  };
13273
 
  template <int DUMMY> struct Arg<0, DUMMY> {
13274
 
    typedef ::Puma::CTree * Type;
13275
 
    typedef ::Puma::CTree * ReferredType;
13276
 
  };
13277
 
  template <int DUMMY> struct Arg<1, DUMMY> {
13278
 
    typedef ::Puma::CTree * Type;
13279
 
    typedef ::Puma::CTree * ReferredType;
13280
 
  };
13281
 
  template <int DUMMY> struct Arg<2, DUMMY> {
13282
 
    typedef ::Puma::CTree * Type;
13283
 
    typedef ::Puma::CTree * ReferredType;
13284
 
  };
13285
 
 
13286
 
  That *_that;
13287
 
 
13288
 
  inline That *that() {return (That*)_that;}
13289
 
 
13290
 
};
13291
 
 
13292
 
 
13293
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13294
 
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
13295
 
#line 13296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13296
 
{
13297
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
13298
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
13299
 
this->__exec_old_C1(arg0, arg1, arg2);
13300
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
13301
 
 
13302
 
}
13303
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
13304
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13305
 
{
13306
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
13307
 
  }
13308
 
  static const char *NodeId ();
13309
 
  const char *NodeName () const { return NodeId (); }
13310
 
  int Sons () const { return CTree::Sons (sons, 4); }
13311
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
13312
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
13313
 
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
13314
 
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
13315
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
13316
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
13317
 
  void Members (CTree *m) { sons[3] = m; }
13318
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
13319
 
  void ObjDecl (CTree *od) { obj_decl = od; }
13320
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
13321
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
13322
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
13323
 
  }
13324
 
   private:
13325
 
 
13326
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
13327
 
 CTree * _intro_members ;
13328
 
public :
13329
 
CTree * IntroMembers ( ) const { return _intro_members ; }
13330
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
13331
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13332
 
 
13333
 
#line 13334 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13334
 
 
13335
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
13336
 
  typedef void Result;
13337
 
  typedef ::Puma::CT_ClassDef That;
13338
 
  typedef ::Puma::CT_ClassDef Target;
13339
 
  static const int JPID = 4;
13340
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
13341
 
  struct Res {
13342
 
    typedef void Type;
13343
 
    typedef void ReferredType;
13344
 
  };
13345
 
  enum { ARGS = 1 };
13346
 
  template <int I, int DUMMY = 0> struct Arg {
13347
 
    typedef void Type;
13348
 
    typedef void ReferredType;
13349
 
  };
13350
 
  template <int DUMMY> struct Arg<0, DUMMY> {
13351
 
    typedef const ::Puma::CT_ClassDef & Type;
13352
 
    typedef const ::Puma::CT_ClassDef ReferredType;
13353
 
  };
13354
 
 
13355
 
  That *_that;
13356
 
 
13357
 
  inline That *that() {return (That*)_that;}
13358
 
 
13359
 
};
13360
 
 
13361
 
 
13362
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13363
 
 
13364
 
#line 13365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13365
 
 
13366
 
public:
13367
 
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) {
13368
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
13369
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
13370
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
13371
 
 
13372
 
}
13373
 
 
13374
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13375
 
 
13376
 
#line 13377 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13377
 
 
13378
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
13379
 
  typedef void Result;
13380
 
  typedef ::Puma::CT_ClassDef That;
13381
 
  typedef ::Puma::CT_ClassDef Target;
13382
 
  static const int JPID = 4;
13383
 
  static const AC::JPType JPTYPE = (AC::JPType)32;
13384
 
  struct Res {
13385
 
    typedef void Type;
13386
 
    typedef void ReferredType;
13387
 
  };
13388
 
  enum { ARGS = 0 };
13389
 
  template <int I, int DUMMY = 0> struct Arg {
13390
 
    typedef void Type;
13391
 
    typedef void ReferredType;
13392
 
  };
13393
 
 
13394
 
  That *_that;
13395
 
 
13396
 
  inline That *that() {return (That*)_that;}
13397
 
 
13398
 
};
13399
 
 
13400
 
 
13401
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13402
 
 
13403
 
#line 13404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13404
 
 
13405
 
public:
13406
 
inline ~CT_ClassDef () {
13407
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
13408
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
13409
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
13410
 
 
13411
 
}
13412
 
 
13413
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13414
 
};
13415
 
      
13416
 
 
13417
 
#line 13418 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13418
 
} // closed Puma
13419
 
class WinIfExists;
13420
 
class WinImportHandler;
13421
 
class WinMacros;
13422
 
class CMatchSyntax;
13423
 
class ExtGnu;
13424
 
class ExtAC;
13425
 
class ExtACBuilderCoupling;
13426
 
class ExtACSyntaxCoupling;
13427
 
class ExtACTree;
13428
 
class ExtACKeywords;
13429
 
class WinAsm;
13430
 
class WinDeclSpecs;
13431
 
class WinMemberExplSpec;
13432
 
class WinTypeKeywords;
13433
 
class PragmaOnceUnitState;
13434
 
class PragmaOnce;
13435
 
class CCExprResolve;
13436
 
class CExprResolve;
13437
 
namespace Puma {
13438
 
 
13439
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13440
 
class CT_UnionDef : public CT_ClassDef {
13441
 
#line 13442 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13442
 
  friend class ::WinIfExists;
13443
 
  friend class ::WinImportHandler;
13444
 
  friend class ::WinMacros;
13445
 
  friend class ::CMatchSyntax;
13446
 
  friend class ::ExtGnu;
13447
 
  friend class ::ExtAC;
13448
 
  friend class ::ExtACBuilderCoupling;
13449
 
  friend class ::ExtACSyntaxCoupling;
13450
 
  friend class ::ExtACTree;
13451
 
  friend class ::ExtACKeywords;
13452
 
  friend class ::WinAsm;
13453
 
  friend class ::WinDeclSpecs;
13454
 
  friend class ::WinMemberExplSpec;
13455
 
  friend class ::WinTypeKeywords;
13456
 
  friend class ::PragmaOnceUnitState;
13457
 
  friend class ::PragmaOnce;
13458
 
  friend class ::CCExprResolve;
13459
 
  friend class ::CExprResolve;
13460
 
 
13461
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13462
 
 
13463
 
public:
13464
 
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
13465
 
  static const char *NodeId ();
13466
 
  const char *NodeName () const { return NodeId (); }
13467
 
};
13468
 
      
13469
 
 
13470
 
#line 13471 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13471
 
} // closed Puma
13472
 
class WinIfExists;
13473
 
class WinImportHandler;
13474
 
class WinMacros;
13475
 
class CMatchSyntax;
13476
 
class ExtGnu;
13477
 
class ExtAC;
13478
 
class ExtACBuilderCoupling;
13479
 
class ExtACSyntaxCoupling;
13480
 
class ExtACTree;
13481
 
class ExtACKeywords;
13482
 
class WinAsm;
13483
 
class WinDeclSpecs;
13484
 
class WinMemberExplSpec;
13485
 
class WinTypeKeywords;
13486
 
class PragmaOnceUnitState;
13487
 
class PragmaOnce;
13488
 
class CCExprResolve;
13489
 
class CExprResolve;
13490
 
namespace Puma {
13491
 
 
13492
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13493
 
class CT_MembList : public CT_DeclList, public CSemScope {
13494
 
#line 13495 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13495
 
  friend class ::WinIfExists;
13496
 
  friend class ::WinImportHandler;
13497
 
  friend class ::WinMacros;
13498
 
  friend class ::CMatchSyntax;
13499
 
  friend class ::ExtGnu;
13500
 
  friend class ::ExtAC;
13501
 
  friend class ::ExtACBuilderCoupling;
13502
 
  friend class ::ExtACSyntaxCoupling;
13503
 
  friend class ::ExtACTree;
13504
 
  friend class ::ExtACKeywords;
13505
 
  friend class ::WinAsm;
13506
 
  friend class ::WinDeclSpecs;
13507
 
  friend class ::WinMemberExplSpec;
13508
 
  friend class ::WinTypeKeywords;
13509
 
  friend class ::PragmaOnceUnitState;
13510
 
  friend class ::PragmaOnce;
13511
 
  friend class ::CCExprResolve;
13512
 
  friend class ::CExprResolve;
13513
 
 
13514
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13515
 
 
13516
 
public:
13517
 
  CT_MembList (int size = 10, int incr = 10) : 
13518
 
    CT_DeclList (size, incr) {}
13519
 
  static const char *NodeId ();
13520
 
  const char *NodeName () const { return NodeId (); }
13521
 
};
13522
 
 
13523
 
 
13524
 
#line 13525 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13525
 
} // closed Puma
13526
 
class WinIfExists;
13527
 
class WinImportHandler;
13528
 
class WinMacros;
13529
 
class CMatchSyntax;
13530
 
class ExtGnu;
13531
 
class ExtAC;
13532
 
class ExtACBuilderCoupling;
13533
 
class ExtACSyntaxCoupling;
13534
 
class ExtACTree;
13535
 
class ExtACKeywords;
13536
 
class WinAsm;
13537
 
class WinDeclSpecs;
13538
 
class WinMemberExplSpec;
13539
 
class WinTypeKeywords;
13540
 
class PragmaOnceUnitState;
13541
 
class PragmaOnce;
13542
 
class CCExprResolve;
13543
 
class CExprResolve;
13544
 
namespace Puma {
13545
 
 
13546
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13547
 
class CT_MembInitList : public CT_List, public CSemScope {
13548
 
#line 13549 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13549
 
  friend class ::WinIfExists;
13550
 
  friend class ::WinImportHandler;
13551
 
  friend class ::WinMacros;
13552
 
  friend class ::CMatchSyntax;
13553
 
  friend class ::ExtGnu;
13554
 
  friend class ::ExtAC;
13555
 
  friend class ::ExtACBuilderCoupling;
13556
 
  friend class ::ExtACSyntaxCoupling;
13557
 
  friend class ::ExtACTree;
13558
 
  friend class ::ExtACKeywords;
13559
 
  friend class ::WinAsm;
13560
 
  friend class ::WinDeclSpecs;
13561
 
  friend class ::WinMemberExplSpec;
13562
 
  friend class ::WinTypeKeywords;
13563
 
  friend class ::PragmaOnceUnitState;
13564
 
  friend class ::PragmaOnce;
13565
 
  friend class ::CCExprResolve;
13566
 
  friend class ::CExprResolve;
13567
 
 
13568
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13569
 
 
13570
 
public:
13571
 
  CT_MembInitList (int size = 2) : 
13572
 
    CT_List (size, 2, CT_List::OPEN) {}
13573
 
  static const char *NodeId ();
13574
 
  const char *NodeName () const { return NodeId (); }
13575
 
};
13576
 
 
13577
 
 
13578
 
#line 13579 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13579
 
} // closed Puma
13580
 
class WinIfExists;
13581
 
class WinImportHandler;
13582
 
class WinMacros;
13583
 
class CMatchSyntax;
13584
 
class ExtGnu;
13585
 
class ExtAC;
13586
 
class ExtACBuilderCoupling;
13587
 
class ExtACSyntaxCoupling;
13588
 
class ExtACTree;
13589
 
class ExtACKeywords;
13590
 
class WinAsm;
13591
 
class WinDeclSpecs;
13592
 
class WinMemberExplSpec;
13593
 
class WinTypeKeywords;
13594
 
class PragmaOnceUnitState;
13595
 
class PragmaOnce;
13596
 
class CCExprResolve;
13597
 
class CExprResolve;
13598
 
namespace Puma {
13599
 
 
13600
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13601
 
class CT_MembInit : public CT_Expression, public CSemObject {
13602
 
#line 13603 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13603
 
  friend class ::WinIfExists;
13604
 
  friend class ::WinImportHandler;
13605
 
  friend class ::WinMacros;
13606
 
  friend class ::CMatchSyntax;
13607
 
  friend class ::ExtGnu;
13608
 
  friend class ::ExtAC;
13609
 
  friend class ::ExtACBuilderCoupling;
13610
 
  friend class ::ExtACSyntaxCoupling;
13611
 
  friend class ::ExtACTree;
13612
 
  friend class ::ExtACKeywords;
13613
 
  friend class ::WinAsm;
13614
 
  friend class ::WinDeclSpecs;
13615
 
  friend class ::WinMemberExplSpec;
13616
 
  friend class ::WinTypeKeywords;
13617
 
  friend class ::PragmaOnceUnitState;
13618
 
  friend class ::PragmaOnce;
13619
 
  friend class ::CCExprResolve;
13620
 
  friend class ::CExprResolve;
13621
 
 
13622
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13623
 
 
13624
 
  CTree *sons[2]; // name, init
13625
 
 
13626
 
public:
13627
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
13628
 
  static const char *NodeId ();
13629
 
  const char *NodeName () const { return NodeId (); }
13630
 
  int Sons () const { return 2; }
13631
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
13632
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13633
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
13634
 
  }
13635
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
13636
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
13637
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
13638
 
   private:
13639
 
  typedef CT_MembInit CCExprResolveExpr;
13640
 
 
13641
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
13642
 
 public :
13643
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
13644
 
  typedef CT_MembInit CExprResolveExpr;
13645
 
 
13646
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
13647
 
 public :
13648
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
13649
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13650
 
};
13651
 
 
13652
 
 
13653
 
#line 13654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13654
 
} // closed Puma
13655
 
class WinIfExists;
13656
 
class WinImportHandler;
13657
 
class WinMacros;
13658
 
class CMatchSyntax;
13659
 
class ExtGnu;
13660
 
class ExtAC;
13661
 
class ExtACBuilderCoupling;
13662
 
class ExtACSyntaxCoupling;
13663
 
class ExtACTree;
13664
 
class ExtACKeywords;
13665
 
class WinAsm;
13666
 
class WinDeclSpecs;
13667
 
class WinMemberExplSpec;
13668
 
class WinTypeKeywords;
13669
 
class PragmaOnceUnitState;
13670
 
class PragmaOnce;
13671
 
class CCExprResolve;
13672
 
class CExprResolve;
13673
 
namespace Puma {
13674
 
 
13675
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13676
 
class CT_BaseSpecList : public CT_List {
13677
 
#line 13678 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13678
 
  friend class ::WinIfExists;
13679
 
  friend class ::WinImportHandler;
13680
 
  friend class ::WinMacros;
13681
 
  friend class ::CMatchSyntax;
13682
 
  friend class ::ExtGnu;
13683
 
  friend class ::ExtAC;
13684
 
  friend class ::ExtACBuilderCoupling;
13685
 
  friend class ::ExtACSyntaxCoupling;
13686
 
  friend class ::ExtACTree;
13687
 
  friend class ::ExtACKeywords;
13688
 
  friend class ::WinAsm;
13689
 
  friend class ::WinDeclSpecs;
13690
 
  friend class ::WinMemberExplSpec;
13691
 
  friend class ::WinTypeKeywords;
13692
 
  friend class ::PragmaOnceUnitState;
13693
 
  friend class ::PragmaOnce;
13694
 
  friend class ::CCExprResolve;
13695
 
  friend class ::CExprResolve;
13696
 
 
13697
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13698
 
 
13699
 
public:
13700
 
  CT_BaseSpecList (int size = 2) : 
13701
 
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
13702
 
  static const char *NodeId ();
13703
 
  const char *NodeName () const { return NodeId (); }
13704
 
};
13705
 
 
13706
 
 
13707
 
#line 13708 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13708
 
} // closed Puma
13709
 
class WinIfExists;
13710
 
class WinImportHandler;
13711
 
class WinMacros;
13712
 
class CMatchSyntax;
13713
 
class ExtGnu;
13714
 
class ExtAC;
13715
 
class ExtACBuilderCoupling;
13716
 
class ExtACSyntaxCoupling;
13717
 
class ExtACTree;
13718
 
class ExtACKeywords;
13719
 
class WinAsm;
13720
 
class WinDeclSpecs;
13721
 
class WinMemberExplSpec;
13722
 
class WinTypeKeywords;
13723
 
class PragmaOnceUnitState;
13724
 
class PragmaOnce;
13725
 
class CCExprResolve;
13726
 
class CExprResolve;
13727
 
namespace Puma {
13728
 
 
13729
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13730
 
class CT_AccessSpec : public CTree {
13731
 
#line 13732 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13732
 
  friend class ::WinIfExists;
13733
 
  friend class ::WinImportHandler;
13734
 
  friend class ::WinMacros;
13735
 
  friend class ::CMatchSyntax;
13736
 
  friend class ::ExtGnu;
13737
 
  friend class ::ExtAC;
13738
 
  friend class ::ExtACBuilderCoupling;
13739
 
  friend class ::ExtACSyntaxCoupling;
13740
 
  friend class ::ExtACTree;
13741
 
  friend class ::ExtACKeywords;
13742
 
  friend class ::WinAsm;
13743
 
  friend class ::WinDeclSpecs;
13744
 
  friend class ::WinMemberExplSpec;
13745
 
  friend class ::WinTypeKeywords;
13746
 
  friend class ::PragmaOnceUnitState;
13747
 
  friend class ::PragmaOnce;
13748
 
  friend class ::CCExprResolve;
13749
 
  friend class ::CExprResolve;
13750
 
 
13751
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13752
 
 
13753
 
  CTree *sons[2]; // access, colon
13754
 
 
13755
 
public:
13756
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
13757
 
  static const char *NodeId ();
13758
 
  const char *NodeName () const { return NodeId (); }
13759
 
  int Sons () const { return 2; }
13760
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
13761
 
  int Access () const { return sons[0]->token ()->type (); }
13762
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13763
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
13764
 
  }
13765
 
};
13766
 
 
13767
 
 
13768
 
#line 13769 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13769
 
} // closed Puma
13770
 
class WinIfExists;
13771
 
class WinImportHandler;
13772
 
class WinMacros;
13773
 
class CMatchSyntax;
13774
 
class ExtGnu;
13775
 
class ExtAC;
13776
 
class ExtACBuilderCoupling;
13777
 
class ExtACSyntaxCoupling;
13778
 
class ExtACTree;
13779
 
class ExtACKeywords;
13780
 
class WinAsm;
13781
 
class WinDeclSpecs;
13782
 
class WinMemberExplSpec;
13783
 
class WinTypeKeywords;
13784
 
class PragmaOnceUnitState;
13785
 
class PragmaOnce;
13786
 
class CCExprResolve;
13787
 
class CExprResolve;
13788
 
namespace Puma {
13789
 
 
13790
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13791
 
class CT_BaseSpec : public CTree {
13792
 
#line 13793 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13793
 
  friend class ::WinIfExists;
13794
 
  friend class ::WinImportHandler;
13795
 
  friend class ::WinMacros;
13796
 
  friend class ::CMatchSyntax;
13797
 
  friend class ::ExtGnu;
13798
 
  friend class ::ExtAC;
13799
 
  friend class ::ExtACBuilderCoupling;
13800
 
  friend class ::ExtACSyntaxCoupling;
13801
 
  friend class ::ExtACTree;
13802
 
  friend class ::ExtACKeywords;
13803
 
  friend class ::WinAsm;
13804
 
  friend class ::WinDeclSpecs;
13805
 
  friend class ::WinMemberExplSpec;
13806
 
  friend class ::WinTypeKeywords;
13807
 
  friend class ::PragmaOnceUnitState;
13808
 
  friend class ::PragmaOnce;
13809
 
  friend class ::CCExprResolve;
13810
 
  friend class ::CExprResolve;
13811
 
 
13812
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13813
 
 
13814
 
  CTree *sons[3]; // virtual, access, name
13815
 
 
13816
 
public:
13817
 
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
13818
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
13819
 
  }
13820
 
  static const char *NodeId ();
13821
 
  const char *NodeName () const { return NodeId (); }
13822
 
  int Sons () const { return CTree::Sons (sons, 3); }
13823
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13824
 
  int Access () const { return sons[1]->token ()->type (); }
13825
 
  CTree *AccessSpec () const { return sons[1]; }
13826
 
  CTree *Virtual () const { return sons[0]; }
13827
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
13828
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13829
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13830
 
  }
13831
 
};
13832
 
 
13833
 
 
13834
 
#line 13835 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13835
 
} // closed Puma
13836
 
class WinIfExists;
13837
 
class WinImportHandler;
13838
 
class WinMacros;
13839
 
class CMatchSyntax;
13840
 
class ExtGnu;
13841
 
class ExtAC;
13842
 
class ExtACBuilderCoupling;
13843
 
class ExtACSyntaxCoupling;
13844
 
class ExtACTree;
13845
 
class ExtACKeywords;
13846
 
class WinAsm;
13847
 
class WinDeclSpecs;
13848
 
class WinMemberExplSpec;
13849
 
class WinTypeKeywords;
13850
 
class PragmaOnceUnitState;
13851
 
class PragmaOnce;
13852
 
class CCExprResolve;
13853
 
class CExprResolve;
13854
 
namespace Puma {
13855
 
 
13856
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13857
 
class CT_AccessDecl : public CT_Decl {
13858
 
#line 13859 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13859
 
  friend class ::WinIfExists;
13860
 
  friend class ::WinImportHandler;
13861
 
  friend class ::WinMacros;
13862
 
  friend class ::CMatchSyntax;
13863
 
  friend class ::ExtGnu;
13864
 
  friend class ::ExtAC;
13865
 
  friend class ::ExtACBuilderCoupling;
13866
 
  friend class ::ExtACSyntaxCoupling;
13867
 
  friend class ::ExtACTree;
13868
 
  friend class ::ExtACKeywords;
13869
 
  friend class ::WinAsm;
13870
 
  friend class ::WinDeclSpecs;
13871
 
  friend class ::WinMemberExplSpec;
13872
 
  friend class ::WinTypeKeywords;
13873
 
  friend class ::PragmaOnceUnitState;
13874
 
  friend class ::PragmaOnce;
13875
 
  friend class ::CCExprResolve;
13876
 
  friend class ::CExprResolve;
13877
 
 
13878
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13879
 
 
13880
 
  CTree *sons[2]; // name, semi_colon
13881
 
 
13882
 
public:
13883
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
13884
 
  static const char *NodeId ();
13885
 
  const char *NodeName () const { return NodeId (); }
13886
 
  int Sons () const { return 2; }
13887
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
13888
 
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
13889
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13890
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
13891
 
  }
13892
 
};
13893
 
 
13894
 
 
13895
 
#line 13896 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13896
 
} // closed Puma
13897
 
class WinIfExists;
13898
 
class WinImportHandler;
13899
 
class WinMacros;
13900
 
class CMatchSyntax;
13901
 
class ExtGnu;
13902
 
class ExtAC;
13903
 
class ExtACBuilderCoupling;
13904
 
class ExtACSyntaxCoupling;
13905
 
class ExtACTree;
13906
 
class ExtACKeywords;
13907
 
class WinAsm;
13908
 
class WinDeclSpecs;
13909
 
class WinMemberExplSpec;
13910
 
class WinTypeKeywords;
13911
 
class PragmaOnceUnitState;
13912
 
class PragmaOnce;
13913
 
class CCExprResolve;
13914
 
class CExprResolve;
13915
 
namespace Puma {
13916
 
 
13917
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13918
 
class CT_UsingDecl : public CT_AccessDecl {
13919
 
#line 13920 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13920
 
  friend class ::WinIfExists;
13921
 
  friend class ::WinImportHandler;
13922
 
  friend class ::WinMacros;
13923
 
  friend class ::CMatchSyntax;
13924
 
  friend class ::ExtGnu;
13925
 
  friend class ::ExtAC;
13926
 
  friend class ::ExtACBuilderCoupling;
13927
 
  friend class ::ExtACSyntaxCoupling;
13928
 
  friend class ::ExtACTree;
13929
 
  friend class ::ExtACKeywords;
13930
 
  friend class ::WinAsm;
13931
 
  friend class ::WinDeclSpecs;
13932
 
  friend class ::WinMemberExplSpec;
13933
 
  friend class ::WinTypeKeywords;
13934
 
  friend class ::PragmaOnceUnitState;
13935
 
  friend class ::PragmaOnce;
13936
 
  friend class ::CCExprResolve;
13937
 
  friend class ::CExprResolve;
13938
 
 
13939
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13940
 
 
13941
 
  CTree *sons[2]; // using, typename
13942
 
 
13943
 
public:
13944
 
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
13945
 
    sons[0] = u; sons[1] = 0; 
13946
 
  }
13947
 
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
13948
 
    sons[0] = u; sons[1] = t; 
13949
 
  }
13950
 
  static const char *NodeId ();
13951
 
  const char *NodeName () const { return NodeId (); }
13952
 
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
13953
 
  CTree *Son (int n) const {
13954
 
    int num = CTree::Sons (sons, 2);
13955
 
    CTree *result = CTree::Son (sons, 2, n);
13956
 
    return result ? result : CT_AccessDecl::Son (n-num);
13957
 
  }
13958
 
  CTree *Typename () const { return sons[1]; }
13959
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13960
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
13961
 
    CT_AccessDecl::ReplaceSon (old_son, new_son);
13962
 
  }
13963
 
};
13964
 
 
13965
 
/*****************************************************************************/
13966
 
/*                                                                           */
13967
 
/*                              Wildcards                                    */
13968
 
/*                                                                           */
13969
 
/*****************************************************************************/
13970
 
 
13971
 
 
13972
 
#line 13973 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13973
 
} // closed Puma
13974
 
class WinIfExists;
13975
 
class WinImportHandler;
13976
 
class WinMacros;
13977
 
class CMatchSyntax;
13978
 
class ExtGnu;
13979
 
class ExtAC;
13980
 
class ExtACBuilderCoupling;
13981
 
class ExtACSyntaxCoupling;
13982
 
class ExtACTree;
13983
 
class ExtACKeywords;
13984
 
class WinAsm;
13985
 
class WinDeclSpecs;
13986
 
class WinMemberExplSpec;
13987
 
class WinTypeKeywords;
13988
 
class PragmaOnceUnitState;
13989
 
class PragmaOnce;
13990
 
class CCExprResolve;
13991
 
class CExprResolve;
13992
 
namespace Puma {
13993
 
 
13994
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13995
 
class CT_Any : public CTree {
13996
 
#line 13997 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
13997
 
  friend class ::WinIfExists;
13998
 
  friend class ::WinImportHandler;
13999
 
  friend class ::WinMacros;
14000
 
  friend class ::CMatchSyntax;
14001
 
  friend class ::ExtGnu;
14002
 
  friend class ::ExtAC;
14003
 
  friend class ::ExtACBuilderCoupling;
14004
 
  friend class ::ExtACSyntaxCoupling;
14005
 
  friend class ::ExtACTree;
14006
 
  friend class ::ExtACKeywords;
14007
 
  friend class ::WinAsm;
14008
 
  friend class ::WinDeclSpecs;
14009
 
  friend class ::WinMemberExplSpec;
14010
 
  friend class ::WinTypeKeywords;
14011
 
  friend class ::PragmaOnceUnitState;
14012
 
  friend class ::PragmaOnce;
14013
 
  friend class ::CCExprResolve;
14014
 
  friend class ::CExprResolve;
14015
 
 
14016
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14017
 
 
14018
 
  CTree *sons[2]; // keyword, extension
14019
 
 
14020
 
public:
14021
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
14022
 
  static const char *NodeId ();
14023
 
  const char *NodeName () const { return NodeId (); }
14024
 
  int Sons () const { return CTree::Sons (sons, 2); }
14025
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
14026
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14027
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
14028
 
  }
14029
 
  int AnyType () const { return sons[0]->token ()->type (); }
14030
 
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
14031
 
};
14032
 
 
14033
 
 
14034
 
#line 14035 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
14035
 
} // closed Puma
14036
 
class WinIfExists;
14037
 
class WinImportHandler;
14038
 
class WinMacros;
14039
 
class CMatchSyntax;
14040
 
class ExtGnu;
14041
 
class ExtAC;
14042
 
class ExtACBuilderCoupling;
14043
 
class ExtACSyntaxCoupling;
14044
 
class ExtACTree;
14045
 
class ExtACKeywords;
14046
 
class WinAsm;
14047
 
class WinDeclSpecs;
14048
 
class WinMemberExplSpec;
14049
 
class WinTypeKeywords;
14050
 
class PragmaOnceUnitState;
14051
 
class PragmaOnce;
14052
 
class CCExprResolve;
14053
 
class CExprResolve;
14054
 
namespace Puma {
14055
 
 
14056
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14057
 
class CT_AnyList : public CT_Any {
14058
 
#line 14059 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
14059
 
  friend class ::WinIfExists;
14060
 
  friend class ::WinImportHandler;
14061
 
  friend class ::WinMacros;
14062
 
  friend class ::CMatchSyntax;
14063
 
  friend class ::ExtGnu;
14064
 
  friend class ::ExtAC;
14065
 
  friend class ::ExtACBuilderCoupling;
14066
 
  friend class ::ExtACSyntaxCoupling;
14067
 
  friend class ::ExtACTree;
14068
 
  friend class ::ExtACKeywords;
14069
 
  friend class ::WinAsm;
14070
 
  friend class ::WinDeclSpecs;
14071
 
  friend class ::WinMemberExplSpec;
14072
 
  friend class ::WinTypeKeywords;
14073
 
  friend class ::PragmaOnceUnitState;
14074
 
  friend class ::PragmaOnce;
14075
 
  friend class ::CCExprResolve;
14076
 
  friend class ::CExprResolve;
14077
 
 
14078
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14079
 
 
14080
 
public:
14081
 
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
14082
 
  static const char *NodeId ();
14083
 
  const char *NodeName () const { return NodeId (); }
14084
 
};
14085
 
 
14086
 
 
14087
 
#line 14088 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
14088
 
} // closed Puma
14089
 
class WinIfExists;
14090
 
class WinImportHandler;
14091
 
class WinMacros;
14092
 
class CMatchSyntax;
14093
 
class ExtGnu;
14094
 
class ExtAC;
14095
 
class ExtACBuilderCoupling;
14096
 
class ExtACSyntaxCoupling;
14097
 
class ExtACTree;
14098
 
class ExtACKeywords;
14099
 
class WinAsm;
14100
 
class WinDeclSpecs;
14101
 
class WinMemberExplSpec;
14102
 
class WinTypeKeywords;
14103
 
class PragmaOnceUnitState;
14104
 
class PragmaOnce;
14105
 
class CCExprResolve;
14106
 
class CExprResolve;
14107
 
namespace Puma {
14108
 
 
14109
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14110
 
class CT_AnyExtension : public CTree, public CSemValue {
14111
 
#line 14112 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
14112
 
  friend class ::WinIfExists;
14113
 
  friend class ::WinImportHandler;
14114
 
  friend class ::WinMacros;
14115
 
  friend class ::CMatchSyntax;
14116
 
  friend class ::ExtGnu;
14117
 
  friend class ::ExtAC;
14118
 
  friend class ::ExtACBuilderCoupling;
14119
 
  friend class ::ExtACSyntaxCoupling;
14120
 
  friend class ::ExtACTree;
14121
 
  friend class ::ExtACKeywords;
14122
 
  friend class ::WinAsm;
14123
 
  friend class ::WinDeclSpecs;
14124
 
  friend class ::WinMemberExplSpec;
14125
 
  friend class ::WinTypeKeywords;
14126
 
  friend class ::PragmaOnceUnitState;
14127
 
  friend class ::PragmaOnce;
14128
 
  friend class ::CCExprResolve;
14129
 
  friend class ::CExprResolve;
14130
 
 
14131
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14132
 
 
14133
 
  CTree *sons[5]; // open, string, comma, cond, close
14134
 
 
14135
 
public:
14136
 
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
14137
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
14138
 
  }
14139
 
  static const char *NodeId ();
14140
 
  const char *NodeName () const { return NodeId (); }
14141
 
  int Sons () const { return CTree::Sons (sons, 5); }
14142
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
14143
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14144
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
14145
 
  }
14146
 
  CTree *Condition () const { return sons[3]; }
14147
 
  CT_Token *String () const { return (CT_Token*)sons[1]; }
14148
 
  const char *Name () const { 
14149
 
    return value ? value->StrLiteral ()->String () : (const char*)0; }
14150
 
 
14151
 
  CExprValue *Value () const { return value; }
14152
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
14153
 
};
14154
 
 
14155
 
 
14156
 
#line 14157 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
14157
 
} // closed Puma
14158
 
class WinIfExists;
14159
 
class WinImportHandler;
14160
 
class WinMacros;
14161
 
class CMatchSyntax;
14162
 
class ExtGnu;
14163
 
class ExtAC;
14164
 
class ExtACBuilderCoupling;
14165
 
class ExtACSyntaxCoupling;
14166
 
class ExtACTree;
14167
 
class ExtACKeywords;
14168
 
class WinAsm;
14169
 
class WinDeclSpecs;
14170
 
class WinMemberExplSpec;
14171
 
class WinTypeKeywords;
14172
 
class PragmaOnceUnitState;
14173
 
class PragmaOnce;
14174
 
class CCExprResolve;
14175
 
class CExprResolve;
14176
 
namespace Puma {
14177
 
 
14178
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14179
 
class CT_AnyCondition : public CTree {
14180
 
#line 14181 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
14181
 
  friend class ::WinIfExists;
14182
 
  friend class ::WinImportHandler;
14183
 
  friend class ::WinMacros;
14184
 
  friend class ::CMatchSyntax;
14185
 
  friend class ::ExtGnu;
14186
 
  friend class ::ExtAC;
14187
 
  friend class ::ExtACBuilderCoupling;
14188
 
  friend class ::ExtACSyntaxCoupling;
14189
 
  friend class ::ExtACTree;
14190
 
  friend class ::ExtACKeywords;
14191
 
  friend class ::WinAsm;
14192
 
  friend class ::WinDeclSpecs;
14193
 
  friend class ::WinMemberExplSpec;
14194
 
  friend class ::WinTypeKeywords;
14195
 
  friend class ::PragmaOnceUnitState;
14196
 
  friend class ::PragmaOnce;
14197
 
  friend class ::CCExprResolve;
14198
 
  friend class ::CExprResolve;
14199
 
 
14200
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14201
 
 
14202
 
  CTree *sons[3]; // arg1, arg2, arg3
14203
 
 
14204
 
public:
14205
 
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
14206
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
14207
 
  }
14208
 
  static const char *NodeId ();
14209
 
  const char *NodeName () const { return NodeId (); }
14210
 
  int Sons () const { return CTree::Sons (sons, 3); }
14211
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
14212
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14213
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
14214
 
  }
14215
 
};
14216
 
 
14217
 
 
14218
 
} // namespace Puma
14219
 
 
14220
 
#endif /* __CTree_h__ */
14221
 
 
14222
 
#line 14223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
14223
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
14224
 
 
14225
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14226
 
 
14227
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14228
 
namespace Puma {
14229
 
 
14230
 
 
14231
 
 
14232
 
#line 14233 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
14233
 
} // closed Puma
14234
 
class WinIfExists;
14235
 
class WinImportHandler;
14236
 
class WinMacros;
14237
 
class CMatchSyntax;
14238
 
class ExtGnu;
14239
 
class ExtAC;
14240
 
class ExtACBuilderCoupling;
14241
 
class ExtACSyntaxCoupling;
14242
 
class ExtACTree;
14243
 
class ExtACKeywords;
14244
 
class WinAsm;
14245
 
class WinDeclSpecs;
14246
 
class WinMemberExplSpec;
14247
 
class WinTypeKeywords;
14248
 
class PragmaOnceUnitState;
14249
 
class PragmaOnce;
14250
 
class CCExprResolve;
14251
 
class CExprResolve;
14252
 
namespace Puma {
14253
 
 
14254
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
5216
#line 168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5217
#include <string.h>
 
5218
using namespace std;
 
5219
 
 
5220
namespace Puma {
 
5221
 
 
5222
 
 
5223
class ErrorStream;
 
5224
class CObjectInfo;
 
5225
class CStructure;
 
5226
 
 
5227
/*****************************************************************************/
 
5228
/*                                                                           */
 
5229
/*                    S y n t a x  t r e e  n o d e s                        */
 
5230
/*                                                                           */
 
5231
/*****************************************************************************/
 
5232
 
 
5233
/** \file
 
5234
 *  C/C++ syntax tree classes.
 
5235
 *  \see Puma::CTree */
 
5236
 
 
5237
/** \class CTree CTree.h Puma/CTree.h
 
5238
 *  Base class for all C/C++ syntax tree classes. */
 
5239
 
 
5240
#line 5241 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5241
} // closed Puma
 
5242
class CCExprResolve;
 
5243
class CExprResolve;
 
5244
class WinIfExists;
 
5245
class WinImportHandler;
 
5246
class WinMacros;
 
5247
class WinAsm;
 
5248
class WinDeclSpecs;
 
5249
class WinMemberExplSpec;
 
5250
class WinTypeKeywords;
 
5251
class WinFriend;
 
5252
class ExtAC;
 
5253
class ExtACBuilderCoupling;
 
5254
class ExtACSyntaxCoupling;
 
5255
class ExtACTree;
 
5256
class ExtACKeywords;
 
5257
class ExtGnu;
 
5258
class PragmaOnceUnitState;
 
5259
class PragmaOnce;
 
5260
class CMatchSyntax;
 
5261
namespace Puma {
 
5262
 
 
5263
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5264
 
 
5265
#line 5266 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5266
} // closed Puma
 
5267
 
 
5268
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5269
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5270
 
 
5271
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5272
// This file is part of PUMA.
 
5273
// Copyright (C) 1999-2003  The PUMA developer team.
 
5274
//                                                                
 
5275
// This program is free software;  you can redistribute it and/or 
 
5276
// modify it under the terms of the GNU General Public License as 
 
5277
// published by the Free Software Foundation; either version 2 of 
 
5278
// the License, or (at your option) any later version.            
 
5279
//                                                                
 
5280
// This program is distributed in the hope that it will be useful,
 
5281
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
5282
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
5283
// GNU General Public License for more details.                   
 
5284
//                                                                
 
5285
// You should have received a copy of the GNU General Public      
 
5286
// License along with this program; if not, write to the Free     
 
5287
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
5288
// MA  02111-1307  USA                                            
 
5289
 
 
5290
#ifndef __CCExprResolveH_ah__
 
5291
#define __CCExprResolveH_ah__
 
5292
 
 
5293
// This aspect inserts resolve member functions into all syntax tree classes
 
5294
// that represent expressions. As the function is virtual, an efficient
 
5295
// run-time switch over the node type is implemented.
 
5296
 
 
5297
namespace Puma {
 
5298
  class CCSemExpr;
 
5299
}
 
5300
 
 
5301
namespace Puma {
 
5302
  
 
5303
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5304
 
 
5305
  
 
5306
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5307
 
 
5308
}
 
5309
 
 
5310
 
 
5311
#line 5312 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5312
class CExprResolve;
 
5313
class WinIfExists;
 
5314
class WinImportHandler;
 
5315
class WinMacros;
 
5316
class WinAsm;
 
5317
class WinDeclSpecs;
 
5318
class WinMemberExplSpec;
 
5319
class WinTypeKeywords;
 
5320
class WinFriend;
 
5321
class ExtAC;
 
5322
class ExtACBuilderCoupling;
 
5323
class ExtACSyntaxCoupling;
 
5324
class ExtACTree;
 
5325
class ExtACKeywords;
 
5326
class ExtGnu;
 
5327
class PragmaOnceUnitState;
 
5328
class PragmaOnce;
 
5329
class CMatchSyntax;
 
5330
 
 
5331
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5332
class CCExprResolve {
 
5333
#line 5334 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5334
 
 
5335
public:
 
5336
  static CCExprResolve *aspectof () {
 
5337
    static CCExprResolve __instance;
 
5338
    return &__instance;
 
5339
  }
 
5340
  static CCExprResolve *aspectOf () {
 
5341
    return aspectof ();
 
5342
  }
 
5343
private:
 
5344
 
 
5345
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5346
 
 
5347
#line 5348 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5348
  friend class ::CExprResolve;
 
5349
  friend class ::WinIfExists;
 
5350
  friend class ::WinImportHandler;
 
5351
  friend class ::WinMacros;
 
5352
  friend class ::WinAsm;
 
5353
  friend class ::WinDeclSpecs;
 
5354
  friend class ::WinMemberExplSpec;
 
5355
  friend class ::WinTypeKeywords;
 
5356
  friend class ::WinFriend;
 
5357
  friend class ::ExtAC;
 
5358
  friend class ::ExtACBuilderCoupling;
 
5359
  friend class ::ExtACSyntaxCoupling;
 
5360
  friend class ::ExtACTree;
 
5361
  friend class ::ExtACKeywords;
 
5362
  friend class ::ExtGnu;
 
5363
  friend class ::PragmaOnceUnitState;
 
5364
  friend class ::PragmaOnce;
 
5365
  friend class ::CMatchSyntax;
 
5366
 
 
5367
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5368
 
 
5369
  
 
5370
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5371
 
 
5372
  
 
5373
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5374
 
 
5375
};
 
5376
#line 5377 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5377
 
 
5378
namespace AC {
 
5379
 
5380
 
 
5381
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5382
 
 
5383
 
 
5384
#endif /* __CCExprResolveH_ah__ */
 
5385
 
 
5386
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5387
#endif
 
5388
namespace Puma {
 
5389
 
 
5390
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5391
 
 
5392
#line 5393 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5393
} // closed Puma
 
5394
 
 
5395
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5396
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5397
 
 
5398
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5399
// This file is part of PUMA.
 
5400
// Copyright (C) 1999-2003  The PUMA developer team.
 
5401
//                                                                
 
5402
// This program is free software;  you can redistribute it and/or 
 
5403
// modify it under the terms of the GNU General Public License as 
 
5404
// published by the Free Software Foundation; either version 2 of 
 
5405
// the License, or (at your option) any later version.            
 
5406
//                                                                
 
5407
// This program is distributed in the hope that it will be useful,
 
5408
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
5409
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
5410
// GNU General Public License for more details.                   
 
5411
//                                                                
 
5412
// You should have received a copy of the GNU General Public      
 
5413
// License along with this program; if not, write to the Free     
 
5414
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
5415
// MA  02111-1307  USA                                            
 
5416
 
 
5417
#ifndef __CExprResolveH_ah__
 
5418
#define __CExprResolveH_ah__
 
5419
 
 
5420
// This aspect inserts resolve member functions into all syntax tree classes
 
5421
// that represent expressions. As the function is virtual, an efficient
 
5422
// run-time switch over the node type is implemented.
 
5423
 
 
5424
namespace Puma {
 
5425
  class CSemExpr;
 
5426
}
 
5427
 
 
5428
namespace Puma {
 
5429
  
 
5430
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5431
 
 
5432
  
 
5433
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5434
 
 
5435
}
 
5436
 
 
5437
 
 
5438
#line 5439 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5439
class CCExprResolve;
 
5440
class WinIfExists;
 
5441
class WinImportHandler;
 
5442
class WinMacros;
 
5443
class WinAsm;
 
5444
class WinDeclSpecs;
 
5445
class WinMemberExplSpec;
 
5446
class WinTypeKeywords;
 
5447
class WinFriend;
 
5448
class ExtAC;
 
5449
class ExtACBuilderCoupling;
 
5450
class ExtACSyntaxCoupling;
 
5451
class ExtACTree;
 
5452
class ExtACKeywords;
 
5453
class ExtGnu;
 
5454
class PragmaOnceUnitState;
 
5455
class PragmaOnce;
 
5456
class CMatchSyntax;
 
5457
 
 
5458
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5459
class CExprResolve {
 
5460
#line 5461 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5461
 
 
5462
public:
 
5463
  static CExprResolve *aspectof () {
 
5464
    static CExprResolve __instance;
 
5465
    return &__instance;
 
5466
  }
 
5467
  static CExprResolve *aspectOf () {
 
5468
    return aspectof ();
 
5469
  }
 
5470
private:
 
5471
 
 
5472
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5473
 
 
5474
#line 5475 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5475
  friend class ::CCExprResolve;
 
5476
  friend class ::WinIfExists;
 
5477
  friend class ::WinImportHandler;
 
5478
  friend class ::WinMacros;
 
5479
  friend class ::WinAsm;
 
5480
  friend class ::WinDeclSpecs;
 
5481
  friend class ::WinMemberExplSpec;
 
5482
  friend class ::WinTypeKeywords;
 
5483
  friend class ::WinFriend;
 
5484
  friend class ::ExtAC;
 
5485
  friend class ::ExtACBuilderCoupling;
 
5486
  friend class ::ExtACSyntaxCoupling;
 
5487
  friend class ::ExtACTree;
 
5488
  friend class ::ExtACKeywords;
 
5489
  friend class ::ExtGnu;
 
5490
  friend class ::PragmaOnceUnitState;
 
5491
  friend class ::PragmaOnce;
 
5492
  friend class ::CMatchSyntax;
 
5493
 
 
5494
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5495
 
 
5496
  
 
5497
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5498
 
 
5499
  
 
5500
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5501
 
 
5502
};
 
5503
#line 5504 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5504
 
 
5505
namespace AC {
 
5506
 
5507
 
 
5508
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5509
 
 
5510
 
 
5511
#endif /* __CExprResolveH_ah__ */
 
5512
 
 
5513
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5514
#endif
 
5515
namespace Puma {
 
5516
 
 
5517
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5518
class CTree {
 
5519
#line 5520 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5520
  friend class ::CCExprResolve;
 
5521
  friend class ::CExprResolve;
 
5522
  friend class ::WinIfExists;
 
5523
  friend class ::WinImportHandler;
 
5524
  friend class ::WinMacros;
 
5525
  friend class ::WinAsm;
 
5526
  friend class ::WinDeclSpecs;
 
5527
  friend class ::WinMemberExplSpec;
 
5528
  friend class ::WinTypeKeywords;
 
5529
  friend class ::WinFriend;
 
5530
  friend class ::ExtAC;
 
5531
  friend class ::ExtACBuilderCoupling;
 
5532
  friend class ::ExtACSyntaxCoupling;
 
5533
  friend class ::ExtACTree;
 
5534
  friend class ::ExtACKeywords;
 
5535
  friend class ::ExtGnu;
 
5536
  friend class ::PragmaOnceUnitState;
 
5537
  friend class ::PragmaOnce;
 
5538
  friend class ::CMatchSyntax;
 
5539
 
 
5540
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5541
 
 
5542
  CTree * _parent;
 
5543
 
 
5544
public:
 
5545
  /*DEBUG*/static int alloc;
 
5546
  /*DEBUG*/static int release;
 
5547
 
 
5548
protected:
 
5549
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
5550
   *  \param sons The sons array.
 
5551
   *  \param len Length of the sons array.
 
5552
   *  \param n Index of the son.
 
5553
   *  \return The n-th son or NULL. */
 
5554
  CTree *Son (CTree * const *sons, int len, int n) const;
 
5555
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
5556
   *  \param sons The sons array.
 
5557
   *  \param len Length of the sons array. */
 
5558
  int Sons (CTree * const *sons, int len) const;
 
5559
  /** Replace a son.
 
5560
   *  \param sons The sons array.
 
5561
   *  \param len Length of the sons array.
 
5562
   *  \param old_son The son to replace.
 
5563
   *  \param new_son The new son. */
 
5564
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
5565
  /** Replace a son if it equals the given son.
 
5566
   *  \param son The actual son.
 
5567
   *  \param old_son The son to replace, must match the actual son.
 
5568
   *  \param new_son The new son, overwrites the actual son. */
 
5569
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
5570
  /** Add a new son.
 
5571
   *  \param son The actual son.
 
5572
   *  \param new_son The new son, overwrites the actual son. */
 
5573
  void AddSon (CTree *&son, CTree *new_son);
 
5574
  /** Set the parent tree node.
 
5575
   *  \param parent The new parent tree node. */
 
5576
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
5577
  /** Set the parent tree node of the given tree node.
 
5578
   *  \param node The tree node.
 
5579
   *  \param parent The new parent. */
 
5580
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
 
5581
  
 
5582
protected:
 
5583
  /** Default constructor. */
 
5584
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
 
5585
 
 
5586
public:
 
5587
  /** Destructor. */
 
5588
  virtual ~CTree () { /*DEBUG*/release++; }
 
5589
  /** Get the number of sons. */
 
5590
  virtual int Sons () const = 0;
 
5591
  /** Get the n-th son.
 
5592
   *  \param n The index of the son.
 
5593
   *  \return The n-th son or NULL. */
 
5594
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
5595
  /** Get the node name (node identifier). */
 
5596
  virtual const char *NodeName () const = 0;
 
5597
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
5598
   *  \return The token or NULL. */
 
5599
  virtual Token *token () const;
 
5600
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
5601
   *  \return The token or NULL. */
 
5602
  virtual Token *end_token () const;
 
5603
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
5604
   *  \return The token node or NULL. */
 
5605
  virtual CT_Token *token_node () const;
 
5606
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
5607
   *  \return The token node or NULL. */
 
5608
  virtual CT_Token *end_token_node () const;
 
5609
  /** Replace a son.
 
5610
   *  \param old_son The son to replace.
 
5611
   *  \param new_son The son with which to replace. */
 
5612
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
5613
  /** Get the parent node.
 
5614
   *  \return The parent node or NULL. */
 
5615
  virtual CTree *Parent () const { return (CTree*)_parent; }
 
5616
 
 
5617
public: // semantic information
 
5618
  /** Get the semantic type of the node.
 
5619
   *  \return The type object or NULL. */
 
5620
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
5621
  /** Get the calculated value of the expression.
 
5622
   *  \return The value object or NULL. */
 
5623
  virtual CExprValue *Value () const { return (CExprValue*)0; }
 
5624
  
 
5625
  /** Get the semantic scope of the node.
 
5626
   *  \return The scope object or NULL. */
 
5627
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
5628
  /** Get the semantic value of the node.
 
5629
   *  \return The value object or NULL. */
 
5630
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
5631
  /** Get the semantic object of the node.
 
5632
   *  \return The semantic object or NULL. */
 
5633
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
 
5634
  
 
5635
public: // node classification function
 
5636
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
5637
   *  \return The CT_SimpleName node or NULL. */
 
5638
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
5639
  /** Get a pointer to CT_String if the current node represents a string.
 
5640
   *  \return The CT_String node or NULL. */
 
5641
  virtual CT_String *IsString () { return 0; }
 
5642
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
5643
   *  \return The CT_Declarator pointer or NULL. */
 
5644
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
5645
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
5646
   *  \return The CT_Statement pointer or NULL. */
 
5647
  virtual CT_Statement *IsStatement () { return 0; }
 
5648
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
5649
   *  \return The CT_Expression pointer or NULL. */
 
5650
  virtual CT_Expression *IsExpression () { return 0; }
 
5651
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
5652
   *  \return The CT_Decl pointer or NULL. */
 
5653
  virtual CT_Decl *IsDeclaration () { return 0; }
 
5654
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
5655
   *  \return The CT_Call pointer or NULL. */
 
5656
  virtual CT_Call *IsCall () { return 0; }
 
5657
   private:
 
5658
  typedef CTree CCExprResolveCTree;
 
5659
 
 
5660
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5661
 public :
 
5662
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
5663
  typedef CTree CExprResolveCTree;
 
5664
 
 
5665
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5666
 public :
 
5667
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
5668
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5669
};
 
5670
 
 
5671
/** \class CT_Error CTree.h Puma/CTree.h
 
5672
 *  Error tree node that is inserted into the tree for syntactic constructs
 
5673
 *  that could not be parsed. */
 
5674
 
 
5675
#line 5676 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5676
} // closed Puma
 
5677
class CCExprResolve;
 
5678
class CExprResolve;
 
5679
class WinIfExists;
 
5680
class WinImportHandler;
 
5681
class WinMacros;
 
5682
class WinAsm;
 
5683
class WinDeclSpecs;
 
5684
class WinMemberExplSpec;
 
5685
class WinTypeKeywords;
 
5686
class WinFriend;
 
5687
class ExtAC;
 
5688
class ExtACBuilderCoupling;
 
5689
class ExtACSyntaxCoupling;
 
5690
class ExtACTree;
 
5691
class ExtACKeywords;
 
5692
class ExtGnu;
 
5693
class PragmaOnceUnitState;
 
5694
class PragmaOnce;
 
5695
class CMatchSyntax;
 
5696
namespace Puma {
 
5697
 
 
5698
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5699
class CT_Error : public CTree {
 
5700
#line 5701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5701
  friend class ::CCExprResolve;
 
5702
  friend class ::CExprResolve;
 
5703
  friend class ::WinIfExists;
 
5704
  friend class ::WinImportHandler;
 
5705
  friend class ::WinMacros;
 
5706
  friend class ::WinAsm;
 
5707
  friend class ::WinDeclSpecs;
 
5708
  friend class ::WinMemberExplSpec;
 
5709
  friend class ::WinTypeKeywords;
 
5710
  friend class ::WinFriend;
 
5711
  friend class ::ExtAC;
 
5712
  friend class ::ExtACBuilderCoupling;
 
5713
  friend class ::ExtACSyntaxCoupling;
 
5714
  friend class ::ExtACTree;
 
5715
  friend class ::ExtACKeywords;
 
5716
  friend class ::ExtGnu;
 
5717
  friend class ::PragmaOnceUnitState;
 
5718
  friend class ::PragmaOnce;
 
5719
  friend class ::CMatchSyntax;
 
5720
 
 
5721
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5722
 
 
5723
public:
 
5724
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
5725
  static const char *NodeId ();
 
5726
  /** Get the name of the node. Can be compared with NodeId(). */
 
5727
  const char *NodeName () const { return NodeId (); }
 
5728
  /** Get the number of sons. */
 
5729
  int Sons () const { return 0; }
 
5730
};
 
5731
 
 
5732
/** \class CT_Token CTree.h Puma/CTree.h
 
5733
 *  Tree node representing a single token in the source code. */
 
5734
 
 
5735
#line 5736 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5736
} // closed Puma
 
5737
class CCExprResolve;
 
5738
class CExprResolve;
 
5739
class WinIfExists;
 
5740
class WinImportHandler;
 
5741
class WinMacros;
 
5742
class WinAsm;
 
5743
class WinDeclSpecs;
 
5744
class WinMemberExplSpec;
 
5745
class WinTypeKeywords;
 
5746
class WinFriend;
 
5747
class ExtAC;
 
5748
class ExtACBuilderCoupling;
 
5749
class ExtACSyntaxCoupling;
 
5750
class ExtACTree;
 
5751
class ExtACKeywords;
 
5752
class ExtGnu;
 
5753
class PragmaOnceUnitState;
 
5754
class PragmaOnce;
 
5755
class CMatchSyntax;
 
5756
namespace Puma {
 
5757
 
 
5758
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5759
class CT_Token : public CTree {
 
5760
#line 5761 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5761
  friend class ::CCExprResolve;
 
5762
  friend class ::CExprResolve;
 
5763
  friend class ::WinIfExists;
 
5764
  friend class ::WinImportHandler;
 
5765
  friend class ::WinMacros;
 
5766
  friend class ::WinAsm;
 
5767
  friend class ::WinDeclSpecs;
 
5768
  friend class ::WinMemberExplSpec;
 
5769
  friend class ::WinTypeKeywords;
 
5770
  friend class ::WinFriend;
 
5771
  friend class ::ExtAC;
 
5772
  friend class ::ExtACBuilderCoupling;
 
5773
  friend class ::ExtACSyntaxCoupling;
 
5774
  friend class ::ExtACTree;
 
5775
  friend class ::ExtACKeywords;
 
5776
  friend class ::ExtGnu;
 
5777
  friend class ::PragmaOnceUnitState;
 
5778
  friend class ::PragmaOnce;
 
5779
  friend class ::CMatchSyntax;
 
5780
 
 
5781
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5782
 
 
5783
  Token *_token;
 
5784
  unsigned long int _number;
 
5785
  
 
5786
public:
 
5787
  /** Constructor. 
 
5788
   *  \param token The represented token.
 
5789
   *  \param number The token number (a consecutive number). */
 
5790
  CT_Token (Token *token, unsigned long int number = 0) : 
 
5791
    _token (token), _number (number) {}
 
5792
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
5793
  static const char *NodeId ();
 
5794
  /** Get the name of the node. Can be compared with NodeId(). */
 
5795
  const char *NodeName () const { return NodeId (); }
 
5796
  /** Get the number of sons. */
 
5797
  int Sons () const { return 0; }
 
5798
  /** Get the represented token. */
 
5799
  Token *token () const { return _token; }
 
5800
  /** Get the represented token. */
 
5801
  Token *end_token () const { return _token; }
 
5802
  /** Get this. */
 
5803
  CT_Token *token_node () const { return (CT_Token*)this; }
 
5804
  /** Get this. */
 
5805
  CT_Token *end_token_node () const { return (CT_Token*)this; }
 
5806
  /** Set the token number. 
 
5807
   *  \param number The token number. */ 
 
5808
  void Number (unsigned long int number) { _number = number; }
 
5809
  /** Get the token number. Can be used to indentify this token. */
 
5810
  unsigned long int Number () const { return _number; }
 
5811
  
 
5812
public:
 
5813
  /** Own new operator reusing memory. */
 
5814
  void *operator new (size_t);
 
5815
  /** Own delete operator. */
 
5816
  void operator delete (void *);
 
5817
};
 
5818
 
 
5819
/*****************************************************************************/
 
5820
/*                                                                           */
 
5821
/*                              List nodes                                   */
 
5822
/*                                                                           */
 
5823
/*****************************************************************************/
 
5824
 
 
5825
/** \class CT_List CTree.h Puma/CTree.h
 
5826
 *  Base class for tree nodes representing lists. */
 
5827
 
 
5828
#line 5829 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5829
} // closed Puma
 
5830
class CCExprResolve;
 
5831
class CExprResolve;
 
5832
class WinIfExists;
 
5833
class WinImportHandler;
 
5834
class WinMacros;
 
5835
class WinAsm;
 
5836
class WinDeclSpecs;
 
5837
class WinMemberExplSpec;
 
5838
class WinTypeKeywords;
 
5839
class WinFriend;
 
5840
class ExtAC;
 
5841
class ExtACBuilderCoupling;
 
5842
class ExtACSyntaxCoupling;
 
5843
class ExtACTree;
 
5844
class ExtACKeywords;
 
5845
class ExtGnu;
 
5846
class PragmaOnceUnitState;
 
5847
class PragmaOnce;
 
5848
class CMatchSyntax;
 
5849
namespace Puma {
 
5850
 
 
5851
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5852
class CT_List : public CTree {
 
5853
#line 5854 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5854
  friend class ::CCExprResolve;
 
5855
  friend class ::CExprResolve;
 
5856
  friend class ::WinIfExists;
 
5857
  friend class ::WinImportHandler;
 
5858
  friend class ::WinMacros;
 
5859
  friend class ::WinAsm;
 
5860
  friend class ::WinDeclSpecs;
 
5861
  friend class ::WinMemberExplSpec;
 
5862
  friend class ::WinTypeKeywords;
 
5863
  friend class ::WinFriend;
 
5864
  friend class ::ExtAC;
 
5865
  friend class ::ExtACBuilderCoupling;
 
5866
  friend class ::ExtACSyntaxCoupling;
 
5867
  friend class ::ExtACTree;
 
5868
  friend class ::ExtACKeywords;
 
5869
  friend class ::ExtGnu;
 
5870
  friend class ::PragmaOnceUnitState;
 
5871
  friend class ::PragmaOnce;
 
5872
  friend class ::CMatchSyntax;
 
5873
 
 
5874
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5875
 
 
5876
  Array<CTree*> _sons;
 
5877
  int _properties;
 
5878
 
 
5879
protected:
 
5880
  /** Constructor.
 
5881
   *  \param size The initial list size.
 
5882
   *  \param incr The initial increment count. 
 
5883
   *  \param props The list properties (bit array). */
 
5884
  CT_List(int size = 5, int incr = 5, int props = 0) : 
 
5885
    _sons (size, incr), _properties (props) {}
 
5886
 
 
5887
public:
 
5888
  /** List properties. */
 
5889
  enum {
 
5890
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
5891
    CLOSE = 2,        /** List has an end token */
 
5892
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
5893
    SEPARATORS = 4,   /** List has separators, like ',' */
 
5894
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
5895
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
5896
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
5897
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
 
5898
  };
 
5899
 
 
5900
  /** Get the number of list entries. */
 
5901
  int Entries () const;
 
5902
  /** Get the n-th list entry.
 
5903
   *  \param n The index of the entry. 
 
5904
   *  \return The list entry or NULL. */
 
5905
  CTree *Entry (int n) const;
 
5906
  /** Get the number of sons. */
 
5907
  int Sons () const { return _sons.length (); }
 
5908
  /** Get the n-th son.
 
5909
   *  \param n The index of the son. 
 
5910
   *  \return The n-th son or NULL. */
 
5911
  CTree *Son (int n) const { return _sons.lookup (n); }
 
5912
  /** Get the list properties. */
 
5913
  int GetProperties () const { return _properties; }
 
5914
  /** Add a list property.
 
5915
   *  \param p The property to add. */
 
5916
  void AddProperties (int p) { _properties |= p; }
 
5917
  /** Add a son.
 
5918
   *  \param s The son to add. */
 
5919
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
5920
  /** Prepend a son.
 
5921
   *  \param s The son to prepend. */
 
5922
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
5923
  /** Insert a son before another son.
 
5924
   *  \param before The son to insert the new son before.
 
5925
   *  \param son The son to insert. */
 
5926
  void InsertSon (CTree *before, CTree *son); 
 
5927
  /** Replace a son.
 
5928
   *  \param old_son The son to replace.
 
5929
   *  \param new_son The new son. */
 
5930
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
5931
  /** Remove a son.
 
5932
   *  \param son The son to remove. */
 
5933
  void RemoveSon (CTree *son);
 
5934
  /** Insert a son at the given index. 
 
5935
   *  \param idx The index at which to insert.
 
5936
   *  \param s The son to insert. */
 
5937
  void InsertSon (int idx, CTree *s)
 
5938
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
5939
  /** Replace the son at the given index.
 
5940
   *  \param idx The index of the son to replace.
 
5941
   *  \param s The new son. */
 
5942
  void ReplaceSon (int idx, CTree *s) 
 
5943
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
5944
  /** Remove the son at the given index. 
 
5945
   *  \param idx The index of the son to remove. */
 
5946
  void RemoveSon (int idx) 
 
5947
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
 
5948
};
 
5949
 
 
5950
/** \class CT_ExprList CTree.h Puma/CTree.h
 
5951
 *  Tree node representing an expression list. */
 
5952
 
 
5953
#line 5954 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5954
} // closed Puma
 
5955
class CCExprResolve;
 
5956
class CExprResolve;
 
5957
class WinIfExists;
 
5958
class WinImportHandler;
 
5959
class WinMacros;
 
5960
class WinAsm;
 
5961
class WinDeclSpecs;
 
5962
class WinMemberExplSpec;
 
5963
class WinTypeKeywords;
 
5964
class WinFriend;
 
5965
class ExtAC;
 
5966
class ExtACBuilderCoupling;
 
5967
class ExtACSyntaxCoupling;
 
5968
class ExtACTree;
 
5969
class ExtACKeywords;
 
5970
class ExtGnu;
 
5971
class PragmaOnceUnitState;
 
5972
class PragmaOnce;
 
5973
class CMatchSyntax;
 
5974
namespace Puma {
 
5975
 
 
5976
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5977
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
 
5978
#line 5979 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
5979
  friend class ::CCExprResolve;
 
5980
  friend class ::CExprResolve;
 
5981
  friend class ::WinIfExists;
 
5982
  friend class ::WinImportHandler;
 
5983
  friend class ::WinMacros;
 
5984
  friend class ::WinAsm;
 
5985
  friend class ::WinDeclSpecs;
 
5986
  friend class ::WinMemberExplSpec;
 
5987
  friend class ::WinTypeKeywords;
 
5988
  friend class ::WinFriend;
 
5989
  friend class ::ExtAC;
 
5990
  friend class ::ExtACBuilderCoupling;
 
5991
  friend class ::ExtACSyntaxCoupling;
 
5992
  friend class ::ExtACTree;
 
5993
  friend class ::ExtACKeywords;
 
5994
  friend class ::ExtGnu;
 
5995
  friend class ::PragmaOnceUnitState;
 
5996
  friend class ::PragmaOnce;
 
5997
  friend class ::CMatchSyntax;
 
5998
 
 
5999
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6000
 
 
6001
public:
 
6002
  /** Constructor. */
 
6003
  CT_ExprList () { AddProperties (SEPARATORS); }
 
6004
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6005
  static const char *NodeId ();
 
6006
  /** Get the name of the node. Can be compared with NodeId(). */
 
6007
  const char *NodeName () const { return NodeId (); }
 
6008
 
 
6009
  /** Get the type of the last expression in the expression list.
 
6010
   *  \return The type or NULL. */
 
6011
  CTypeInfo *Type () const { return type; }
 
6012
  /** Get the value of the last expression in the expression list.
 
6013
   *  \return The value of NULL. */
 
6014
  CExprValue *Value () const { return value; }
 
6015
  /** Get the semantic value of the node. */
 
6016
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
6017
  /** Get the semantic object of the node. */
 
6018
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
6019
};
 
6020
 
 
6021
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
6022
 *  Tree node representing a list of declarators. */
 
6023
 
 
6024
#line 6025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6025
} // closed Puma
 
6026
class CCExprResolve;
 
6027
class CExprResolve;
 
6028
class WinIfExists;
 
6029
class WinImportHandler;
 
6030
class WinMacros;
 
6031
class WinAsm;
 
6032
class WinDeclSpecs;
 
6033
class WinMemberExplSpec;
 
6034
class WinTypeKeywords;
 
6035
class WinFriend;
 
6036
class ExtAC;
 
6037
class ExtACBuilderCoupling;
 
6038
class ExtACSyntaxCoupling;
 
6039
class ExtACTree;
 
6040
class ExtACKeywords;
 
6041
class ExtGnu;
 
6042
class PragmaOnceUnitState;
 
6043
class PragmaOnce;
 
6044
class CMatchSyntax;
 
6045
namespace Puma {
 
6046
 
 
6047
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6048
class CT_DeclaratorList : public CT_List {
 
6049
#line 6050 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6050
  friend class ::CCExprResolve;
 
6051
  friend class ::CExprResolve;
 
6052
  friend class ::WinIfExists;
 
6053
  friend class ::WinImportHandler;
 
6054
  friend class ::WinMacros;
 
6055
  friend class ::WinAsm;
 
6056
  friend class ::WinDeclSpecs;
 
6057
  friend class ::WinMemberExplSpec;
 
6058
  friend class ::WinTypeKeywords;
 
6059
  friend class ::WinFriend;
 
6060
  friend class ::ExtAC;
 
6061
  friend class ::ExtACBuilderCoupling;
 
6062
  friend class ::ExtACSyntaxCoupling;
 
6063
  friend class ::ExtACTree;
 
6064
  friend class ::ExtACKeywords;
 
6065
  friend class ::ExtGnu;
 
6066
  friend class ::PragmaOnceUnitState;
 
6067
  friend class ::PragmaOnce;
 
6068
  friend class ::CMatchSyntax;
 
6069
 
 
6070
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6071
 
 
6072
public:
 
6073
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6074
  static const char *NodeId ();
 
6075
  /** Get the name of the node. Can be compared with NodeId(). */
 
6076
  const char *NodeName () const { return NodeId (); }
 
6077
};
 
6078
 
 
6079
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
6080
 *  Tree node representing a list of enumerator constants. */
 
6081
 
 
6082
#line 6083 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6083
} // closed Puma
 
6084
class CCExprResolve;
 
6085
class CExprResolve;
 
6086
class WinIfExists;
 
6087
class WinImportHandler;
 
6088
class WinMacros;
 
6089
class WinAsm;
 
6090
class WinDeclSpecs;
 
6091
class WinMemberExplSpec;
 
6092
class WinTypeKeywords;
 
6093
class WinFriend;
 
6094
class ExtAC;
 
6095
class ExtACBuilderCoupling;
 
6096
class ExtACSyntaxCoupling;
 
6097
class ExtACTree;
 
6098
class ExtACKeywords;
 
6099
class ExtGnu;
 
6100
class PragmaOnceUnitState;
 
6101
class PragmaOnce;
 
6102
class CMatchSyntax;
 
6103
namespace Puma {
 
6104
 
 
6105
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6106
class CT_EnumeratorList : public CT_List {
 
6107
#line 6108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6108
  friend class ::CCExprResolve;
 
6109
  friend class ::CExprResolve;
 
6110
  friend class ::WinIfExists;
 
6111
  friend class ::WinImportHandler;
 
6112
  friend class ::WinMacros;
 
6113
  friend class ::WinAsm;
 
6114
  friend class ::WinDeclSpecs;
 
6115
  friend class ::WinMemberExplSpec;
 
6116
  friend class ::WinTypeKeywords;
 
6117
  friend class ::WinFriend;
 
6118
  friend class ::ExtAC;
 
6119
  friend class ::ExtACBuilderCoupling;
 
6120
  friend class ::ExtACSyntaxCoupling;
 
6121
  friend class ::ExtACTree;
 
6122
  friend class ::ExtACKeywords;
 
6123
  friend class ::ExtGnu;
 
6124
  friend class ::PragmaOnceUnitState;
 
6125
  friend class ::PragmaOnce;
 
6126
  friend class ::CMatchSyntax;
 
6127
 
 
6128
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6129
 
 
6130
public:
 
6131
  /** Constructor. */
 
6132
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
6133
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6134
  static const char *NodeId ();
 
6135
  /** Get the name of the node. Can be compared with NodeId(). */
 
6136
  const char *NodeName () const { return NodeId (); }
 
6137
};
 
6138
   
 
6139
/** \class CT_DeclList CTree.h Puma/CTree.h
 
6140
 *  Tree node representing a list of declarations. */
 
6141
 
 
6142
#line 6143 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6143
} // closed Puma
 
6144
class CCExprResolve;
 
6145
class CExprResolve;
 
6146
class WinIfExists;
 
6147
class WinImportHandler;
 
6148
class WinMacros;
 
6149
class WinAsm;
 
6150
class WinDeclSpecs;
 
6151
class WinMemberExplSpec;
 
6152
class WinTypeKeywords;
 
6153
class WinFriend;
 
6154
class ExtAC;
 
6155
class ExtACBuilderCoupling;
 
6156
class ExtACSyntaxCoupling;
 
6157
class ExtACTree;
 
6158
class ExtACKeywords;
 
6159
class ExtGnu;
 
6160
class PragmaOnceUnitState;
 
6161
class PragmaOnce;
 
6162
class CMatchSyntax;
 
6163
namespace Puma {
 
6164
 
 
6165
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6166
class CT_DeclList : public CT_List {
 
6167
#line 6168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6168
  friend class ::CCExprResolve;
 
6169
  friend class ::CExprResolve;
 
6170
  friend class ::WinIfExists;
 
6171
  friend class ::WinImportHandler;
 
6172
  friend class ::WinMacros;
 
6173
  friend class ::WinAsm;
 
6174
  friend class ::WinDeclSpecs;
 
6175
  friend class ::WinMemberExplSpec;
 
6176
  friend class ::WinTypeKeywords;
 
6177
  friend class ::WinFriend;
 
6178
  friend class ::ExtAC;
 
6179
  friend class ::ExtACBuilderCoupling;
 
6180
  friend class ::ExtACSyntaxCoupling;
 
6181
  friend class ::ExtACTree;
 
6182
  friend class ::ExtACKeywords;
 
6183
  friend class ::ExtGnu;
 
6184
  friend class ::PragmaOnceUnitState;
 
6185
  friend class ::PragmaOnce;
 
6186
  friend class ::CMatchSyntax;
 
6187
 
 
6188
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6189
 
 
6190
public:
 
6191
  /** Constructor. 
 
6192
   *  \param size The initial size of the list.
 
6193
   *  \param incr The initial increment count of the list. */
 
6194
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
6195
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6196
  static const char *NodeId ();
 
6197
  /** Get the name of the node. Can be compared with NodeId(). */
 
6198
  const char *NodeName () const { return NodeId (); }
 
6199
  /** Set the linkage specifiers to each declaration in the list.
 
6200
   *  \param l The linkage specifiers node. */
 
6201
  void Linkage (CT_LinkageSpec *l);
 
6202
};
 
6203
 
 
6204
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
6205
 *  Tree node representing a sequence of declaration specifiers. */
 
6206
 
 
6207
#line 6208 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6208
} // closed Puma
 
6209
class CCExprResolve;
 
6210
class CExprResolve;
 
6211
class WinIfExists;
 
6212
class WinImportHandler;
 
6213
class WinMacros;
 
6214
class WinAsm;
 
6215
class WinDeclSpecs;
 
6216
class WinMemberExplSpec;
 
6217
class WinTypeKeywords;
 
6218
class WinFriend;
 
6219
class ExtAC;
 
6220
class ExtACBuilderCoupling;
 
6221
class ExtACSyntaxCoupling;
 
6222
class ExtACTree;
 
6223
class ExtACKeywords;
 
6224
class ExtGnu;
 
6225
class PragmaOnceUnitState;
 
6226
class PragmaOnce;
 
6227
class CMatchSyntax;
 
6228
namespace Puma {
 
6229
 
 
6230
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6231
class CT_DeclSpecSeq : public CT_List {
 
6232
#line 6233 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6233
  friend class ::CCExprResolve;
 
6234
  friend class ::CExprResolve;
 
6235
  friend class ::WinIfExists;
 
6236
  friend class ::WinImportHandler;
 
6237
  friend class ::WinMacros;
 
6238
  friend class ::WinAsm;
 
6239
  friend class ::WinDeclSpecs;
 
6240
  friend class ::WinMemberExplSpec;
 
6241
  friend class ::WinTypeKeywords;
 
6242
  friend class ::WinFriend;
 
6243
  friend class ::ExtAC;
 
6244
  friend class ::ExtACBuilderCoupling;
 
6245
  friend class ::ExtACSyntaxCoupling;
 
6246
  friend class ::ExtACTree;
 
6247
  friend class ::ExtACKeywords;
 
6248
  friend class ::ExtGnu;
 
6249
  friend class ::PragmaOnceUnitState;
 
6250
  friend class ::PragmaOnce;
 
6251
  friend class ::CMatchSyntax;
 
6252
 
 
6253
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6254
 
 
6255
public:
 
6256
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6257
  static const char *NodeId ();
 
6258
  /** Get the name of the node. Can be compared with NodeId(). */
 
6259
  const char *NodeName () const { return NodeId (); }
 
6260
};
 
6261
 
 
6262
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
6263
 *  Tree node representing a compound statement. */
 
6264
 
 
6265
#line 6266 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6266
} // closed Puma
 
6267
class CCExprResolve;
 
6268
class CExprResolve;
 
6269
class WinIfExists;
 
6270
class WinImportHandler;
 
6271
class WinMacros;
 
6272
class WinAsm;
 
6273
class WinDeclSpecs;
 
6274
class WinMemberExplSpec;
 
6275
class WinTypeKeywords;
 
6276
class WinFriend;
 
6277
class ExtAC;
 
6278
class ExtACBuilderCoupling;
 
6279
class ExtACSyntaxCoupling;
 
6280
class ExtACTree;
 
6281
class ExtACKeywords;
 
6282
class ExtGnu;
 
6283
class PragmaOnceUnitState;
 
6284
class PragmaOnce;
 
6285
class CMatchSyntax;
 
6286
namespace Puma {
 
6287
 
 
6288
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6289
class CT_CmpdStmt : public CT_List, public CSemScope {
 
6290
#line 6291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6291
  friend class ::CCExprResolve;
 
6292
  friend class ::CExprResolve;
 
6293
  friend class ::WinIfExists;
 
6294
  friend class ::WinImportHandler;
 
6295
  friend class ::WinMacros;
 
6296
  friend class ::WinAsm;
 
6297
  friend class ::WinDeclSpecs;
 
6298
  friend class ::WinMemberExplSpec;
 
6299
  friend class ::WinTypeKeywords;
 
6300
  friend class ::WinFriend;
 
6301
  friend class ::ExtAC;
 
6302
  friend class ::ExtACBuilderCoupling;
 
6303
  friend class ::ExtACSyntaxCoupling;
 
6304
  friend class ::ExtACTree;
 
6305
  friend class ::ExtACKeywords;
 
6306
  friend class ::ExtGnu;
 
6307
  friend class ::PragmaOnceUnitState;
 
6308
  friend class ::PragmaOnce;
 
6309
  friend class ::CMatchSyntax;
 
6310
 
 
6311
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6312
 
 
6313
public:
 
6314
  /* Constructor. */
 
6315
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
6316
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6317
  static const char *NodeId ();
 
6318
  /** Get the name of the node. Can be compared with NodeId(). */
 
6319
  const char *NodeName () const { return NodeId (); }
 
6320
  /** Get the local scope of the compound statement. */
 
6321
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
6322
};
 
6323
 
 
6324
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
6325
 *  Tree node representing an exception handler sequence. */
 
6326
 
 
6327
#line 6328 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6328
} // closed Puma
 
6329
class CCExprResolve;
 
6330
class CExprResolve;
 
6331
class WinIfExists;
 
6332
class WinImportHandler;
 
6333
class WinMacros;
 
6334
class WinAsm;
 
6335
class WinDeclSpecs;
 
6336
class WinMemberExplSpec;
 
6337
class WinTypeKeywords;
 
6338
class WinFriend;
 
6339
class ExtAC;
 
6340
class ExtACBuilderCoupling;
 
6341
class ExtACSyntaxCoupling;
 
6342
class ExtACTree;
 
6343
class ExtACKeywords;
 
6344
class ExtGnu;
 
6345
class PragmaOnceUnitState;
 
6346
class PragmaOnce;
 
6347
class CMatchSyntax;
 
6348
namespace Puma {
 
6349
 
 
6350
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6351
class CT_HandlerSeq : public CT_List {
 
6352
#line 6353 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6353
  friend class ::CCExprResolve;
 
6354
  friend class ::CExprResolve;
 
6355
  friend class ::WinIfExists;
 
6356
  friend class ::WinImportHandler;
 
6357
  friend class ::WinMacros;
 
6358
  friend class ::WinAsm;
 
6359
  friend class ::WinDeclSpecs;
 
6360
  friend class ::WinMemberExplSpec;
 
6361
  friend class ::WinTypeKeywords;
 
6362
  friend class ::WinFriend;
 
6363
  friend class ::ExtAC;
 
6364
  friend class ::ExtACBuilderCoupling;
 
6365
  friend class ::ExtACSyntaxCoupling;
 
6366
  friend class ::ExtACTree;
 
6367
  friend class ::ExtACKeywords;
 
6368
  friend class ::ExtGnu;
 
6369
  friend class ::PragmaOnceUnitState;
 
6370
  friend class ::PragmaOnce;
 
6371
  friend class ::CMatchSyntax;
 
6372
 
 
6373
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6374
 
 
6375
public:
 
6376
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6377
  static const char *NodeId ();
 
6378
  /** Get the name of the node. Can be compared with NodeId(). */
 
6379
  const char *NodeName () const { return NodeId (); }
 
6380
};
 
6381
 
 
6382
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
6383
 *  Tree node representing a template parameter list. */
 
6384
 
 
6385
#line 6386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6386
} // closed Puma
 
6387
class CCExprResolve;
 
6388
class CExprResolve;
 
6389
class WinIfExists;
 
6390
class WinImportHandler;
 
6391
class WinMacros;
 
6392
class WinAsm;
 
6393
class WinDeclSpecs;
 
6394
class WinMemberExplSpec;
 
6395
class WinTypeKeywords;
 
6396
class WinFriend;
 
6397
class ExtAC;
 
6398
class ExtACBuilderCoupling;
 
6399
class ExtACSyntaxCoupling;
 
6400
class ExtACTree;
 
6401
class ExtACKeywords;
 
6402
class ExtGnu;
 
6403
class PragmaOnceUnitState;
 
6404
class PragmaOnce;
 
6405
class CMatchSyntax;
 
6406
namespace Puma {
 
6407
 
 
6408
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6409
class CT_TemplateParamList : public CT_List, public CSemScope {
 
6410
#line 6411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6411
  friend class ::CCExprResolve;
 
6412
  friend class ::CExprResolve;
 
6413
  friend class ::WinIfExists;
 
6414
  friend class ::WinImportHandler;
 
6415
  friend class ::WinMacros;
 
6416
  friend class ::WinAsm;
 
6417
  friend class ::WinDeclSpecs;
 
6418
  friend class ::WinMemberExplSpec;
 
6419
  friend class ::WinTypeKeywords;
 
6420
  friend class ::WinFriend;
 
6421
  friend class ::ExtAC;
 
6422
  friend class ::ExtACBuilderCoupling;
 
6423
  friend class ::ExtACSyntaxCoupling;
 
6424
  friend class ::ExtACTree;
 
6425
  friend class ::ExtACKeywords;
 
6426
  friend class ::ExtGnu;
 
6427
  friend class ::PragmaOnceUnitState;
 
6428
  friend class ::PragmaOnce;
 
6429
  friend class ::CMatchSyntax;
 
6430
 
 
6431
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6432
 
 
6433
public:
 
6434
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
6435
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6436
  static const char *NodeId ();
 
6437
  /** Get the name of the node. Can be compared with NodeId(). */
 
6438
  const char *NodeName () const { return NodeId (); }
 
6439
  /** Get the scope of the template parameter list. */
 
6440
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
6441
};
 
6442
 
 
6443
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
6444
 *  Tree node representing a template argument list. */
 
6445
 
 
6446
#line 6447 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6447
} // closed Puma
 
6448
class CCExprResolve;
 
6449
class CExprResolve;
 
6450
class WinIfExists;
 
6451
class WinImportHandler;
 
6452
class WinMacros;
 
6453
class WinAsm;
 
6454
class WinDeclSpecs;
 
6455
class WinMemberExplSpec;
 
6456
class WinTypeKeywords;
 
6457
class WinFriend;
 
6458
class ExtAC;
 
6459
class ExtACBuilderCoupling;
 
6460
class ExtACSyntaxCoupling;
 
6461
class ExtACTree;
 
6462
class ExtACKeywords;
 
6463
class ExtGnu;
 
6464
class PragmaOnceUnitState;
 
6465
class PragmaOnce;
 
6466
class CMatchSyntax;
 
6467
namespace Puma {
 
6468
 
 
6469
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6470
class CT_TemplateArgList : public CT_List {
 
6471
#line 6472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6472
  friend class ::CCExprResolve;
 
6473
  friend class ::CExprResolve;
 
6474
  friend class ::WinIfExists;
 
6475
  friend class ::WinImportHandler;
 
6476
  friend class ::WinMacros;
 
6477
  friend class ::WinAsm;
 
6478
  friend class ::WinDeclSpecs;
 
6479
  friend class ::WinMemberExplSpec;
 
6480
  friend class ::WinTypeKeywords;
 
6481
  friend class ::WinFriend;
 
6482
  friend class ::ExtAC;
 
6483
  friend class ::ExtACBuilderCoupling;
 
6484
  friend class ::ExtACSyntaxCoupling;
 
6485
  friend class ::ExtACTree;
 
6486
  friend class ::ExtACKeywords;
 
6487
  friend class ::ExtGnu;
 
6488
  friend class ::PragmaOnceUnitState;
 
6489
  friend class ::PragmaOnce;
 
6490
  friend class ::CMatchSyntax;
 
6491
 
 
6492
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6493
 
 
6494
public:
 
6495
  /** Constructor. */
 
6496
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
6497
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6498
  static const char *NodeId ();
 
6499
  /** Get the name of the node. Can be compared with NodeId(). */
 
6500
  const char *NodeName () const { return NodeId (); }
 
6501
};
 
6502
 
 
6503
/*****************************************************************************/
 
6504
/*                                                                           */
 
6505
/*                              Expressions                                  */
 
6506
/*                                                                           */
 
6507
/*****************************************************************************/
 
6508
 
 
6509
/** \class CT_Expression CTree.h Puma/CTree.h
 
6510
 *  Base class for all expression tree nodes. */
 
6511
 
 
6512
#line 6513 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6513
} // closed Puma
 
6514
class CCExprResolve;
 
6515
class CExprResolve;
 
6516
class WinIfExists;
 
6517
class WinImportHandler;
 
6518
class WinMacros;
 
6519
class WinAsm;
 
6520
class WinDeclSpecs;
 
6521
class WinMemberExplSpec;
 
6522
class WinTypeKeywords;
 
6523
class WinFriend;
 
6524
class ExtAC;
 
6525
class ExtACBuilderCoupling;
 
6526
class ExtACSyntaxCoupling;
 
6527
class ExtACTree;
 
6528
class ExtACKeywords;
 
6529
class ExtGnu;
 
6530
class PragmaOnceUnitState;
 
6531
class PragmaOnce;
 
6532
class CMatchSyntax;
 
6533
namespace Puma {
 
6534
 
 
6535
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6536
 
 
6537
#line 6538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6538
} // closed Puma
 
6539
 
 
6540
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6541
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6542
#include "CCExprResolveH.ah"
 
6543
#endif
 
6544
namespace Puma {
 
6545
 
 
6546
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6547
 
 
6548
#line 6549 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6549
} // closed Puma
 
6550
 
 
6551
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6552
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6553
#include "CExprResolveH.ah"
 
6554
#endif
 
6555
namespace Puma {
 
6556
 
 
6557
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6558
class CT_Expression : public CTree, public CSemValue {
 
6559
#line 6560 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6560
  friend class ::CCExprResolve;
 
6561
  friend class ::CExprResolve;
 
6562
  friend class ::WinIfExists;
 
6563
  friend class ::WinImportHandler;
 
6564
  friend class ::WinMacros;
 
6565
  friend class ::WinAsm;
 
6566
  friend class ::WinDeclSpecs;
 
6567
  friend class ::WinMemberExplSpec;
 
6568
  friend class ::WinTypeKeywords;
 
6569
  friend class ::WinFriend;
 
6570
  friend class ::ExtAC;
 
6571
  friend class ::ExtACBuilderCoupling;
 
6572
  friend class ::ExtACSyntaxCoupling;
 
6573
  friend class ::ExtACTree;
 
6574
  friend class ::ExtACKeywords;
 
6575
  friend class ::ExtGnu;
 
6576
  friend class ::PragmaOnceUnitState;
 
6577
  friend class ::PragmaOnce;
 
6578
  friend class ::CMatchSyntax;
 
6579
 
 
6580
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6581
 
 
6582
protected:
 
6583
  /** Constructor. */
 
6584
  CT_Expression () {}
 
6585
 
 
6586
public:
 
6587
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6588
  static const char *NodeId ();
 
6589
  /** Get the name of the node. Can be compared with NodeId(). */
 
6590
  const char *NodeName () const { return NodeId (); }
 
6591
  /** Get the type of the expression.
 
6592
   *  \return The type information object or NULL. */
 
6593
  CTypeInfo *Type () const { return type; }
 
6594
  /** Get the value of the expression.
 
6595
   *  \return The value object or NULL. */
 
6596
  CExprValue *Value () const { return value; }
 
6597
  /** Get the semantic value information of the expression.
 
6598
   *  \return The value object or NULL. */
 
6599
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
6600
  /** Get this. */
 
6601
  virtual CT_Expression *IsExpression () { return this; }
 
6602
   private:
 
6603
  typedef CT_Expression CCExprResolveExpr;
 
6604
 
 
6605
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6606
 public :
 
6607
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
6608
  typedef CT_Expression CExprResolveExpr;
 
6609
 
 
6610
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6611
 public :
 
6612
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
6613
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6614
};
 
6615
 
 
6616
/** \class CT_Call CTree.h Puma/CTree.h
 
6617
 *  Tree node representing explicit or implicit function calls 
 
6618
 *  including built-in or user-defined functions and overloaded
 
6619
 *  operators. */
 
6620
 
 
6621
#line 6622 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6622
} // closed Puma
 
6623
class CCExprResolve;
 
6624
class CExprResolve;
 
6625
class WinIfExists;
 
6626
class WinImportHandler;
 
6627
class WinMacros;
 
6628
class WinAsm;
 
6629
class WinDeclSpecs;
 
6630
class WinMemberExplSpec;
 
6631
class WinTypeKeywords;
 
6632
class WinFriend;
 
6633
class ExtAC;
 
6634
class ExtACBuilderCoupling;
 
6635
class ExtACSyntaxCoupling;
 
6636
class ExtACTree;
 
6637
class ExtACKeywords;
 
6638
class ExtGnu;
 
6639
class PragmaOnceUnitState;
 
6640
class PragmaOnce;
 
6641
class CMatchSyntax;
 
6642
namespace Puma {
 
6643
 
 
6644
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6645
 
 
6646
#line 6647 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6647
} // closed Puma
 
6648
 
 
6649
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6650
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6651
#include "CCExprResolveH.ah"
 
6652
#endif
 
6653
namespace Puma {
 
6654
 
 
6655
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6656
 
 
6657
#line 6658 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6658
} // closed Puma
 
6659
 
 
6660
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6661
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6662
#include "CExprResolveH.ah"
 
6663
#endif
 
6664
namespace Puma {
 
6665
 
 
6666
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6667
class CT_Call : public CT_Expression, public CSemObject {
 
6668
#line 6669 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6669
  friend class ::CCExprResolve;
 
6670
  friend class ::CExprResolve;
 
6671
  friend class ::WinIfExists;
 
6672
  friend class ::WinImportHandler;
 
6673
  friend class ::WinMacros;
 
6674
  friend class ::WinAsm;
 
6675
  friend class ::WinDeclSpecs;
 
6676
  friend class ::WinMemberExplSpec;
 
6677
  friend class ::WinTypeKeywords;
 
6678
  friend class ::WinFriend;
 
6679
  friend class ::ExtAC;
 
6680
  friend class ::ExtACBuilderCoupling;
 
6681
  friend class ::ExtACSyntaxCoupling;
 
6682
  friend class ::ExtACTree;
 
6683
  friend class ::ExtACKeywords;
 
6684
  friend class ::ExtGnu;
 
6685
  friend class ::PragmaOnceUnitState;
 
6686
  friend class ::PragmaOnce;
 
6687
  friend class ::CMatchSyntax;
 
6688
 
 
6689
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6690
 
 
6691
protected:
 
6692
  /** Constructor. */
 
6693
  CT_Call () {}
 
6694
  
 
6695
public:
 
6696
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6697
  static const char *NodeId ();
 
6698
  /** Get the name of the node. Can be compared with NodeId(). */
 
6699
  const char *NodeName () const { return NodeId (); }
 
6700
  /** Get the semantic information of the call.
 
6701
   *  \return The semantic information or NULL. */
 
6702
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
6703
  /** Get this. */
 
6704
  CT_Call *IsCall () { return this; }
 
6705
   private:
 
6706
  typedef CT_Call CCExprResolveExpr;
 
6707
 
 
6708
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6709
 public :
 
6710
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
6711
  typedef CT_Call CExprResolveExpr;
 
6712
 
 
6713
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6714
 public :
 
6715
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
6716
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6717
};
 
6718
 
 
6719
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
6720
 *  Tree node representing implicit function calls detected by
 
6721
 *  the semantic analysis. */
 
6722
 
 
6723
#line 6724 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6724
} // closed Puma
 
6725
class CCExprResolve;
 
6726
class CExprResolve;
 
6727
class WinIfExists;
 
6728
class WinImportHandler;
 
6729
class WinMacros;
 
6730
class WinAsm;
 
6731
class WinDeclSpecs;
 
6732
class WinMemberExplSpec;
 
6733
class WinTypeKeywords;
 
6734
class WinFriend;
 
6735
class ExtAC;
 
6736
class ExtACBuilderCoupling;
 
6737
class ExtACSyntaxCoupling;
 
6738
class ExtACTree;
 
6739
class ExtACKeywords;
 
6740
class ExtGnu;
 
6741
class PragmaOnceUnitState;
 
6742
class PragmaOnce;
 
6743
class CMatchSyntax;
 
6744
namespace Puma {
 
6745
 
 
6746
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6747
 
 
6748
#line 6749 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6749
} // closed Puma
 
6750
 
 
6751
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6752
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6753
#include "CCExprResolveH.ah"
 
6754
#endif
 
6755
namespace Puma {
 
6756
 
 
6757
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6758
 
 
6759
#line 6760 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6760
} // closed Puma
 
6761
 
 
6762
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6763
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6764
#include "CExprResolveH.ah"
 
6765
#endif
 
6766
namespace Puma {
 
6767
 
 
6768
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6769
class CT_ImplicitCall : public CT_Call {
 
6770
#line 6771 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6771
  friend class ::CCExprResolve;
 
6772
  friend class ::CExprResolve;
 
6773
  friend class ::WinIfExists;
 
6774
  friend class ::WinImportHandler;
 
6775
  friend class ::WinMacros;
 
6776
  friend class ::WinAsm;
 
6777
  friend class ::WinDeclSpecs;
 
6778
  friend class ::WinMemberExplSpec;
 
6779
  friend class ::WinTypeKeywords;
 
6780
  friend class ::WinFriend;
 
6781
  friend class ::ExtAC;
 
6782
  friend class ::ExtACBuilderCoupling;
 
6783
  friend class ::ExtACSyntaxCoupling;
 
6784
  friend class ::ExtACTree;
 
6785
  friend class ::ExtACKeywords;
 
6786
  friend class ::ExtGnu;
 
6787
  friend class ::PragmaOnceUnitState;
 
6788
  friend class ::PragmaOnce;
 
6789
  friend class ::CMatchSyntax;
 
6790
 
 
6791
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6792
 
 
6793
  CTree *_arg;
 
6794
 
 
6795
public:
 
6796
  /** Constructor.
 
6797
   *  \param arg The call argument. */
 
6798
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
6799
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6800
  static const char *NodeId ();
 
6801
  /** Get the name of the node. Can be compared with NodeId(). */
 
6802
  const char *NodeName () const { return NodeId (); }
 
6803
  /** Get the number of sons. */
 
6804
  int Sons () const { return 1; }
 
6805
  /** Get the n-th son.
 
6806
   *  \param n The index of the son.
 
6807
   *  \return The n-th son or NULL. */
 
6808
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
6809
  /** Replace a son.
 
6810
   *  \param old_son The son to replace.
 
6811
   *  \param new_son The new son. */
 
6812
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
6813
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
6814
   private:
 
6815
  typedef CT_ImplicitCall CCExprResolveExpr;
 
6816
 
 
6817
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6818
 public :
 
6819
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
6820
  typedef CT_ImplicitCall CExprResolveExpr;
 
6821
 
 
6822
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6823
 public :
 
6824
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
6825
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6826
};
 
6827
 
 
6828
/** \class CT_String CTree.h Puma/CTree.h
 
6829
 *  Tree node representing a string literal. */
 
6830
 
 
6831
#line 6832 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6832
} // closed Puma
 
6833
class CCExprResolve;
 
6834
class CExprResolve;
 
6835
class WinIfExists;
 
6836
class WinImportHandler;
 
6837
class WinMacros;
 
6838
class WinAsm;
 
6839
class WinDeclSpecs;
 
6840
class WinMemberExplSpec;
 
6841
class WinTypeKeywords;
 
6842
class WinFriend;
 
6843
class ExtAC;
 
6844
class ExtACBuilderCoupling;
 
6845
class ExtACSyntaxCoupling;
 
6846
class ExtACTree;
 
6847
class ExtACKeywords;
 
6848
class ExtGnu;
 
6849
class PragmaOnceUnitState;
 
6850
class PragmaOnce;
 
6851
class CMatchSyntax;
 
6852
namespace Puma {
 
6853
 
 
6854
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6855
 
 
6856
#line 6857 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6857
} // closed Puma
 
6858
 
 
6859
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6860
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6861
#include "CCExprResolveH.ah"
 
6862
#endif
 
6863
namespace Puma {
 
6864
 
 
6865
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6866
 
 
6867
#line 6868 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6868
} // closed Puma
 
6869
 
 
6870
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6871
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6872
#include "CExprResolveH.ah"
 
6873
#endif
 
6874
namespace Puma {
 
6875
 
 
6876
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6877
class CT_String : public CT_List, public CSemValue {
 
6878
#line 6879 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6879
  friend class ::CCExprResolve;
 
6880
  friend class ::CExprResolve;
 
6881
  friend class ::WinIfExists;
 
6882
  friend class ::WinImportHandler;
 
6883
  friend class ::WinMacros;
 
6884
  friend class ::WinAsm;
 
6885
  friend class ::WinDeclSpecs;
 
6886
  friend class ::WinMemberExplSpec;
 
6887
  friend class ::WinTypeKeywords;
 
6888
  friend class ::WinFriend;
 
6889
  friend class ::ExtAC;
 
6890
  friend class ::ExtACBuilderCoupling;
 
6891
  friend class ::ExtACSyntaxCoupling;
 
6892
  friend class ::ExtACTree;
 
6893
  friend class ::ExtACKeywords;
 
6894
  friend class ::ExtGnu;
 
6895
  friend class ::PragmaOnceUnitState;
 
6896
  friend class ::PragmaOnce;
 
6897
  friend class ::CMatchSyntax;
 
6898
 
 
6899
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6900
 
 
6901
public:
 
6902
  /** Constructor. 
 
6903
   *  \param size The number of sub-strings. */
 
6904
  CT_String (int size) : CT_List (size, 1) {}
 
6905
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6906
  static const char *NodeId ();
 
6907
  /** Get the name of the node. Can be compared with NodeId(). */
 
6908
  const char *NodeName () const { return NodeId (); }
 
6909
 
 
6910
  /** Get the type of the string. 
 
6911
   *  \return The type or NULL. */
 
6912
  CTypeInfo *Type () const { return type; }
 
6913
  /** Get the string value.
 
6914
   *  \return The value or NULL. */
 
6915
  CExprValue *Value () const { return value; }
 
6916
  /** Get the semantic value info object.
 
6917
   *  \return The semantic value object or NULL. */
 
6918
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
6919
  /** Get this. */
 
6920
  virtual CT_String *IsString () { return this; }
 
6921
   private:
 
6922
  typedef CT_String CCExprResolveExpr;
 
6923
 
 
6924
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6925
 public :
 
6926
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
6927
  typedef CT_String CExprResolveExpr;
 
6928
 
 
6929
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6930
 public :
 
6931
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
6932
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6933
};
 
6934
 
 
6935
/** \class CT_WideString CTree.h Puma/CTree.h
 
6936
 *  Tree node representing a wide string literal. */
 
6937
 
 
6938
#line 6939 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6939
} // closed Puma
 
6940
class CCExprResolve;
 
6941
class CExprResolve;
 
6942
class WinIfExists;
 
6943
class WinImportHandler;
 
6944
class WinMacros;
 
6945
class WinAsm;
 
6946
class WinDeclSpecs;
 
6947
class WinMemberExplSpec;
 
6948
class WinTypeKeywords;
 
6949
class WinFriend;
 
6950
class ExtAC;
 
6951
class ExtACBuilderCoupling;
 
6952
class ExtACSyntaxCoupling;
 
6953
class ExtACTree;
 
6954
class ExtACKeywords;
 
6955
class ExtGnu;
 
6956
class PragmaOnceUnitState;
 
6957
class PragmaOnce;
 
6958
class CMatchSyntax;
 
6959
namespace Puma {
 
6960
 
 
6961
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6962
 
 
6963
#line 6964 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6964
} // closed Puma
 
6965
 
 
6966
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6967
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6968
#include "CCExprResolveH.ah"
 
6969
#endif
 
6970
namespace Puma {
 
6971
 
 
6972
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6973
 
 
6974
#line 6975 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6975
} // closed Puma
 
6976
 
 
6977
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6978
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6979
#include "CExprResolveH.ah"
 
6980
#endif
 
6981
namespace Puma {
 
6982
 
 
6983
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6984
class CT_WideString : public CT_String {
 
6985
#line 6986 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
6986
  friend class ::CCExprResolve;
 
6987
  friend class ::CExprResolve;
 
6988
  friend class ::WinIfExists;
 
6989
  friend class ::WinImportHandler;
 
6990
  friend class ::WinMacros;
 
6991
  friend class ::WinAsm;
 
6992
  friend class ::WinDeclSpecs;
 
6993
  friend class ::WinMemberExplSpec;
 
6994
  friend class ::WinTypeKeywords;
 
6995
  friend class ::WinFriend;
 
6996
  friend class ::ExtAC;
 
6997
  friend class ::ExtACBuilderCoupling;
 
6998
  friend class ::ExtACSyntaxCoupling;
 
6999
  friend class ::ExtACTree;
 
7000
  friend class ::ExtACKeywords;
 
7001
  friend class ::ExtGnu;
 
7002
  friend class ::PragmaOnceUnitState;
 
7003
  friend class ::PragmaOnce;
 
7004
  friend class ::CMatchSyntax;
 
7005
 
 
7006
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7007
 
 
7008
public:
 
7009
  /** Constructor.
 
7010
   *  \param size The number of sub-strings. */
 
7011
  CT_WideString (int size) : CT_String (size) {}
 
7012
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7013
  static const char *NodeId ();
 
7014
  /** Get the name of the node. Can be compared with NodeId(). */
 
7015
  const char *NodeName () const { return NodeId (); }
 
7016
   private:
 
7017
  typedef CT_WideString CCExprResolveExpr;
 
7018
 
 
7019
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7020
 public :
 
7021
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7022
  typedef CT_WideString CExprResolveExpr;
 
7023
 
 
7024
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7025
 public :
 
7026
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7027
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7028
};
 
7029
 
 
7030
/** \class CT_Integer CTree.h Puma/CTree.h
 
7031
 *  Tree node representing an integer constant. */
 
7032
 
 
7033
#line 7034 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7034
} // closed Puma
 
7035
class CCExprResolve;
 
7036
class CExprResolve;
 
7037
class WinIfExists;
 
7038
class WinImportHandler;
 
7039
class WinMacros;
 
7040
class WinAsm;
 
7041
class WinDeclSpecs;
 
7042
class WinMemberExplSpec;
 
7043
class WinTypeKeywords;
 
7044
class WinFriend;
 
7045
class ExtAC;
 
7046
class ExtACBuilderCoupling;
 
7047
class ExtACSyntaxCoupling;
 
7048
class ExtACTree;
 
7049
class ExtACKeywords;
 
7050
class ExtGnu;
 
7051
class PragmaOnceUnitState;
 
7052
class PragmaOnce;
 
7053
class CMatchSyntax;
 
7054
namespace Puma {
 
7055
 
 
7056
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7057
 
 
7058
#line 7059 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7059
} // closed Puma
 
7060
 
 
7061
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7062
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7063
#include "CCExprResolveH.ah"
 
7064
#endif
 
7065
namespace Puma {
 
7066
 
 
7067
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7068
 
 
7069
#line 7070 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7070
} // closed Puma
 
7071
 
 
7072
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7073
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7074
#include "CExprResolveH.ah"
 
7075
#endif
 
7076
namespace Puma {
 
7077
 
 
7078
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7079
class CT_Integer : public CT_Expression {
 
7080
#line 7081 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7081
  friend class ::CCExprResolve;
 
7082
  friend class ::CExprResolve;
 
7083
  friend class ::WinIfExists;
 
7084
  friend class ::WinImportHandler;
 
7085
  friend class ::WinMacros;
 
7086
  friend class ::WinAsm;
 
7087
  friend class ::WinDeclSpecs;
 
7088
  friend class ::WinMemberExplSpec;
 
7089
  friend class ::WinTypeKeywords;
 
7090
  friend class ::WinFriend;
 
7091
  friend class ::ExtAC;
 
7092
  friend class ::ExtACBuilderCoupling;
 
7093
  friend class ::ExtACSyntaxCoupling;
 
7094
  friend class ::ExtACTree;
 
7095
  friend class ::ExtACKeywords;
 
7096
  friend class ::ExtGnu;
 
7097
  friend class ::PragmaOnceUnitState;
 
7098
  friend class ::PragmaOnce;
 
7099
  friend class ::CMatchSyntax;
 
7100
 
 
7101
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7102
 
 
7103
  CTree *_value;  // CT_Token
 
7104
 
 
7105
public:
 
7106
  /** Constructor.
 
7107
   *  \param token The token containing the integer value. */
 
7108
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
7109
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7110
  static const char *NodeId ();
 
7111
  /** Get the name of the node. Can be compared with NodeId(). */
 
7112
  const char *NodeName () const { return NodeId (); }
 
7113
  /** Get the number of sons. */
 
7114
  int Sons () const { return _value ? 1 : 0; }
 
7115
  /** Get the n-th son.
 
7116
   *  \param n The index of the son.
 
7117
   *  \return The n-th son or NULL. */
 
7118
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
7119
  /** Replace a son.
 
7120
   *  \param old_son The son to replace.
 
7121
   *  \param new_son The new son. */
 
7122
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
7123
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
7124
   private:
 
7125
  typedef CT_Integer CCExprResolveExpr;
 
7126
 
 
7127
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7128
 public :
 
7129
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7130
  typedef CT_Integer CExprResolveExpr;
 
7131
 
 
7132
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7133
 public :
 
7134
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7135
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7136
};
 
7137
 
 
7138
/** \class CT_Character CTree.h Puma/CTree.h
 
7139
 *  Tree node representing a single character constant. */
 
7140
 
 
7141
#line 7142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7142
} // closed Puma
 
7143
class CCExprResolve;
 
7144
class CExprResolve;
 
7145
class WinIfExists;
 
7146
class WinImportHandler;
 
7147
class WinMacros;
 
7148
class WinAsm;
 
7149
class WinDeclSpecs;
 
7150
class WinMemberExplSpec;
 
7151
class WinTypeKeywords;
 
7152
class WinFriend;
 
7153
class ExtAC;
 
7154
class ExtACBuilderCoupling;
 
7155
class ExtACSyntaxCoupling;
 
7156
class ExtACTree;
 
7157
class ExtACKeywords;
 
7158
class ExtGnu;
 
7159
class PragmaOnceUnitState;
 
7160
class PragmaOnce;
 
7161
class CMatchSyntax;
 
7162
namespace Puma {
 
7163
 
 
7164
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7165
 
 
7166
#line 7167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7167
} // closed Puma
 
7168
 
 
7169
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7170
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7171
#include "CCExprResolveH.ah"
 
7172
#endif
 
7173
namespace Puma {
 
7174
 
 
7175
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7176
 
 
7177
#line 7178 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7178
} // closed Puma
 
7179
 
 
7180
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7181
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7182
#include "CExprResolveH.ah"
 
7183
#endif
 
7184
namespace Puma {
 
7185
 
 
7186
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7187
class CT_Character : public CT_Expression {
 
7188
#line 7189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7189
  friend class ::CCExprResolve;
 
7190
  friend class ::CExprResolve;
 
7191
  friend class ::WinIfExists;
 
7192
  friend class ::WinImportHandler;
 
7193
  friend class ::WinMacros;
 
7194
  friend class ::WinAsm;
 
7195
  friend class ::WinDeclSpecs;
 
7196
  friend class ::WinMemberExplSpec;
 
7197
  friend class ::WinTypeKeywords;
 
7198
  friend class ::WinFriend;
 
7199
  friend class ::ExtAC;
 
7200
  friend class ::ExtACBuilderCoupling;
 
7201
  friend class ::ExtACSyntaxCoupling;
 
7202
  friend class ::ExtACTree;
 
7203
  friend class ::ExtACKeywords;
 
7204
  friend class ::ExtGnu;
 
7205
  friend class ::PragmaOnceUnitState;
 
7206
  friend class ::PragmaOnce;
 
7207
  friend class ::CMatchSyntax;
 
7208
 
 
7209
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7210
 
 
7211
  CTree *_value;  // CT_Token
 
7212
 
 
7213
public:
 
7214
  /** Constructor.
 
7215
   *  \param token The token containing the character value. */
 
7216
  CT_Character (CTree *token) { AddSon (_value, token); }
 
7217
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7218
  static const char *NodeId ();
 
7219
  /** Get the name of the node. Can be compared with NodeId(). */
 
7220
  const char *NodeName () const { return NodeId (); }
 
7221
  /** Get the number of sons. */
 
7222
  int Sons () const { return 1; }
 
7223
  /** Get the n-th son.
 
7224
   *  \param n The index of the son.
 
7225
   *  \return The n-th son or NULL. */
 
7226
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
7227
  /** Replace a son.
 
7228
   *  \param old_son The son to replace.
 
7229
   *  \param new_son The new son. */
 
7230
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
7231
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
7232
   private:
 
7233
  typedef CT_Character CCExprResolveExpr;
 
7234
 
 
7235
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7236
 public :
 
7237
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7238
  typedef CT_Character CExprResolveExpr;
 
7239
 
 
7240
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7241
 public :
 
7242
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7243
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7244
};
 
7245
 
 
7246
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
7247
 *  Tree node representing a wide character constant. */
 
7248
 
 
7249
#line 7250 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7250
} // closed Puma
 
7251
class CCExprResolve;
 
7252
class CExprResolve;
 
7253
class WinIfExists;
 
7254
class WinImportHandler;
 
7255
class WinMacros;
 
7256
class WinAsm;
 
7257
class WinDeclSpecs;
 
7258
class WinMemberExplSpec;
 
7259
class WinTypeKeywords;
 
7260
class WinFriend;
 
7261
class ExtAC;
 
7262
class ExtACBuilderCoupling;
 
7263
class ExtACSyntaxCoupling;
 
7264
class ExtACTree;
 
7265
class ExtACKeywords;
 
7266
class ExtGnu;
 
7267
class PragmaOnceUnitState;
 
7268
class PragmaOnce;
 
7269
class CMatchSyntax;
 
7270
namespace Puma {
 
7271
 
 
7272
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7273
 
 
7274
#line 7275 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7275
} // closed Puma
 
7276
 
 
7277
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7278
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7279
#include "CCExprResolveH.ah"
 
7280
#endif
 
7281
namespace Puma {
 
7282
 
 
7283
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7284
 
 
7285
#line 7286 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7286
} // closed Puma
 
7287
 
 
7288
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7289
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7290
#include "CExprResolveH.ah"
 
7291
#endif
 
7292
namespace Puma {
 
7293
 
 
7294
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7295
class CT_WideCharacter : public CT_Character {
 
7296
#line 7297 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7297
  friend class ::CCExprResolve;
 
7298
  friend class ::CExprResolve;
 
7299
  friend class ::WinIfExists;
 
7300
  friend class ::WinImportHandler;
 
7301
  friend class ::WinMacros;
 
7302
  friend class ::WinAsm;
 
7303
  friend class ::WinDeclSpecs;
 
7304
  friend class ::WinMemberExplSpec;
 
7305
  friend class ::WinTypeKeywords;
 
7306
  friend class ::WinFriend;
 
7307
  friend class ::ExtAC;
 
7308
  friend class ::ExtACBuilderCoupling;
 
7309
  friend class ::ExtACSyntaxCoupling;
 
7310
  friend class ::ExtACTree;
 
7311
  friend class ::ExtACKeywords;
 
7312
  friend class ::ExtGnu;
 
7313
  friend class ::PragmaOnceUnitState;
 
7314
  friend class ::PragmaOnce;
 
7315
  friend class ::CMatchSyntax;
 
7316
 
 
7317
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7318
 
 
7319
public:
 
7320
  /** Constructor.
 
7321
   *  \param token The token containing the wide character value. */
 
7322
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
7323
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7324
  static const char *NodeId ();
 
7325
  /** Get the name of the node. Can be compared with NodeId(). */
 
7326
  const char *NodeName () const { return NodeId (); }
 
7327
   private:
 
7328
  typedef CT_WideCharacter CCExprResolveExpr;
 
7329
 
 
7330
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7331
 public :
 
7332
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7333
  typedef CT_WideCharacter CExprResolveExpr;
 
7334
 
 
7335
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7336
 public :
 
7337
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7338
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7339
};
 
7340
 
 
7341
/** \class CT_Float CTree.h Puma/CTree.h
 
7342
 *  Tree node representing a floating point constant. */
 
7343
 
 
7344
#line 7345 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7345
} // closed Puma
 
7346
class CCExprResolve;
 
7347
class CExprResolve;
 
7348
class WinIfExists;
 
7349
class WinImportHandler;
 
7350
class WinMacros;
 
7351
class WinAsm;
 
7352
class WinDeclSpecs;
 
7353
class WinMemberExplSpec;
 
7354
class WinTypeKeywords;
 
7355
class WinFriend;
 
7356
class ExtAC;
 
7357
class ExtACBuilderCoupling;
 
7358
class ExtACSyntaxCoupling;
 
7359
class ExtACTree;
 
7360
class ExtACKeywords;
 
7361
class ExtGnu;
 
7362
class PragmaOnceUnitState;
 
7363
class PragmaOnce;
 
7364
class CMatchSyntax;
 
7365
namespace Puma {
 
7366
 
 
7367
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7368
 
 
7369
#line 7370 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7370
} // closed Puma
 
7371
 
 
7372
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7373
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7374
#include "CCExprResolveH.ah"
 
7375
#endif
 
7376
namespace Puma {
 
7377
 
 
7378
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7379
 
 
7380
#line 7381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7381
} // closed Puma
 
7382
 
 
7383
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7384
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7385
#include "CExprResolveH.ah"
 
7386
#endif
 
7387
namespace Puma {
 
7388
 
 
7389
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7390
class CT_Float : public CT_Expression {
 
7391
#line 7392 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7392
  friend class ::CCExprResolve;
 
7393
  friend class ::CExprResolve;
 
7394
  friend class ::WinIfExists;
 
7395
  friend class ::WinImportHandler;
 
7396
  friend class ::WinMacros;
 
7397
  friend class ::WinAsm;
 
7398
  friend class ::WinDeclSpecs;
 
7399
  friend class ::WinMemberExplSpec;
 
7400
  friend class ::WinTypeKeywords;
 
7401
  friend class ::WinFriend;
 
7402
  friend class ::ExtAC;
 
7403
  friend class ::ExtACBuilderCoupling;
 
7404
  friend class ::ExtACSyntaxCoupling;
 
7405
  friend class ::ExtACTree;
 
7406
  friend class ::ExtACKeywords;
 
7407
  friend class ::ExtGnu;
 
7408
  friend class ::PragmaOnceUnitState;
 
7409
  friend class ::PragmaOnce;
 
7410
  friend class ::CMatchSyntax;
 
7411
 
 
7412
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7413
 
 
7414
  CTree *_value;  // CT_Token
 
7415
 
 
7416
public:
 
7417
  /** Constructor.
 
7418
   *  \param token The token containing the floating point value. */
 
7419
  CT_Float (CTree *token) { AddSon (_value, token); }
 
7420
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7421
  static const char *NodeId ();
 
7422
  /** Get the name of the node. Can be compared with NodeId(). */
 
7423
  const char *NodeName () const { return NodeId (); }
 
7424
  /** Get the number of sons. */
 
7425
  int Sons () const { return 1; }
 
7426
  /** Get the n-th son.
 
7427
   *  \param n The index of the son.
 
7428
   *  \return The n-th son or NULL. */
 
7429
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
7430
  /** Replace a son.
 
7431
   *  \param old_son The son to replace.
 
7432
   *  \param new_son The new son. */
 
7433
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
7434
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
7435
   private:
 
7436
  typedef CT_Float CCExprResolveExpr;
 
7437
 
 
7438
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7439
 public :
 
7440
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7441
  typedef CT_Float CExprResolveExpr;
 
7442
 
 
7443
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7444
 public :
 
7445
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7446
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7447
};
 
7448
 
 
7449
/** \class CT_Bool CTree.h Puma/CTree.h
 
7450
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
 
7451
 
 
7452
#line 7453 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7453
} // closed Puma
 
7454
class CCExprResolve;
 
7455
class CExprResolve;
 
7456
class WinIfExists;
 
7457
class WinImportHandler;
 
7458
class WinMacros;
 
7459
class WinAsm;
 
7460
class WinDeclSpecs;
 
7461
class WinMemberExplSpec;
 
7462
class WinTypeKeywords;
 
7463
class WinFriend;
 
7464
class ExtAC;
 
7465
class ExtACBuilderCoupling;
 
7466
class ExtACSyntaxCoupling;
 
7467
class ExtACTree;
 
7468
class ExtACKeywords;
 
7469
class ExtGnu;
 
7470
class PragmaOnceUnitState;
 
7471
class PragmaOnce;
 
7472
class CMatchSyntax;
 
7473
namespace Puma {
 
7474
 
 
7475
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7476
 
 
7477
#line 7478 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7478
} // closed Puma
 
7479
 
 
7480
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7481
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7482
#include "CCExprResolveH.ah"
 
7483
#endif
 
7484
namespace Puma {
 
7485
 
 
7486
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7487
 
 
7488
#line 7489 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7489
} // closed Puma
 
7490
 
 
7491
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7492
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7493
#include "CExprResolveH.ah"
 
7494
#endif
 
7495
namespace Puma {
 
7496
 
 
7497
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7498
class CT_Bool : public CT_Expression {
 
7499
#line 7500 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7500
  friend class ::CCExprResolve;
 
7501
  friend class ::CExprResolve;
 
7502
  friend class ::WinIfExists;
 
7503
  friend class ::WinImportHandler;
 
7504
  friend class ::WinMacros;
 
7505
  friend class ::WinAsm;
 
7506
  friend class ::WinDeclSpecs;
 
7507
  friend class ::WinMemberExplSpec;
 
7508
  friend class ::WinTypeKeywords;
 
7509
  friend class ::WinFriend;
 
7510
  friend class ::ExtAC;
 
7511
  friend class ::ExtACBuilderCoupling;
 
7512
  friend class ::ExtACSyntaxCoupling;
 
7513
  friend class ::ExtACTree;
 
7514
  friend class ::ExtACKeywords;
 
7515
  friend class ::ExtGnu;
 
7516
  friend class ::PragmaOnceUnitState;
 
7517
  friend class ::PragmaOnce;
 
7518
  friend class ::CMatchSyntax;
 
7519
 
 
7520
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7521
 
 
7522
  CTree *_value;  // CT_Token
 
7523
 
 
7524
public:
 
7525
  /** Constructor.
 
7526
   *  \param token The token containing the boolean value. */
 
7527
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
7528
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7529
  static const char *NodeId ();
 
7530
  /** Get the name of the node. Can be compared with NodeId(). */
 
7531
  const char *NodeName () const { return NodeId (); }
 
7532
  /** Get the number of sons. */
 
7533
  int Sons () const { return 1; }
 
7534
  /** Get the n-th son.
 
7535
   *  \param n The index of the son.
 
7536
   *  \return The n-th son or NULL. */
 
7537
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
7538
  /** Replace a son.
 
7539
   *  \param old_son The son to replace.
 
7540
   *  \param new_son The new son. */
 
7541
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
7542
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
7543
   private:
 
7544
  typedef CT_Bool CCExprResolveExpr;
 
7545
 
 
7546
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7547
 public :
 
7548
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7549
  typedef CT_Bool CExprResolveExpr;
 
7550
 
 
7551
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7552
 public :
 
7553
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7554
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7555
};
 
7556
 
 
7557
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
7558
 *  Tree node representing a braced expression, e.g. (a+b). */
 
7559
 
 
7560
#line 7561 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7561
} // closed Puma
 
7562
class CCExprResolve;
 
7563
class CExprResolve;
 
7564
class WinIfExists;
 
7565
class WinImportHandler;
 
7566
class WinMacros;
 
7567
class WinAsm;
 
7568
class WinDeclSpecs;
 
7569
class WinMemberExplSpec;
 
7570
class WinTypeKeywords;
 
7571
class WinFriend;
 
7572
class ExtAC;
 
7573
class ExtACBuilderCoupling;
 
7574
class ExtACSyntaxCoupling;
 
7575
class ExtACTree;
 
7576
class ExtACKeywords;
 
7577
class ExtGnu;
 
7578
class PragmaOnceUnitState;
 
7579
class PragmaOnce;
 
7580
class CMatchSyntax;
 
7581
namespace Puma {
 
7582
 
 
7583
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7584
 
 
7585
#line 7586 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7586
} // closed Puma
 
7587
 
 
7588
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7589
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7590
#include "CCExprResolveH.ah"
 
7591
#endif
 
7592
namespace Puma {
 
7593
 
 
7594
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7595
 
 
7596
#line 7597 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7597
} // closed Puma
 
7598
 
 
7599
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7600
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7601
#include "CExprResolveH.ah"
 
7602
#endif
 
7603
namespace Puma {
 
7604
 
 
7605
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7606
class CT_BracedExpr : public CT_Expression {
 
7607
#line 7608 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7608
  friend class ::CCExprResolve;
 
7609
  friend class ::CExprResolve;
 
7610
  friend class ::WinIfExists;
 
7611
  friend class ::WinImportHandler;
 
7612
  friend class ::WinMacros;
 
7613
  friend class ::WinAsm;
 
7614
  friend class ::WinDeclSpecs;
 
7615
  friend class ::WinMemberExplSpec;
 
7616
  friend class ::WinTypeKeywords;
 
7617
  friend class ::WinFriend;
 
7618
  friend class ::ExtAC;
 
7619
  friend class ::ExtACBuilderCoupling;
 
7620
  friend class ::ExtACSyntaxCoupling;
 
7621
  friend class ::ExtACTree;
 
7622
  friend class ::ExtACKeywords;
 
7623
  friend class ::ExtGnu;
 
7624
  friend class ::PragmaOnceUnitState;
 
7625
  friend class ::PragmaOnce;
 
7626
  friend class ::CMatchSyntax;
 
7627
 
 
7628
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7629
 
 
7630
  CTree *sons[3]; // open, expr, close
 
7631
 
 
7632
public:
 
7633
  /** Constructor.
 
7634
   *  \param o The opening brace.
 
7635
   *  \param e The enclosed expression.
 
7636
   *  \param c The closing brace. */
 
7637
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
 
7638
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
 
7639
  }
 
7640
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7641
  static const char *NodeId ();
 
7642
  /** Get the name of the node. Can be compared with NodeId(). */
 
7643
  const char *NodeName () const { return NodeId (); }
 
7644
  /** Get the number of sons. */
 
7645
  int Sons () const { return 3; }
 
7646
  /** Get the n-th son.
 
7647
   *  \param n The index of the son.
 
7648
   *  \return The n-th son or NULL. */
 
7649
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
7650
  /** Get the enclosed expression. */
 
7651
  CTree *Expr () const { return sons[1]; }
 
7652
  /** Get the type of the enclosed expression. */
 
7653
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
7654
  /** Get the value of the enclosed expression. */
 
7655
  CExprValue *Value () const { return Expr ()->Value (); }
 
7656
  /** Get the semantic value object. */
 
7657
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
7658
  /** Replace a son.
 
7659
   *  \param old_son The son to replace.
 
7660
   *  \param new_son The new son. */
 
7661
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
7662
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
7663
  }
 
7664
   private:
 
7665
  typedef CT_BracedExpr CCExprResolveExpr;
 
7666
 
 
7667
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7668
 public :
 
7669
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7670
  typedef CT_BracedExpr CExprResolveExpr;
 
7671
 
 
7672
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7673
 public :
 
7674
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7675
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7676
};
 
7677
 
 
7678
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
7679
 *  Base class for all tree nodes representing a name. */
 
7680
 
 
7681
#line 7682 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7682
} // closed Puma
 
7683
class CCExprResolve;
 
7684
class CExprResolve;
 
7685
class WinIfExists;
 
7686
class WinImportHandler;
 
7687
class WinMacros;
 
7688
class WinAsm;
 
7689
class WinDeclSpecs;
 
7690
class WinMemberExplSpec;
 
7691
class WinTypeKeywords;
 
7692
class WinFriend;
 
7693
class ExtAC;
 
7694
class ExtACBuilderCoupling;
 
7695
class ExtACSyntaxCoupling;
 
7696
class ExtACTree;
 
7697
class ExtACKeywords;
 
7698
class ExtGnu;
 
7699
class PragmaOnceUnitState;
 
7700
class PragmaOnce;
 
7701
class CMatchSyntax;
 
7702
namespace Puma {
 
7703
 
 
7704
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7705
 
 
7706
#line 7707 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7707
} // closed Puma
 
7708
 
 
7709
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7710
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7711
#include "CCExprResolveH.ah"
 
7712
#endif
 
7713
namespace Puma {
 
7714
 
 
7715
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7716
 
 
7717
#line 7718 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7718
} // closed Puma
 
7719
 
 
7720
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7721
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7722
#include "CExprResolveH.ah"
 
7723
#endif
 
7724
namespace Puma {
 
7725
 
 
7726
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7727
class CT_SimpleName : public CT_List, public Printable, 
 
7728
                      public CSemValue, public CSemObject {
 
7729
#line 7730 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7730
  friend class ::CCExprResolve;
 
7731
  friend class ::CExprResolve;
 
7732
  friend class ::WinIfExists;
 
7733
  friend class ::WinImportHandler;
 
7734
  friend class ::WinMacros;
 
7735
  friend class ::WinAsm;
 
7736
  friend class ::WinDeclSpecs;
 
7737
  friend class ::WinMemberExplSpec;
 
7738
  friend class ::WinTypeKeywords;
 
7739
  friend class ::WinFriend;
 
7740
  friend class ::ExtAC;
 
7741
  friend class ::ExtACBuilderCoupling;
 
7742
  friend class ::ExtACSyntaxCoupling;
 
7743
  friend class ::ExtACTree;
 
7744
  friend class ::ExtACKeywords;
 
7745
  friend class ::ExtGnu;
 
7746
  friend class ::PragmaOnceUnitState;
 
7747
  friend class ::PragmaOnce;
 
7748
  friend class ::CMatchSyntax;
 
7749
 
 
7750
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7751
 
 
7752
protected:
 
7753
  /** Constructor.
 
7754
   *  \param size The number of sub-names (for qualified names). */
 
7755
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
7756
  /** Constructor.
 
7757
   *  \param size The number of sub-names (for qualified names). 
 
7758
   *  \param properties Additional name list properties (for root qualified names). */
 
7759
  CT_SimpleName (int size, int properties) : 
 
7760
    CT_List (size, 2, properties) {}
 
7761
  
 
7762
public:
 
7763
  /** Constructor.
 
7764
   *  \param n The sub-tree containing the name. */
 
7765
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
7766
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7767
  static const char *NodeId ();
 
7768
  /** Get the name of the node. Can be compared with NodeId(). */
 
7769
  const char *NodeName () const { return NodeId (); }
 
7770
  /** Get the string containing the name. */
 
7771
  virtual const char *Text () const 
 
7772
   { return Son (Sons ()-1)->token ()->text (); }
 
7773
  /** Print the name on the given stream. 
 
7774
   *  \param os The output stream. */
 
7775
  virtual void print (ostream &os) const { os << Text (); }
 
7776
  /** Get this. */
 
7777
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
7778
  /** Get the type of the entity represented by the name. */
 
7779
  CTypeInfo *Type () const { return type; }
 
7780
  /** Get the value of the entity represented by the name. */ 
 
7781
  CExprValue *Value () const { return value; }
 
7782
  /** Get the sematic value information object. */
 
7783
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
7784
  /** Get the sematic information object. */
 
7785
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
7786
  /** Get this. */
 
7787
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
7788
 
 
7789
public:
 
7790
  /** Own new operator reusing memory. */
 
7791
  void *operator new (size_t);
 
7792
  /** Own delete operator. */
 
7793
  void operator delete (void *);
 
7794
   private:
 
7795
  typedef CT_SimpleName CCExprResolveExpr;
 
7796
 
 
7797
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7798
 public :
 
7799
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7800
  typedef CT_SimpleName CExprResolveExpr;
 
7801
 
 
7802
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7803
 public :
 
7804
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7805
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7806
};
 
7807
 
 
7808
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
7809
 *  Base class for tree nodes representing a special name, like destructor names. */
 
7810
 
 
7811
#line 7812 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7812
} // closed Puma
 
7813
class CCExprResolve;
 
7814
class CExprResolve;
 
7815
class WinIfExists;
 
7816
class WinImportHandler;
 
7817
class WinMacros;
 
7818
class WinAsm;
 
7819
class WinDeclSpecs;
 
7820
class WinMemberExplSpec;
 
7821
class WinTypeKeywords;
 
7822
class WinFriend;
 
7823
class ExtAC;
 
7824
class ExtACBuilderCoupling;
 
7825
class ExtACSyntaxCoupling;
 
7826
class ExtACTree;
 
7827
class ExtACKeywords;
 
7828
class ExtGnu;
 
7829
class PragmaOnceUnitState;
 
7830
class PragmaOnce;
 
7831
class CMatchSyntax;
 
7832
namespace Puma {
 
7833
 
 
7834
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7835
 
 
7836
#line 7837 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7837
} // closed Puma
 
7838
 
 
7839
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7840
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7841
#include "CCExprResolveH.ah"
 
7842
#endif
 
7843
namespace Puma {
 
7844
 
 
7845
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7846
 
 
7847
#line 7848 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7848
} // closed Puma
 
7849
 
 
7850
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7851
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7852
#include "CExprResolveH.ah"
 
7853
#endif
 
7854
namespace Puma {
 
7855
 
 
7856
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7857
class CT_SpecialName : public CT_SimpleName {
 
7858
#line 7859 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7859
  friend class ::CCExprResolve;
 
7860
  friend class ::CExprResolve;
 
7861
  friend class ::WinIfExists;
 
7862
  friend class ::WinImportHandler;
 
7863
  friend class ::WinMacros;
 
7864
  friend class ::WinAsm;
 
7865
  friend class ::WinDeclSpecs;
 
7866
  friend class ::WinMemberExplSpec;
 
7867
  friend class ::WinTypeKeywords;
 
7868
  friend class ::WinFriend;
 
7869
  friend class ::ExtAC;
 
7870
  friend class ::ExtACBuilderCoupling;
 
7871
  friend class ::ExtACSyntaxCoupling;
 
7872
  friend class ::ExtACTree;
 
7873
  friend class ::ExtACKeywords;
 
7874
  friend class ::ExtGnu;
 
7875
  friend class ::PragmaOnceUnitState;
 
7876
  friend class ::PragmaOnce;
 
7877
  friend class ::CMatchSyntax;
 
7878
 
 
7879
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7880
 
 
7881
  char *_name;
 
7882
  
 
7883
protected:
 
7884
  /** Constructor.
 
7885
   *  \param size The number of sub-names (for qualified names). */
 
7886
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
 
7887
  
 
7888
public:
 
7889
  /** Destructor. Deletes the name string. */
 
7890
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
7891
  /** Get the string containing the name. */
 
7892
  const char *Text () const { return _name; }
 
7893
  /** Set the name. The name is copied.
 
7894
   *  \param n The name. */
 
7895
  void Name (const char *n) { 
 
7896
    if (n) { 
 
7897
      _name = new char[strlen(n) + 1];
 
7898
      strcpy (_name,n);
 
7899
    }
 
7900
  }
 
7901
 
 
7902
public:
 
7903
  /** Own new operator reusing memory. */
 
7904
  void *operator new (size_t);
 
7905
  /** Own delete operator. */
 
7906
  void operator delete (void *);
 
7907
   private:
 
7908
  typedef CT_SpecialName CCExprResolveExpr;
 
7909
 
 
7910
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7911
 public :
 
7912
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7913
  typedef CT_SpecialName CExprResolveExpr;
 
7914
 
 
7915
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7916
 public :
 
7917
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7918
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7919
};
 
7920
 
 
7921
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
7922
 *  Tree node representing a private name. Private names 
 
7923
 *  are generated names for abstract declarators etc. */
 
7924
 
 
7925
#line 7926 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7926
} // closed Puma
 
7927
class CCExprResolve;
 
7928
class CExprResolve;
 
7929
class WinIfExists;
 
7930
class WinImportHandler;
 
7931
class WinMacros;
 
7932
class WinAsm;
 
7933
class WinDeclSpecs;
 
7934
class WinMemberExplSpec;
 
7935
class WinTypeKeywords;
 
7936
class WinFriend;
 
7937
class ExtAC;
 
7938
class ExtACBuilderCoupling;
 
7939
class ExtACSyntaxCoupling;
 
7940
class ExtACTree;
 
7941
class ExtACKeywords;
 
7942
class ExtGnu;
 
7943
class PragmaOnceUnitState;
 
7944
class PragmaOnce;
 
7945
class CMatchSyntax;
 
7946
namespace Puma {
 
7947
 
 
7948
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7949
 
 
7950
#line 7951 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7951
} // closed Puma
 
7952
 
 
7953
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7954
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7955
#include "CCExprResolveH.ah"
 
7956
#endif
 
7957
namespace Puma {
 
7958
 
 
7959
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7960
 
 
7961
#line 7962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7962
} // closed Puma
 
7963
 
 
7964
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7965
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7966
#include "CExprResolveH.ah"
 
7967
#endif
 
7968
namespace Puma {
 
7969
 
 
7970
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7971
class CT_PrivateName : public CT_SpecialName {
 
7972
#line 7973 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
7973
  friend class ::CCExprResolve;
 
7974
  friend class ::CExprResolve;
 
7975
  friend class ::WinIfExists;
 
7976
  friend class ::WinImportHandler;
 
7977
  friend class ::WinMacros;
 
7978
  friend class ::WinAsm;
 
7979
  friend class ::WinDeclSpecs;
 
7980
  friend class ::WinMemberExplSpec;
 
7981
  friend class ::WinTypeKeywords;
 
7982
  friend class ::WinFriend;
 
7983
  friend class ::ExtAC;
 
7984
  friend class ::ExtACBuilderCoupling;
 
7985
  friend class ::ExtACSyntaxCoupling;
 
7986
  friend class ::ExtACTree;
 
7987
  friend class ::ExtACKeywords;
 
7988
  friend class ::ExtGnu;
 
7989
  friend class ::PragmaOnceUnitState;
 
7990
  friend class ::PragmaOnce;
 
7991
  friend class ::CMatchSyntax;
 
7992
 
 
7993
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7994
 
 
7995
public:
 
7996
  /** Constructor.
 
7997
   *  \param n The private (generated) name. */
 
7998
  CT_PrivateName (const char *n) { Name (n); }
 
7999
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8000
  static const char *NodeId ();
 
8001
  /** Get the name of the node. Can be compared with NodeId(). */
 
8002
  const char *NodeName () const { return NodeId (); }
 
8003
  /** Get the number of sons. */
 
8004
  int Sons () const { return 0; }
 
8005
  /** Get the n-th son.
 
8006
   *  \param n The index of the son.
 
8007
   *  \return The n-th son or NULL. */
 
8008
  CTree *Son (int n) const { return (CTree*)0; }
 
8009
 
 
8010
public:
 
8011
  /** Own new operator reusing memory. */
 
8012
  void *operator new (size_t);
 
8013
  /** Own delete operator. */
 
8014
  void operator delete (void *);
 
8015
   private:
 
8016
  typedef CT_PrivateName CCExprResolveExpr;
 
8017
 
 
8018
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8019
 public :
 
8020
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8021
  typedef CT_PrivateName CExprResolveExpr;
 
8022
 
 
8023
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8024
 public :
 
8025
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8026
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8027
};
 
8028
 
 
8029
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
8030
 *  Tree node representing a destructor name. */
 
8031
 
 
8032
#line 8033 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8033
} // closed Puma
 
8034
class CCExprResolve;
 
8035
class CExprResolve;
 
8036
class WinIfExists;
 
8037
class WinImportHandler;
 
8038
class WinMacros;
 
8039
class WinAsm;
 
8040
class WinDeclSpecs;
 
8041
class WinMemberExplSpec;
 
8042
class WinTypeKeywords;
 
8043
class WinFriend;
 
8044
class ExtAC;
 
8045
class ExtACBuilderCoupling;
 
8046
class ExtACSyntaxCoupling;
 
8047
class ExtACTree;
 
8048
class ExtACKeywords;
 
8049
class ExtGnu;
 
8050
class PragmaOnceUnitState;
 
8051
class PragmaOnce;
 
8052
class CMatchSyntax;
 
8053
namespace Puma {
 
8054
 
 
8055
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8056
 
 
8057
#line 8058 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8058
} // closed Puma
 
8059
 
 
8060
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8061
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8062
#include "CCExprResolveH.ah"
 
8063
#endif
 
8064
namespace Puma {
 
8065
 
 
8066
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8067
 
 
8068
#line 8069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8069
} // closed Puma
 
8070
 
 
8071
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8072
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8073
#include "CExprResolveH.ah"
 
8074
#endif
 
8075
namespace Puma {
 
8076
 
 
8077
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8078
class CT_DestructorName : public CT_SpecialName {
 
8079
#line 8080 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8080
  friend class ::CCExprResolve;
 
8081
  friend class ::CExprResolve;
 
8082
  friend class ::WinIfExists;
 
8083
  friend class ::WinImportHandler;
 
8084
  friend class ::WinMacros;
 
8085
  friend class ::WinAsm;
 
8086
  friend class ::WinDeclSpecs;
 
8087
  friend class ::WinMemberExplSpec;
 
8088
  friend class ::WinTypeKeywords;
 
8089
  friend class ::WinFriend;
 
8090
  friend class ::ExtAC;
 
8091
  friend class ::ExtACBuilderCoupling;
 
8092
  friend class ::ExtACSyntaxCoupling;
 
8093
  friend class ::ExtACTree;
 
8094
  friend class ::ExtACKeywords;
 
8095
  friend class ::ExtGnu;
 
8096
  friend class ::PragmaOnceUnitState;
 
8097
  friend class ::PragmaOnce;
 
8098
  friend class ::CMatchSyntax;
 
8099
 
 
8100
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8101
 
 
8102
public:
 
8103
  /** Constructor.
 
8104
   *  \param t The tilde operator.
 
8105
   *  \param n The class name. */
 
8106
  CT_DestructorName (CTree *t, CTree *n);
 
8107
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8108
  static const char *NodeId ();
 
8109
  /** Get the name of the node. Can be compared with NodeId(). */
 
8110
  const char *NodeName () const { return NodeId (); }
 
8111
 
 
8112
public:
 
8113
  /** Own new operator reusing memory. */
 
8114
  void *operator new (size_t);
 
8115
  /** Own delete operator. */
 
8116
  void operator delete (void *);
 
8117
   private:
 
8118
  typedef CT_DestructorName CCExprResolveExpr;
 
8119
 
 
8120
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8121
 public :
 
8122
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8123
  typedef CT_DestructorName CExprResolveExpr;
 
8124
 
 
8125
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8126
 public :
 
8127
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8128
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8129
};
 
8130
 
 
8131
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
8132
 *  Tree node representing a template name. */
 
8133
 
 
8134
#line 8135 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8135
} // closed Puma
 
8136
class CCExprResolve;
 
8137
class CExprResolve;
 
8138
class WinIfExists;
 
8139
class WinImportHandler;
 
8140
class WinMacros;
 
8141
class WinAsm;
 
8142
class WinDeclSpecs;
 
8143
class WinMemberExplSpec;
 
8144
class WinTypeKeywords;
 
8145
class WinFriend;
 
8146
class ExtAC;
 
8147
class ExtACBuilderCoupling;
 
8148
class ExtACSyntaxCoupling;
 
8149
class ExtACTree;
 
8150
class ExtACKeywords;
 
8151
class ExtGnu;
 
8152
class PragmaOnceUnitState;
 
8153
class PragmaOnce;
 
8154
class CMatchSyntax;
 
8155
namespace Puma {
 
8156
 
 
8157
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8158
 
 
8159
#line 8160 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8160
} // closed Puma
 
8161
 
 
8162
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8163
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8164
#include "CCExprResolveH.ah"
 
8165
#endif
 
8166
namespace Puma {
 
8167
 
 
8168
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8169
 
 
8170
#line 8171 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8171
} // closed Puma
 
8172
 
 
8173
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8174
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8175
#include "CExprResolveH.ah"
 
8176
#endif
 
8177
namespace Puma {
 
8178
 
 
8179
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8180
class CT_TemplateName : public CT_SpecialName {
 
8181
#line 8182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8182
  friend class ::CCExprResolve;
 
8183
  friend class ::CExprResolve;
 
8184
  friend class ::WinIfExists;
 
8185
  friend class ::WinImportHandler;
 
8186
  friend class ::WinMacros;
 
8187
  friend class ::WinAsm;
 
8188
  friend class ::WinDeclSpecs;
 
8189
  friend class ::WinMemberExplSpec;
 
8190
  friend class ::WinTypeKeywords;
 
8191
  friend class ::WinFriend;
 
8192
  friend class ::ExtAC;
 
8193
  friend class ::ExtACBuilderCoupling;
 
8194
  friend class ::ExtACSyntaxCoupling;
 
8195
  friend class ::ExtACTree;
 
8196
  friend class ::ExtACKeywords;
 
8197
  friend class ::ExtGnu;
 
8198
  friend class ::PragmaOnceUnitState;
 
8199
  friend class ::PragmaOnce;
 
8200
  friend class ::CMatchSyntax;
 
8201
 
 
8202
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8203
 
 
8204
public:
 
8205
  /** Constructor.
 
8206
   *  \param n The template class or function name.
 
8207
   *  \param a The template argument list. */
 
8208
  CT_TemplateName (CTree *n, CTree *a) 
 
8209
   { AddSon (n); AddSon (a); }
 
8210
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8211
  static const char *NodeId ();
 
8212
  /** Get the name of the node. Can be compared with NodeId(). */
 
8213
  const char *NodeName () const { return NodeId (); }
 
8214
  /** Get the template argument list. */
 
8215
  CT_TemplateArgList *Arguments () const 
 
8216
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
8217
  /** Get the template class or function name. */
 
8218
  CT_SimpleName *TemplateName () const 
 
8219
   { return (CT_SimpleName*)Son (Sons ()-2); }
 
8220
  // may change in the future
 
8221
  const char *Text () const { return TemplateName ()->Text (); }
 
8222
 
 
8223
public:
 
8224
  /** Own new operator reusing memory. */
 
8225
  void *operator new (size_t);
 
8226
  /** Own delete operator. */
 
8227
  void operator delete (void *);
 
8228
   private:
 
8229
  typedef CT_TemplateName CCExprResolveExpr;
 
8230
 
 
8231
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8232
 public :
 
8233
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8234
  typedef CT_TemplateName CExprResolveExpr;
 
8235
 
 
8236
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8237
 public :
 
8238
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8239
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8240
};
 
8241
 
 
8242
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
8243
 *  Tree node representing the name of an overloaded operator. */
 
8244
 
 
8245
#line 8246 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8246
} // closed Puma
 
8247
class CCExprResolve;
 
8248
class CExprResolve;
 
8249
class WinIfExists;
 
8250
class WinImportHandler;
 
8251
class WinMacros;
 
8252
class WinAsm;
 
8253
class WinDeclSpecs;
 
8254
class WinMemberExplSpec;
 
8255
class WinTypeKeywords;
 
8256
class WinFriend;
 
8257
class ExtAC;
 
8258
class ExtACBuilderCoupling;
 
8259
class ExtACSyntaxCoupling;
 
8260
class ExtACTree;
 
8261
class ExtACKeywords;
 
8262
class ExtGnu;
 
8263
class PragmaOnceUnitState;
 
8264
class PragmaOnce;
 
8265
class CMatchSyntax;
 
8266
namespace Puma {
 
8267
 
 
8268
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8269
 
 
8270
#line 8271 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8271
} // closed Puma
 
8272
 
 
8273
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8274
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8275
#include "CCExprResolveH.ah"
 
8276
#endif
 
8277
namespace Puma {
 
8278
 
 
8279
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8280
 
 
8281
#line 8282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8282
} // closed Puma
 
8283
 
 
8284
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8285
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8286
#include "CExprResolveH.ah"
 
8287
#endif
 
8288
namespace Puma {
 
8289
 
 
8290
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8291
class CT_OperatorName : public CT_SpecialName {
 
8292
#line 8293 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8293
  friend class ::CCExprResolve;
 
8294
  friend class ::CExprResolve;
 
8295
  friend class ::WinIfExists;
 
8296
  friend class ::WinImportHandler;
 
8297
  friend class ::WinMacros;
 
8298
  friend class ::WinAsm;
 
8299
  friend class ::WinDeclSpecs;
 
8300
  friend class ::WinMemberExplSpec;
 
8301
  friend class ::WinTypeKeywords;
 
8302
  friend class ::WinFriend;
 
8303
  friend class ::ExtAC;
 
8304
  friend class ::ExtACBuilderCoupling;
 
8305
  friend class ::ExtACSyntaxCoupling;
 
8306
  friend class ::ExtACTree;
 
8307
  friend class ::ExtACKeywords;
 
8308
  friend class ::ExtGnu;
 
8309
  friend class ::PragmaOnceUnitState;
 
8310
  friend class ::PragmaOnce;
 
8311
  friend class ::CMatchSyntax;
 
8312
 
 
8313
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8314
 
 
8315
  int _oper;
 
8316
 
 
8317
public:
 
8318
  /** Complex operator types. */
 
8319
  enum { 
 
8320
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
8321
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
8322
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
8323
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
 
8324
  };
 
8325
 
 
8326
public:
 
8327
  /** Constructor.
 
8328
   *  \param op The token containing the operator. */
 
8329
  CT_OperatorName (CTree *op);
 
8330
  /** Constructor.
 
8331
   *  \param f The operator function keyword 'operator'.
 
8332
   *  \param op The token containing the operator. 
 
8333
   *  \param o The token of '[' or '('.
 
8334
   *  \param c The token of ']' or ')'. */
 
8335
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
8336
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8337
  static const char *NodeId ();
 
8338
  /** Get the name of the node. Can be compared with NodeId(). */
 
8339
  const char *NodeName () const { return NodeId (); }
 
8340
  /** Get the operator type (either the token type or one of 
 
8341
   *  the complex operator types). */
 
8342
  int Operator () const { return _oper; }
 
8343
 
 
8344
public:
 
8345
  /** Own new operator reusing memory. */
 
8346
  void *operator new (size_t);
 
8347
  /** Own delete operator. */
 
8348
  void operator delete (void *);
 
8349
   private:
 
8350
  typedef CT_OperatorName CCExprResolveExpr;
 
8351
 
 
8352
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8353
 public :
 
8354
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8355
  typedef CT_OperatorName CExprResolveExpr;
 
8356
 
 
8357
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8358
 public :
 
8359
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8360
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8361
};
 
8362
 
 
8363
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
8364
 *  Tree node representing the name of a conversion function. */
 
8365
 
 
8366
#line 8367 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8367
} // closed Puma
 
8368
class CCExprResolve;
 
8369
class CExprResolve;
 
8370
class WinIfExists;
 
8371
class WinImportHandler;
 
8372
class WinMacros;
 
8373
class WinAsm;
 
8374
class WinDeclSpecs;
 
8375
class WinMemberExplSpec;
 
8376
class WinTypeKeywords;
 
8377
class WinFriend;
 
8378
class ExtAC;
 
8379
class ExtACBuilderCoupling;
 
8380
class ExtACSyntaxCoupling;
 
8381
class ExtACTree;
 
8382
class ExtACKeywords;
 
8383
class ExtGnu;
 
8384
class PragmaOnceUnitState;
 
8385
class PragmaOnce;
 
8386
class CMatchSyntax;
 
8387
namespace Puma {
 
8388
 
 
8389
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8390
 
 
8391
#line 8392 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8392
} // closed Puma
 
8393
 
 
8394
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8395
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8396
#include "CCExprResolveH.ah"
 
8397
#endif
 
8398
namespace Puma {
 
8399
 
 
8400
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8401
 
 
8402
#line 8403 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8403
} // closed Puma
 
8404
 
 
8405
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8406
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8407
#include "CExprResolveH.ah"
 
8408
#endif
 
8409
namespace Puma {
 
8410
 
 
8411
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8412
class CT_ConversionName : public CT_SpecialName {
 
8413
#line 8414 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8414
  friend class ::CCExprResolve;
 
8415
  friend class ::CExprResolve;
 
8416
  friend class ::WinIfExists;
 
8417
  friend class ::WinImportHandler;
 
8418
  friend class ::WinMacros;
 
8419
  friend class ::WinAsm;
 
8420
  friend class ::WinDeclSpecs;
 
8421
  friend class ::WinMemberExplSpec;
 
8422
  friend class ::WinTypeKeywords;
 
8423
  friend class ::WinFriend;
 
8424
  friend class ::ExtAC;
 
8425
  friend class ::ExtACBuilderCoupling;
 
8426
  friend class ::ExtACSyntaxCoupling;
 
8427
  friend class ::ExtACTree;
 
8428
  friend class ::ExtACKeywords;
 
8429
  friend class ::ExtGnu;
 
8430
  friend class ::PragmaOnceUnitState;
 
8431
  friend class ::PragmaOnce;
 
8432
  friend class ::CMatchSyntax;
 
8433
 
 
8434
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8435
 
 
8436
public:
 
8437
  /** Constructor.
 
8438
   *  \param f The operator function keyword 'operator'.
 
8439
   *  \param t The sub-tree containing the conversion type. */
 
8440
  CT_ConversionName (CTree *f, CTree *t);
 
8441
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8442
  static const char *NodeId ();
 
8443
  /** Get the name of the node. Can be compared with NodeId(). */
 
8444
  const char *NodeName () const { return NodeId (); }
 
8445
  /** Get the conversion type. */
 
8446
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
 
8447
 
 
8448
public:
 
8449
  /** Own new operator reusing memory. */
 
8450
  void *operator new (size_t);
 
8451
  /** Own delete operator. */
 
8452
  void operator delete (void *);
 
8453
   private:
 
8454
  typedef CT_ConversionName CCExprResolveExpr;
 
8455
 
 
8456
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8457
 public :
 
8458
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8459
  typedef CT_ConversionName CExprResolveExpr;
 
8460
 
 
8461
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8462
 public :
 
8463
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8464
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8465
};
 
8466
 
 
8467
/** \class CT_QualName CTree.h Puma/CTree.h
 
8468
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
 
8469
 
 
8470
#line 8471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8471
} // closed Puma
 
8472
class CCExprResolve;
 
8473
class CExprResolve;
 
8474
class WinIfExists;
 
8475
class WinImportHandler;
 
8476
class WinMacros;
 
8477
class WinAsm;
 
8478
class WinDeclSpecs;
 
8479
class WinMemberExplSpec;
 
8480
class WinTypeKeywords;
 
8481
class WinFriend;
 
8482
class ExtAC;
 
8483
class ExtACBuilderCoupling;
 
8484
class ExtACSyntaxCoupling;
 
8485
class ExtACTree;
 
8486
class ExtACKeywords;
 
8487
class ExtGnu;
 
8488
class PragmaOnceUnitState;
 
8489
class PragmaOnce;
 
8490
class CMatchSyntax;
 
8491
namespace Puma {
 
8492
 
 
8493
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8494
 
 
8495
#line 8496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8496
} // closed Puma
 
8497
 
 
8498
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8499
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8500
#include "CCExprResolveH.ah"
 
8501
#endif
 
8502
namespace Puma {
 
8503
 
 
8504
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8505
 
 
8506
#line 8507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8507
} // closed Puma
 
8508
 
 
8509
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8510
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8511
#include "CExprResolveH.ah"
 
8512
#endif
 
8513
namespace Puma {
 
8514
 
 
8515
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8516
class CT_QualName : public CT_SimpleName {
 
8517
#line 8518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8518
  friend class ::CCExprResolve;
 
8519
  friend class ::CExprResolve;
 
8520
  friend class ::WinIfExists;
 
8521
  friend class ::WinImportHandler;
 
8522
  friend class ::WinMacros;
 
8523
  friend class ::WinAsm;
 
8524
  friend class ::WinDeclSpecs;
 
8525
  friend class ::WinMemberExplSpec;
 
8526
  friend class ::WinTypeKeywords;
 
8527
  friend class ::WinFriend;
 
8528
  friend class ::ExtAC;
 
8529
  friend class ::ExtACBuilderCoupling;
 
8530
  friend class ::ExtACSyntaxCoupling;
 
8531
  friend class ::ExtACTree;
 
8532
  friend class ::ExtACKeywords;
 
8533
  friend class ::ExtGnu;
 
8534
  friend class ::PragmaOnceUnitState;
 
8535
  friend class ::PragmaOnce;
 
8536
  friend class ::CMatchSyntax;
 
8537
 
 
8538
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8539
 
 
8540
public:
 
8541
  /** Constructor.
 
8542
   *  \param size The initial number sub-names plus separators. */
 
8543
  CT_QualName (int size = 3) : 
 
8544
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
8545
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8546
  static const char *NodeId ();
 
8547
  /** Get the name of the node. Can be compared with NodeId(). */
 
8548
  const char *NodeName () const { return NodeId (); }
 
8549
  /** Print the qualified name on the given stream. 
 
8550
   *  \param os The output stream. */
 
8551
  void print (ostream &os) const;
 
8552
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
 
8553
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
8554
  /** Get the string containing the last name of the qualified name. */
 
8555
  const char *Text () const { return Name ()->Text (); }
 
8556
  /** Get the type of the last name. */
 
8557
  CTypeInfo *Type () const { return Name ()->Type (); }
 
8558
  /** Get the value of the last name. */
 
8559
  CExprValue *Value () const { return Name ()->Value (); }
 
8560
  /** Get the semantic value object of the last name. */
 
8561
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
8562
  /** Get the semantic information object of the last name. */
 
8563
  CSemObject *SemObject () const { return Name ()->SemObject (); }
 
8564
 
 
8565
public:
 
8566
  /** Own new operator reusing memory. */
 
8567
  void *operator new (size_t);
 
8568
  /** Own delete operator. */
 
8569
  void operator delete (void *);
 
8570
   private:
 
8571
  typedef CT_QualName CCExprResolveExpr;
 
8572
 
 
8573
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8574
 public :
 
8575
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8576
  typedef CT_QualName CExprResolveExpr;
 
8577
 
 
8578
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8579
 public :
 
8580
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8581
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8582
};
 
8583
 
 
8584
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
8585
 *  Tree node representing a qualified name with introducing name separator,
 
8586
 *  e.g. ::X::Y::Z. */
 
8587
 
 
8588
#line 8589 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8589
} // closed Puma
 
8590
class CCExprResolve;
 
8591
class CExprResolve;
 
8592
class WinIfExists;
 
8593
class WinImportHandler;
 
8594
class WinMacros;
 
8595
class WinAsm;
 
8596
class WinDeclSpecs;
 
8597
class WinMemberExplSpec;
 
8598
class WinTypeKeywords;
 
8599
class WinFriend;
 
8600
class ExtAC;
 
8601
class ExtACBuilderCoupling;
 
8602
class ExtACSyntaxCoupling;
 
8603
class ExtACTree;
 
8604
class ExtACKeywords;
 
8605
class ExtGnu;
 
8606
class PragmaOnceUnitState;
 
8607
class PragmaOnce;
 
8608
class CMatchSyntax;
 
8609
namespace Puma {
 
8610
 
 
8611
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8612
 
 
8613
#line 8614 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8614
} // closed Puma
 
8615
 
 
8616
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8617
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8618
#include "CCExprResolveH.ah"
 
8619
#endif
 
8620
namespace Puma {
 
8621
 
 
8622
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8623
 
 
8624
#line 8625 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8625
} // closed Puma
 
8626
 
 
8627
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8628
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8629
#include "CExprResolveH.ah"
 
8630
#endif
 
8631
namespace Puma {
 
8632
 
 
8633
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8634
class CT_RootQualName : public CT_QualName {
 
8635
#line 8636 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8636
  friend class ::CCExprResolve;
 
8637
  friend class ::CExprResolve;
 
8638
  friend class ::WinIfExists;
 
8639
  friend class ::WinImportHandler;
 
8640
  friend class ::WinMacros;
 
8641
  friend class ::WinAsm;
 
8642
  friend class ::WinDeclSpecs;
 
8643
  friend class ::WinMemberExplSpec;
 
8644
  friend class ::WinTypeKeywords;
 
8645
  friend class ::WinFriend;
 
8646
  friend class ::ExtAC;
 
8647
  friend class ::ExtACBuilderCoupling;
 
8648
  friend class ::ExtACSyntaxCoupling;
 
8649
  friend class ::ExtACTree;
 
8650
  friend class ::ExtACKeywords;
 
8651
  friend class ::ExtGnu;
 
8652
  friend class ::PragmaOnceUnitState;
 
8653
  friend class ::PragmaOnce;
 
8654
  friend class ::CMatchSyntax;
 
8655
 
 
8656
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8657
 
 
8658
public:
 
8659
  /** Constructor.
 
8660
   *  \param size Initial number of sub-name plus separator. */
 
8661
  CT_RootQualName (int size = 2) : 
 
8662
    CT_QualName (size) { AddProperties (INTRO); }
 
8663
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8664
  static const char *NodeId ();
 
8665
  /** Get the name of the node. Can be compared with NodeId(). */
 
8666
  const char *NodeName () const { return NodeId (); }
 
8667
 
 
8668
public:
 
8669
  /** Own new operator reusing memory. */
 
8670
  void *operator new (size_t);
 
8671
  /** Own delete operator. */
 
8672
  void operator delete (void *);
 
8673
   private:
 
8674
  typedef CT_RootQualName CCExprResolveExpr;
 
8675
 
 
8676
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8677
 public :
 
8678
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8679
  typedef CT_RootQualName CExprResolveExpr;
 
8680
 
 
8681
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8682
 public :
 
8683
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8684
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8685
};
 
8686
 
 
8687
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
8688
 *  Tree node representing a binary expression, e.g. a+b. */
 
8689
 
 
8690
#line 8691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8691
} // closed Puma
 
8692
class CCExprResolve;
 
8693
class CExprResolve;
 
8694
class WinIfExists;
 
8695
class WinImportHandler;
 
8696
class WinMacros;
 
8697
class WinAsm;
 
8698
class WinDeclSpecs;
 
8699
class WinMemberExplSpec;
 
8700
class WinTypeKeywords;
 
8701
class WinFriend;
 
8702
class ExtAC;
 
8703
class ExtACBuilderCoupling;
 
8704
class ExtACSyntaxCoupling;
 
8705
class ExtACTree;
 
8706
class ExtACKeywords;
 
8707
class ExtGnu;
 
8708
class PragmaOnceUnitState;
 
8709
class PragmaOnce;
 
8710
class CMatchSyntax;
 
8711
namespace Puma {
 
8712
 
 
8713
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8714
 
 
8715
#line 8716 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8716
} // closed Puma
 
8717
 
 
8718
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8719
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8720
#include "CCExprResolveH.ah"
 
8721
#endif
 
8722
namespace Puma {
 
8723
 
 
8724
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8725
 
 
8726
#line 8727 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8727
} // closed Puma
 
8728
 
 
8729
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8730
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8731
#include "CExprResolveH.ah"
 
8732
#endif
 
8733
namespace Puma {
 
8734
 
 
8735
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8736
class CT_BinaryExpr : public CT_Call {
 
8737
#line 8738 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8738
  friend class ::CCExprResolve;
 
8739
  friend class ::CExprResolve;
 
8740
  friend class ::WinIfExists;
 
8741
  friend class ::WinImportHandler;
 
8742
  friend class ::WinMacros;
 
8743
  friend class ::WinAsm;
 
8744
  friend class ::WinDeclSpecs;
 
8745
  friend class ::WinMemberExplSpec;
 
8746
  friend class ::WinTypeKeywords;
 
8747
  friend class ::WinFriend;
 
8748
  friend class ::ExtAC;
 
8749
  friend class ::ExtACBuilderCoupling;
 
8750
  friend class ::ExtACSyntaxCoupling;
 
8751
  friend class ::ExtACTree;
 
8752
  friend class ::ExtACKeywords;
 
8753
  friend class ::ExtGnu;
 
8754
  friend class ::PragmaOnceUnitState;
 
8755
  friend class ::PragmaOnce;
 
8756
  friend class ::CMatchSyntax;
 
8757
 
 
8758
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8759
 
 
8760
  CTree *sons[3]; // expr, oper, expr
 
8761
 
 
8762
public:
 
8763
  /** Constructor. 
 
8764
   *  \param l Left hand side of the expression. 
 
8765
   *  \param o The operator token. 
 
8766
   *  \param r Right hand side of the expression. */
 
8767
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
 
8768
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
 
8769
  }
 
8770
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8771
  static const char *NodeId ();
 
8772
  /** Get the name of the node. Can be compared with NodeId(). */
 
8773
  const char *NodeName () const { return NodeId (); }
 
8774
  /** Get the number of sons. */
 
8775
  int Sons () const { return 3; }
 
8776
  /** Get the n-th son.
 
8777
   *  \param n The index of the son.
 
8778
   *  \return The n-th son or NULL. */
 
8779
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
8780
  /** Replace a son.
 
8781
   *  \param old_son The son to replace.
 
8782
   *  \param new_son The new son. */
 
8783
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
8784
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
8785
  }
 
8786
   private:
 
8787
  typedef CT_BinaryExpr CCExprResolveExpr;
 
8788
 
 
8789
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8790
 public :
 
8791
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8792
  typedef CT_BinaryExpr CExprResolveExpr;
 
8793
 
 
8794
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8795
 public :
 
8796
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8797
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8798
};
 
8799
 
 
8800
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
8801
 *  Tree node representing a member pointer expression, e.g. a->b. */
 
8802
 
 
8803
#line 8804 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8804
} // closed Puma
 
8805
class CCExprResolve;
 
8806
class CExprResolve;
 
8807
class WinIfExists;
 
8808
class WinImportHandler;
 
8809
class WinMacros;
 
8810
class WinAsm;
 
8811
class WinDeclSpecs;
 
8812
class WinMemberExplSpec;
 
8813
class WinTypeKeywords;
 
8814
class WinFriend;
 
8815
class ExtAC;
 
8816
class ExtACBuilderCoupling;
 
8817
class ExtACSyntaxCoupling;
 
8818
class ExtACTree;
 
8819
class ExtACKeywords;
 
8820
class ExtGnu;
 
8821
class PragmaOnceUnitState;
 
8822
class PragmaOnce;
 
8823
class CMatchSyntax;
 
8824
namespace Puma {
 
8825
 
 
8826
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8827
 
 
8828
#line 8829 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8829
} // closed Puma
 
8830
 
 
8831
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8832
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8833
#include "CCExprResolveH.ah"
 
8834
#endif
 
8835
namespace Puma {
 
8836
 
 
8837
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8838
 
 
8839
#line 8840 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8840
} // closed Puma
 
8841
 
 
8842
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8843
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8844
#include "CExprResolveH.ah"
 
8845
#endif
 
8846
namespace Puma {
 
8847
 
 
8848
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8849
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
8850
#line 8851 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8851
  friend class ::CCExprResolve;
 
8852
  friend class ::CExprResolve;
 
8853
  friend class ::WinIfExists;
 
8854
  friend class ::WinImportHandler;
 
8855
  friend class ::WinMacros;
 
8856
  friend class ::WinAsm;
 
8857
  friend class ::WinDeclSpecs;
 
8858
  friend class ::WinMemberExplSpec;
 
8859
  friend class ::WinTypeKeywords;
 
8860
  friend class ::WinFriend;
 
8861
  friend class ::ExtAC;
 
8862
  friend class ::ExtACBuilderCoupling;
 
8863
  friend class ::ExtACSyntaxCoupling;
 
8864
  friend class ::ExtACTree;
 
8865
  friend class ::ExtACKeywords;
 
8866
  friend class ::ExtGnu;
 
8867
  friend class ::PragmaOnceUnitState;
 
8868
  friend class ::PragmaOnce;
 
8869
  friend class ::CMatchSyntax;
 
8870
 
 
8871
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8872
 
 
8873
  CTree *sons[3]; // expr, oper, expr
 
8874
  
 
8875
public:
 
8876
  /** Constructor.
 
8877
   *  \param e Expression on which to call the member.
 
8878
   *  \param o The arrow operator token.
 
8879
   *  \param i The member name. */
 
8880
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
8881
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
8882
  }
 
8883
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8884
  static const char *NodeId ();
 
8885
  /** Get the name of the node. Can be compared with NodeId(). */
 
8886
  const char *NodeName () const { return NodeId (); }
 
8887
  /** Get the number of sons. */
 
8888
  int Sons () const { return 3; }
 
8889
  /** Get the n-th son.
 
8890
   *  \param n The index of the son.
 
8891
   *  \return The n-th son or NULL. */
 
8892
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
8893
  /** Replace a son.
 
8894
   *  \param old_son The son to replace.
 
8895
   *  \param new_son The new son. */
 
8896
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
8897
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
8898
  }
 
8899
   private:
 
8900
  typedef CT_MembPtrExpr CCExprResolveExpr;
 
8901
 
 
8902
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8903
 public :
 
8904
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8905
  typedef CT_MembPtrExpr CExprResolveExpr;
 
8906
 
 
8907
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8908
 public :
 
8909
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8910
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8911
};
 
8912
 
 
8913
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
8914
 *  Tree node representing a member reference expression, e.g. a.b. */
 
8915
 
 
8916
#line 8917 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8917
} // closed Puma
 
8918
class CCExprResolve;
 
8919
class CExprResolve;
 
8920
class WinIfExists;
 
8921
class WinImportHandler;
 
8922
class WinMacros;
 
8923
class WinAsm;
 
8924
class WinDeclSpecs;
 
8925
class WinMemberExplSpec;
 
8926
class WinTypeKeywords;
 
8927
class WinFriend;
 
8928
class ExtAC;
 
8929
class ExtACBuilderCoupling;
 
8930
class ExtACSyntaxCoupling;
 
8931
class ExtACTree;
 
8932
class ExtACKeywords;
 
8933
class ExtGnu;
 
8934
class PragmaOnceUnitState;
 
8935
class PragmaOnce;
 
8936
class CMatchSyntax;
 
8937
namespace Puma {
 
8938
 
 
8939
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8940
 
 
8941
#line 8942 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8942
} // closed Puma
 
8943
 
 
8944
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8945
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8946
#include "CCExprResolveH.ah"
 
8947
#endif
 
8948
namespace Puma {
 
8949
 
 
8950
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8951
 
 
8952
#line 8953 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8953
} // closed Puma
 
8954
 
 
8955
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8956
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8957
#include "CExprResolveH.ah"
 
8958
#endif
 
8959
namespace Puma {
 
8960
 
 
8961
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8962
class CT_MembRefExpr : public CT_MembPtrExpr {
 
8963
#line 8964 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
8964
  friend class ::CCExprResolve;
 
8965
  friend class ::CExprResolve;
 
8966
  friend class ::WinIfExists;
 
8967
  friend class ::WinImportHandler;
 
8968
  friend class ::WinMacros;
 
8969
  friend class ::WinAsm;
 
8970
  friend class ::WinDeclSpecs;
 
8971
  friend class ::WinMemberExplSpec;
 
8972
  friend class ::WinTypeKeywords;
 
8973
  friend class ::WinFriend;
 
8974
  friend class ::ExtAC;
 
8975
  friend class ::ExtACBuilderCoupling;
 
8976
  friend class ::ExtACSyntaxCoupling;
 
8977
  friend class ::ExtACTree;
 
8978
  friend class ::ExtACKeywords;
 
8979
  friend class ::ExtGnu;
 
8980
  friend class ::PragmaOnceUnitState;
 
8981
  friend class ::PragmaOnce;
 
8982
  friend class ::CMatchSyntax;
 
8983
 
 
8984
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8985
 
 
8986
public:
 
8987
  /** Constructor.
 
8988
   *  \param e Expression on which to call the member.
 
8989
   *  \param o The dot operator.
 
8990
   *  \param i The member name. */
 
8991
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
 
8992
    CT_MembPtrExpr (e, o, i) {}
 
8993
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8994
  static const char *NodeId ();
 
8995
  /** Get the name of the node. Can be compared with NodeId(). */
 
8996
  const char *NodeName () const { return NodeId (); }
 
8997
   private:
 
8998
  typedef CT_MembRefExpr CCExprResolveExpr;
 
8999
 
 
9000
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9001
 public :
 
9002
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9003
  typedef CT_MembRefExpr CExprResolveExpr;
 
9004
 
 
9005
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9006
 public :
 
9007
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9008
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9009
};
 
9010
 
 
9011
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
9012
 *  Base class for tree nodes representing unary expressions. */
 
9013
 
 
9014
#line 9015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9015
} // closed Puma
 
9016
class CCExprResolve;
 
9017
class CExprResolve;
 
9018
class WinIfExists;
 
9019
class WinImportHandler;
 
9020
class WinMacros;
 
9021
class WinAsm;
 
9022
class WinDeclSpecs;
 
9023
class WinMemberExplSpec;
 
9024
class WinTypeKeywords;
 
9025
class WinFriend;
 
9026
class ExtAC;
 
9027
class ExtACBuilderCoupling;
 
9028
class ExtACSyntaxCoupling;
 
9029
class ExtACTree;
 
9030
class ExtACKeywords;
 
9031
class ExtGnu;
 
9032
class PragmaOnceUnitState;
 
9033
class PragmaOnce;
 
9034
class CMatchSyntax;
 
9035
namespace Puma {
 
9036
 
 
9037
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9038
 
 
9039
#line 9040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9040
} // closed Puma
 
9041
 
 
9042
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9043
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9044
#include "CCExprResolveH.ah"
 
9045
#endif
 
9046
namespace Puma {
 
9047
 
 
9048
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9049
 
 
9050
#line 9051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9051
} // closed Puma
 
9052
 
 
9053
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9054
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9055
#include "CExprResolveH.ah"
 
9056
#endif
 
9057
namespace Puma {
 
9058
 
 
9059
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9060
class CT_UnaryExpr : public CT_Call {
 
9061
#line 9062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9062
  friend class ::CCExprResolve;
 
9063
  friend class ::CExprResolve;
 
9064
  friend class ::WinIfExists;
 
9065
  friend class ::WinImportHandler;
 
9066
  friend class ::WinMacros;
 
9067
  friend class ::WinAsm;
 
9068
  friend class ::WinDeclSpecs;
 
9069
  friend class ::WinMemberExplSpec;
 
9070
  friend class ::WinTypeKeywords;
 
9071
  friend class ::WinFriend;
 
9072
  friend class ::ExtAC;
 
9073
  friend class ::ExtACBuilderCoupling;
 
9074
  friend class ::ExtACSyntaxCoupling;
 
9075
  friend class ::ExtACTree;
 
9076
  friend class ::ExtACKeywords;
 
9077
  friend class ::ExtGnu;
 
9078
  friend class ::PragmaOnceUnitState;
 
9079
  friend class ::PragmaOnce;
 
9080
  friend class ::CMatchSyntax;
 
9081
 
 
9082
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9083
 
 
9084
  CTree *sons[2]; // oper, expr
 
9085
 
 
9086
public:
 
9087
  /** Constructor.
 
9088
   *  \param o The unary operator.
 
9089
   *  \param e The expression on which the operator is invoked. */
 
9090
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
9091
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9092
  static const char *NodeId ();
 
9093
  /** Get the name of the node. Can be compared with NodeId(). */
 
9094
  const char *NodeName () const { return NodeId (); }
 
9095
  /** Get the number of sons. */
 
9096
  int Sons () const { return 2; }
 
9097
  /** Get the n-th son.
 
9098
   *  \param n The index of the son.
 
9099
   *  \return The n-th son or NULL. */
 
9100
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
9101
  /** Replace a son.
 
9102
   *  \param old_son The son to replace.
 
9103
   *  \param new_son The new son. */
 
9104
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
9105
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
9106
  }
 
9107
  /** Get the expression node. */
 
9108
  CTree *Expr () const { return sons[1]; }
 
9109
   private:
 
9110
  typedef CT_UnaryExpr CCExprResolveExpr;
 
9111
 
 
9112
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9113
 public :
 
9114
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9115
  typedef CT_UnaryExpr CExprResolveExpr;
 
9116
 
 
9117
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9118
 public :
 
9119
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9120
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9121
};
 
9122
 
 
9123
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
9124
 *  Tree node representing a postfix expression, e.g. a++. */
 
9125
 
 
9126
#line 9127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9127
} // closed Puma
 
9128
class CCExprResolve;
 
9129
class CExprResolve;
 
9130
class WinIfExists;
 
9131
class WinImportHandler;
 
9132
class WinMacros;
 
9133
class WinAsm;
 
9134
class WinDeclSpecs;
 
9135
class WinMemberExplSpec;
 
9136
class WinTypeKeywords;
 
9137
class WinFriend;
 
9138
class ExtAC;
 
9139
class ExtACBuilderCoupling;
 
9140
class ExtACSyntaxCoupling;
 
9141
class ExtACTree;
 
9142
class ExtACKeywords;
 
9143
class ExtGnu;
 
9144
class PragmaOnceUnitState;
 
9145
class PragmaOnce;
 
9146
class CMatchSyntax;
 
9147
namespace Puma {
 
9148
 
 
9149
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9150
 
 
9151
#line 9152 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9152
} // closed Puma
 
9153
 
 
9154
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9155
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9156
#include "CCExprResolveH.ah"
 
9157
#endif
 
9158
namespace Puma {
 
9159
 
 
9160
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9161
 
 
9162
#line 9163 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9163
} // closed Puma
 
9164
 
 
9165
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9166
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9167
#include "CExprResolveH.ah"
 
9168
#endif
 
9169
namespace Puma {
 
9170
 
 
9171
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9172
class CT_PostfixExpr : public CT_UnaryExpr {
 
9173
#line 9174 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9174
  friend class ::CCExprResolve;
 
9175
  friend class ::CExprResolve;
 
9176
  friend class ::WinIfExists;
 
9177
  friend class ::WinImportHandler;
 
9178
  friend class ::WinMacros;
 
9179
  friend class ::WinAsm;
 
9180
  friend class ::WinDeclSpecs;
 
9181
  friend class ::WinMemberExplSpec;
 
9182
  friend class ::WinTypeKeywords;
 
9183
  friend class ::WinFriend;
 
9184
  friend class ::ExtAC;
 
9185
  friend class ::ExtACBuilderCoupling;
 
9186
  friend class ::ExtACSyntaxCoupling;
 
9187
  friend class ::ExtACTree;
 
9188
  friend class ::ExtACKeywords;
 
9189
  friend class ::ExtGnu;
 
9190
  friend class ::PragmaOnceUnitState;
 
9191
  friend class ::PragmaOnce;
 
9192
  friend class ::CMatchSyntax;
 
9193
 
 
9194
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9195
 
 
9196
public:
 
9197
  /** Constructor.
 
9198
   *  \param e The expression on which to invoke the operator. 
 
9199
   *  \param o The postfix operator. */
 
9200
  CT_PostfixExpr (CTree *e, CTree *o) :
 
9201
    CT_UnaryExpr (e, o) {}
 
9202
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9203
  static const char *NodeId ();
 
9204
  /** Get the name of the node. Can be compared with NodeId(). */
 
9205
  const char *NodeName () const { return NodeId (); }
 
9206
   private:
 
9207
  typedef CT_PostfixExpr CCExprResolveExpr;
 
9208
 
 
9209
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9210
 public :
 
9211
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9212
  typedef CT_PostfixExpr CExprResolveExpr;
 
9213
 
 
9214
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9215
 public :
 
9216
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9217
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9218
};
 
9219
 
 
9220
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
9221
 *  Tree node representing an address expression, e.g. &a. */
 
9222
 
 
9223
#line 9224 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9224
} // closed Puma
 
9225
class CCExprResolve;
 
9226
class CExprResolve;
 
9227
class WinIfExists;
 
9228
class WinImportHandler;
 
9229
class WinMacros;
 
9230
class WinAsm;
 
9231
class WinDeclSpecs;
 
9232
class WinMemberExplSpec;
 
9233
class WinTypeKeywords;
 
9234
class WinFriend;
 
9235
class ExtAC;
 
9236
class ExtACBuilderCoupling;
 
9237
class ExtACSyntaxCoupling;
 
9238
class ExtACTree;
 
9239
class ExtACKeywords;
 
9240
class ExtGnu;
 
9241
class PragmaOnceUnitState;
 
9242
class PragmaOnce;
 
9243
class CMatchSyntax;
 
9244
namespace Puma {
 
9245
 
 
9246
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9247
 
 
9248
#line 9249 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9249
} // closed Puma
 
9250
 
 
9251
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9252
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9253
#include "CCExprResolveH.ah"
 
9254
#endif
 
9255
namespace Puma {
 
9256
 
 
9257
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9258
 
 
9259
#line 9260 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9260
} // closed Puma
 
9261
 
 
9262
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9263
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9264
#include "CExprResolveH.ah"
 
9265
#endif
 
9266
namespace Puma {
 
9267
 
 
9268
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9269
class CT_AddrExpr : public CT_UnaryExpr {
 
9270
#line 9271 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9271
  friend class ::CCExprResolve;
 
9272
  friend class ::CExprResolve;
 
9273
  friend class ::WinIfExists;
 
9274
  friend class ::WinImportHandler;
 
9275
  friend class ::WinMacros;
 
9276
  friend class ::WinAsm;
 
9277
  friend class ::WinDeclSpecs;
 
9278
  friend class ::WinMemberExplSpec;
 
9279
  friend class ::WinTypeKeywords;
 
9280
  friend class ::WinFriend;
 
9281
  friend class ::ExtAC;
 
9282
  friend class ::ExtACBuilderCoupling;
 
9283
  friend class ::ExtACSyntaxCoupling;
 
9284
  friend class ::ExtACTree;
 
9285
  friend class ::ExtACKeywords;
 
9286
  friend class ::ExtGnu;
 
9287
  friend class ::PragmaOnceUnitState;
 
9288
  friend class ::PragmaOnce;
 
9289
  friend class ::CMatchSyntax;
 
9290
 
 
9291
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9292
 
 
9293
public:
 
9294
  /** Constructor.
 
9295
   *  \param o The address operator, i.e. '&'.
 
9296
   *  \param e The expression from which to take the address. */
 
9297
  CT_AddrExpr (CTree *o, CTree *e) :
 
9298
    CT_UnaryExpr (o, e) {}
 
9299
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9300
  static const char *NodeId ();
 
9301
  /** Get the name of the node. Can be compared with NodeId(). */
 
9302
  const char *NodeName () const { return NodeId (); }
 
9303
   private:
 
9304
  typedef CT_AddrExpr CCExprResolveExpr;
 
9305
 
 
9306
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9307
 public :
 
9308
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9309
  typedef CT_AddrExpr CExprResolveExpr;
 
9310
 
 
9311
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9312
 public :
 
9313
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9314
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9315
};
 
9316
 
 
9317
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
9318
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
 
9319
 
 
9320
#line 9321 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9321
} // closed Puma
 
9322
class CCExprResolve;
 
9323
class CExprResolve;
 
9324
class WinIfExists;
 
9325
class WinImportHandler;
 
9326
class WinMacros;
 
9327
class WinAsm;
 
9328
class WinDeclSpecs;
 
9329
class WinMemberExplSpec;
 
9330
class WinTypeKeywords;
 
9331
class WinFriend;
 
9332
class ExtAC;
 
9333
class ExtACBuilderCoupling;
 
9334
class ExtACSyntaxCoupling;
 
9335
class ExtACTree;
 
9336
class ExtACKeywords;
 
9337
class ExtGnu;
 
9338
class PragmaOnceUnitState;
 
9339
class PragmaOnce;
 
9340
class CMatchSyntax;
 
9341
namespace Puma {
 
9342
 
 
9343
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9344
 
 
9345
#line 9346 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9346
} // closed Puma
 
9347
 
 
9348
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9349
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9350
#include "CCExprResolveH.ah"
 
9351
#endif
 
9352
namespace Puma {
 
9353
 
 
9354
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9355
 
 
9356
#line 9357 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9357
} // closed Puma
 
9358
 
 
9359
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9360
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9361
#include "CExprResolveH.ah"
 
9362
#endif
 
9363
namespace Puma {
 
9364
 
 
9365
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9366
class CT_DerefExpr : public CT_UnaryExpr {
 
9367
#line 9368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9368
  friend class ::CCExprResolve;
 
9369
  friend class ::CExprResolve;
 
9370
  friend class ::WinIfExists;
 
9371
  friend class ::WinImportHandler;
 
9372
  friend class ::WinMacros;
 
9373
  friend class ::WinAsm;
 
9374
  friend class ::WinDeclSpecs;
 
9375
  friend class ::WinMemberExplSpec;
 
9376
  friend class ::WinTypeKeywords;
 
9377
  friend class ::WinFriend;
 
9378
  friend class ::ExtAC;
 
9379
  friend class ::ExtACBuilderCoupling;
 
9380
  friend class ::ExtACSyntaxCoupling;
 
9381
  friend class ::ExtACTree;
 
9382
  friend class ::ExtACKeywords;
 
9383
  friend class ::ExtGnu;
 
9384
  friend class ::PragmaOnceUnitState;
 
9385
  friend class ::PragmaOnce;
 
9386
  friend class ::CMatchSyntax;
 
9387
 
 
9388
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9389
 
 
9390
public:
 
9391
  /** Constructor.
 
9392
   *  \param o The dereferencing operator, i.e. '*'.
 
9393
   *  \param e The expression to dereference. */
 
9394
  CT_DerefExpr (CTree *o, CTree *e) :
 
9395
    CT_UnaryExpr (o, e) {}
 
9396
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9397
  static const char *NodeId ();
 
9398
  /** Get the name of the node. Can be compared with NodeId(). */
 
9399
  const char *NodeName () const { return NodeId (); }
 
9400
   private:
 
9401
  typedef CT_DerefExpr CCExprResolveExpr;
 
9402
 
 
9403
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9404
 public :
 
9405
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9406
  typedef CT_DerefExpr CExprResolveExpr;
 
9407
 
 
9408
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9409
 public :
 
9410
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9411
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9412
};
 
9413
 
 
9414
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
9415
 *  Tree node representing a delete expression, e.g. delete a. */
 
9416
 
 
9417
#line 9418 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9418
} // closed Puma
 
9419
class CCExprResolve;
 
9420
class CExprResolve;
 
9421
class WinIfExists;
 
9422
class WinImportHandler;
 
9423
class WinMacros;
 
9424
class WinAsm;
 
9425
class WinDeclSpecs;
 
9426
class WinMemberExplSpec;
 
9427
class WinTypeKeywords;
 
9428
class WinFriend;
 
9429
class ExtAC;
 
9430
class ExtACBuilderCoupling;
 
9431
class ExtACSyntaxCoupling;
 
9432
class ExtACTree;
 
9433
class ExtACKeywords;
 
9434
class ExtGnu;
 
9435
class PragmaOnceUnitState;
 
9436
class PragmaOnce;
 
9437
class CMatchSyntax;
 
9438
namespace Puma {
 
9439
 
 
9440
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9441
 
 
9442
#line 9443 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9443
} // closed Puma
 
9444
 
 
9445
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9446
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9447
#include "CCExprResolveH.ah"
 
9448
#endif
 
9449
namespace Puma {
 
9450
 
 
9451
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9452
 
 
9453
#line 9454 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9454
} // closed Puma
 
9455
 
 
9456
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9457
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9458
#include "CExprResolveH.ah"
 
9459
#endif
 
9460
namespace Puma {
 
9461
 
 
9462
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9463
class CT_DeleteExpr : public CT_Expression, public CSemObject {
 
9464
#line 9465 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9465
  friend class ::CCExprResolve;
 
9466
  friend class ::CExprResolve;
 
9467
  friend class ::WinIfExists;
 
9468
  friend class ::WinImportHandler;
 
9469
  friend class ::WinMacros;
 
9470
  friend class ::WinAsm;
 
9471
  friend class ::WinDeclSpecs;
 
9472
  friend class ::WinMemberExplSpec;
 
9473
  friend class ::WinTypeKeywords;
 
9474
  friend class ::WinFriend;
 
9475
  friend class ::ExtAC;
 
9476
  friend class ::ExtACBuilderCoupling;
 
9477
  friend class ::ExtACSyntaxCoupling;
 
9478
  friend class ::ExtACTree;
 
9479
  friend class ::ExtACKeywords;
 
9480
  friend class ::ExtGnu;
 
9481
  friend class ::PragmaOnceUnitState;
 
9482
  friend class ::PragmaOnce;
 
9483
  friend class ::CMatchSyntax;
 
9484
 
 
9485
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9486
 
 
9487
  CTree *sons[2]; // oper, expr
 
9488
 
 
9489
public:
 
9490
  /** Constructor.
 
9491
   *  \param op The delete operator.
 
9492
   *  \param e The expression representing the object to delete. */
 
9493
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
9494
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9495
  static const char *NodeId ();
 
9496
  /** Get the name of the node. Can be compared with NodeId(). */
 
9497
  const char *NodeName () const { return NodeId (); }
 
9498
  /** Get the number of sons. */
 
9499
  int Sons () const { return 2; }
 
9500
  /** Get the n-th son.
 
9501
   *  \param n The index of the son.
 
9502
   *  \return The n-th son or NULL. */
 
9503
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
9504
  /** Replace a son.
 
9505
   *  \param old_son The son to replace.
 
9506
   *  \param new_son The new son. */
 
9507
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
9508
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
9509
  }
 
9510
  /** Get the expression. */
 
9511
  CTree *Expr () const { return sons[1]; }
 
9512
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
 
9513
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
9514
  /** Get the semantic information object. */
 
9515
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
9516
   private:
 
9517
  typedef CT_DeleteExpr CCExprResolveExpr;
 
9518
 
 
9519
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9520
 public :
 
9521
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9522
  typedef CT_DeleteExpr CExprResolveExpr;
 
9523
 
 
9524
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9525
 public :
 
9526
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9527
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9528
};
 
9529
 
 
9530
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
9531
 *  Tree node representing a new expression, e.g. new A(). */
 
9532
 
 
9533
#line 9534 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9534
} // closed Puma
 
9535
class CCExprResolve;
 
9536
class CExprResolve;
 
9537
class WinIfExists;
 
9538
class WinImportHandler;
 
9539
class WinMacros;
 
9540
class WinAsm;
 
9541
class WinDeclSpecs;
 
9542
class WinMemberExplSpec;
 
9543
class WinTypeKeywords;
 
9544
class WinFriend;
 
9545
class ExtAC;
 
9546
class ExtACBuilderCoupling;
 
9547
class ExtACSyntaxCoupling;
 
9548
class ExtACTree;
 
9549
class ExtACKeywords;
 
9550
class ExtGnu;
 
9551
class PragmaOnceUnitState;
 
9552
class PragmaOnce;
 
9553
class CMatchSyntax;
 
9554
namespace Puma {
 
9555
 
 
9556
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9557
 
 
9558
#line 9559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9559
} // closed Puma
 
9560
 
 
9561
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9562
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9563
#include "CCExprResolveH.ah"
 
9564
#endif
 
9565
namespace Puma {
 
9566
 
 
9567
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9568
 
 
9569
#line 9570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9570
} // closed Puma
 
9571
 
 
9572
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9573
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9574
#include "CExprResolveH.ah"
 
9575
#endif
 
9576
namespace Puma {
 
9577
 
 
9578
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9579
class CT_NewExpr : public CT_Expression, public CSemObject {
 
9580
#line 9581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9581
  friend class ::CCExprResolve;
 
9582
  friend class ::CExprResolve;
 
9583
  friend class ::WinIfExists;
 
9584
  friend class ::WinImportHandler;
 
9585
  friend class ::WinMacros;
 
9586
  friend class ::WinAsm;
 
9587
  friend class ::WinDeclSpecs;
 
9588
  friend class ::WinMemberExplSpec;
 
9589
  friend class ::WinTypeKeywords;
 
9590
  friend class ::WinFriend;
 
9591
  friend class ::ExtAC;
 
9592
  friend class ::ExtACBuilderCoupling;
 
9593
  friend class ::ExtACSyntaxCoupling;
 
9594
  friend class ::ExtACTree;
 
9595
  friend class ::ExtACKeywords;
 
9596
  friend class ::ExtGnu;
 
9597
  friend class ::PragmaOnceUnitState;
 
9598
  friend class ::PragmaOnce;
 
9599
  friend class ::CMatchSyntax;
 
9600
 
 
9601
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9602
 
 
9603
  CTree *sons[6]; // oper, placement, open, type, close, init
 
9604
 
 
9605
public:
 
9606
  /** Constructor.
 
9607
   *  \param op The new operator.
 
9608
   *  \param p The optional placement expression.
 
9609
   *  \param o The optional left parenthesis around the type identifier.
 
9610
   *  \param t The type identifier specifying the type of the object to create.
 
9611
   *  \param c The optional right parenthesis around the type identifier.
 
9612
   *  \param i The optional initializer. */
 
9613
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
 
9614
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
9615
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
 
9616
  }
 
9617
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9618
  static const char *NodeId ();
 
9619
  /** Get the name of the node. Can be compared with NodeId(). */
 
9620
  const char *NodeName () const { return NodeId (); }
 
9621
  /** Get the number of sons. */
 
9622
  int Sons () const { return CTree::Sons (sons, 6); }
 
9623
  /** Get the n-th son.
 
9624
   *  \param n The index of the son.
 
9625
   *  \return The n-th son or NULL. */
 
9626
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
9627
  /** Replace a son.
 
9628
   *  \param old_son The son to replace.
 
9629
   *  \param new_son The new son. */
 
9630
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
9631
    CTree::ReplaceSon (sons, 6, old_son, new_son);
 
9632
  }
 
9633
  /** Get the operator name. */
 
9634
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
9635
  /** Get the placement expression. */
 
9636
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
9637
  /** Get the initializer. */
 
9638
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
9639
  /** Get the type of the object to create. */
 
9640
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
9641
  /** Get the semantic information object. */
 
9642
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
9643
   private:
 
9644
  typedef CT_NewExpr CCExprResolveExpr;
 
9645
 
 
9646
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9647
 public :
 
9648
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9649
  typedef CT_NewExpr CExprResolveExpr;
 
9650
 
 
9651
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9652
 public :
 
9653
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9654
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9655
};
 
9656
 
 
9657
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
9658
 *  Tree node representing an if-then expression, 
 
9659
 *  e.g. a>0?a:b or a?:b. */
 
9660
 
 
9661
#line 9662 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9662
} // closed Puma
 
9663
class CCExprResolve;
 
9664
class CExprResolve;
 
9665
class WinIfExists;
 
9666
class WinImportHandler;
 
9667
class WinMacros;
 
9668
class WinAsm;
 
9669
class WinDeclSpecs;
 
9670
class WinMemberExplSpec;
 
9671
class WinTypeKeywords;
 
9672
class WinFriend;
 
9673
class ExtAC;
 
9674
class ExtACBuilderCoupling;
 
9675
class ExtACSyntaxCoupling;
 
9676
class ExtACTree;
 
9677
class ExtACKeywords;
 
9678
class ExtGnu;
 
9679
class PragmaOnceUnitState;
 
9680
class PragmaOnce;
 
9681
class CMatchSyntax;
 
9682
namespace Puma {
 
9683
 
 
9684
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9685
 
 
9686
#line 9687 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9687
} // closed Puma
 
9688
 
 
9689
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9690
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9691
#include "CCExprResolveH.ah"
 
9692
#endif
 
9693
namespace Puma {
 
9694
 
 
9695
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9696
 
 
9697
#line 9698 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9698
} // closed Puma
 
9699
 
 
9700
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9701
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9702
#include "CExprResolveH.ah"
 
9703
#endif
 
9704
namespace Puma {
 
9705
 
 
9706
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9707
class CT_IfThenExpr : public CT_Expression {
 
9708
#line 9709 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9709
  friend class ::CCExprResolve;
 
9710
  friend class ::CExprResolve;
 
9711
  friend class ::WinIfExists;
 
9712
  friend class ::WinImportHandler;
 
9713
  friend class ::WinMacros;
 
9714
  friend class ::WinAsm;
 
9715
  friend class ::WinDeclSpecs;
 
9716
  friend class ::WinMemberExplSpec;
 
9717
  friend class ::WinTypeKeywords;
 
9718
  friend class ::WinFriend;
 
9719
  friend class ::ExtAC;
 
9720
  friend class ::ExtACBuilderCoupling;
 
9721
  friend class ::ExtACSyntaxCoupling;
 
9722
  friend class ::ExtACTree;
 
9723
  friend class ::ExtACKeywords;
 
9724
  friend class ::ExtGnu;
 
9725
  friend class ::PragmaOnceUnitState;
 
9726
  friend class ::PragmaOnce;
 
9727
  friend class ::CMatchSyntax;
 
9728
 
 
9729
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9730
 
 
9731
  CTree *sons[5]; // cond, oper, left, colon, right
 
9732
 
 
9733
public:
 
9734
  /** Constructor.
 
9735
   *  \param c1 The condition expression.
 
9736
   *  \param o The question mark operator. 
 
9737
   *  \param l The expression to the left of the colon.
 
9738
   *  \param c2 The colon operator.
 
9739
   *  \param r The expression to the right of the colon. */ 
 
9740
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
 
9741
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
9742
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
9743
  }
 
9744
  /** Constructor.
 
9745
   *  \param c1 The condition expression.
 
9746
   *  \param o The question mark operator. 
 
9747
   *  \param c2 The colon operator.
 
9748
   *  \param r The expression to the right of the colon. */ 
 
9749
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
 
9750
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
9751
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
9752
  }
 
9753
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9754
  static const char *NodeId ();
 
9755
  /** Get the name of the node. Can be compared with NodeId(). */
 
9756
  const char *NodeName () const { return NodeId (); }
 
9757
  /** Get the number of sons. */
 
9758
  int Sons () const { return CTree::Sons (sons, 5); }
 
9759
  /** Get the n-th son.
 
9760
   *  \param n The index of the son.
 
9761
   *  \return The n-th son or NULL. */
 
9762
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
9763
  /** Get the condition expression. */
 
9764
  CTree *Condition () const { return sons[0]; }
 
9765
  /** Get the left expression (condition=true). */
 
9766
  CTree *LeftOperand () const { return sons[2]; }
 
9767
  /** Get the right expression (condition=false). */
 
9768
  CTree *RightOperand () const { return sons[4]; }
 
9769
  /** Replace a son.
 
9770
   *  \param old_son The son to replace.
 
9771
   *  \param new_son The new son. */
 
9772
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
9773
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
9774
  }
 
9775
   private:
 
9776
  typedef CT_IfThenExpr CCExprResolveExpr;
 
9777
 
 
9778
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9779
 public :
 
9780
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9781
  typedef CT_IfThenExpr CExprResolveExpr;
 
9782
 
 
9783
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9784
 public :
 
9785
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9786
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9787
};
 
9788
 
 
9789
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
9790
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
 
9791
 
 
9792
#line 9793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9793
} // closed Puma
 
9794
class CCExprResolve;
 
9795
class CExprResolve;
 
9796
class WinIfExists;
 
9797
class WinImportHandler;
 
9798
class WinMacros;
 
9799
class WinAsm;
 
9800
class WinDeclSpecs;
 
9801
class WinMemberExplSpec;
 
9802
class WinTypeKeywords;
 
9803
class WinFriend;
 
9804
class ExtAC;
 
9805
class ExtACBuilderCoupling;
 
9806
class ExtACSyntaxCoupling;
 
9807
class ExtACTree;
 
9808
class ExtACKeywords;
 
9809
class ExtGnu;
 
9810
class PragmaOnceUnitState;
 
9811
class PragmaOnce;
 
9812
class CMatchSyntax;
 
9813
namespace Puma {
 
9814
 
 
9815
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9816
 
 
9817
#line 9818 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9818
} // closed Puma
 
9819
 
 
9820
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9821
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9822
#include "CCExprResolveH.ah"
 
9823
#endif
 
9824
namespace Puma {
 
9825
 
 
9826
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9827
 
 
9828
#line 9829 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9829
} // closed Puma
 
9830
 
 
9831
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9832
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9833
#include "CExprResolveH.ah"
 
9834
#endif
 
9835
namespace Puma {
 
9836
 
 
9837
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9838
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
 
9839
#line 9840 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9840
  friend class ::CCExprResolve;
 
9841
  friend class ::CExprResolve;
 
9842
  friend class ::WinIfExists;
 
9843
  friend class ::WinImportHandler;
 
9844
  friend class ::WinMacros;
 
9845
  friend class ::WinAsm;
 
9846
  friend class ::WinDeclSpecs;
 
9847
  friend class ::WinMemberExplSpec;
 
9848
  friend class ::WinTypeKeywords;
 
9849
  friend class ::WinFriend;
 
9850
  friend class ::ExtAC;
 
9851
  friend class ::ExtACBuilderCoupling;
 
9852
  friend class ::ExtACSyntaxCoupling;
 
9853
  friend class ::ExtACTree;
 
9854
  friend class ::ExtACKeywords;
 
9855
  friend class ::ExtGnu;
 
9856
  friend class ::PragmaOnceUnitState;
 
9857
  friend class ::PragmaOnce;
 
9858
  friend class ::CMatchSyntax;
 
9859
 
 
9860
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9861
 
 
9862
  CTree *sons[4]; // open, type, close, init
 
9863
 
 
9864
public:
 
9865
  /** Constructor.
 
9866
   *  \param r Left parenthesis of the type name.
 
9867
   *  \param t The type name.
 
9868
   *  \param cr Right parenthesis of the type name.
 
9869
   *  \param i The initializer list. */
 
9870
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
 
9871
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
9872
    AddSon (sons[2], cr); AddSon (sons[3], i);
 
9873
  }
 
9874
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9875
  static const char *NodeId ();
 
9876
  /** Get the name of the node. Can be compared with NodeId(). */
 
9877
  const char *NodeName () const { return NodeId (); }
 
9878
  /** Get the number of sons. */
 
9879
  int Sons () const { return 4; }
 
9880
  /** Get the n-th son.
 
9881
   *  \param n The index of the son.
 
9882
   *  \return The n-th son or NULL. */
 
9883
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
9884
  /** Replace a son.
 
9885
   *  \param old_son The son to replace.
 
9886
   *  \param new_son The new son. */
 
9887
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
9888
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
9889
  }
 
9890
  /** Get the type name. */
 
9891
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
9892
  /** Get the initializer list. */
 
9893
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
9894
  /** Get the semantic information object. */
 
9895
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
9896
   private:
 
9897
  typedef CT_CmpdLiteral CCExprResolveExpr;
 
9898
 
 
9899
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9900
 public :
 
9901
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9902
  typedef CT_CmpdLiteral CExprResolveExpr;
 
9903
 
 
9904
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9905
 public :
 
9906
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9907
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9908
};
 
9909
 
 
9910
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
9911
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
 
9912
 
 
9913
#line 9914 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9914
} // closed Puma
 
9915
class CCExprResolve;
 
9916
class CExprResolve;
 
9917
class WinIfExists;
 
9918
class WinImportHandler;
 
9919
class WinMacros;
 
9920
class WinAsm;
 
9921
class WinDeclSpecs;
 
9922
class WinMemberExplSpec;
 
9923
class WinTypeKeywords;
 
9924
class WinFriend;
 
9925
class ExtAC;
 
9926
class ExtACBuilderCoupling;
 
9927
class ExtACSyntaxCoupling;
 
9928
class ExtACTree;
 
9929
class ExtACKeywords;
 
9930
class ExtGnu;
 
9931
class PragmaOnceUnitState;
 
9932
class PragmaOnce;
 
9933
class CMatchSyntax;
 
9934
namespace Puma {
 
9935
 
 
9936
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9937
 
 
9938
#line 9939 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9939
} // closed Puma
 
9940
 
 
9941
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9942
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9943
#include "CCExprResolveH.ah"
 
9944
#endif
 
9945
namespace Puma {
 
9946
 
 
9947
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9948
 
 
9949
#line 9950 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9950
} // closed Puma
 
9951
 
 
9952
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9953
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9954
#include "CExprResolveH.ah"
 
9955
#endif
 
9956
namespace Puma {
 
9957
 
 
9958
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9959
class CT_ConstructExpr : public CT_Expression, public CSemObject {
 
9960
#line 9961 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
9961
  friend class ::CCExprResolve;
 
9962
  friend class ::CExprResolve;
 
9963
  friend class ::WinIfExists;
 
9964
  friend class ::WinImportHandler;
 
9965
  friend class ::WinMacros;
 
9966
  friend class ::WinAsm;
 
9967
  friend class ::WinDeclSpecs;
 
9968
  friend class ::WinMemberExplSpec;
 
9969
  friend class ::WinTypeKeywords;
 
9970
  friend class ::WinFriend;
 
9971
  friend class ::ExtAC;
 
9972
  friend class ::ExtACBuilderCoupling;
 
9973
  friend class ::ExtACSyntaxCoupling;
 
9974
  friend class ::ExtACTree;
 
9975
  friend class ::ExtACKeywords;
 
9976
  friend class ::ExtGnu;
 
9977
  friend class ::PragmaOnceUnitState;
 
9978
  friend class ::PragmaOnce;
 
9979
  friend class ::CMatchSyntax;
 
9980
 
 
9981
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9982
 
 
9983
  CTree *sons[2]; // type, init
 
9984
 
 
9985
public:
 
9986
  /** Constructor.
 
9987
   *  \param t The type name.
 
9988
   *  \param i The initializer list. */
 
9989
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
9990
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9991
  static const char *NodeId ();
 
9992
  /** Get the name of the node. Can be compared with NodeId(). */
 
9993
  const char *NodeName () const { return NodeId (); }
 
9994
  /** Get the number of sons. */
 
9995
  int Sons () const { return 2; }
 
9996
  /** Get the n-th son.
 
9997
   *  \param n The index of the son.
 
9998
   *  \return The n-th son or NULL. */
 
9999
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
10000
  /** Replace a son.
 
10001
   *  \param old_son The son to replace.
 
10002
   *  \param new_son The new son. */
 
10003
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
10004
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
10005
  }
 
10006
  /** Get the type name. */
 
10007
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
10008
  /** Get the initializer. */
 
10009
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
10010
  /** Get the semantic information object. */
 
10011
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
10012
   private:
 
10013
  typedef CT_ConstructExpr CCExprResolveExpr;
 
10014
 
 
10015
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10016
 public :
 
10017
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10018
  typedef CT_ConstructExpr CExprResolveExpr;
 
10019
 
 
10020
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10021
 public :
 
10022
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10023
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10024
};
 
10025
 
 
10026
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
10027
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
 
10028
 
 
10029
#line 10030 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10030
} // closed Puma
 
10031
class CCExprResolve;
 
10032
class CExprResolve;
 
10033
class WinIfExists;
 
10034
class WinImportHandler;
 
10035
class WinMacros;
 
10036
class WinAsm;
 
10037
class WinDeclSpecs;
 
10038
class WinMemberExplSpec;
 
10039
class WinTypeKeywords;
 
10040
class WinFriend;
 
10041
class ExtAC;
 
10042
class ExtACBuilderCoupling;
 
10043
class ExtACSyntaxCoupling;
 
10044
class ExtACTree;
 
10045
class ExtACKeywords;
 
10046
class ExtGnu;
 
10047
class PragmaOnceUnitState;
 
10048
class PragmaOnce;
 
10049
class CMatchSyntax;
 
10050
namespace Puma {
 
10051
 
 
10052
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10053
 
 
10054
#line 10055 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10055
} // closed Puma
 
10056
 
 
10057
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10058
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10059
#include "CCExprResolveH.ah"
 
10060
#endif
 
10061
namespace Puma {
 
10062
 
 
10063
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10064
 
 
10065
#line 10066 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10066
} // closed Puma
 
10067
 
 
10068
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10069
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10070
#include "CExprResolveH.ah"
 
10071
#endif
 
10072
namespace Puma {
 
10073
 
 
10074
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10075
class CT_ThrowExpr : public CT_Expression {
 
10076
#line 10077 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10077
  friend class ::CCExprResolve;
 
10078
  friend class ::CExprResolve;
 
10079
  friend class ::WinIfExists;
 
10080
  friend class ::WinImportHandler;
 
10081
  friend class ::WinMacros;
 
10082
  friend class ::WinAsm;
 
10083
  friend class ::WinDeclSpecs;
 
10084
  friend class ::WinMemberExplSpec;
 
10085
  friend class ::WinTypeKeywords;
 
10086
  friend class ::WinFriend;
 
10087
  friend class ::ExtAC;
 
10088
  friend class ::ExtACBuilderCoupling;
 
10089
  friend class ::ExtACSyntaxCoupling;
 
10090
  friend class ::ExtACTree;
 
10091
  friend class ::ExtACKeywords;
 
10092
  friend class ::ExtGnu;
 
10093
  friend class ::PragmaOnceUnitState;
 
10094
  friend class ::PragmaOnce;
 
10095
  friend class ::CMatchSyntax;
 
10096
 
 
10097
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10098
 
 
10099
  CTree *sons[2]; // throw, expr
 
10100
 
 
10101
public:
 
10102
  /** Constructor.
 
10103
   *  \param t The 'throw' keyword.
 
10104
   *  \param e The expression. */
 
10105
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
10106
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10107
  static const char *NodeId ();
 
10108
  /** Get the name of the node. Can be compared with NodeId(). */
 
10109
  const char *NodeName () const { return NodeId (); }
 
10110
  /** Get the number of sons. */
 
10111
  int Sons () const { return CTree::Sons (sons, 2); }
 
10112
  /** Get the n-th son.
 
10113
   *  \param n The index of the son.
 
10114
   *  \return The n-th son or NULL. */
 
10115
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
10116
  /** Replace a son.
 
10117
   *  \param old_son The son to replace.
 
10118
   *  \param new_son The new son. */
 
10119
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
10120
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
10121
  }
 
10122
  /** Get the expression. */
 
10123
  CTree *Expr () const { return sons[1]; }
 
10124
   private:
 
10125
  typedef CT_ThrowExpr CCExprResolveExpr;
 
10126
 
 
10127
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10128
 public :
 
10129
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10130
  typedef CT_ThrowExpr CExprResolveExpr;
 
10131
 
 
10132
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10133
 public :
 
10134
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10135
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10136
};
 
10137
 
 
10138
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
10139
 *  Tree node representing an index expression. */
 
10140
 
 
10141
#line 10142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10142
} // closed Puma
 
10143
class CCExprResolve;
 
10144
class CExprResolve;
 
10145
class WinIfExists;
 
10146
class WinImportHandler;
 
10147
class WinMacros;
 
10148
class WinAsm;
 
10149
class WinDeclSpecs;
 
10150
class WinMemberExplSpec;
 
10151
class WinTypeKeywords;
 
10152
class WinFriend;
 
10153
class ExtAC;
 
10154
class ExtACBuilderCoupling;
 
10155
class ExtACSyntaxCoupling;
 
10156
class ExtACTree;
 
10157
class ExtACKeywords;
 
10158
class ExtGnu;
 
10159
class PragmaOnceUnitState;
 
10160
class PragmaOnce;
 
10161
class CMatchSyntax;
 
10162
namespace Puma {
 
10163
 
 
10164
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10165
 
 
10166
#line 10167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10167
} // closed Puma
 
10168
 
 
10169
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10170
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10171
#include "CCExprResolveH.ah"
 
10172
#endif
 
10173
namespace Puma {
 
10174
 
 
10175
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10176
 
 
10177
#line 10178 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10178
} // closed Puma
 
10179
 
 
10180
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10181
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10182
#include "CExprResolveH.ah"
 
10183
#endif
 
10184
namespace Puma {
 
10185
 
 
10186
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10187
class CT_IndexExpr : public CT_Call {
 
10188
#line 10189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10189
  friend class ::CCExprResolve;
 
10190
  friend class ::CExprResolve;
 
10191
  friend class ::WinIfExists;
 
10192
  friend class ::WinImportHandler;
 
10193
  friend class ::WinMacros;
 
10194
  friend class ::WinAsm;
 
10195
  friend class ::WinDeclSpecs;
 
10196
  friend class ::WinMemberExplSpec;
 
10197
  friend class ::WinTypeKeywords;
 
10198
  friend class ::WinFriend;
 
10199
  friend class ::ExtAC;
 
10200
  friend class ::ExtACBuilderCoupling;
 
10201
  friend class ::ExtACSyntaxCoupling;
 
10202
  friend class ::ExtACTree;
 
10203
  friend class ::ExtACKeywords;
 
10204
  friend class ::ExtGnu;
 
10205
  friend class ::PragmaOnceUnitState;
 
10206
  friend class ::PragmaOnce;
 
10207
  friend class ::CMatchSyntax;
 
10208
 
 
10209
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10210
 
 
10211
  CTree *sons[4]; // expr, open, index, close
 
10212
 
 
10213
public:
 
10214
  /** Constructor.
 
10215
   *  \param e The expression on which to invoke the index operator.
 
10216
   *  \param o Left parenthesis of the index expression.
 
10217
   *  \param i The index expression. 
 
10218
   *  \param c Right parenthesis of the index expression. */
 
10219
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
 
10220
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
10221
    AddSon (sons[2], i); AddSon (sons[3], c);
 
10222
  }
 
10223
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10224
  static const char *NodeId ();
 
10225
  /** Get the name of the node. Can be compared with NodeId(). */
 
10226
  const char *NodeName () const { return NodeId (); }
 
10227
  /** Get the number of sons. */
 
10228
  int Sons () const { return 4; }
 
10229
  /** Get the n-th son.
 
10230
   *  \param n The index of the son.
 
10231
   *  \return The n-th son or NULL. */
 
10232
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
10233
  /** Replace a son.
 
10234
   *  \param old_son The son to replace.
 
10235
   *  \param new_son The new son. */
 
10236
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
10237
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
10238
  }
 
10239
   private:
 
10240
  typedef CT_IndexExpr CCExprResolveExpr;
 
10241
 
 
10242
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10243
 public :
 
10244
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10245
  typedef CT_IndexExpr CExprResolveExpr;
 
10246
 
 
10247
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10248
 public :
 
10249
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10250
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10251
};
 
10252
 
 
10253
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
10254
 *  Tree node representing a function call expression, e.g. f(i). */
 
10255
 
 
10256
#line 10257 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10257
} // closed Puma
 
10258
class CCExprResolve;
 
10259
class CExprResolve;
 
10260
class WinIfExists;
 
10261
class WinImportHandler;
 
10262
class WinMacros;
 
10263
class WinAsm;
 
10264
class WinDeclSpecs;
 
10265
class WinMemberExplSpec;
 
10266
class WinTypeKeywords;
 
10267
class WinFriend;
 
10268
class ExtAC;
 
10269
class ExtACBuilderCoupling;
 
10270
class ExtACSyntaxCoupling;
 
10271
class ExtACTree;
 
10272
class ExtACKeywords;
 
10273
class ExtGnu;
 
10274
class PragmaOnceUnitState;
 
10275
class PragmaOnce;
 
10276
class CMatchSyntax;
 
10277
namespace Puma {
 
10278
 
 
10279
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10280
 
 
10281
#line 10282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10282
} // closed Puma
 
10283
 
 
10284
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10285
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10286
#include "CCExprResolveH.ah"
 
10287
#endif
 
10288
namespace Puma {
 
10289
 
 
10290
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10291
 
 
10292
#line 10293 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10293
} // closed Puma
 
10294
 
 
10295
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10296
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10297
#include "CExprResolveH.ah"
 
10298
#endif
 
10299
namespace Puma {
 
10300
 
 
10301
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10302
class CT_CallExpr : public CT_Call {
 
10303
#line 10304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10304
  friend class ::CCExprResolve;
 
10305
  friend class ::CExprResolve;
 
10306
  friend class ::WinIfExists;
 
10307
  friend class ::WinImportHandler;
 
10308
  friend class ::WinMacros;
 
10309
  friend class ::WinAsm;
 
10310
  friend class ::WinDeclSpecs;
 
10311
  friend class ::WinMemberExplSpec;
 
10312
  friend class ::WinTypeKeywords;
 
10313
  friend class ::WinFriend;
 
10314
  friend class ::ExtAC;
 
10315
  friend class ::ExtACBuilderCoupling;
 
10316
  friend class ::ExtACSyntaxCoupling;
 
10317
  friend class ::ExtACTree;
 
10318
  friend class ::ExtACKeywords;
 
10319
  friend class ::ExtGnu;
 
10320
  friend class ::PragmaOnceUnitState;
 
10321
  friend class ::PragmaOnce;
 
10322
  friend class ::CMatchSyntax;
 
10323
 
 
10324
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10325
 
 
10326
  CTree *sons[2]; // expr, args
 
10327
 
 
10328
public:
 
10329
  /** Constructor.
 
10330
   *  \param e The expression on which the call is invoked. */
 
10331
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
10332
  /** Constructor.
 
10333
   *  \param e The expression on which the call is invoked.
 
10334
   *  \param l The argument list of the call. */
 
10335
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
10336
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10337
  static const char *NodeId ();
 
10338
  /** Get the name of the node. Can be compared with NodeId(). */
 
10339
  const char *NodeName () const { return NodeId (); }
 
10340
  /** Get the number of sons. */
 
10341
  int Sons () const { return CTree::Sons (sons, 2); }
 
10342
  /** Get the n-th son.
 
10343
   *  \param n The index of the son.
 
10344
   *  \return The n-th son or NULL. */
 
10345
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
10346
  /** Replace a son.
 
10347
   *  \param old_son The son to replace.
 
10348
   *  \param new_son The new son. */
 
10349
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
10350
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
10351
  }
 
10352
  CTree *Expr () const { return sons[0]; }
 
10353
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
 
10354
   private:
 
10355
  typedef CT_CallExpr CCExprResolveExpr;
 
10356
 
 
10357
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10358
 public :
 
10359
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10360
  typedef CT_CallExpr CExprResolveExpr;
 
10361
 
 
10362
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10363
 public :
 
10364
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10365
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10366
};
 
10367
 
 
10368
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
10369
 *  Tree node representing a cast expression, e.g. (int)a. */
 
10370
 
 
10371
#line 10372 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10372
} // closed Puma
 
10373
class CCExprResolve;
 
10374
class CExprResolve;
 
10375
class WinIfExists;
 
10376
class WinImportHandler;
 
10377
class WinMacros;
 
10378
class WinAsm;
 
10379
class WinDeclSpecs;
 
10380
class WinMemberExplSpec;
 
10381
class WinTypeKeywords;
 
10382
class WinFriend;
 
10383
class ExtAC;
 
10384
class ExtACBuilderCoupling;
 
10385
class ExtACSyntaxCoupling;
 
10386
class ExtACTree;
 
10387
class ExtACKeywords;
 
10388
class ExtGnu;
 
10389
class PragmaOnceUnitState;
 
10390
class PragmaOnce;
 
10391
class CMatchSyntax;
 
10392
namespace Puma {
 
10393
 
 
10394
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10395
 
 
10396
#line 10397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10397
} // closed Puma
 
10398
 
 
10399
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10400
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10401
#include "CCExprResolveH.ah"
 
10402
#endif
 
10403
namespace Puma {
 
10404
 
 
10405
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10406
 
 
10407
#line 10408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10408
} // closed Puma
 
10409
 
 
10410
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10411
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10412
#include "CExprResolveH.ah"
 
10413
#endif
 
10414
namespace Puma {
 
10415
 
 
10416
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10417
class CT_CastExpr : public CT_Expression {
 
10418
#line 10419 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10419
  friend class ::CCExprResolve;
 
10420
  friend class ::CExprResolve;
 
10421
  friend class ::WinIfExists;
 
10422
  friend class ::WinImportHandler;
 
10423
  friend class ::WinMacros;
 
10424
  friend class ::WinAsm;
 
10425
  friend class ::WinDeclSpecs;
 
10426
  friend class ::WinMemberExplSpec;
 
10427
  friend class ::WinTypeKeywords;
 
10428
  friend class ::WinFriend;
 
10429
  friend class ::ExtAC;
 
10430
  friend class ::ExtACBuilderCoupling;
 
10431
  friend class ::ExtACSyntaxCoupling;
 
10432
  friend class ::ExtACTree;
 
10433
  friend class ::ExtACKeywords;
 
10434
  friend class ::ExtGnu;
 
10435
  friend class ::PragmaOnceUnitState;
 
10436
  friend class ::PragmaOnce;
 
10437
  friend class ::CMatchSyntax;
 
10438
 
 
10439
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10440
 
 
10441
  CTree *sons[4]; // open, type, close, expr
 
10442
 
 
10443
public:
 
10444
  /** Constructor.
 
10445
   *  \param o Left parenthesis of the type name.
 
10446
   *  \param t The type to cast to.
 
10447
   *  \param c Right parenthesis of the type name. 
 
10448
   *  \param e The expression to cast. */
 
10449
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
 
10450
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
10451
    AddSon (sons[2], c); AddSon (sons[3], e);
 
10452
  }
 
10453
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10454
  static const char *NodeId ();
 
10455
  /** Get the name of the node. Can be compared with NodeId(). */
 
10456
  const char *NodeName () const { return NodeId (); }
 
10457
  /** Get the number of sons. */
 
10458
  int Sons () const { return 4; }
 
10459
  /** Get the n-th son.
 
10460
   *  \param n The index of the son.
 
10461
   *  \return The n-th son or NULL. */
 
10462
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
10463
  /** Replace a son.
 
10464
   *  \param old_son The son to replace.
 
10465
   *  \param new_son The new son. */
 
10466
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
10467
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
10468
  }
 
10469
  /** Get the casted expression. */
 
10470
  CTree *Expr () const { return sons[3]; }
 
10471
  /** Get the type to cast to. */
 
10472
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
10473
   private:
 
10474
  typedef CT_CastExpr CCExprResolveExpr;
 
10475
 
 
10476
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10477
 public :
 
10478
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10479
  typedef CT_CastExpr CExprResolveExpr;
 
10480
 
 
10481
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10482
 public :
 
10483
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10484
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10485
};
 
10486
 
 
10487
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
10488
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
 
10489
 
 
10490
#line 10491 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10491
} // closed Puma
 
10492
class CCExprResolve;
 
10493
class CExprResolve;
 
10494
class WinIfExists;
 
10495
class WinImportHandler;
 
10496
class WinMacros;
 
10497
class WinAsm;
 
10498
class WinDeclSpecs;
 
10499
class WinMemberExplSpec;
 
10500
class WinTypeKeywords;
 
10501
class WinFriend;
 
10502
class ExtAC;
 
10503
class ExtACBuilderCoupling;
 
10504
class ExtACSyntaxCoupling;
 
10505
class ExtACTree;
 
10506
class ExtACKeywords;
 
10507
class ExtGnu;
 
10508
class PragmaOnceUnitState;
 
10509
class PragmaOnce;
 
10510
class CMatchSyntax;
 
10511
namespace Puma {
 
10512
 
 
10513
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10514
 
 
10515
#line 10516 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10516
} // closed Puma
 
10517
 
 
10518
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10519
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10520
#include "CCExprResolveH.ah"
 
10521
#endif
 
10522
namespace Puma {
 
10523
 
 
10524
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10525
 
 
10526
#line 10527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10527
} // closed Puma
 
10528
 
 
10529
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10530
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10531
#include "CExprResolveH.ah"
 
10532
#endif
 
10533
namespace Puma {
 
10534
 
 
10535
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10536
class CT_StaticCast : public CT_Expression {
 
10537
#line 10538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10538
  friend class ::CCExprResolve;
 
10539
  friend class ::CExprResolve;
 
10540
  friend class ::WinIfExists;
 
10541
  friend class ::WinImportHandler;
 
10542
  friend class ::WinMacros;
 
10543
  friend class ::WinAsm;
 
10544
  friend class ::WinDeclSpecs;
 
10545
  friend class ::WinMemberExplSpec;
 
10546
  friend class ::WinTypeKeywords;
 
10547
  friend class ::WinFriend;
 
10548
  friend class ::ExtAC;
 
10549
  friend class ::ExtACBuilderCoupling;
 
10550
  friend class ::ExtACSyntaxCoupling;
 
10551
  friend class ::ExtACTree;
 
10552
  friend class ::ExtACKeywords;
 
10553
  friend class ::ExtGnu;
 
10554
  friend class ::PragmaOnceUnitState;
 
10555
  friend class ::PragmaOnce;
 
10556
  friend class ::CMatchSyntax;
 
10557
 
 
10558
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10559
 
 
10560
  CTree *sons[5]; // cast, open, type, close, expr
 
10561
 
 
10562
public:
 
10563
  /** Constructor.
 
10564
   *  \param cst The cast operator, i.e. 'static_cast'.
 
10565
   *  \param o Left arrow bracket of the type name.
 
10566
   *  \param t The type to cast to.
 
10567
   *  \param c Right array bracket of the type name.
 
10568
   *  \param e The expression to cast. */
 
10569
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
 
10570
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
10571
    AddSon (sons[3], c); AddSon (sons[4], e);
 
10572
  }
 
10573
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10574
  static const char *NodeId ();
 
10575
  /** Get the name of the node. Can be compared with NodeId(). */
 
10576
  const char *NodeName () const { return NodeId (); }
 
10577
  /** Get the number of sons. */
 
10578
  int Sons () const { return 5; }
 
10579
  /** Get the n-th son.
 
10580
   *  \param n The index of the son.
 
10581
   *  \return The n-th son or NULL. */
 
10582
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
10583
  /** Replace a son.
 
10584
   *  \param old_son The son to replace.
 
10585
   *  \param new_son The new son. */
 
10586
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
10587
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
10588
  }
 
10589
  /** Get the casted expression. */
 
10590
  CTree *Expr () const { return sons[4]; }
 
10591
  /** Get the type to cast to. */
 
10592
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
10593
   private:
 
10594
  typedef CT_StaticCast CCExprResolveExpr;
 
10595
 
 
10596
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10597
 public :
 
10598
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10599
  typedef CT_StaticCast CExprResolveExpr;
 
10600
 
 
10601
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10602
 public :
 
10603
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10604
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10605
};
 
10606
 
 
10607
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
10608
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
 
10609
 
 
10610
#line 10611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10611
} // closed Puma
 
10612
class CCExprResolve;
 
10613
class CExprResolve;
 
10614
class WinIfExists;
 
10615
class WinImportHandler;
 
10616
class WinMacros;
 
10617
class WinAsm;
 
10618
class WinDeclSpecs;
 
10619
class WinMemberExplSpec;
 
10620
class WinTypeKeywords;
 
10621
class WinFriend;
 
10622
class ExtAC;
 
10623
class ExtACBuilderCoupling;
 
10624
class ExtACSyntaxCoupling;
 
10625
class ExtACTree;
 
10626
class ExtACKeywords;
 
10627
class ExtGnu;
 
10628
class PragmaOnceUnitState;
 
10629
class PragmaOnce;
 
10630
class CMatchSyntax;
 
10631
namespace Puma {
 
10632
 
 
10633
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10634
 
 
10635
#line 10636 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10636
} // closed Puma
 
10637
 
 
10638
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10639
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10640
#include "CCExprResolveH.ah"
 
10641
#endif
 
10642
namespace Puma {
 
10643
 
 
10644
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10645
 
 
10646
#line 10647 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10647
} // closed Puma
 
10648
 
 
10649
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10650
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10651
#include "CExprResolveH.ah"
 
10652
#endif
 
10653
namespace Puma {
 
10654
 
 
10655
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10656
class CT_ConstCast : public CT_StaticCast {
 
10657
#line 10658 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10658
  friend class ::CCExprResolve;
 
10659
  friend class ::CExprResolve;
 
10660
  friend class ::WinIfExists;
 
10661
  friend class ::WinImportHandler;
 
10662
  friend class ::WinMacros;
 
10663
  friend class ::WinAsm;
 
10664
  friend class ::WinDeclSpecs;
 
10665
  friend class ::WinMemberExplSpec;
 
10666
  friend class ::WinTypeKeywords;
 
10667
  friend class ::WinFriend;
 
10668
  friend class ::ExtAC;
 
10669
  friend class ::ExtACBuilderCoupling;
 
10670
  friend class ::ExtACSyntaxCoupling;
 
10671
  friend class ::ExtACTree;
 
10672
  friend class ::ExtACKeywords;
 
10673
  friend class ::ExtGnu;
 
10674
  friend class ::PragmaOnceUnitState;
 
10675
  friend class ::PragmaOnce;
 
10676
  friend class ::CMatchSyntax;
 
10677
 
 
10678
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10679
 
 
10680
public:
 
10681
  /** Constructor.
 
10682
   *  \param cst The cast operator, i.e. 'const_cast'.
 
10683
   *  \param o Left arrow bracket of the type name.
 
10684
   *  \param t The type to cast to.
 
10685
   *  \param c Right array bracket of the type name.
 
10686
   *  \param e The expression to cast. */
 
10687
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
10688
    CT_StaticCast (cst, o, t, c, e) {}
 
10689
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10690
  static const char *NodeId ();
 
10691
  /** Get the name of the node. Can be compared with NodeId(). */
 
10692
  const char *NodeName () const { return NodeId (); }
 
10693
   private:
 
10694
  typedef CT_ConstCast CCExprResolveExpr;
 
10695
 
 
10696
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10697
 public :
 
10698
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10699
  typedef CT_ConstCast CExprResolveExpr;
 
10700
 
 
10701
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10702
 public :
 
10703
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10704
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10705
};
 
10706
 
 
10707
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
10708
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
 
10709
 
 
10710
#line 10711 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10711
} // closed Puma
 
10712
class CCExprResolve;
 
10713
class CExprResolve;
 
10714
class WinIfExists;
 
10715
class WinImportHandler;
 
10716
class WinMacros;
 
10717
class WinAsm;
 
10718
class WinDeclSpecs;
 
10719
class WinMemberExplSpec;
 
10720
class WinTypeKeywords;
 
10721
class WinFriend;
 
10722
class ExtAC;
 
10723
class ExtACBuilderCoupling;
 
10724
class ExtACSyntaxCoupling;
 
10725
class ExtACTree;
 
10726
class ExtACKeywords;
 
10727
class ExtGnu;
 
10728
class PragmaOnceUnitState;
 
10729
class PragmaOnce;
 
10730
class CMatchSyntax;
 
10731
namespace Puma {
 
10732
 
 
10733
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10734
 
 
10735
#line 10736 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10736
} // closed Puma
 
10737
 
 
10738
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10739
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10740
#include "CCExprResolveH.ah"
 
10741
#endif
 
10742
namespace Puma {
 
10743
 
 
10744
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10745
 
 
10746
#line 10747 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10747
} // closed Puma
 
10748
 
 
10749
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10750
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10751
#include "CExprResolveH.ah"
 
10752
#endif
 
10753
namespace Puma {
 
10754
 
 
10755
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10756
class CT_ReintCast : public CT_StaticCast {
 
10757
#line 10758 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10758
  friend class ::CCExprResolve;
 
10759
  friend class ::CExprResolve;
 
10760
  friend class ::WinIfExists;
 
10761
  friend class ::WinImportHandler;
 
10762
  friend class ::WinMacros;
 
10763
  friend class ::WinAsm;
 
10764
  friend class ::WinDeclSpecs;
 
10765
  friend class ::WinMemberExplSpec;
 
10766
  friend class ::WinTypeKeywords;
 
10767
  friend class ::WinFriend;
 
10768
  friend class ::ExtAC;
 
10769
  friend class ::ExtACBuilderCoupling;
 
10770
  friend class ::ExtACSyntaxCoupling;
 
10771
  friend class ::ExtACTree;
 
10772
  friend class ::ExtACKeywords;
 
10773
  friend class ::ExtGnu;
 
10774
  friend class ::PragmaOnceUnitState;
 
10775
  friend class ::PragmaOnce;
 
10776
  friend class ::CMatchSyntax;
 
10777
 
 
10778
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10779
 
 
10780
public:
 
10781
  /** Constructor.
 
10782
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
10783
   *  \param o Left arrow bracket of the type name.
 
10784
   *  \param t The type to cast to.
 
10785
   *  \param c Right array bracket of the type name.
 
10786
   *  \param e The expression to cast. */
 
10787
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
10788
    CT_StaticCast (cst, o, t, c, e) {}
 
10789
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10790
  static const char *NodeId ();
 
10791
  /** Get the name of the node. Can be compared with NodeId(). */
 
10792
  const char *NodeName () const { return NodeId (); }
 
10793
   private:
 
10794
  typedef CT_ReintCast CCExprResolveExpr;
 
10795
 
 
10796
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10797
 public :
 
10798
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10799
  typedef CT_ReintCast CExprResolveExpr;
 
10800
 
 
10801
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10802
 public :
 
10803
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10804
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10805
};
 
10806
 
 
10807
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
10808
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
 
10809
 
 
10810
#line 10811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10811
} // closed Puma
 
10812
class CCExprResolve;
 
10813
class CExprResolve;
 
10814
class WinIfExists;
 
10815
class WinImportHandler;
 
10816
class WinMacros;
 
10817
class WinAsm;
 
10818
class WinDeclSpecs;
 
10819
class WinMemberExplSpec;
 
10820
class WinTypeKeywords;
 
10821
class WinFriend;
 
10822
class ExtAC;
 
10823
class ExtACBuilderCoupling;
 
10824
class ExtACSyntaxCoupling;
 
10825
class ExtACTree;
 
10826
class ExtACKeywords;
 
10827
class ExtGnu;
 
10828
class PragmaOnceUnitState;
 
10829
class PragmaOnce;
 
10830
class CMatchSyntax;
 
10831
namespace Puma {
 
10832
 
 
10833
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10834
 
 
10835
#line 10836 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10836
} // closed Puma
 
10837
 
 
10838
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10839
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10840
#include "CCExprResolveH.ah"
 
10841
#endif
 
10842
namespace Puma {
 
10843
 
 
10844
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10845
 
 
10846
#line 10847 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10847
} // closed Puma
 
10848
 
 
10849
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10850
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10851
#include "CExprResolveH.ah"
 
10852
#endif
 
10853
namespace Puma {
 
10854
 
 
10855
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10856
class CT_DynamicCast : public CT_StaticCast {
 
10857
#line 10858 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10858
  friend class ::CCExprResolve;
 
10859
  friend class ::CExprResolve;
 
10860
  friend class ::WinIfExists;
 
10861
  friend class ::WinImportHandler;
 
10862
  friend class ::WinMacros;
 
10863
  friend class ::WinAsm;
 
10864
  friend class ::WinDeclSpecs;
 
10865
  friend class ::WinMemberExplSpec;
 
10866
  friend class ::WinTypeKeywords;
 
10867
  friend class ::WinFriend;
 
10868
  friend class ::ExtAC;
 
10869
  friend class ::ExtACBuilderCoupling;
 
10870
  friend class ::ExtACSyntaxCoupling;
 
10871
  friend class ::ExtACTree;
 
10872
  friend class ::ExtACKeywords;
 
10873
  friend class ::ExtGnu;
 
10874
  friend class ::PragmaOnceUnitState;
 
10875
  friend class ::PragmaOnce;
 
10876
  friend class ::CMatchSyntax;
 
10877
 
 
10878
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10879
 
 
10880
public:
 
10881
  /** Constructor.
 
10882
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
10883
   *  \param o Left arrow bracket of the type name.
 
10884
   *  \param t The type to cast to.
 
10885
   *  \param c Right array bracket of the type name.
 
10886
   *  \param e The expression to cast. */
 
10887
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
10888
    CT_StaticCast (cst, o, t, c, e) {}
 
10889
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10890
  static const char *NodeId ();
 
10891
  /** Get the name of the node. Can be compared with NodeId(). */
 
10892
  const char *NodeName () const { return NodeId (); }
 
10893
   private:
 
10894
  typedef CT_DynamicCast CCExprResolveExpr;
 
10895
 
 
10896
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10897
 public :
 
10898
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10899
  typedef CT_DynamicCast CExprResolveExpr;
 
10900
 
 
10901
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10902
 public :
 
10903
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10904
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10905
};
 
10906
 
 
10907
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
10908
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
10909
 *  where 1.2 is implicitely casted from float to int. */
 
10910
 
 
10911
#line 10912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10912
} // closed Puma
 
10913
class CCExprResolve;
 
10914
class CExprResolve;
 
10915
class WinIfExists;
 
10916
class WinImportHandler;
 
10917
class WinMacros;
 
10918
class WinAsm;
 
10919
class WinDeclSpecs;
 
10920
class WinMemberExplSpec;
 
10921
class WinTypeKeywords;
 
10922
class WinFriend;
 
10923
class ExtAC;
 
10924
class ExtACBuilderCoupling;
 
10925
class ExtACSyntaxCoupling;
 
10926
class ExtACTree;
 
10927
class ExtACKeywords;
 
10928
class ExtGnu;
 
10929
class PragmaOnceUnitState;
 
10930
class PragmaOnce;
 
10931
class CMatchSyntax;
 
10932
namespace Puma {
 
10933
 
 
10934
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10935
 
 
10936
#line 10937 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10937
} // closed Puma
 
10938
 
 
10939
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10940
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10941
#include "CCExprResolveH.ah"
 
10942
#endif
 
10943
namespace Puma {
 
10944
 
 
10945
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10946
 
 
10947
#line 10948 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10948
} // closed Puma
 
10949
 
 
10950
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10951
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10952
#include "CExprResolveH.ah"
 
10953
#endif
 
10954
namespace Puma {
 
10955
 
 
10956
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10957
class CT_ImplicitCast : public CT_Expression {
 
10958
#line 10959 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
10959
  friend class ::CCExprResolve;
 
10960
  friend class ::CExprResolve;
 
10961
  friend class ::WinIfExists;
 
10962
  friend class ::WinImportHandler;
 
10963
  friend class ::WinMacros;
 
10964
  friend class ::WinAsm;
 
10965
  friend class ::WinDeclSpecs;
 
10966
  friend class ::WinMemberExplSpec;
 
10967
  friend class ::WinTypeKeywords;
 
10968
  friend class ::WinFriend;
 
10969
  friend class ::ExtAC;
 
10970
  friend class ::ExtACBuilderCoupling;
 
10971
  friend class ::ExtACSyntaxCoupling;
 
10972
  friend class ::ExtACTree;
 
10973
  friend class ::ExtACKeywords;
 
10974
  friend class ::ExtGnu;
 
10975
  friend class ::PragmaOnceUnitState;
 
10976
  friend class ::PragmaOnce;
 
10977
  friend class ::CMatchSyntax;
 
10978
 
 
10979
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10980
 
 
10981
  CTree *_expr; // casted expression
 
10982
 
 
10983
public:
 
10984
  /** Constructor.
 
10985
   *  \param e The expression that is implicitely casted. */
 
10986
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
10987
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10988
  static const char *NodeId ();
 
10989
  /** Get the name of the node. Can be compared with NodeId(). */
 
10990
  const char *NodeName () const { return NodeId (); }
 
10991
  /** Get the number of sons. */
 
10992
  int Sons () const { return 1; }
 
10993
  /** Get the n-th son.
 
10994
   *  \param n The index of the son.
 
10995
   *  \return The n-th son or NULL. */
 
10996
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
10997
  /** Get the casted expression. */
 
10998
  CTree *Expr () const { return _expr; }
 
10999
  /** Replace a son.
 
11000
   *  \param old_son The son to replace.
 
11001
   *  \param new_son The new son. */
 
11002
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
11003
   { CTree::ReplaceSon (_expr, old_son, new_son); }
 
11004
   private:
 
11005
  typedef CT_ImplicitCast CCExprResolveExpr;
 
11006
 
 
11007
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11008
 public :
 
11009
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
11010
  typedef CT_ImplicitCast CExprResolveExpr;
 
11011
 
 
11012
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11013
 public :
 
11014
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11015
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11016
};
 
11017
 
 
11018
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
11019
 *  Tree node representing a typeid expression, e.g. typeid(X). */
 
11020
 
 
11021
#line 11022 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11022
} // closed Puma
 
11023
class CCExprResolve;
 
11024
class CExprResolve;
 
11025
class WinIfExists;
 
11026
class WinImportHandler;
 
11027
class WinMacros;
 
11028
class WinAsm;
 
11029
class WinDeclSpecs;
 
11030
class WinMemberExplSpec;
 
11031
class WinTypeKeywords;
 
11032
class WinFriend;
 
11033
class ExtAC;
 
11034
class ExtACBuilderCoupling;
 
11035
class ExtACSyntaxCoupling;
 
11036
class ExtACTree;
 
11037
class ExtACKeywords;
 
11038
class ExtGnu;
 
11039
class PragmaOnceUnitState;
 
11040
class PragmaOnce;
 
11041
class CMatchSyntax;
 
11042
namespace Puma {
 
11043
 
 
11044
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11045
 
 
11046
#line 11047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11047
} // closed Puma
 
11048
 
 
11049
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11050
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11051
#include "CCExprResolveH.ah"
 
11052
#endif
 
11053
namespace Puma {
 
11054
 
 
11055
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11056
 
 
11057
#line 11058 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11058
} // closed Puma
 
11059
 
 
11060
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11061
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11062
#include "CExprResolveH.ah"
 
11063
#endif
 
11064
namespace Puma {
 
11065
 
 
11066
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11067
class CT_TypeidExpr : public CT_Expression {
 
11068
#line 11069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11069
  friend class ::CCExprResolve;
 
11070
  friend class ::CExprResolve;
 
11071
  friend class ::WinIfExists;
 
11072
  friend class ::WinImportHandler;
 
11073
  friend class ::WinMacros;
 
11074
  friend class ::WinAsm;
 
11075
  friend class ::WinDeclSpecs;
 
11076
  friend class ::WinMemberExplSpec;
 
11077
  friend class ::WinTypeKeywords;
 
11078
  friend class ::WinFriend;
 
11079
  friend class ::ExtAC;
 
11080
  friend class ::ExtACBuilderCoupling;
 
11081
  friend class ::ExtACSyntaxCoupling;
 
11082
  friend class ::ExtACTree;
 
11083
  friend class ::ExtACKeywords;
 
11084
  friend class ::ExtGnu;
 
11085
  friend class ::PragmaOnceUnitState;
 
11086
  friend class ::PragmaOnce;
 
11087
  friend class ::CMatchSyntax;
 
11088
 
 
11089
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11090
 
 
11091
  CTree *sons[4]; // typeid, open, type_id/expr, close
 
11092
 
 
11093
public:
 
11094
  /** Constructor.
 
11095
   *  \param tid The 'typeid' operator.
 
11096
   *  \param o The left parenthesis of the type name or expression.
 
11097
   *  \param e The expression or type name for which to get the type identifier.
 
11098
   *  \param c The right parenthesis of the type name or expression. */
 
11099
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
 
11100
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
11101
    AddSon (sons[2], e); AddSon (sons[3], c);
 
11102
  }
 
11103
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11104
  static const char *NodeId ();
 
11105
  /** Get the name of the node. Can be compared with NodeId(). */
 
11106
  const char *NodeName () const { return NodeId (); }
 
11107
  /** Get the number of sons. */
 
11108
  int Sons () const { return 4; }
 
11109
  /** Get the n-th son.
 
11110
   *  \param n The index of the son.
 
11111
   *  \return The n-th son or NULL. */
 
11112
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
11113
  /** Replace a son.
 
11114
   *  \param old_son The son to replace.
 
11115
   *  \param new_son The new son. */
 
11116
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
11117
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
11118
  }
 
11119
  /** Get the typeid argument, i.e. the expression or type name for
 
11120
   *  which to get the type identifier. */
 
11121
  CTree *Arg () const { return sons[2]; }
 
11122
   private:
 
11123
  typedef CT_TypeidExpr CCExprResolveExpr;
 
11124
 
 
11125
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11126
 public :
 
11127
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
11128
  typedef CT_TypeidExpr CExprResolveExpr;
 
11129
 
 
11130
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11131
 public :
 
11132
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11133
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11134
};
 
11135
 
 
11136
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
11137
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
 
11138
 
 
11139
#line 11140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11140
} // closed Puma
 
11141
class CCExprResolve;
 
11142
class CExprResolve;
 
11143
class WinIfExists;
 
11144
class WinImportHandler;
 
11145
class WinMacros;
 
11146
class WinAsm;
 
11147
class WinDeclSpecs;
 
11148
class WinMemberExplSpec;
 
11149
class WinTypeKeywords;
 
11150
class WinFriend;
 
11151
class ExtAC;
 
11152
class ExtACBuilderCoupling;
 
11153
class ExtACSyntaxCoupling;
 
11154
class ExtACTree;
 
11155
class ExtACKeywords;
 
11156
class ExtGnu;
 
11157
class PragmaOnceUnitState;
 
11158
class PragmaOnce;
 
11159
class CMatchSyntax;
 
11160
namespace Puma {
 
11161
 
 
11162
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11163
 
 
11164
#line 11165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11165
} // closed Puma
 
11166
 
 
11167
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11168
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11169
#include "CCExprResolveH.ah"
 
11170
#endif
 
11171
namespace Puma {
 
11172
 
 
11173
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11174
 
 
11175
#line 11176 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11176
} // closed Puma
 
11177
 
 
11178
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11179
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11180
#include "CExprResolveH.ah"
 
11181
#endif
 
11182
namespace Puma {
 
11183
 
 
11184
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11185
class CT_SizeofExpr : public CT_Expression {
 
11186
#line 11187 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11187
  friend class ::CCExprResolve;
 
11188
  friend class ::CExprResolve;
 
11189
  friend class ::WinIfExists;
 
11190
  friend class ::WinImportHandler;
 
11191
  friend class ::WinMacros;
 
11192
  friend class ::WinAsm;
 
11193
  friend class ::WinDeclSpecs;
 
11194
  friend class ::WinMemberExplSpec;
 
11195
  friend class ::WinTypeKeywords;
 
11196
  friend class ::WinFriend;
 
11197
  friend class ::ExtAC;
 
11198
  friend class ::ExtACBuilderCoupling;
 
11199
  friend class ::ExtACSyntaxCoupling;
 
11200
  friend class ::ExtACTree;
 
11201
  friend class ::ExtACKeywords;
 
11202
  friend class ::ExtGnu;
 
11203
  friend class ::PragmaOnceUnitState;
 
11204
  friend class ::PragmaOnce;
 
11205
  friend class ::CMatchSyntax;
 
11206
 
 
11207
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11208
 
 
11209
  CTree *sons[5]; // key, open, type, close, expr
 
11210
 
 
11211
public:
 
11212
  /** Constructor.
 
11213
   *  \param k The 'sizeof' keyword.
 
11214
   *  \param o Left parenthesis around the type name.
 
11215
   *  \param t The type from which to get the size.
 
11216
   *  \param c Right parenthesis around the type name. */
 
11217
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
 
11218
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
11219
    AddSon (sons[3], c); AddSon (sons[4], 0);
 
11220
  }
 
11221
  /** Constructor.
 
11222
   *  \param k The 'sizeof' keyword.
 
11223
   *  \param e The expression from which to get the size. */
 
11224
  CT_SizeofExpr (CTree *k, CTree *e) {
 
11225
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
11226
    AddSon (sons[3], 0); AddSon (sons[4], e);
 
11227
  }
 
11228
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11229
  static const char *NodeId ();
 
11230
  /** Get the name of the node. Can be compared with NodeId(). */
 
11231
  const char *NodeName () const { return NodeId (); }
 
11232
  /** Get the number of sons. */
 
11233
  int Sons () const { return CTree::Sons (sons, 5); }
 
11234
  /** Get the n-th son.
 
11235
   *  \param n The index of the son.
 
11236
   *  \return The n-th son or NULL. */
 
11237
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
11238
  /** Replace a son.
 
11239
   *  \param old_son The son to replace.
 
11240
   *  \param new_son The new son. */
 
11241
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
11242
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
11243
  }
 
11244
  /** Get the expression. */
 
11245
  CTree *Expr () const { return sons[4]; }
 
11246
  /** Get the type name. */
 
11247
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
11248
   private:
 
11249
  typedef CT_SizeofExpr CCExprResolveExpr;
 
11250
 
 
11251
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11252
 public :
 
11253
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
11254
  typedef CT_SizeofExpr CExprResolveExpr;
 
11255
 
 
11256
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11257
 public :
 
11258
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11259
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11260
};
 
11261
 
 
11262
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
11263
 *  Tree node representing an index designator, i.e. [1]. */
 
11264
 
 
11265
#line 11266 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11266
} // closed Puma
 
11267
class CCExprResolve;
 
11268
class CExprResolve;
 
11269
class WinIfExists;
 
11270
class WinImportHandler;
 
11271
class WinMacros;
 
11272
class WinAsm;
 
11273
class WinDeclSpecs;
 
11274
class WinMemberExplSpec;
 
11275
class WinTypeKeywords;
 
11276
class WinFriend;
 
11277
class ExtAC;
 
11278
class ExtACBuilderCoupling;
 
11279
class ExtACSyntaxCoupling;
 
11280
class ExtACTree;
 
11281
class ExtACKeywords;
 
11282
class ExtGnu;
 
11283
class PragmaOnceUnitState;
 
11284
class PragmaOnce;
 
11285
class CMatchSyntax;
 
11286
namespace Puma {
 
11287
 
 
11288
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11289
 
 
11290
#line 11291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11291
} // closed Puma
 
11292
 
 
11293
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11294
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11295
#include "CCExprResolveH.ah"
 
11296
#endif
 
11297
namespace Puma {
 
11298
 
 
11299
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11300
 
 
11301
#line 11302 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11302
} // closed Puma
 
11303
 
 
11304
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11305
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11306
#include "CExprResolveH.ah"
 
11307
#endif
 
11308
namespace Puma {
 
11309
 
 
11310
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11311
class CT_IndexDesignator : public CT_Expression {
 
11312
#line 11313 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11313
  friend class ::CCExprResolve;
 
11314
  friend class ::CExprResolve;
 
11315
  friend class ::WinIfExists;
 
11316
  friend class ::WinImportHandler;
 
11317
  friend class ::WinMacros;
 
11318
  friend class ::WinAsm;
 
11319
  friend class ::WinDeclSpecs;
 
11320
  friend class ::WinMemberExplSpec;
 
11321
  friend class ::WinTypeKeywords;
 
11322
  friend class ::WinFriend;
 
11323
  friend class ::ExtAC;
 
11324
  friend class ::ExtACBuilderCoupling;
 
11325
  friend class ::ExtACSyntaxCoupling;
 
11326
  friend class ::ExtACTree;
 
11327
  friend class ::ExtACKeywords;
 
11328
  friend class ::ExtGnu;
 
11329
  friend class ::PragmaOnceUnitState;
 
11330
  friend class ::PragmaOnce;
 
11331
  friend class ::CMatchSyntax;
 
11332
 
 
11333
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11334
 
 
11335
  CTree *sons[3]; // open, index, close
 
11336
 
 
11337
public:
 
11338
  /** Constructor.
 
11339
   *  \param o Left bracket of the index designator.
 
11340
   *  \param i The index expression.
 
11341
   *  \param c Right bracket of the index designator. */
 
11342
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
 
11343
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
 
11344
  }
 
11345
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11346
  static const char *NodeId ();
 
11347
  /** Get the name of the node. Can be compared with NodeId(). */
 
11348
  const char *NodeName () const { return NodeId (); }
 
11349
  /** Get the number of sons. */
 
11350
  int Sons () const { return 3; }
 
11351
  /** Get the n-th son.
 
11352
   *  \param n The index of the son.
 
11353
   *  \return The n-th son or NULL. */
 
11354
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
11355
  /** Replace a son.
 
11356
   *  \param old_son The son to replace.
 
11357
   *  \param new_son The new son. */
 
11358
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
11359
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
11360
  }
 
11361
   private:
 
11362
  typedef CT_IndexDesignator CCExprResolveExpr;
 
11363
 
 
11364
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11365
 public :
 
11366
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
11367
  typedef CT_IndexDesignator CExprResolveExpr;
 
11368
 
 
11369
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11370
 public :
 
11371
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11372
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11373
};
 
11374
 
 
11375
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
11376
 *  Tree node representing a member designator, e.g. .a. */
 
11377
 
 
11378
#line 11379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11379
} // closed Puma
 
11380
class CCExprResolve;
 
11381
class CExprResolve;
 
11382
class WinIfExists;
 
11383
class WinImportHandler;
 
11384
class WinMacros;
 
11385
class WinAsm;
 
11386
class WinDeclSpecs;
 
11387
class WinMemberExplSpec;
 
11388
class WinTypeKeywords;
 
11389
class WinFriend;
 
11390
class ExtAC;
 
11391
class ExtACBuilderCoupling;
 
11392
class ExtACSyntaxCoupling;
 
11393
class ExtACTree;
 
11394
class ExtACKeywords;
 
11395
class ExtGnu;
 
11396
class PragmaOnceUnitState;
 
11397
class PragmaOnce;
 
11398
class CMatchSyntax;
 
11399
namespace Puma {
 
11400
 
 
11401
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11402
 
 
11403
#line 11404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11404
} // closed Puma
 
11405
 
 
11406
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11407
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11408
#include "CCExprResolveH.ah"
 
11409
#endif
 
11410
namespace Puma {
 
11411
 
 
11412
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11413
 
 
11414
#line 11415 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11415
} // closed Puma
 
11416
 
 
11417
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11418
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11419
#include "CExprResolveH.ah"
 
11420
#endif
 
11421
namespace Puma {
 
11422
 
 
11423
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11424
class CT_MembDesignator : public CT_Expression {
 
11425
#line 11426 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11426
  friend class ::CCExprResolve;
 
11427
  friend class ::CExprResolve;
 
11428
  friend class ::WinIfExists;
 
11429
  friend class ::WinImportHandler;
 
11430
  friend class ::WinMacros;
 
11431
  friend class ::WinAsm;
 
11432
  friend class ::WinDeclSpecs;
 
11433
  friend class ::WinMemberExplSpec;
 
11434
  friend class ::WinTypeKeywords;
 
11435
  friend class ::WinFriend;
 
11436
  friend class ::ExtAC;
 
11437
  friend class ::ExtACBuilderCoupling;
 
11438
  friend class ::ExtACSyntaxCoupling;
 
11439
  friend class ::ExtACTree;
 
11440
  friend class ::ExtACKeywords;
 
11441
  friend class ::ExtGnu;
 
11442
  friend class ::PragmaOnceUnitState;
 
11443
  friend class ::PragmaOnce;
 
11444
  friend class ::CMatchSyntax;
 
11445
 
 
11446
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11447
 
 
11448
  CTree *sons[2]; // dot, member
 
11449
 
 
11450
public:
 
11451
  /** Constructor.
 
11452
   *  \param d The dot before the member name.
 
11453
   *  \param m The member name. */
 
11454
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
11455
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11456
  static const char *NodeId ();
 
11457
  /** Get the name of the node. Can be compared with NodeId(). */
 
11458
  const char *NodeName () const { return NodeId (); }
 
11459
  /** Get the number of sons. */
 
11460
  int Sons () const { return 2; }
 
11461
  /** Get the n-th son.
 
11462
   *  \param n The index of the son.
 
11463
   *  \return The n-th son or NULL. */
 
11464
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
11465
  /** Replace a son.
 
11466
   *  \param old_son The son to replace.
 
11467
   *  \param new_son The new son. */
 
11468
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
11469
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
11470
  }
 
11471
   private:
 
11472
  typedef CT_MembDesignator CCExprResolveExpr;
 
11473
 
 
11474
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11475
 public :
 
11476
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
11477
  typedef CT_MembDesignator CExprResolveExpr;
 
11478
 
 
11479
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11480
 public :
 
11481
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11482
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11483
};
 
11484
 
 
11485
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
11486
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
 
11487
 
 
11488
#line 11489 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11489
} // closed Puma
 
11490
class CCExprResolve;
 
11491
class CExprResolve;
 
11492
class WinIfExists;
 
11493
class WinImportHandler;
 
11494
class WinMacros;
 
11495
class WinAsm;
 
11496
class WinDeclSpecs;
 
11497
class WinMemberExplSpec;
 
11498
class WinTypeKeywords;
 
11499
class WinFriend;
 
11500
class ExtAC;
 
11501
class ExtACBuilderCoupling;
 
11502
class ExtACSyntaxCoupling;
 
11503
class ExtACTree;
 
11504
class ExtACKeywords;
 
11505
class ExtGnu;
 
11506
class PragmaOnceUnitState;
 
11507
class PragmaOnce;
 
11508
class CMatchSyntax;
 
11509
namespace Puma {
 
11510
 
 
11511
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11512
class CT_DesignatorSeq : public CT_List, public CSemValue {
 
11513
#line 11514 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11514
  friend class ::CCExprResolve;
 
11515
  friend class ::CExprResolve;
 
11516
  friend class ::WinIfExists;
 
11517
  friend class ::WinImportHandler;
 
11518
  friend class ::WinMacros;
 
11519
  friend class ::WinAsm;
 
11520
  friend class ::WinDeclSpecs;
 
11521
  friend class ::WinMemberExplSpec;
 
11522
  friend class ::WinTypeKeywords;
 
11523
  friend class ::WinFriend;
 
11524
  friend class ::ExtAC;
 
11525
  friend class ::ExtACBuilderCoupling;
 
11526
  friend class ::ExtACSyntaxCoupling;
 
11527
  friend class ::ExtACTree;
 
11528
  friend class ::ExtACKeywords;
 
11529
  friend class ::ExtGnu;
 
11530
  friend class ::PragmaOnceUnitState;
 
11531
  friend class ::PragmaOnce;
 
11532
  friend class ::CMatchSyntax;
 
11533
 
 
11534
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11535
 
 
11536
public:
 
11537
  /** Constructor.
 
11538
   *  \param size Initial number of designators. */
 
11539
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
11540
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11541
  static const char *NodeId ();
 
11542
  /** Get the name of the node. Can be compared with NodeId(). */
 
11543
  const char *NodeName () const { return NodeId (); }
 
11544
 
 
11545
  /** Get the type of the entity to initialize. */
 
11546
  CTypeInfo *Type () const { return type; }
 
11547
  /** Get the value of the entity to initialize. */
 
11548
  CExprValue *Value () const { return value; }
 
11549
  /** Get the semantic value object. */
 
11550
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
11551
};
 
11552
 
 
11553
/*****************************************************************************/
 
11554
/*                                                                           */
 
11555
/*                         Declaration specifiers                            */
 
11556
/*                                                                           */
 
11557
/*****************************************************************************/
 
11558
 
 
11559
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
11560
 *  Base class for all tree nodes representing declaration specifiers. */
 
11561
 
 
11562
#line 11563 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11563
} // closed Puma
 
11564
class CCExprResolve;
 
11565
class CExprResolve;
 
11566
class WinIfExists;
 
11567
class WinImportHandler;
 
11568
class WinMacros;
 
11569
class WinAsm;
 
11570
class WinDeclSpecs;
 
11571
class WinMemberExplSpec;
 
11572
class WinTypeKeywords;
 
11573
class WinFriend;
 
11574
class ExtAC;
 
11575
class ExtACBuilderCoupling;
 
11576
class ExtACSyntaxCoupling;
 
11577
class ExtACTree;
 
11578
class ExtACKeywords;
 
11579
class ExtGnu;
 
11580
class PragmaOnceUnitState;
 
11581
class PragmaOnce;
 
11582
class CMatchSyntax;
 
11583
namespace Puma {
 
11584
 
 
11585
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11586
class CT_DeclSpec : public CTree {
 
11587
#line 11588 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11588
  friend class ::CCExprResolve;
 
11589
  friend class ::CExprResolve;
 
11590
  friend class ::WinIfExists;
 
11591
  friend class ::WinImportHandler;
 
11592
  friend class ::WinMacros;
 
11593
  friend class ::WinAsm;
 
11594
  friend class ::WinDeclSpecs;
 
11595
  friend class ::WinMemberExplSpec;
 
11596
  friend class ::WinTypeKeywords;
 
11597
  friend class ::WinFriend;
 
11598
  friend class ::ExtAC;
 
11599
  friend class ::ExtACBuilderCoupling;
 
11600
  friend class ::ExtACSyntaxCoupling;
 
11601
  friend class ::ExtACTree;
 
11602
  friend class ::ExtACKeywords;
 
11603
  friend class ::ExtGnu;
 
11604
  friend class ::PragmaOnceUnitState;
 
11605
  friend class ::PragmaOnce;
 
11606
  friend class ::CMatchSyntax;
 
11607
 
 
11608
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11609
 
 
11610
protected:
 
11611
  /** Constructor. */
 
11612
  CT_DeclSpec () {}
 
11613
};
 
11614
 
 
11615
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
11616
 *  Tree node representing a primitive declaration specifier. */
 
11617
 
 
11618
#line 11619 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11619
} // closed Puma
 
11620
class CCExprResolve;
 
11621
class CExprResolve;
 
11622
class WinIfExists;
 
11623
class WinImportHandler;
 
11624
class WinMacros;
 
11625
class WinAsm;
 
11626
class WinDeclSpecs;
 
11627
class WinMemberExplSpec;
 
11628
class WinTypeKeywords;
 
11629
class WinFriend;
 
11630
class ExtAC;
 
11631
class ExtACBuilderCoupling;
 
11632
class ExtACSyntaxCoupling;
 
11633
class ExtACTree;
 
11634
class ExtACKeywords;
 
11635
class ExtGnu;
 
11636
class PragmaOnceUnitState;
 
11637
class PragmaOnce;
 
11638
class CMatchSyntax;
 
11639
namespace Puma {
 
11640
 
 
11641
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11642
class CT_PrimDeclSpec : public CT_DeclSpec {
 
11643
#line 11644 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11644
  friend class ::CCExprResolve;
 
11645
  friend class ::CExprResolve;
 
11646
  friend class ::WinIfExists;
 
11647
  friend class ::WinImportHandler;
 
11648
  friend class ::WinMacros;
 
11649
  friend class ::WinAsm;
 
11650
  friend class ::WinDeclSpecs;
 
11651
  friend class ::WinMemberExplSpec;
 
11652
  friend class ::WinTypeKeywords;
 
11653
  friend class ::WinFriend;
 
11654
  friend class ::ExtAC;
 
11655
  friend class ::ExtACBuilderCoupling;
 
11656
  friend class ::ExtACSyntaxCoupling;
 
11657
  friend class ::ExtACTree;
 
11658
  friend class ::ExtACKeywords;
 
11659
  friend class ::ExtGnu;
 
11660
  friend class ::PragmaOnceUnitState;
 
11661
  friend class ::PragmaOnce;
 
11662
  friend class ::CMatchSyntax;
 
11663
 
 
11664
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11665
 
 
11666
public:
 
11667
  /** Declaration specifier types. */
 
11668
  enum Type { 
 
11669
    PDS_FRIEND,    /** friend */
 
11670
    PDS_TYPEDEF,   /** typedef */
 
11671
    PDS_AUTO,      /** auto */
 
11672
    PDS_REGISTER,  /** register */
 
11673
    PDS_STATIC,    /** static */
 
11674
    PDS_EXTERN,    /** extern */
 
11675
    PDS_MUTABLE,   /** mutable */
 
11676
    PDS_INLINE,    /** inline */
 
11677
    PDS_VIRTUAL,   /** virtual */
 
11678
    PDS_EXPLICIT,  /** explicit */
 
11679
    PDS_CONST,     /** const */
 
11680
    PDS_VOLATILE,  /** volatile */
 
11681
    PDS_RESTRICT,  /** restrict */
 
11682
    PDS_CHAR,      /** char */
 
11683
    PDS_WCHAR_T,   /** wchar_t */
 
11684
    PDS_BOOL,      /** bool */
 
11685
    PDS_SHORT,     /** short */
 
11686
    PDS_INT,       /** int */
 
11687
    PDS_LONG,      /** long */
 
11688
    PDS_SIGNED,    /** signed */
 
11689
    PDS_UNSIGNED,  /** unsigned */
 
11690
    PDS_FLOAT,     /** float */
 
11691
    PDS_DOUBLE,    /** double */
 
11692
    PDS_VOID,      /** void */
 
11693
    // AspectC++ specific type specifier
 
11694
    PDS_UNKNOWN_T, /** unknown_t */
 
11695
    // Win specific declaration specifiers
 
11696
    PDS_CDECL,     /** __cdecl */
 
11697
    PDS_STDCALL,   /** __stdcall */
 
11698
    PDS_FASTCALL,  /** __fastcall */
 
11699
    PDS_INT64,     /** __int64 */
 
11700
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
11701
    PDS_NUM        /** Number of declaration specifier types. */
 
11702
  };
 
11703
 
 
11704
private:
 
11705
  Type _type;
 
11706
  CTree *_token; // has to be a CT_Token
 
11707
 
 
11708
  void determine_type ();
 
11709
 
 
11710
public:
 
11711
  /** Constructor.
 
11712
   *  \param t The token containing the declaration specifier. */
 
11713
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
11714
  /** Constructor.
 
11715
   *  \param t The declaration specifier type. */
 
11716
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
11717
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11718
  static const char *NodeId ();
 
11719
  /** Get the name of the node. Can be compared with NodeId(). */
 
11720
  const char *NodeName () const { return NodeId (); }
 
11721
  /** Get the number of sons. */
 
11722
  int Sons () const { return _token ? 1 : 0; }
 
11723
  /** Get the n-th son.
 
11724
   *  \param n The index of the son.
 
11725
   *  \return The n-th son or NULL. */
 
11726
  CTree *Son (int n) const 
 
11727
   { return (n == 0) ? _token : (CTree*)0; }
 
11728
  /** Get the textual representation of the declaration specifier.
 
11729
   *  \return The string representation or " ". */
 
11730
  const char *SpecText () const 
 
11731
   { return _token ? _token->token ()->text () : " "; }
 
11732
  /** Get the declaration specifier type. */
 
11733
  Type SpecType () const { return _type; }
 
11734
  /** Number of declaration specifier types. */
 
11735
  static const int NumTypes = PDS_NUM;
 
11736
  /** Replace a son.
 
11737
   *  \param old_son The son to replace.
 
11738
   *  \param new_son The new son. */
 
11739
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
11740
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
11741
    determine_type ();
 
11742
  }
 
11743
};
 
11744
 
 
11745
/** \class CT_NamedType CTree.h Puma/CTree.h
 
11746
 *  Tree node representing a named type, e.g. (int*)a. 
 
11747
 *  where int* is a type with a generated name. */
 
11748
 
 
11749
#line 11750 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11750
} // closed Puma
 
11751
class CCExprResolve;
 
11752
class CExprResolve;
 
11753
class WinIfExists;
 
11754
class WinImportHandler;
 
11755
class WinMacros;
 
11756
class WinAsm;
 
11757
class WinDeclSpecs;
 
11758
class WinMemberExplSpec;
 
11759
class WinTypeKeywords;
 
11760
class WinFriend;
 
11761
class ExtAC;
 
11762
class ExtACBuilderCoupling;
 
11763
class ExtACSyntaxCoupling;
 
11764
class ExtACTree;
 
11765
class ExtACKeywords;
 
11766
class ExtGnu;
 
11767
class PragmaOnceUnitState;
 
11768
class PragmaOnce;
 
11769
class CMatchSyntax;
 
11770
namespace Puma {
 
11771
 
 
11772
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11773
class CT_NamedType : public CT_DeclSpec, public CSemObject {
 
11774
#line 11775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11775
  friend class ::CCExprResolve;
 
11776
  friend class ::CExprResolve;
 
11777
  friend class ::WinIfExists;
 
11778
  friend class ::WinImportHandler;
 
11779
  friend class ::WinMacros;
 
11780
  friend class ::WinAsm;
 
11781
  friend class ::WinDeclSpecs;
 
11782
  friend class ::WinMemberExplSpec;
 
11783
  friend class ::WinTypeKeywords;
 
11784
  friend class ::WinFriend;
 
11785
  friend class ::ExtAC;
 
11786
  friend class ::ExtACBuilderCoupling;
 
11787
  friend class ::ExtACSyntaxCoupling;
 
11788
  friend class ::ExtACTree;
 
11789
  friend class ::ExtACKeywords;
 
11790
  friend class ::ExtGnu;
 
11791
  friend class ::PragmaOnceUnitState;
 
11792
  friend class ::PragmaOnce;
 
11793
  friend class ::CMatchSyntax;
 
11794
 
 
11795
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11796
 
 
11797
  CTree *sons[2]; // declspecs, declarator
 
11798
 
 
11799
public:
 
11800
  /** Constructor.
 
11801
   *  \param dss The declaration specifier sequence of the type.
 
11802
   *  \param d The type declarator. */
 
11803
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
11804
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11805
  static const char *NodeId ();
 
11806
  /** Get the name of the node. Can be compared with NodeId(). */
 
11807
  const char *NodeName () const { return NodeId (); }
 
11808
  /** Get the number of sons. */
 
11809
  int Sons () const { return CTree::Sons (sons, 2); }
 
11810
  /** Get the n-th son.
 
11811
   *  \param n The index of the son.
 
11812
   *  \return The n-th son or NULL. */
 
11813
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
11814
  /** Get the declarator. */
 
11815
  CTree *Declarator () const { return sons[1]; }
 
11816
  /** Replace a son.
 
11817
   *  \param old_son The son to replace.
 
11818
   *  \param new_son The new son. */
 
11819
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
11820
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
11821
  }
 
11822
  /** Get the semantic information object. */
 
11823
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
11824
};
 
11825
      
 
11826
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
11827
 *  Tree node representing a class specifier, e.g. class X. */
 
11828
 
 
11829
#line 11830 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11830
} // closed Puma
 
11831
class CCExprResolve;
 
11832
class CExprResolve;
 
11833
class WinIfExists;
 
11834
class WinImportHandler;
 
11835
class WinMacros;
 
11836
class WinAsm;
 
11837
class WinDeclSpecs;
 
11838
class WinMemberExplSpec;
 
11839
class WinTypeKeywords;
 
11840
class WinFriend;
 
11841
class ExtAC;
 
11842
class ExtACBuilderCoupling;
 
11843
class ExtACSyntaxCoupling;
 
11844
class ExtACTree;
 
11845
class ExtACKeywords;
 
11846
class ExtGnu;
 
11847
class PragmaOnceUnitState;
 
11848
class PragmaOnce;
 
11849
class CMatchSyntax;
 
11850
namespace Puma {
 
11851
 
 
11852
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11853
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
 
11854
#line 11855 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11855
  friend class ::CCExprResolve;
 
11856
  friend class ::CExprResolve;
 
11857
  friend class ::WinIfExists;
 
11858
  friend class ::WinImportHandler;
 
11859
  friend class ::WinMacros;
 
11860
  friend class ::WinAsm;
 
11861
  friend class ::WinDeclSpecs;
 
11862
  friend class ::WinMemberExplSpec;
 
11863
  friend class ::WinTypeKeywords;
 
11864
  friend class ::WinFriend;
 
11865
  friend class ::ExtAC;
 
11866
  friend class ::ExtACBuilderCoupling;
 
11867
  friend class ::ExtACSyntaxCoupling;
 
11868
  friend class ::ExtACTree;
 
11869
  friend class ::ExtACKeywords;
 
11870
  friend class ::ExtGnu;
 
11871
  friend class ::PragmaOnceUnitState;
 
11872
  friend class ::PragmaOnce;
 
11873
  friend class ::CMatchSyntax;
 
11874
 
 
11875
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11876
 
 
11877
  CTree *sons[2]; // key, name
 
11878
  
 
11879
public:
 
11880
  /** Constructor.
 
11881
   *  \param k The 'class' or 'struct' keyword.
 
11882
   *  \param n The class name. */
 
11883
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
11884
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11885
  static const char *NodeId ();
 
11886
  /** Get the name of the node. Can be compared with NodeId(). */
 
11887
  const char *NodeName () const { return NodeId (); }
 
11888
  /** Get the number of sons. */
 
11889
  int Sons () const { return 2; }
 
11890
  /** Get the n-th son.
 
11891
   *  \param n The index of the son.
 
11892
   *  \return The n-th son or NULL. */
 
11893
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
11894
  /** Get the class name. */
 
11895
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
11896
  /** Get the semantic information object. */
 
11897
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
11898
  /** Replace a son.
 
11899
   *  \param old_son The son to replace.
 
11900
   *  \param new_son The new son. */
 
11901
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
11902
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
11903
  }
 
11904
};
 
11905
 
 
11906
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
11907
 *  Tree node representing a union specifier, e.g. union X. */
 
11908
 
 
11909
#line 11910 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11910
} // closed Puma
 
11911
class CCExprResolve;
 
11912
class CExprResolve;
 
11913
class WinIfExists;
 
11914
class WinImportHandler;
 
11915
class WinMacros;
 
11916
class WinAsm;
 
11917
class WinDeclSpecs;
 
11918
class WinMemberExplSpec;
 
11919
class WinTypeKeywords;
 
11920
class WinFriend;
 
11921
class ExtAC;
 
11922
class ExtACBuilderCoupling;
 
11923
class ExtACSyntaxCoupling;
 
11924
class ExtACTree;
 
11925
class ExtACKeywords;
 
11926
class ExtGnu;
 
11927
class PragmaOnceUnitState;
 
11928
class PragmaOnce;
 
11929
class CMatchSyntax;
 
11930
namespace Puma {
 
11931
 
 
11932
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11933
class CT_UnionSpec : public CT_ClassSpec {
 
11934
#line 11935 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11935
  friend class ::CCExprResolve;
 
11936
  friend class ::CExprResolve;
 
11937
  friend class ::WinIfExists;
 
11938
  friend class ::WinImportHandler;
 
11939
  friend class ::WinMacros;
 
11940
  friend class ::WinAsm;
 
11941
  friend class ::WinDeclSpecs;
 
11942
  friend class ::WinMemberExplSpec;
 
11943
  friend class ::WinTypeKeywords;
 
11944
  friend class ::WinFriend;
 
11945
  friend class ::ExtAC;
 
11946
  friend class ::ExtACBuilderCoupling;
 
11947
  friend class ::ExtACSyntaxCoupling;
 
11948
  friend class ::ExtACTree;
 
11949
  friend class ::ExtACKeywords;
 
11950
  friend class ::ExtGnu;
 
11951
  friend class ::PragmaOnceUnitState;
 
11952
  friend class ::PragmaOnce;
 
11953
  friend class ::CMatchSyntax;
 
11954
 
 
11955
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11956
 
 
11957
public:
 
11958
  /** Constructor.
 
11959
   *  \param k The 'union' keyword.
 
11960
   *  \param n The name of the union. */
 
11961
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
11962
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11963
  static const char *NodeId ();
 
11964
  /** Get the name of the node. Can be compared with NodeId(). */
 
11965
  const char *NodeName () const { return NodeId (); }
 
11966
};
 
11967
 
 
11968
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
11969
 *  Tree node representing an enumeration specifier, e.g. enum X. */
 
11970
 
 
11971
#line 11972 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11972
} // closed Puma
 
11973
class CCExprResolve;
 
11974
class CExprResolve;
 
11975
class WinIfExists;
 
11976
class WinImportHandler;
 
11977
class WinMacros;
 
11978
class WinAsm;
 
11979
class WinDeclSpecs;
 
11980
class WinMemberExplSpec;
 
11981
class WinTypeKeywords;
 
11982
class WinFriend;
 
11983
class ExtAC;
 
11984
class ExtACBuilderCoupling;
 
11985
class ExtACSyntaxCoupling;
 
11986
class ExtACTree;
 
11987
class ExtACKeywords;
 
11988
class ExtGnu;
 
11989
class PragmaOnceUnitState;
 
11990
class PragmaOnce;
 
11991
class CMatchSyntax;
 
11992
namespace Puma {
 
11993
 
 
11994
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11995
class CT_EnumSpec : public CT_ClassSpec {
 
11996
#line 11997 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
11997
  friend class ::CCExprResolve;
 
11998
  friend class ::CExprResolve;
 
11999
  friend class ::WinIfExists;
 
12000
  friend class ::WinImportHandler;
 
12001
  friend class ::WinMacros;
 
12002
  friend class ::WinAsm;
 
12003
  friend class ::WinDeclSpecs;
 
12004
  friend class ::WinMemberExplSpec;
 
12005
  friend class ::WinTypeKeywords;
 
12006
  friend class ::WinFriend;
 
12007
  friend class ::ExtAC;
 
12008
  friend class ::ExtACBuilderCoupling;
 
12009
  friend class ::ExtACSyntaxCoupling;
 
12010
  friend class ::ExtACTree;
 
12011
  friend class ::ExtACKeywords;
 
12012
  friend class ::ExtGnu;
 
12013
  friend class ::PragmaOnceUnitState;
 
12014
  friend class ::PragmaOnce;
 
12015
  friend class ::CMatchSyntax;
 
12016
 
 
12017
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12018
 
 
12019
public:
 
12020
  /** Constructor.
 
12021
   *  \param k The 'enum' keyword. 
 
12022
   *  \param n The name of the enumeration. */
 
12023
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
12024
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12025
  static const char *NodeId ();
 
12026
  /** Get the name of the node. Can be compared with NodeId(). */
 
12027
  const char *NodeName () const { return NodeId (); }
 
12028
};
 
12029
 
 
12030
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
12031
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
 
12032
 
 
12033
#line 12034 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12034
} // closed Puma
 
12035
class CCExprResolve;
 
12036
class CExprResolve;
 
12037
class WinIfExists;
 
12038
class WinImportHandler;
 
12039
class WinMacros;
 
12040
class WinAsm;
 
12041
class WinDeclSpecs;
 
12042
class WinMemberExplSpec;
 
12043
class WinTypeKeywords;
 
12044
class WinFriend;
 
12045
class ExtAC;
 
12046
class ExtACBuilderCoupling;
 
12047
class ExtACSyntaxCoupling;
 
12048
class ExtACTree;
 
12049
class ExtACKeywords;
 
12050
class ExtGnu;
 
12051
class PragmaOnceUnitState;
 
12052
class PragmaOnce;
 
12053
class CMatchSyntax;
 
12054
namespace Puma {
 
12055
 
 
12056
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12057
class CT_ExceptionSpec : public CT_DeclSpec {
 
12058
#line 12059 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12059
  friend class ::CCExprResolve;
 
12060
  friend class ::CExprResolve;
 
12061
  friend class ::WinIfExists;
 
12062
  friend class ::WinImportHandler;
 
12063
  friend class ::WinMacros;
 
12064
  friend class ::WinAsm;
 
12065
  friend class ::WinDeclSpecs;
 
12066
  friend class ::WinMemberExplSpec;
 
12067
  friend class ::WinTypeKeywords;
 
12068
  friend class ::WinFriend;
 
12069
  friend class ::ExtAC;
 
12070
  friend class ::ExtACBuilderCoupling;
 
12071
  friend class ::ExtACSyntaxCoupling;
 
12072
  friend class ::ExtACTree;
 
12073
  friend class ::ExtACKeywords;
 
12074
  friend class ::ExtGnu;
 
12075
  friend class ::PragmaOnceUnitState;
 
12076
  friend class ::PragmaOnce;
 
12077
  friend class ::CMatchSyntax;
 
12078
 
 
12079
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12080
 
 
12081
  CTree *sons[2]; // throw, type_id_list
 
12082
  
 
12083
public:
 
12084
  /** Constructor.
 
12085
   *  \param k The 'throw' keyword.
 
12086
   *  \param l The type list for the exception type to throw. */
 
12087
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
12088
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12089
  static const char *NodeId ();
 
12090
  /** Get the name of the node. Can be compared with NodeId(). */
 
12091
  const char *NodeName () const { return NodeId (); }
 
12092
  /** Get the number of sons. */
 
12093
  int Sons () const { return 2; }
 
12094
  /** Get the n-th son.
 
12095
   *  \param n The index of the son.
 
12096
   *  \return The n-th son or NULL. */
 
12097
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
12098
  /** Get the exception type list. */
 
12099
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
12100
  /** Replace a son.
 
12101
   *  \param old_son The son to replace.
 
12102
   *  \param new_son The new son. */
 
12103
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12104
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
12105
  }
 
12106
};
 
12107
 
 
12108
/*****************************************************************************/
 
12109
/*                                                                           */
 
12110
/*                              Declarations                                 */
 
12111
/*                                                                           */
 
12112
/*****************************************************************************/
 
12113
 
 
12114
/** \class CT_Decl CTree.h Puma/CTree.h
 
12115
 *  Base class for all tree nodes representing declarations. */
 
12116
 
 
12117
#line 12118 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12118
} // closed Puma
 
12119
class CCExprResolve;
 
12120
class CExprResolve;
 
12121
class WinIfExists;
 
12122
class WinImportHandler;
 
12123
class WinMacros;
 
12124
class WinAsm;
 
12125
class WinDeclSpecs;
 
12126
class WinMemberExplSpec;
 
12127
class WinTypeKeywords;
 
12128
class WinFriend;
 
12129
class ExtAC;
 
12130
class ExtACBuilderCoupling;
 
12131
class ExtACSyntaxCoupling;
 
12132
class ExtACTree;
 
12133
class ExtACKeywords;
 
12134
class ExtGnu;
 
12135
class PragmaOnceUnitState;
 
12136
class PragmaOnce;
 
12137
class CMatchSyntax;
 
12138
namespace Puma {
 
12139
 
 
12140
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12141
class CT_Decl : public CTree {
 
12142
#line 12143 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12143
  friend class ::CCExprResolve;
 
12144
  friend class ::CExprResolve;
 
12145
  friend class ::WinIfExists;
 
12146
  friend class ::WinImportHandler;
 
12147
  friend class ::WinMacros;
 
12148
  friend class ::WinAsm;
 
12149
  friend class ::WinDeclSpecs;
 
12150
  friend class ::WinMemberExplSpec;
 
12151
  friend class ::WinTypeKeywords;
 
12152
  friend class ::WinFriend;
 
12153
  friend class ::ExtAC;
 
12154
  friend class ::ExtACBuilderCoupling;
 
12155
  friend class ::ExtACSyntaxCoupling;
 
12156
  friend class ::ExtACTree;
 
12157
  friend class ::ExtACKeywords;
 
12158
  friend class ::ExtGnu;
 
12159
  friend class ::PragmaOnceUnitState;
 
12160
  friend class ::PragmaOnce;
 
12161
  friend class ::CMatchSyntax;
 
12162
 
 
12163
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12164
 
 
12165
  CT_LinkageSpec *_linkage;
 
12166
  
 
12167
protected:
 
12168
  /** Constructor. */
 
12169
  CT_Decl () : _linkage (0) {}
 
12170
  
 
12171
public:
 
12172
  /** Set the linkage of the declared entity.
 
12173
   *  \param l The linkage specifiers. */
 
12174
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
12175
  /** Get the linkage specifiers. */
 
12176
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
12177
  /** Get this. */
 
12178
  virtual CT_Decl *IsDeclaration () { return this; }
 
12179
};
 
12180
 
 
12181
/** \class CT_Program CTree.h Puma/CTree.h
 
12182
 *  Root node of C/C++ syntax tree. */
 
12183
 
 
12184
#line 12185 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12185
} // closed Puma
 
12186
class CCExprResolve;
 
12187
class CExprResolve;
 
12188
class WinIfExists;
 
12189
class WinImportHandler;
 
12190
class WinMacros;
 
12191
class WinAsm;
 
12192
class WinDeclSpecs;
 
12193
class WinMemberExplSpec;
 
12194
class WinTypeKeywords;
 
12195
class WinFriend;
 
12196
class ExtAC;
 
12197
class ExtACBuilderCoupling;
 
12198
class ExtACSyntaxCoupling;
 
12199
class ExtACTree;
 
12200
class ExtACKeywords;
 
12201
class ExtGnu;
 
12202
class PragmaOnceUnitState;
 
12203
class PragmaOnce;
 
12204
class CMatchSyntax;
 
12205
namespace Puma {
 
12206
 
 
12207
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12208
class CT_Program : public CT_DeclList, public CSemScope {
 
12209
#line 12210 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12210
  friend class ::CCExprResolve;
 
12211
  friend class ::CExprResolve;
 
12212
  friend class ::WinIfExists;
 
12213
  friend class ::WinImportHandler;
 
12214
  friend class ::WinMacros;
 
12215
  friend class ::WinAsm;
 
12216
  friend class ::WinDeclSpecs;
 
12217
  friend class ::WinMemberExplSpec;
 
12218
  friend class ::WinTypeKeywords;
 
12219
  friend class ::WinFriend;
 
12220
  friend class ::ExtAC;
 
12221
  friend class ::ExtACBuilderCoupling;
 
12222
  friend class ::ExtACSyntaxCoupling;
 
12223
  friend class ::ExtACTree;
 
12224
  friend class ::ExtACKeywords;
 
12225
  friend class ::ExtGnu;
 
12226
  friend class ::PragmaOnceUnitState;
 
12227
  friend class ::PragmaOnce;
 
12228
  friend class ::CMatchSyntax;
 
12229
 
 
12230
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12231
 
 
12232
public:
 
12233
  /** Constructor.
 
12234
   *  \param size The initial number of declarations in the program.
 
12235
   *  \param incr The initial increment count. */
 
12236
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
12237
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12238
  static const char *NodeId ();
 
12239
  /** Get the name of the node. Can be compared with NodeId(). */
 
12240
  const char *NodeName () const { return NodeId (); }
 
12241
  /** Get the semantic scope object. */
 
12242
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
12243
};
 
12244
   
 
12245
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
12246
 *  Tree node representing an object declaration, e.g. int *i. */
 
12247
 
 
12248
#line 12249 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12249
} // closed Puma
 
12250
class CCExprResolve;
 
12251
class CExprResolve;
 
12252
class WinIfExists;
 
12253
class WinImportHandler;
 
12254
class WinMacros;
 
12255
class WinAsm;
 
12256
class WinDeclSpecs;
 
12257
class WinMemberExplSpec;
 
12258
class WinTypeKeywords;
 
12259
class WinFriend;
 
12260
class ExtAC;
 
12261
class ExtACBuilderCoupling;
 
12262
class ExtACSyntaxCoupling;
 
12263
class ExtACTree;
 
12264
class ExtACKeywords;
 
12265
class ExtGnu;
 
12266
class PragmaOnceUnitState;
 
12267
class PragmaOnce;
 
12268
class CMatchSyntax;
 
12269
namespace Puma {
 
12270
 
 
12271
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12272
class CT_ObjDecl : public CT_Decl {
 
12273
#line 12274 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12274
  friend class ::CCExprResolve;
 
12275
  friend class ::CExprResolve;
 
12276
  friend class ::WinIfExists;
 
12277
  friend class ::WinImportHandler;
 
12278
  friend class ::WinMacros;
 
12279
  friend class ::WinAsm;
 
12280
  friend class ::WinDeclSpecs;
 
12281
  friend class ::WinMemberExplSpec;
 
12282
  friend class ::WinTypeKeywords;
 
12283
  friend class ::WinFriend;
 
12284
  friend class ::ExtAC;
 
12285
  friend class ::ExtACBuilderCoupling;
 
12286
  friend class ::ExtACSyntaxCoupling;
 
12287
  friend class ::ExtACTree;
 
12288
  friend class ::ExtACKeywords;
 
12289
  friend class ::ExtGnu;
 
12290
  friend class ::PragmaOnceUnitState;
 
12291
  friend class ::PragmaOnce;
 
12292
  friend class ::CMatchSyntax;
 
12293
 
 
12294
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12295
 
 
12296
  CTree *sons[3]; // declspecs, declarators, colon
 
12297
 
 
12298
public:
 
12299
  /** Constructor.
 
12300
   *  \param dsl The declaration specifier sequence.
 
12301
   *  \param dl The declarator list.
 
12302
   *  \param c Optional colon. */
 
12303
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
 
12304
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
 
12305
  }
 
12306
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12307
  static const char *NodeId ();
 
12308
  /** Get the name of the node. Can be compared with NodeId(). */
 
12309
  const char *NodeName () const { return NodeId (); }
 
12310
  /** Get the number of sons. */
 
12311
  int Sons () const { return 3; }
 
12312
  /** Get the n-th son.
 
12313
   *  \param n The index of the son.
 
12314
   *  \return The n-th son or NULL. */
 
12315
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
12316
  /** Get the declaration specifier sequence. */
 
12317
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
12318
  /** Get the declarator list. */
 
12319
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
12320
  /** Replace a son.
 
12321
   *  \param old_son The son to replace.
 
12322
   *  \param new_son The new son. */
 
12323
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12324
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
12325
  }
 
12326
};
 
12327
 
 
12328
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
12329
 *  Tree node representing a template declaration. */
 
12330
 
 
12331
#line 12332 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12332
} // closed Puma
 
12333
class CCExprResolve;
 
12334
class CExprResolve;
 
12335
class WinIfExists;
 
12336
class WinImportHandler;
 
12337
class WinMacros;
 
12338
class WinAsm;
 
12339
class WinDeclSpecs;
 
12340
class WinMemberExplSpec;
 
12341
class WinTypeKeywords;
 
12342
class WinFriend;
 
12343
class ExtAC;
 
12344
class ExtACBuilderCoupling;
 
12345
class ExtACSyntaxCoupling;
 
12346
class ExtACTree;
 
12347
class ExtACKeywords;
 
12348
class ExtGnu;
 
12349
class PragmaOnceUnitState;
 
12350
class PragmaOnce;
 
12351
class CMatchSyntax;
 
12352
namespace Puma {
 
12353
 
 
12354
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12355
class CT_TemplateDecl : public CT_Decl, public CSemScope {
 
12356
#line 12357 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12357
  friend class ::CCExprResolve;
 
12358
  friend class ::CExprResolve;
 
12359
  friend class ::WinIfExists;
 
12360
  friend class ::WinImportHandler;
 
12361
  friend class ::WinMacros;
 
12362
  friend class ::WinAsm;
 
12363
  friend class ::WinDeclSpecs;
 
12364
  friend class ::WinMemberExplSpec;
 
12365
  friend class ::WinTypeKeywords;
 
12366
  friend class ::WinFriend;
 
12367
  friend class ::ExtAC;
 
12368
  friend class ::ExtACBuilderCoupling;
 
12369
  friend class ::ExtACSyntaxCoupling;
 
12370
  friend class ::ExtACTree;
 
12371
  friend class ::ExtACKeywords;
 
12372
  friend class ::ExtGnu;
 
12373
  friend class ::PragmaOnceUnitState;
 
12374
  friend class ::PragmaOnce;
 
12375
  friend class ::CMatchSyntax;
 
12376
 
 
12377
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12378
 
 
12379
  CTree *sons[3]; // export, param_list, decl
 
12380
 
 
12381
public:
 
12382
  /** Constructor.
 
12383
   *  \param e Optional 'export' keyword. 
 
12384
   *  \param p The template parameter list.
 
12385
   *  \param d The class or function declaration. */
 
12386
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
 
12387
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
 
12388
  }
 
12389
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12390
  static const char *NodeId ();
 
12391
  /** Get the name of the node. Can be compared with NodeId(). */
 
12392
  const char *NodeName () const { return NodeId (); }
 
12393
  /** Get the number of sons. */
 
12394
  int Sons () const { return CTree::Sons (sons, 3); }
 
12395
  /** Get the n-th son.
 
12396
   *  \param n The index of the son.
 
12397
   *  \return The n-th son or NULL. */
 
12398
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
12399
  /** Replace a son.
 
12400
   *  \param old_son The son to replace.
 
12401
   *  \param new_son The new son. */
 
12402
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12403
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
 
12404
  }
 
12405
  /** Get the 'export' keyword. */
 
12406
  CTree *Export () const { return sons[0]; }
 
12407
  /** Get the template parameter list. */
 
12408
  CT_TemplateParamList *Parameters () const { 
 
12409
    return (CT_TemplateParamList*)sons[1]; 
 
12410
  }
 
12411
  /** Get the class or function declaration. */
 
12412
  CTree *Declaration () const { return sons[2]; }
 
12413
  /** Get the semantic scope object. */
 
12414
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
12415
};
 
12416
 
 
12417
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
12418
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
 
12419
 
 
12420
#line 12421 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12421
} // closed Puma
 
12422
class CCExprResolve;
 
12423
class CExprResolve;
 
12424
class WinIfExists;
 
12425
class WinImportHandler;
 
12426
class WinMacros;
 
12427
class WinAsm;
 
12428
class WinDeclSpecs;
 
12429
class WinMemberExplSpec;
 
12430
class WinTypeKeywords;
 
12431
class WinFriend;
 
12432
class ExtAC;
 
12433
class ExtACBuilderCoupling;
 
12434
class ExtACSyntaxCoupling;
 
12435
class ExtACTree;
 
12436
class ExtACKeywords;
 
12437
class ExtGnu;
 
12438
class PragmaOnceUnitState;
 
12439
class PragmaOnce;
 
12440
class CMatchSyntax;
 
12441
namespace Puma {
 
12442
 
 
12443
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12444
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
 
12445
#line 12446 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12446
  friend class ::CCExprResolve;
 
12447
  friend class ::CExprResolve;
 
12448
  friend class ::WinIfExists;
 
12449
  friend class ::WinImportHandler;
 
12450
  friend class ::WinMacros;
 
12451
  friend class ::WinAsm;
 
12452
  friend class ::WinDeclSpecs;
 
12453
  friend class ::WinMemberExplSpec;
 
12454
  friend class ::WinTypeKeywords;
 
12455
  friend class ::WinFriend;
 
12456
  friend class ::ExtAC;
 
12457
  friend class ::ExtACBuilderCoupling;
 
12458
  friend class ::ExtACSyntaxCoupling;
 
12459
  friend class ::ExtACTree;
 
12460
  friend class ::ExtACKeywords;
 
12461
  friend class ::ExtGnu;
 
12462
  friend class ::PragmaOnceUnitState;
 
12463
  friend class ::PragmaOnce;
 
12464
  friend class ::CMatchSyntax;
 
12465
 
 
12466
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12467
 
 
12468
protected:
 
12469
  /** Constructor. */
 
12470
  CT_TemplateParamDecl () {}
 
12471
  
 
12472
public:
 
12473
  /** Get the template default argument. */
 
12474
  virtual CT_ExprList *DefaultArgument () const = 0;
 
12475
  /** Get the semantic information object. */
 
12476
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
12477
};
 
12478
 
 
12479
 
 
12480
#line 12481 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12481
} // closed Puma
 
12482
class CCExprResolve;
 
12483
class CExprResolve;
 
12484
class WinIfExists;
 
12485
class WinImportHandler;
 
12486
class WinMacros;
 
12487
class WinAsm;
 
12488
class WinDeclSpecs;
 
12489
class WinMemberExplSpec;
 
12490
class WinTypeKeywords;
 
12491
class WinFriend;
 
12492
class ExtAC;
 
12493
class ExtACBuilderCoupling;
 
12494
class ExtACSyntaxCoupling;
 
12495
class ExtACTree;
 
12496
class ExtACKeywords;
 
12497
class ExtGnu;
 
12498
class PragmaOnceUnitState;
 
12499
class PragmaOnce;
 
12500
class CMatchSyntax;
 
12501
namespace Puma {
 
12502
 
 
12503
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12504
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
 
12505
#line 12506 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12506
  friend class ::CCExprResolve;
 
12507
  friend class ::CExprResolve;
 
12508
  friend class ::WinIfExists;
 
12509
  friend class ::WinImportHandler;
 
12510
  friend class ::WinMacros;
 
12511
  friend class ::WinAsm;
 
12512
  friend class ::WinDeclSpecs;
 
12513
  friend class ::WinMemberExplSpec;
 
12514
  friend class ::WinTypeKeywords;
 
12515
  friend class ::WinFriend;
 
12516
  friend class ::ExtAC;
 
12517
  friend class ::ExtACBuilderCoupling;
 
12518
  friend class ::ExtACSyntaxCoupling;
 
12519
  friend class ::ExtACTree;
 
12520
  friend class ::ExtACKeywords;
 
12521
  friend class ::ExtGnu;
 
12522
  friend class ::PragmaOnceUnitState;
 
12523
  friend class ::PragmaOnce;
 
12524
  friend class ::CMatchSyntax;
 
12525
 
 
12526
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12527
 
 
12528
  CTree *sons[3]; // declspecs, declarator, init
 
12529
 
 
12530
public:
 
12531
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
 
12532
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
 
12533
  }
 
12534
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12535
  static const char *NodeId ();
 
12536
  /** Get the name of the node. Can be compared with NodeId(). */
 
12537
  const char *NodeName () const { return NodeId (); }
 
12538
  /** Get the number of sons. */
 
12539
  int Sons () const { return CTree::Sons (sons, 3); }
 
12540
  /** Get the n-th son.
 
12541
   *  \param n The index of the son.
 
12542
   *  \return The n-th son or NULL. */
 
12543
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
12544
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
12545
  CTree *Declarator () const { return sons[1]; }
 
12546
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
 
12547
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
12548
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
12549
  /** Replace a son.
 
12550
   *  \param old_son The son to replace.
 
12551
   *  \param new_son The new son. */
 
12552
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12553
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
12554
  }
 
12555
};
 
12556
 
 
12557
 
 
12558
#line 12559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12559
} // closed Puma
 
12560
class CCExprResolve;
 
12561
class CExprResolve;
 
12562
class WinIfExists;
 
12563
class WinImportHandler;
 
12564
class WinMacros;
 
12565
class WinAsm;
 
12566
class WinDeclSpecs;
 
12567
class WinMemberExplSpec;
 
12568
class WinTypeKeywords;
 
12569
class WinFriend;
 
12570
class ExtAC;
 
12571
class ExtACBuilderCoupling;
 
12572
class ExtACSyntaxCoupling;
 
12573
class ExtACTree;
 
12574
class ExtACKeywords;
 
12575
class ExtGnu;
 
12576
class PragmaOnceUnitState;
 
12577
class PragmaOnce;
 
12578
class CMatchSyntax;
 
12579
namespace Puma {
 
12580
 
 
12581
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12582
class CT_TypeParamDecl : public CT_TemplateParamDecl {
 
12583
#line 12584 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12584
  friend class ::CCExprResolve;
 
12585
  friend class ::CExprResolve;
 
12586
  friend class ::WinIfExists;
 
12587
  friend class ::WinImportHandler;
 
12588
  friend class ::WinMacros;
 
12589
  friend class ::WinAsm;
 
12590
  friend class ::WinDeclSpecs;
 
12591
  friend class ::WinMemberExplSpec;
 
12592
  friend class ::WinTypeKeywords;
 
12593
  friend class ::WinFriend;
 
12594
  friend class ::ExtAC;
 
12595
  friend class ::ExtACBuilderCoupling;
 
12596
  friend class ::ExtACSyntaxCoupling;
 
12597
  friend class ::ExtACTree;
 
12598
  friend class ::ExtACKeywords;
 
12599
  friend class ::ExtGnu;
 
12600
  friend class ::PragmaOnceUnitState;
 
12601
  friend class ::PragmaOnce;
 
12602
  friend class ::CMatchSyntax;
 
12603
 
 
12604
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12605
 
 
12606
  CTree *sons[4]; // params, key, id, init
 
12607
 
 
12608
public:
 
12609
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
 
12610
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
12611
    AddSon (sons[2], id); AddSon (sons[3], i);
 
12612
  }
 
12613
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12614
  static const char *NodeId ();
 
12615
  /** Get the name of the node. Can be compared with NodeId(). */
 
12616
  const char *NodeName () const { return NodeId (); }
 
12617
  /** Get the number of sons. */
 
12618
  int Sons () const { return CTree::Sons (sons, 4); }
 
12619
  /** Get the n-th son.
 
12620
   *  \param n The index of the son.
 
12621
   *  \return The n-th son or NULL. */
 
12622
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
12623
  CT_TemplateParamList *Parameters () const { 
 
12624
    return (CT_TemplateParamList*)sons[0]; 
 
12625
  }
 
12626
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
12627
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
 
12628
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
12629
  /** Replace a son.
 
12630
   *  \param old_son The son to replace.
 
12631
   *  \param new_son The new son. */
 
12632
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12633
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
12634
  }
 
12635
};
 
12636
 
 
12637
 
 
12638
#line 12639 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12639
} // closed Puma
 
12640
class CCExprResolve;
 
12641
class CExprResolve;
 
12642
class WinIfExists;
 
12643
class WinImportHandler;
 
12644
class WinMacros;
 
12645
class WinAsm;
 
12646
class WinDeclSpecs;
 
12647
class WinMemberExplSpec;
 
12648
class WinTypeKeywords;
 
12649
class WinFriend;
 
12650
class ExtAC;
 
12651
class ExtACBuilderCoupling;
 
12652
class ExtACSyntaxCoupling;
 
12653
class ExtACTree;
 
12654
class ExtACKeywords;
 
12655
class ExtGnu;
 
12656
class PragmaOnceUnitState;
 
12657
class PragmaOnce;
 
12658
class CMatchSyntax;
 
12659
namespace Puma {
 
12660
 
 
12661
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12662
class CT_EnumDef : public CT_Decl, public CSemObject {
 
12663
#line 12664 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12664
  friend class ::CCExprResolve;
 
12665
  friend class ::CExprResolve;
 
12666
  friend class ::WinIfExists;
 
12667
  friend class ::WinImportHandler;
 
12668
  friend class ::WinMacros;
 
12669
  friend class ::WinAsm;
 
12670
  friend class ::WinDeclSpecs;
 
12671
  friend class ::WinMemberExplSpec;
 
12672
  friend class ::WinTypeKeywords;
 
12673
  friend class ::WinFriend;
 
12674
  friend class ::ExtAC;
 
12675
  friend class ::ExtACBuilderCoupling;
 
12676
  friend class ::ExtACSyntaxCoupling;
 
12677
  friend class ::ExtACTree;
 
12678
  friend class ::ExtACKeywords;
 
12679
  friend class ::ExtGnu;
 
12680
  friend class ::PragmaOnceUnitState;
 
12681
  friend class ::PragmaOnce;
 
12682
  friend class ::CMatchSyntax;
 
12683
 
 
12684
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12685
 
 
12686
  CTree *sons[3]; // key, name, enumerators
 
12687
 
 
12688
public:
 
12689
  CT_EnumDef (CTree *k, CTree *n) {
 
12690
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
 
12691
  }
 
12692
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12693
  static const char *NodeId ();
 
12694
  /** Get the name of the node. Can be compared with NodeId(). */
 
12695
  const char *NodeName () const { return NodeId (); }
 
12696
  /** Get the number of sons. */
 
12697
  int Sons () const { return CTree::Sons (sons, 3); }
 
12698
  /** Get the n-th son.
 
12699
   *  \param n The index of the son.
 
12700
   *  \return The n-th son or NULL. */
 
12701
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
12702
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
12703
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
 
12704
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
12705
  /** Replace a son.
 
12706
   *  \param old_son The son to replace.
 
12707
   *  \param new_son The new son. */
 
12708
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12709
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
12710
  }
 
12711
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
12712
};
 
12713
 
 
12714
 
 
12715
#line 12716 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12716
} // closed Puma
 
12717
class CCExprResolve;
 
12718
class CExprResolve;
 
12719
class WinIfExists;
 
12720
class WinImportHandler;
 
12721
class WinMacros;
 
12722
class WinAsm;
 
12723
class WinDeclSpecs;
 
12724
class WinMemberExplSpec;
 
12725
class WinTypeKeywords;
 
12726
class WinFriend;
 
12727
class ExtAC;
 
12728
class ExtACBuilderCoupling;
 
12729
class ExtACSyntaxCoupling;
 
12730
class ExtACTree;
 
12731
class ExtACKeywords;
 
12732
class ExtGnu;
 
12733
class PragmaOnceUnitState;
 
12734
class PragmaOnce;
 
12735
class CMatchSyntax;
 
12736
namespace Puma {
 
12737
 
 
12738
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12739
class CT_Enumerator : public CT_Decl, public CSemObject {
 
12740
#line 12741 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12741
  friend class ::CCExprResolve;
 
12742
  friend class ::CExprResolve;
 
12743
  friend class ::WinIfExists;
 
12744
  friend class ::WinImportHandler;
 
12745
  friend class ::WinMacros;
 
12746
  friend class ::WinAsm;
 
12747
  friend class ::WinDeclSpecs;
 
12748
  friend class ::WinMemberExplSpec;
 
12749
  friend class ::WinTypeKeywords;
 
12750
  friend class ::WinFriend;
 
12751
  friend class ::ExtAC;
 
12752
  friend class ::ExtACBuilderCoupling;
 
12753
  friend class ::ExtACSyntaxCoupling;
 
12754
  friend class ::ExtACTree;
 
12755
  friend class ::ExtACKeywords;
 
12756
  friend class ::ExtGnu;
 
12757
  friend class ::PragmaOnceUnitState;
 
12758
  friend class ::PragmaOnce;
 
12759
  friend class ::CMatchSyntax;
 
12760
 
 
12761
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12762
 
 
12763
  CTree *sons[2]; // name, init
 
12764
 
 
12765
public:
 
12766
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
12767
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12768
  static const char *NodeId ();
 
12769
  /** Get the name of the node. Can be compared with NodeId(). */
 
12770
  const char *NodeName () const { return NodeId (); }
 
12771
  /** Get the number of sons. */
 
12772
  int Sons () const { return CTree::Sons (sons, 2); }
 
12773
  /** Get the n-th son.
 
12774
   *  \param n The index of the son.
 
12775
   *  \return The n-th son or NULL. */
 
12776
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
12777
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
12778
  void Initializer (CTree *i) { AddSon (sons[1], i); }
 
12779
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
12780
  /** Replace a son.
 
12781
   *  \param old_son The son to replace.
 
12782
   *  \param new_son The new son. */
 
12783
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12784
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
 
12785
  }
 
12786
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
12787
};
 
12788
 
 
12789
 
 
12790
#line 12791 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12791
} // closed Puma
 
12792
class CCExprResolve;
 
12793
class CExprResolve;
 
12794
class WinIfExists;
 
12795
class WinImportHandler;
 
12796
class WinMacros;
 
12797
class WinAsm;
 
12798
class WinDeclSpecs;
 
12799
class WinMemberExplSpec;
 
12800
class WinTypeKeywords;
 
12801
class WinFriend;
 
12802
class ExtAC;
 
12803
class ExtACBuilderCoupling;
 
12804
class ExtACSyntaxCoupling;
 
12805
class ExtACTree;
 
12806
class ExtACKeywords;
 
12807
class ExtGnu;
 
12808
class PragmaOnceUnitState;
 
12809
class PragmaOnce;
 
12810
class CMatchSyntax;
 
12811
namespace Puma {
 
12812
 
 
12813
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12814
class CT_FctDef : public CT_Decl, public CSemObject {
 
12815
#line 12816 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12816
  friend class ::CCExprResolve;
 
12817
  friend class ::CExprResolve;
 
12818
  friend class ::WinIfExists;
 
12819
  friend class ::WinImportHandler;
 
12820
  friend class ::WinMacros;
 
12821
  friend class ::WinAsm;
 
12822
  friend class ::WinDeclSpecs;
 
12823
  friend class ::WinMemberExplSpec;
 
12824
  friend class ::WinTypeKeywords;
 
12825
  friend class ::WinFriend;
 
12826
  friend class ::ExtAC;
 
12827
  friend class ::ExtACBuilderCoupling;
 
12828
  friend class ::ExtACSyntaxCoupling;
 
12829
  friend class ::ExtACTree;
 
12830
  friend class ::ExtACKeywords;
 
12831
  friend class ::ExtGnu;
 
12832
  friend class ::PragmaOnceUnitState;
 
12833
  friend class ::PragmaOnce;
 
12834
  friend class ::CMatchSyntax;
 
12835
 
 
12836
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12837
 
 
12838
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
 
12839
 
 
12840
public:
 
12841
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
 
12842
             CTree *b, CTree *hs) {
 
12843
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
12844
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
12845
    AddSon (sons[6], hs); 
 
12846
  }
 
12847
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12848
  static const char *NodeId ();
 
12849
  /** Get the name of the node. Can be compared with NodeId(). */
 
12850
  const char *NodeName () const { return NodeId (); }
 
12851
  /** Get the number of sons. */
 
12852
  int Sons () const { return CTree::Sons (sons, 7); }
 
12853
  /** Get the n-th son.
 
12854
   *  \param n The index of the son.
 
12855
   *  \return The n-th son or NULL. */
 
12856
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
12857
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
12858
  CTree *Declarator () const { return sons[1]; }
 
12859
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
 
12860
  CTree *CtorInit () const { return sons[3]; }
 
12861
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
 
12862
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
 
12863
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
 
12864
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
12865
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
12866
  void Body (CTree *b) { AddSon (sons[5], b); }
 
12867
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
 
12868
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
12869
    AddSon (sons[5], b); AddSon (sons[6], h);
 
12870
  }
 
12871
  /** Replace a son.
 
12872
   *  \param old_son The son to replace.
 
12873
   *  \param new_son The new son. */
 
12874
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12875
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
12876
  }
 
12877
};
 
12878
 
 
12879
 
 
12880
#line 12881 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12881
} // closed Puma
 
12882
class CCExprResolve;
 
12883
class CExprResolve;
 
12884
class WinIfExists;
 
12885
class WinImportHandler;
 
12886
class WinMacros;
 
12887
class WinAsm;
 
12888
class WinDeclSpecs;
 
12889
class WinMemberExplSpec;
 
12890
class WinTypeKeywords;
 
12891
class WinFriend;
 
12892
class ExtAC;
 
12893
class ExtACBuilderCoupling;
 
12894
class ExtACSyntaxCoupling;
 
12895
class ExtACTree;
 
12896
class ExtACKeywords;
 
12897
class ExtGnu;
 
12898
class PragmaOnceUnitState;
 
12899
class PragmaOnce;
 
12900
class CMatchSyntax;
 
12901
namespace Puma {
 
12902
 
 
12903
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12904
class CT_AsmDef : public CT_Decl {
 
12905
#line 12906 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12906
  friend class ::CCExprResolve;
 
12907
  friend class ::CExprResolve;
 
12908
  friend class ::WinIfExists;
 
12909
  friend class ::WinImportHandler;
 
12910
  friend class ::WinMacros;
 
12911
  friend class ::WinAsm;
 
12912
  friend class ::WinDeclSpecs;
 
12913
  friend class ::WinMemberExplSpec;
 
12914
  friend class ::WinTypeKeywords;
 
12915
  friend class ::WinFriend;
 
12916
  friend class ::ExtAC;
 
12917
  friend class ::ExtACBuilderCoupling;
 
12918
  friend class ::ExtACSyntaxCoupling;
 
12919
  friend class ::ExtACTree;
 
12920
  friend class ::ExtACKeywords;
 
12921
  friend class ::ExtGnu;
 
12922
  friend class ::PragmaOnceUnitState;
 
12923
  friend class ::PragmaOnce;
 
12924
  friend class ::CMatchSyntax;
 
12925
 
 
12926
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12927
 
 
12928
  CTree *sons[5]; // asm, open, str, close, semi_colon
 
12929
 
 
12930
public:
 
12931
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
 
12932
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
12933
    AddSon (sons[3], c); AddSon (sons[4], sc); 
 
12934
  }
 
12935
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12936
  static const char *NodeId ();
 
12937
  /** Get the name of the node. Can be compared with NodeId(). */
 
12938
  const char *NodeName () const { return NodeId (); }
 
12939
  /** Get the number of sons. */
 
12940
  int Sons () const { return 5; }
 
12941
  /** Get the n-th son.
 
12942
   *  \param n The index of the son.
 
12943
   *  \return The n-th son or NULL. */
 
12944
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
12945
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
12946
  /** Replace a son.
 
12947
   *  \param old_son The son to replace.
 
12948
   *  \param new_son The new son. */
 
12949
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12950
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
12951
  }
 
12952
};
 
12953
 
 
12954
 
 
12955
#line 12956 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12956
} // closed Puma
 
12957
class CCExprResolve;
 
12958
class CExprResolve;
 
12959
class WinIfExists;
 
12960
class WinImportHandler;
 
12961
class WinMacros;
 
12962
class WinAsm;
 
12963
class WinDeclSpecs;
 
12964
class WinMemberExplSpec;
 
12965
class WinTypeKeywords;
 
12966
class WinFriend;
 
12967
class ExtAC;
 
12968
class ExtACBuilderCoupling;
 
12969
class ExtACSyntaxCoupling;
 
12970
class ExtACTree;
 
12971
class ExtACKeywords;
 
12972
class ExtGnu;
 
12973
class PragmaOnceUnitState;
 
12974
class PragmaOnce;
 
12975
class CMatchSyntax;
 
12976
namespace Puma {
 
12977
 
 
12978
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12979
class CT_Handler : public CT_Decl, public CSemScope {
 
12980
#line 12981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
12981
  friend class ::CCExprResolve;
 
12982
  friend class ::CExprResolve;
 
12983
  friend class ::WinIfExists;
 
12984
  friend class ::WinImportHandler;
 
12985
  friend class ::WinMacros;
 
12986
  friend class ::WinAsm;
 
12987
  friend class ::WinDeclSpecs;
 
12988
  friend class ::WinMemberExplSpec;
 
12989
  friend class ::WinTypeKeywords;
 
12990
  friend class ::WinFriend;
 
12991
  friend class ::ExtAC;
 
12992
  friend class ::ExtACBuilderCoupling;
 
12993
  friend class ::ExtACSyntaxCoupling;
 
12994
  friend class ::ExtACTree;
 
12995
  friend class ::ExtACKeywords;
 
12996
  friend class ::ExtGnu;
 
12997
  friend class ::PragmaOnceUnitState;
 
12998
  friend class ::PragmaOnce;
 
12999
  friend class ::CMatchSyntax;
 
13000
 
 
13001
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13002
 
 
13003
  CTree *sons[3]; // catch, exception_decl, stmt
 
13004
 
 
13005
public:
 
13006
  CT_Handler (CTree *c, CTree *e, CTree *s) {
 
13007
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
 
13008
  }
 
13009
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13010
  static const char *NodeId ();
 
13011
  /** Get the name of the node. Can be compared with NodeId(). */
 
13012
  const char *NodeName () const { return NodeId (); }
 
13013
  /** Get the number of sons. */
 
13014
  int Sons () const { return 3; }
 
13015
  /** Get the n-th son.
 
13016
   *  \param n The index of the son.
 
13017
   *  \return The n-th son or NULL. */
 
13018
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
13019
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
13020
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
13021
  /** Replace a son.
 
13022
   *  \param old_son The son to replace.
 
13023
   *  \param new_son The new son. */
 
13024
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13025
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
13026
  }
 
13027
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
13028
};
 
13029
 
 
13030
 
 
13031
#line 13032 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13032
} // closed Puma
 
13033
class CCExprResolve;
 
13034
class CExprResolve;
 
13035
class WinIfExists;
 
13036
class WinImportHandler;
 
13037
class WinMacros;
 
13038
class WinAsm;
 
13039
class WinDeclSpecs;
 
13040
class WinMemberExplSpec;
 
13041
class WinTypeKeywords;
 
13042
class WinFriend;
 
13043
class ExtAC;
 
13044
class ExtACBuilderCoupling;
 
13045
class ExtACSyntaxCoupling;
 
13046
class ExtACTree;
 
13047
class ExtACKeywords;
 
13048
class ExtGnu;
 
13049
class PragmaOnceUnitState;
 
13050
class PragmaOnce;
 
13051
class CMatchSyntax;
 
13052
namespace Puma {
 
13053
 
 
13054
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13055
class CT_LinkageSpec : public CT_Decl {
 
13056
#line 13057 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13057
  friend class ::CCExprResolve;
 
13058
  friend class ::CExprResolve;
 
13059
  friend class ::WinIfExists;
 
13060
  friend class ::WinImportHandler;
 
13061
  friend class ::WinMacros;
 
13062
  friend class ::WinAsm;
 
13063
  friend class ::WinDeclSpecs;
 
13064
  friend class ::WinMemberExplSpec;
 
13065
  friend class ::WinTypeKeywords;
 
13066
  friend class ::WinFriend;
 
13067
  friend class ::ExtAC;
 
13068
  friend class ::ExtACBuilderCoupling;
 
13069
  friend class ::ExtACSyntaxCoupling;
 
13070
  friend class ::ExtACTree;
 
13071
  friend class ::ExtACKeywords;
 
13072
  friend class ::ExtGnu;
 
13073
  friend class ::PragmaOnceUnitState;
 
13074
  friend class ::PragmaOnce;
 
13075
  friend class ::CMatchSyntax;
 
13076
 
 
13077
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13078
 
 
13079
  CTree *sons[5]; // extern, str, open, decls, close
 
13080
 
 
13081
public:
 
13082
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
 
13083
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
13084
    AddSon (sons[3], d); AddSon (sons[4], c);
 
13085
    if (isList ())
 
13086
      ((CT_DeclList*)Decls ())->Linkage (this);
 
13087
    else
 
13088
      ((CT_Decl*)Decls ())->Linkage (this);
 
13089
  }
 
13090
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13091
  static const char *NodeId ();
 
13092
  /** Get the name of the node. Can be compared with NodeId(). */
 
13093
  const char *NodeName () const { return NodeId (); }
 
13094
  /** Get the number of sons. */
 
13095
  int Sons () const { return CTree::Sons (sons, 5); }
 
13096
  /** Get the n-th son.
 
13097
   *  \param n The index of the son.
 
13098
   *  \return The n-th son or NULL. */
 
13099
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
13100
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
 
13101
  CTree *Decls () const { return sons[3]; }
 
13102
  bool isList () const {
 
13103
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
 
13104
  }
 
13105
  /** Replace a son.
 
13106
   *  \param old_son The son to replace.
 
13107
   *  \param new_son The new son. */
 
13108
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13109
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
13110
  }
 
13111
};
 
13112
 
 
13113
 
 
13114
#line 13115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13115
} // closed Puma
 
13116
class CCExprResolve;
 
13117
class CExprResolve;
 
13118
class WinIfExists;
 
13119
class WinImportHandler;
 
13120
class WinMacros;
 
13121
class WinAsm;
 
13122
class WinDeclSpecs;
 
13123
class WinMemberExplSpec;
 
13124
class WinTypeKeywords;
 
13125
class WinFriend;
 
13126
class ExtAC;
 
13127
class ExtACBuilderCoupling;
 
13128
class ExtACSyntaxCoupling;
 
13129
class ExtACTree;
 
13130
class ExtACKeywords;
 
13131
class ExtGnu;
 
13132
class PragmaOnceUnitState;
 
13133
class PragmaOnce;
 
13134
class CMatchSyntax;
 
13135
namespace Puma {
 
13136
 
 
13137
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13138
class CT_ArgDecl : public CT_Decl, public CSemObject {
 
13139
#line 13140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13140
  friend class ::CCExprResolve;
 
13141
  friend class ::CExprResolve;
 
13142
  friend class ::WinIfExists;
 
13143
  friend class ::WinImportHandler;
 
13144
  friend class ::WinMacros;
 
13145
  friend class ::WinAsm;
 
13146
  friend class ::WinDeclSpecs;
 
13147
  friend class ::WinMemberExplSpec;
 
13148
  friend class ::WinTypeKeywords;
 
13149
  friend class ::WinFriend;
 
13150
  friend class ::ExtAC;
 
13151
  friend class ::ExtACBuilderCoupling;
 
13152
  friend class ::ExtACSyntaxCoupling;
 
13153
  friend class ::ExtACTree;
 
13154
  friend class ::ExtACKeywords;
 
13155
  friend class ::ExtGnu;
 
13156
  friend class ::PragmaOnceUnitState;
 
13157
  friend class ::PragmaOnce;
 
13158
  friend class ::CMatchSyntax;
 
13159
 
 
13160
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13161
 
 
13162
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
 
13163
 
 
13164
public:
 
13165
  CT_ArgDecl (CTree *dsl, CTree *d) {
 
13166
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
13167
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
 
13168
  }
 
13169
  CT_ArgDecl (CTree *ellipsis) {
 
13170
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
13171
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
 
13172
  }
 
13173
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13174
  static const char *NodeId ();
 
13175
  /** Get the name of the node. Can be compared with NodeId(). */
 
13176
  const char *NodeName () const { return NodeId (); }
 
13177
  /** Get the number of sons. */
 
13178
  int Sons () const { return CTree::Sons (sons, 4); }
 
13179
  /** Get the n-th son.
 
13180
   *  \param n The index of the son.
 
13181
   *  \return The n-th son or NULL. */
 
13182
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
13183
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
13184
  CTree *Declarator () const { return sons[1]; }
 
13185
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
13186
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
 
13187
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
13188
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
13189
  /** Replace a son.
 
13190
   *  \param old_son The son to replace.
 
13191
   *  \param new_son The new son. */
 
13192
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13193
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
13194
  }
 
13195
};
 
13196
 
 
13197
 
 
13198
#line 13199 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13199
} // closed Puma
 
13200
class CCExprResolve;
 
13201
class CExprResolve;
 
13202
class WinIfExists;
 
13203
class WinImportHandler;
 
13204
class WinMacros;
 
13205
class WinAsm;
 
13206
class WinDeclSpecs;
 
13207
class WinMemberExplSpec;
 
13208
class WinTypeKeywords;
 
13209
class WinFriend;
 
13210
class ExtAC;
 
13211
class ExtACBuilderCoupling;
 
13212
class ExtACSyntaxCoupling;
 
13213
class ExtACTree;
 
13214
class ExtACKeywords;
 
13215
class ExtGnu;
 
13216
class PragmaOnceUnitState;
 
13217
class PragmaOnce;
 
13218
class CMatchSyntax;
 
13219
namespace Puma {
 
13220
 
 
13221
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13222
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
 
13223
#line 13224 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13224
  friend class ::CCExprResolve;
 
13225
  friend class ::CExprResolve;
 
13226
  friend class ::WinIfExists;
 
13227
  friend class ::WinImportHandler;
 
13228
  friend class ::WinMacros;
 
13229
  friend class ::WinAsm;
 
13230
  friend class ::WinDeclSpecs;
 
13231
  friend class ::WinMemberExplSpec;
 
13232
  friend class ::WinTypeKeywords;
 
13233
  friend class ::WinFriend;
 
13234
  friend class ::ExtAC;
 
13235
  friend class ::ExtACBuilderCoupling;
 
13236
  friend class ::ExtACSyntaxCoupling;
 
13237
  friend class ::ExtACTree;
 
13238
  friend class ::ExtACKeywords;
 
13239
  friend class ::ExtGnu;
 
13240
  friend class ::PragmaOnceUnitState;
 
13241
  friend class ::PragmaOnce;
 
13242
  friend class ::CMatchSyntax;
 
13243
 
 
13244
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13245
 
 
13246
public:
 
13247
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
 
13248
   CT_DeclList (size, 2) { AddProperties (props); }
 
13249
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13250
  static const char *NodeId ();
 
13251
  /** Get the name of the node. Can be compared with NodeId(). */
 
13252
  const char *NodeName () const { return NodeId (); }
 
13253
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
13254
};
 
13255
 
 
13256
 
 
13257
#line 13258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13258
} // closed Puma
 
13259
class CCExprResolve;
 
13260
class CExprResolve;
 
13261
class WinIfExists;
 
13262
class WinImportHandler;
 
13263
class WinMacros;
 
13264
class WinAsm;
 
13265
class WinDeclSpecs;
 
13266
class WinMemberExplSpec;
 
13267
class WinTypeKeywords;
 
13268
class WinFriend;
 
13269
class ExtAC;
 
13270
class ExtACBuilderCoupling;
 
13271
class ExtACSyntaxCoupling;
 
13272
class ExtACTree;
 
13273
class ExtACKeywords;
 
13274
class ExtGnu;
 
13275
class PragmaOnceUnitState;
 
13276
class PragmaOnce;
 
13277
class CMatchSyntax;
 
13278
namespace Puma {
 
13279
 
 
13280
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13281
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
 
13282
#line 13283 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13283
  friend class ::CCExprResolve;
 
13284
  friend class ::CExprResolve;
 
13285
  friend class ::WinIfExists;
 
13286
  friend class ::WinImportHandler;
 
13287
  friend class ::WinMacros;
 
13288
  friend class ::WinAsm;
 
13289
  friend class ::WinDeclSpecs;
 
13290
  friend class ::WinMemberExplSpec;
 
13291
  friend class ::WinTypeKeywords;
 
13292
  friend class ::WinFriend;
 
13293
  friend class ::ExtAC;
 
13294
  friend class ::ExtACBuilderCoupling;
 
13295
  friend class ::ExtACSyntaxCoupling;
 
13296
  friend class ::ExtACTree;
 
13297
  friend class ::ExtACKeywords;
 
13298
  friend class ::ExtGnu;
 
13299
  friend class ::PragmaOnceUnitState;
 
13300
  friend class ::PragmaOnce;
 
13301
  friend class ::CMatchSyntax;
 
13302
 
 
13303
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13304
 
 
13305
public:
 
13306
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
13307
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13308
  static const char *NodeId ();
 
13309
  /** Get the name of the node. Can be compared with NodeId(). */
 
13310
  const char *NodeName () const { return NodeId (); }
 
13311
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
13312
};
 
13313
 
 
13314
 
 
13315
#line 13316 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13316
} // closed Puma
 
13317
class CCExprResolve;
 
13318
class CExprResolve;
 
13319
class WinIfExists;
 
13320
class WinImportHandler;
 
13321
class WinMacros;
 
13322
class WinAsm;
 
13323
class WinDeclSpecs;
 
13324
class WinMemberExplSpec;
 
13325
class WinTypeKeywords;
 
13326
class WinFriend;
 
13327
class ExtAC;
 
13328
class ExtACBuilderCoupling;
 
13329
class ExtACSyntaxCoupling;
 
13330
class ExtACTree;
 
13331
class ExtACKeywords;
 
13332
class ExtGnu;
 
13333
class PragmaOnceUnitState;
 
13334
class PragmaOnce;
 
13335
class CMatchSyntax;
 
13336
namespace Puma {
 
13337
 
 
13338
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13339
class CT_ArgNameList : public CT_ArgDeclList {
 
13340
#line 13341 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13341
  friend class ::CCExprResolve;
 
13342
  friend class ::CExprResolve;
 
13343
  friend class ::WinIfExists;
 
13344
  friend class ::WinImportHandler;
 
13345
  friend class ::WinMacros;
 
13346
  friend class ::WinAsm;
 
13347
  friend class ::WinDeclSpecs;
 
13348
  friend class ::WinMemberExplSpec;
 
13349
  friend class ::WinTypeKeywords;
 
13350
  friend class ::WinFriend;
 
13351
  friend class ::ExtAC;
 
13352
  friend class ::ExtACBuilderCoupling;
 
13353
  friend class ::ExtACSyntaxCoupling;
 
13354
  friend class ::ExtACTree;
 
13355
  friend class ::ExtACKeywords;
 
13356
  friend class ::ExtGnu;
 
13357
  friend class ::PragmaOnceUnitState;
 
13358
  friend class ::PragmaOnce;
 
13359
  friend class ::CMatchSyntax;
 
13360
 
 
13361
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13362
 
 
13363
public:
 
13364
  CT_ArgNameList () : CT_ArgDeclList () {}
 
13365
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13366
  static const char *NodeId ();
 
13367
  /** Get the name of the node. Can be compared with NodeId(). */
 
13368
  const char *NodeName () const { return NodeId (); }
 
13369
};
 
13370
 
 
13371
 
 
13372
#line 13373 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13373
} // closed Puma
 
13374
class CCExprResolve;
 
13375
class CExprResolve;
 
13376
class WinIfExists;
 
13377
class WinImportHandler;
 
13378
class WinMacros;
 
13379
class WinAsm;
 
13380
class WinDeclSpecs;
 
13381
class WinMemberExplSpec;
 
13382
class WinTypeKeywords;
 
13383
class WinFriend;
 
13384
class ExtAC;
 
13385
class ExtACBuilderCoupling;
 
13386
class ExtACSyntaxCoupling;
 
13387
class ExtACTree;
 
13388
class ExtACKeywords;
 
13389
class ExtGnu;
 
13390
class PragmaOnceUnitState;
 
13391
class PragmaOnce;
 
13392
class CMatchSyntax;
 
13393
namespace Puma {
 
13394
 
 
13395
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13396
class CT_NamespaceDef : public CT_Decl, public CSemObject {
 
13397
#line 13398 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13398
  friend class ::CCExprResolve;
 
13399
  friend class ::CExprResolve;
 
13400
  friend class ::WinIfExists;
 
13401
  friend class ::WinImportHandler;
 
13402
  friend class ::WinMacros;
 
13403
  friend class ::WinAsm;
 
13404
  friend class ::WinDeclSpecs;
 
13405
  friend class ::WinMemberExplSpec;
 
13406
  friend class ::WinTypeKeywords;
 
13407
  friend class ::WinFriend;
 
13408
  friend class ::ExtAC;
 
13409
  friend class ::ExtACBuilderCoupling;
 
13410
  friend class ::ExtACSyntaxCoupling;
 
13411
  friend class ::ExtACTree;
 
13412
  friend class ::ExtACKeywords;
 
13413
  friend class ::ExtGnu;
 
13414
  friend class ::PragmaOnceUnitState;
 
13415
  friend class ::PragmaOnce;
 
13416
  friend class ::CMatchSyntax;
 
13417
 
 
13418
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13419
 
 
13420
  CTree *sons[3]; // ns, name, members
 
13421
 
 
13422
public:
 
13423
  CT_NamespaceDef (CTree *n, CTree *nm) {
 
13424
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
 
13425
  }
 
13426
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
 
13427
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
 
13428
  }
 
13429
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13430
  static const char *NodeId ();
 
13431
  /** Get the name of the node. Can be compared with NodeId(). */
 
13432
  const char *NodeName () const { return NodeId (); }
 
13433
  /** Get the number of sons. */
 
13434
  int Sons () const { return CTree::Sons (sons, 3); }
 
13435
  /** Get the n-th son.
 
13436
   *  \param n The index of the son.
 
13437
   *  \return The n-th son or NULL. */
 
13438
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
13439
  void Members (CTree *m) { AddSon (sons[2], m); }
 
13440
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
 
13441
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
13442
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
13443
  /** Replace a son.
 
13444
   *  \param old_son The son to replace.
 
13445
   *  \param new_son The new son. */
 
13446
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13447
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
13448
  }
 
13449
};
 
13450
 
 
13451
 
 
13452
#line 13453 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13453
} // closed Puma
 
13454
class CCExprResolve;
 
13455
class CExprResolve;
 
13456
class WinIfExists;
 
13457
class WinImportHandler;
 
13458
class WinMacros;
 
13459
class WinAsm;
 
13460
class WinDeclSpecs;
 
13461
class WinMemberExplSpec;
 
13462
class WinTypeKeywords;
 
13463
class WinFriend;
 
13464
class ExtAC;
 
13465
class ExtACBuilderCoupling;
 
13466
class ExtACSyntaxCoupling;
 
13467
class ExtACTree;
 
13468
class ExtACKeywords;
 
13469
class ExtGnu;
 
13470
class PragmaOnceUnitState;
 
13471
class PragmaOnce;
 
13472
class CMatchSyntax;
 
13473
namespace Puma {
 
13474
 
 
13475
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13476
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
 
13477
#line 13478 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13478
  friend class ::CCExprResolve;
 
13479
  friend class ::CExprResolve;
 
13480
  friend class ::WinIfExists;
 
13481
  friend class ::WinImportHandler;
 
13482
  friend class ::WinMacros;
 
13483
  friend class ::WinAsm;
 
13484
  friend class ::WinDeclSpecs;
 
13485
  friend class ::WinMemberExplSpec;
 
13486
  friend class ::WinTypeKeywords;
 
13487
  friend class ::WinFriend;
 
13488
  friend class ::ExtAC;
 
13489
  friend class ::ExtACBuilderCoupling;
 
13490
  friend class ::ExtACSyntaxCoupling;
 
13491
  friend class ::ExtACTree;
 
13492
  friend class ::ExtACKeywords;
 
13493
  friend class ::ExtGnu;
 
13494
  friend class ::PragmaOnceUnitState;
 
13495
  friend class ::PragmaOnce;
 
13496
  friend class ::CMatchSyntax;
 
13497
 
 
13498
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13499
 
 
13500
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
 
13501
 
 
13502
public:
 
13503
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
 
13504
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
13505
    AddSon (sons[3], nm); AddSon (sons[4], s); 
 
13506
  }
 
13507
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13508
  static const char *NodeId ();
 
13509
  /** Get the name of the node. Can be compared with NodeId(). */
 
13510
  const char *NodeName () const { return NodeId (); }
 
13511
  /** Get the number of sons. */
 
13512
  int Sons () const { return 5; }
 
13513
  /** Get the n-th son.
 
13514
   *  \param n The index of the son.
 
13515
   *  \return The n-th son or NULL. */
 
13516
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
13517
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
 
13518
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
 
13519
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
13520
  /** Replace a son.
 
13521
   *  \param old_son The son to replace.
 
13522
   *  \param new_son The new son. */
 
13523
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13524
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
13525
  }
 
13526
};
 
13527
 
 
13528
 
 
13529
#line 13530 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13530
} // closed Puma
 
13531
class CCExprResolve;
 
13532
class CExprResolve;
 
13533
class WinIfExists;
 
13534
class WinImportHandler;
 
13535
class WinMacros;
 
13536
class WinAsm;
 
13537
class WinDeclSpecs;
 
13538
class WinMemberExplSpec;
 
13539
class WinTypeKeywords;
 
13540
class WinFriend;
 
13541
class ExtAC;
 
13542
class ExtACBuilderCoupling;
 
13543
class ExtACSyntaxCoupling;
 
13544
class ExtACTree;
 
13545
class ExtACKeywords;
 
13546
class ExtGnu;
 
13547
class PragmaOnceUnitState;
 
13548
class PragmaOnce;
 
13549
class CMatchSyntax;
 
13550
namespace Puma {
 
13551
 
 
13552
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13553
class CT_UsingDirective : public CT_Decl {
 
13554
#line 13555 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13555
  friend class ::CCExprResolve;
 
13556
  friend class ::CExprResolve;
 
13557
  friend class ::WinIfExists;
 
13558
  friend class ::WinImportHandler;
 
13559
  friend class ::WinMacros;
 
13560
  friend class ::WinAsm;
 
13561
  friend class ::WinDeclSpecs;
 
13562
  friend class ::WinMemberExplSpec;
 
13563
  friend class ::WinTypeKeywords;
 
13564
  friend class ::WinFriend;
 
13565
  friend class ::ExtAC;
 
13566
  friend class ::ExtACBuilderCoupling;
 
13567
  friend class ::ExtACSyntaxCoupling;
 
13568
  friend class ::ExtACTree;
 
13569
  friend class ::ExtACKeywords;
 
13570
  friend class ::ExtGnu;
 
13571
  friend class ::PragmaOnceUnitState;
 
13572
  friend class ::PragmaOnce;
 
13573
  friend class ::CMatchSyntax;
 
13574
 
 
13575
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13576
 
 
13577
  CTree *sons[4]; // using, ns, name, semi_colon
 
13578
 
 
13579
public:
 
13580
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
 
13581
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
13582
    AddSon (sons[3], s); 
 
13583
  }
 
13584
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13585
  static const char *NodeId ();
 
13586
  /** Get the name of the node. Can be compared with NodeId(). */
 
13587
  const char *NodeName () const { return NodeId (); }
 
13588
  /** Get the number of sons. */
 
13589
  int Sons () const { return 4; }
 
13590
  /** Get the n-th son.
 
13591
   *  \param n The index of the son.
 
13592
   *  \return The n-th son or NULL. */
 
13593
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
13594
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
13595
  /** Replace a son.
 
13596
   *  \param old_son The son to replace.
 
13597
   *  \param new_son The new son. */
 
13598
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13599
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
13600
  }
 
13601
};
 
13602
 
 
13603
/*****************************************************************************/
 
13604
/*                                                                           */
 
13605
/*                              Declarators                                  */
 
13606
/*                                                                           */
 
13607
/*****************************************************************************/
 
13608
 
 
13609
 
 
13610
#line 13611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13611
} // closed Puma
 
13612
class CCExprResolve;
 
13613
class CExprResolve;
 
13614
class WinIfExists;
 
13615
class WinImportHandler;
 
13616
class WinMacros;
 
13617
class WinAsm;
 
13618
class WinDeclSpecs;
 
13619
class WinMemberExplSpec;
 
13620
class WinTypeKeywords;
 
13621
class WinFriend;
 
13622
class ExtAC;
 
13623
class ExtACBuilderCoupling;
 
13624
class ExtACSyntaxCoupling;
 
13625
class ExtACTree;
 
13626
class ExtACKeywords;
 
13627
class ExtGnu;
 
13628
class PragmaOnceUnitState;
 
13629
class PragmaOnce;
 
13630
class CMatchSyntax;
 
13631
namespace Puma {
 
13632
 
 
13633
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13634
class CT_Declarator : public CTree {
 
13635
#line 13636 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13636
  friend class ::CCExprResolve;
 
13637
  friend class ::CExprResolve;
 
13638
  friend class ::WinIfExists;
 
13639
  friend class ::WinImportHandler;
 
13640
  friend class ::WinMacros;
 
13641
  friend class ::WinAsm;
 
13642
  friend class ::WinDeclSpecs;
 
13643
  friend class ::WinMemberExplSpec;
 
13644
  friend class ::WinTypeKeywords;
 
13645
  friend class ::WinFriend;
 
13646
  friend class ::ExtAC;
 
13647
  friend class ::ExtACBuilderCoupling;
 
13648
  friend class ::ExtACSyntaxCoupling;
 
13649
  friend class ::ExtACTree;
 
13650
  friend class ::ExtACKeywords;
 
13651
  friend class ::ExtGnu;
 
13652
  friend class ::PragmaOnceUnitState;
 
13653
  friend class ::PragmaOnce;
 
13654
  friend class ::CMatchSyntax;
 
13655
 
 
13656
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13657
 
 
13658
protected:
 
13659
  CT_Declarator () {}
 
13660
 
 
13661
public:
 
13662
  virtual CTree *Declarator () const = 0;
 
13663
  //classification function
 
13664
  virtual CT_Declarator *IsDeclarator () { return this; }
 
13665
  // locate the name node
 
13666
  CT_SimpleName *Name ();
 
13667
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
 
13668
};
 
13669
 
 
13670
 
 
13671
#line 13672 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13672
} // closed Puma
 
13673
class CCExprResolve;
 
13674
class CExprResolve;
 
13675
class WinIfExists;
 
13676
class WinImportHandler;
 
13677
class WinMacros;
 
13678
class WinAsm;
 
13679
class WinDeclSpecs;
 
13680
class WinMemberExplSpec;
 
13681
class WinTypeKeywords;
 
13682
class WinFriend;
 
13683
class ExtAC;
 
13684
class ExtACBuilderCoupling;
 
13685
class ExtACSyntaxCoupling;
 
13686
class ExtACTree;
 
13687
class ExtACKeywords;
 
13688
class ExtGnu;
 
13689
class PragmaOnceUnitState;
 
13690
class PragmaOnce;
 
13691
class CMatchSyntax;
 
13692
namespace Puma {
 
13693
 
 
13694
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13695
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
 
13696
#line 13697 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13697
  friend class ::CCExprResolve;
 
13698
  friend class ::CExprResolve;
 
13699
  friend class ::WinIfExists;
 
13700
  friend class ::WinImportHandler;
 
13701
  friend class ::WinMacros;
 
13702
  friend class ::WinAsm;
 
13703
  friend class ::WinDeclSpecs;
 
13704
  friend class ::WinMemberExplSpec;
 
13705
  friend class ::WinTypeKeywords;
 
13706
  friend class ::WinFriend;
 
13707
  friend class ::ExtAC;
 
13708
  friend class ::ExtACBuilderCoupling;
 
13709
  friend class ::ExtACSyntaxCoupling;
 
13710
  friend class ::ExtACTree;
 
13711
  friend class ::ExtACKeywords;
 
13712
  friend class ::ExtGnu;
 
13713
  friend class ::PragmaOnceUnitState;
 
13714
  friend class ::PragmaOnce;
 
13715
  friend class ::CMatchSyntax;
 
13716
 
 
13717
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13718
 
 
13719
  CTree *sons[3]; // declarator, ext, init
 
13720
  CTree *obj_decl;
 
13721
 
 
13722
public:
 
13723
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
13724
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
13725
    AddSon (obj_decl, 0); 
 
13726
  }
 
13727
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13728
  static const char *NodeId ();
 
13729
  /** Get the name of the node. Can be compared with NodeId(). */
 
13730
  const char *NodeName () const { return NodeId (); }
 
13731
  /** Get the number of sons. */
 
13732
  int Sons () const { return CTree::Sons (sons, 3); }
 
13733
  /** Get the n-th son.
 
13734
   *  \param n The index of the son.
 
13735
   *  \return The n-th son or NULL. */
 
13736
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
13737
  CTree *Declarator () const { return sons[0]; }
 
13738
  CTree *Extension () const { return sons[1]; }
 
13739
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
13740
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
13741
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
13742
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
13743
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
13744
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
13745
  /** Replace a son.
 
13746
   *  \param old_son The son to replace.
 
13747
   *  \param new_son The new son. */
 
13748
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13749
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
13750
  }
 
13751
};
 
13752
 
 
13753
 
 
13754
#line 13755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13755
} // closed Puma
 
13756
class CCExprResolve;
 
13757
class CExprResolve;
 
13758
class WinIfExists;
 
13759
class WinImportHandler;
 
13760
class WinMacros;
 
13761
class WinAsm;
 
13762
class WinDeclSpecs;
 
13763
class WinMemberExplSpec;
 
13764
class WinTypeKeywords;
 
13765
class WinFriend;
 
13766
class ExtAC;
 
13767
class ExtACBuilderCoupling;
 
13768
class ExtACSyntaxCoupling;
 
13769
class ExtACTree;
 
13770
class ExtACKeywords;
 
13771
class ExtGnu;
 
13772
class PragmaOnceUnitState;
 
13773
class PragmaOnce;
 
13774
class CMatchSyntax;
 
13775
namespace Puma {
 
13776
 
 
13777
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13778
class CT_BracedDeclarator : public CT_Declarator {
 
13779
#line 13780 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13780
  friend class ::CCExprResolve;
 
13781
  friend class ::CExprResolve;
 
13782
  friend class ::WinIfExists;
 
13783
  friend class ::WinImportHandler;
 
13784
  friend class ::WinMacros;
 
13785
  friend class ::WinAsm;
 
13786
  friend class ::WinDeclSpecs;
 
13787
  friend class ::WinMemberExplSpec;
 
13788
  friend class ::WinTypeKeywords;
 
13789
  friend class ::WinFriend;
 
13790
  friend class ::ExtAC;
 
13791
  friend class ::ExtACBuilderCoupling;
 
13792
  friend class ::ExtACSyntaxCoupling;
 
13793
  friend class ::ExtACTree;
 
13794
  friend class ::ExtACKeywords;
 
13795
  friend class ::ExtGnu;
 
13796
  friend class ::PragmaOnceUnitState;
 
13797
  friend class ::PragmaOnce;
 
13798
  friend class ::CMatchSyntax;
 
13799
 
 
13800
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13801
 
 
13802
  CTree *sons[4]; // open, win_specs, declarator, close
 
13803
 
 
13804
public:
 
13805
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
 
13806
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
13807
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
13808
  }
 
13809
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
 
13810
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
13811
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
13812
  }
 
13813
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13814
  static const char *NodeId ();
 
13815
  /** Get the name of the node. Can be compared with NodeId(). */
 
13816
  const char *NodeName () const { return NodeId (); }
 
13817
  /** Get the number of sons. */
 
13818
  int Sons () const { return CTree::Sons (sons, 4); }
 
13819
  /** Get the n-th son.
 
13820
   *  \param n The index of the son.
 
13821
   *  \return The n-th son or NULL. */
 
13822
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
13823
  CTree *Declarator () const { return sons[2]; }
 
13824
  /** Replace a son.
 
13825
   *  \param old_son The son to replace.
 
13826
   *  \param new_son The new son. */
 
13827
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13828
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
13829
  }
 
13830
};
 
13831
 
 
13832
 
 
13833
#line 13834 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13834
} // closed Puma
 
13835
class CCExprResolve;
 
13836
class CExprResolve;
 
13837
class WinIfExists;
 
13838
class WinImportHandler;
 
13839
class WinMacros;
 
13840
class WinAsm;
 
13841
class WinDeclSpecs;
 
13842
class WinMemberExplSpec;
 
13843
class WinTypeKeywords;
 
13844
class WinFriend;
 
13845
class ExtAC;
 
13846
class ExtACBuilderCoupling;
 
13847
class ExtACSyntaxCoupling;
 
13848
class ExtACTree;
 
13849
class ExtACKeywords;
 
13850
class ExtGnu;
 
13851
class PragmaOnceUnitState;
 
13852
class PragmaOnce;
 
13853
class CMatchSyntax;
 
13854
namespace Puma {
 
13855
 
 
13856
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13857
class CT_ArrayDelimiter : public CTree {
 
13858
#line 13859 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13859
  friend class ::CCExprResolve;
 
13860
  friend class ::CExprResolve;
 
13861
  friend class ::WinIfExists;
 
13862
  friend class ::WinImportHandler;
 
13863
  friend class ::WinMacros;
 
13864
  friend class ::WinAsm;
 
13865
  friend class ::WinDeclSpecs;
 
13866
  friend class ::WinMemberExplSpec;
 
13867
  friend class ::WinTypeKeywords;
 
13868
  friend class ::WinFriend;
 
13869
  friend class ::ExtAC;
 
13870
  friend class ::ExtACBuilderCoupling;
 
13871
  friend class ::ExtACSyntaxCoupling;
 
13872
  friend class ::ExtACTree;
 
13873
  friend class ::ExtACKeywords;
 
13874
  friend class ::ExtGnu;
 
13875
  friend class ::PragmaOnceUnitState;
 
13876
  friend class ::PragmaOnce;
 
13877
  friend class ::CMatchSyntax;
 
13878
 
 
13879
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13880
 
 
13881
  CTree *sons[4]; // star, static, quals, expr
 
13882
  bool pos0;
 
13883
 
 
13884
public:
 
13885
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
 
13886
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
13887
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
 
13888
  }
 
13889
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13890
  static const char *NodeId ();
 
13891
  /** Get the name of the node. Can be compared with NodeId(). */
 
13892
  const char *NodeName () const { return NodeId (); }
 
13893
  /** Get the number of sons. */
 
13894
  int Sons () const { return CTree::Sons (sons, 4); }
 
13895
  /** Get the n-th son.
 
13896
   *  \param n The index of the son.
 
13897
   *  \return The n-th son or NULL. */
 
13898
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
13899
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
 
13900
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
 
13901
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
 
13902
  CTree *Expr () const { return sons[3]; }
 
13903
  /** Replace a son.
 
13904
   *  \param old_son The son to replace.
 
13905
   *  \param new_son The new son. */
 
13906
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13907
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
13908
  }
 
13909
};
 
13910
 
 
13911
 
 
13912
#line 13913 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13913
} // closed Puma
 
13914
class CCExprResolve;
 
13915
class CExprResolve;
 
13916
class WinIfExists;
 
13917
class WinImportHandler;
 
13918
class WinMacros;
 
13919
class WinAsm;
 
13920
class WinDeclSpecs;
 
13921
class WinMemberExplSpec;
 
13922
class WinTypeKeywords;
 
13923
class WinFriend;
 
13924
class ExtAC;
 
13925
class ExtACBuilderCoupling;
 
13926
class ExtACSyntaxCoupling;
 
13927
class ExtACTree;
 
13928
class ExtACKeywords;
 
13929
class ExtGnu;
 
13930
class PragmaOnceUnitState;
 
13931
class PragmaOnce;
 
13932
class CMatchSyntax;
 
13933
namespace Puma {
 
13934
 
 
13935
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13936
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
 
13937
#line 13938 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13938
  friend class ::CCExprResolve;
 
13939
  friend class ::CExprResolve;
 
13940
  friend class ::WinIfExists;
 
13941
  friend class ::WinImportHandler;
 
13942
  friend class ::WinMacros;
 
13943
  friend class ::WinAsm;
 
13944
  friend class ::WinDeclSpecs;
 
13945
  friend class ::WinMemberExplSpec;
 
13946
  friend class ::WinTypeKeywords;
 
13947
  friend class ::WinFriend;
 
13948
  friend class ::ExtAC;
 
13949
  friend class ::ExtACBuilderCoupling;
 
13950
  friend class ::ExtACSyntaxCoupling;
 
13951
  friend class ::ExtACTree;
 
13952
  friend class ::ExtACKeywords;
 
13953
  friend class ::ExtGnu;
 
13954
  friend class ::PragmaOnceUnitState;
 
13955
  friend class ::PragmaOnce;
 
13956
  friend class ::CMatchSyntax;
 
13957
 
 
13958
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13959
 
 
13960
  CTree *sons[4]; // declarator, open, delim, close
 
13961
 
 
13962
public:
 
13963
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
 
13964
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
13965
    AddSon (sons[2], ad); AddSon (sons[3], c); 
 
13966
  }
 
13967
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13968
  static const char *NodeId ();
 
13969
  /** Get the name of the node. Can be compared with NodeId(). */
 
13970
  const char *NodeName () const { return NodeId (); }
 
13971
  /** Get the number of sons. */
 
13972
  int Sons () const { return 4; }
 
13973
  /** Get the n-th son.
 
13974
   *  \param n The index of the son.
 
13975
   *  \return The n-th son or NULL. */
 
13976
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
13977
  CTree *Declarator () const { return sons[0]; }
 
13978
  CT_ArrayDelimiter *Delimiter () const 
 
13979
   { return (CT_ArrayDelimiter*)sons[2]; }
 
13980
  /** Replace a son.
 
13981
   *  \param old_son The son to replace.
 
13982
   *  \param new_son The new son. */
 
13983
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13984
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
13985
  }
 
13986
  CTypeInfo *Type () const { return type; }
 
13987
  CExprValue *Value () const { return value; }
 
13988
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
13989
};
 
13990
 
 
13991
 
 
13992
#line 13993 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
13993
} // closed Puma
 
13994
class CCExprResolve;
 
13995
class CExprResolve;
 
13996
class WinIfExists;
 
13997
class WinImportHandler;
 
13998
class WinMacros;
 
13999
class WinAsm;
 
14000
class WinDeclSpecs;
 
14001
class WinMemberExplSpec;
 
14002
class WinTypeKeywords;
 
14003
class WinFriend;
 
14004
class ExtAC;
 
14005
class ExtACBuilderCoupling;
 
14006
class ExtACSyntaxCoupling;
 
14007
class ExtACTree;
 
14008
class ExtACKeywords;
 
14009
class ExtGnu;
 
14010
class PragmaOnceUnitState;
 
14011
class PragmaOnce;
 
14012
class CMatchSyntax;
 
14013
namespace Puma {
 
14014
 
 
14015
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14016
class CT_FctDeclarator : public CT_Declarator {
 
14017
#line 14018 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14018
  friend class ::CCExprResolve;
 
14019
  friend class ::CExprResolve;
 
14020
  friend class ::WinIfExists;
 
14021
  friend class ::WinImportHandler;
 
14022
  friend class ::WinMacros;
 
14023
  friend class ::WinAsm;
 
14024
  friend class ::WinDeclSpecs;
 
14025
  friend class ::WinMemberExplSpec;
 
14026
  friend class ::WinTypeKeywords;
 
14027
  friend class ::WinFriend;
 
14028
  friend class ::ExtAC;
 
14029
  friend class ::ExtACBuilderCoupling;
 
14030
  friend class ::ExtACSyntaxCoupling;
 
14031
  friend class ::ExtACTree;
 
14032
  friend class ::ExtACKeywords;
 
14033
  friend class ::ExtGnu;
 
14034
  friend class ::PragmaOnceUnitState;
 
14035
  friend class ::PragmaOnce;
 
14036
  friend class ::CMatchSyntax;
 
14037
 
 
14038
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14039
 
 
14040
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
 
14041
 
 
14042
public:
 
14043
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
 
14044
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
14045
    AddSon (sons[2], cv); AddSon (sons[3], es); 
 
14046
  }
 
14047
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14048
  static const char *NodeId ();
 
14049
  /** Get the name of the node. Can be compared with NodeId(). */
 
14050
  const char *NodeName () const { return NodeId (); }
 
14051
  /** Get the number of sons. */
 
14052
  int Sons () const { return CTree::Sons (sons, 4); }
 
14053
  /** Get the n-th son.
 
14054
   *  \param n The index of the son.
 
14055
   *  \return The n-th son or NULL. */
 
14056
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
14057
  CTree *Declarator () const { return sons[0]; }
 
14058
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
14059
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
 
14060
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
14061
  /** Replace a son.
 
14062
   *  \param old_son The son to replace.
 
14063
   *  \param new_son The new son. */
 
14064
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14065
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
14066
  }
 
14067
};
 
14068
 
 
14069
 
 
14070
#line 14071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14071
} // closed Puma
 
14072
class CCExprResolve;
 
14073
class CExprResolve;
 
14074
class WinIfExists;
 
14075
class WinImportHandler;
 
14076
class WinMacros;
 
14077
class WinAsm;
 
14078
class WinDeclSpecs;
 
14079
class WinMemberExplSpec;
 
14080
class WinTypeKeywords;
 
14081
class WinFriend;
 
14082
class ExtAC;
 
14083
class ExtACBuilderCoupling;
 
14084
class ExtACSyntaxCoupling;
 
14085
class ExtACTree;
 
14086
class ExtACKeywords;
 
14087
class ExtGnu;
 
14088
class PragmaOnceUnitState;
 
14089
class PragmaOnce;
 
14090
class CMatchSyntax;
 
14091
namespace Puma {
 
14092
 
 
14093
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14094
class CT_RefDeclarator : public CT_Declarator {
 
14095
#line 14096 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14096
  friend class ::CCExprResolve;
 
14097
  friend class ::CExprResolve;
 
14098
  friend class ::WinIfExists;
 
14099
  friend class ::WinImportHandler;
 
14100
  friend class ::WinMacros;
 
14101
  friend class ::WinAsm;
 
14102
  friend class ::WinDeclSpecs;
 
14103
  friend class ::WinMemberExplSpec;
 
14104
  friend class ::WinTypeKeywords;
 
14105
  friend class ::WinFriend;
 
14106
  friend class ::ExtAC;
 
14107
  friend class ::ExtACBuilderCoupling;
 
14108
  friend class ::ExtACSyntaxCoupling;
 
14109
  friend class ::ExtACTree;
 
14110
  friend class ::ExtACKeywords;
 
14111
  friend class ::ExtGnu;
 
14112
  friend class ::PragmaOnceUnitState;
 
14113
  friend class ::PragmaOnce;
 
14114
  friend class ::CMatchSyntax;
 
14115
 
 
14116
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14117
 
 
14118
  CTree *sons[2]; // ref, declarator
 
14119
 
 
14120
public:
 
14121
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
14122
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14123
  static const char *NodeId ();
 
14124
  /** Get the name of the node. Can be compared with NodeId(). */
 
14125
  const char *NodeName () const { return NodeId (); }
 
14126
  /** Get the number of sons. */
 
14127
  int Sons () const { return 2; }
 
14128
  /** Get the n-th son.
 
14129
   *  \param n The index of the son.
 
14130
   *  \return The n-th son or NULL. */
 
14131
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
14132
  CTree *Declarator () const { return sons[1]; }
 
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, 2, old_son, new_son);
 
14138
  }
 
14139
};
 
14140
 
 
14141
 
 
14142
#line 14143 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.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 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14166
class CT_PtrDeclarator : public CT_Declarator {
 
14167
#line 14168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.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 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14189
 
 
14190
  CTree *sons[3]; // ptr, cv_quals, declarator
 
14191
 
 
14192
public:
 
14193
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
 
14194
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
 
14195
  }
 
14196
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14197
  static const char *NodeId ();
 
14198
  /** Get the name of the node. Can be compared with NodeId(). */
 
14199
  const char *NodeName () const { return NodeId (); }
 
14200
  /** Get the number of sons. */
 
14201
  int Sons () const { return CTree::Sons (sons, 3); }
 
14202
  /** Get the n-th son.
 
14203
   *  \param n The index of the son.
 
14204
   *  \return The n-th son or NULL. */
 
14205
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
14206
  CTree *Declarator () const { return sons[2]; }
 
14207
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
14208
  /** Replace a son.
 
14209
   *  \param old_son The son to replace.
 
14210
   *  \param new_son The new son. */
 
14211
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14212
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
14213
  }
 
14214
};
 
14215
 
 
14216
 
 
14217
#line 14218 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14218
} // closed Puma
 
14219
class CCExprResolve;
 
14220
class CExprResolve;
 
14221
class WinIfExists;
 
14222
class WinImportHandler;
 
14223
class WinMacros;
 
14224
class WinAsm;
 
14225
class WinDeclSpecs;
 
14226
class WinMemberExplSpec;
 
14227
class WinTypeKeywords;
 
14228
class WinFriend;
 
14229
class ExtAC;
 
14230
class ExtACBuilderCoupling;
 
14231
class ExtACSyntaxCoupling;
 
14232
class ExtACTree;
 
14233
class ExtACKeywords;
 
14234
class ExtGnu;
 
14235
class PragmaOnceUnitState;
 
14236
class PragmaOnce;
 
14237
class CMatchSyntax;
 
14238
namespace Puma {
 
14239
 
 
14240
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14241
class CT_MembPtrDeclarator : public CT_Declarator {
 
14242
#line 14243 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14243
  friend class ::CCExprResolve;
 
14244
  friend class ::CExprResolve;
 
14245
  friend class ::WinIfExists;
 
14246
  friend class ::WinImportHandler;
 
14247
  friend class ::WinMacros;
 
14248
  friend class ::WinAsm;
 
14249
  friend class ::WinDeclSpecs;
 
14250
  friend class ::WinMemberExplSpec;
 
14251
  friend class ::WinTypeKeywords;
 
14252
  friend class ::WinFriend;
 
14253
  friend class ::ExtAC;
 
14254
  friend class ::ExtACBuilderCoupling;
 
14255
  friend class ::ExtACSyntaxCoupling;
 
14256
  friend class ::ExtACTree;
 
14257
  friend class ::ExtACKeywords;
 
14258
  friend class ::ExtGnu;
 
14259
  friend class ::PragmaOnceUnitState;
 
14260
  friend class ::PragmaOnce;
 
14261
  friend class ::CMatchSyntax;
 
14262
 
 
14263
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14264
 
 
14265
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
 
14266
 
 
14267
public:
 
14268
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
 
14269
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
14270
    AddSon (sons[3], q); AddSon (sons[4], d); 
 
14271
  }
 
14272
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14273
  static const char *NodeId ();
 
14274
  /** Get the name of the node. Can be compared with NodeId(). */
 
14275
  const char *NodeName () const { return NodeId (); }
 
14276
  /** Get the number of sons. */
 
14277
  int Sons () const { return CTree::Sons (sons, 5); }
 
14278
  /** Get the n-th son.
 
14279
   *  \param n The index of the son.
 
14280
   *  \return The n-th son or NULL. */
 
14281
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
14282
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
14283
  CTree *Declarator () const { return sons[4]; }
 
14284
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
14285
  /** Replace a son.
 
14286
   *  \param old_son The son to replace.
 
14287
   *  \param new_son The new son. */
 
14288
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14289
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
14290
  }
 
14291
};
 
14292
 
 
14293
 
 
14294
#line 14295 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14295
} // closed Puma
 
14296
class CCExprResolve;
 
14297
class CExprResolve;
 
14298
class WinIfExists;
 
14299
class WinImportHandler;
 
14300
class WinMacros;
 
14301
class WinAsm;
 
14302
class WinDeclSpecs;
 
14303
class WinMemberExplSpec;
 
14304
class WinTypeKeywords;
 
14305
class WinFriend;
 
14306
class ExtAC;
 
14307
class ExtACBuilderCoupling;
 
14308
class ExtACSyntaxCoupling;
 
14309
class ExtACTree;
 
14310
class ExtACKeywords;
 
14311
class ExtGnu;
 
14312
class PragmaOnceUnitState;
 
14313
class PragmaOnce;
 
14314
class CMatchSyntax;
 
14315
namespace Puma {
 
14316
 
 
14317
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14318
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
 
14319
#line 14320 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14320
  friend class ::CCExprResolve;
 
14321
  friend class ::CExprResolve;
 
14322
  friend class ::WinIfExists;
 
14323
  friend class ::WinImportHandler;
 
14324
  friend class ::WinMacros;
 
14325
  friend class ::WinAsm;
 
14326
  friend class ::WinDeclSpecs;
 
14327
  friend class ::WinMemberExplSpec;
 
14328
  friend class ::WinTypeKeywords;
 
14329
  friend class ::WinFriend;
 
14330
  friend class ::ExtAC;
 
14331
  friend class ::ExtACBuilderCoupling;
 
14332
  friend class ::ExtACSyntaxCoupling;
 
14333
  friend class ::ExtACTree;
 
14334
  friend class ::ExtACKeywords;
 
14335
  friend class ::ExtGnu;
 
14336
  friend class ::PragmaOnceUnitState;
 
14337
  friend class ::PragmaOnce;
 
14338
  friend class ::CMatchSyntax;
 
14339
 
 
14340
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14341
 
 
14342
  CTree *sons[3]; // declarator, colon, expr
 
14343
 
 
14344
public:
 
14345
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
 
14346
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
 
14347
  }
 
14348
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14349
  static const char *NodeId ();
 
14350
  /** Get the name of the node. Can be compared with NodeId(). */
 
14351
  const char *NodeName () const { return NodeId (); }
 
14352
  /** Get the number of sons. */
 
14353
  int Sons () const { return CTree::Sons (sons, 3); }
 
14354
  /** Get the n-th son.
 
14355
   *  \param n The index of the son.
 
14356
   *  \return The n-th son or NULL. */
 
14357
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
14358
  CTree *Declarator () const { return sons[0]; }
 
14359
  CTree *Expr () const { return sons[2]; }
 
14360
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
 
14361
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
14362
  /** Replace a son.
 
14363
   *  \param old_son The son to replace.
 
14364
   *  \param new_son The new son. */
 
14365
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14366
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
14367
  }
 
14368
};
 
14369
 
 
14370
/*****************************************************************************/
 
14371
/*                                                                           */
 
14372
/*                              Statements                                   */
 
14373
/*                                                                           */
 
14374
/*****************************************************************************/
 
14375
 
 
14376
 
 
14377
#line 14378 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14378
} // closed Puma
 
14379
class CCExprResolve;
 
14380
class CExprResolve;
 
14381
class WinIfExists;
 
14382
class WinImportHandler;
 
14383
class WinMacros;
 
14384
class WinAsm;
 
14385
class WinDeclSpecs;
 
14386
class WinMemberExplSpec;
 
14387
class WinTypeKeywords;
 
14388
class WinFriend;
 
14389
class ExtAC;
 
14390
class ExtACBuilderCoupling;
 
14391
class ExtACSyntaxCoupling;
 
14392
class ExtACTree;
 
14393
class ExtACKeywords;
 
14394
class ExtGnu;
 
14395
class PragmaOnceUnitState;
 
14396
class PragmaOnce;
 
14397
class CMatchSyntax;
 
14398
namespace Puma {
 
14399
 
 
14400
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14401
class CT_Statement : public CTree {
 
14402
#line 14403 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14403
  friend class ::CCExprResolve;
 
14404
  friend class ::CExprResolve;
 
14405
  friend class ::WinIfExists;
 
14406
  friend class ::WinImportHandler;
 
14407
  friend class ::WinMacros;
 
14408
  friend class ::WinAsm;
 
14409
  friend class ::WinDeclSpecs;
 
14410
  friend class ::WinMemberExplSpec;
 
14411
  friend class ::WinTypeKeywords;
 
14412
  friend class ::WinFriend;
 
14413
  friend class ::ExtAC;
 
14414
  friend class ::ExtACBuilderCoupling;
 
14415
  friend class ::ExtACSyntaxCoupling;
 
14416
  friend class ::ExtACTree;
 
14417
  friend class ::ExtACKeywords;
 
14418
  friend class ::ExtGnu;
 
14419
  friend class ::PragmaOnceUnitState;
 
14420
  friend class ::PragmaOnce;
 
14421
  friend class ::CMatchSyntax;
 
14422
 
 
14423
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14424
 
 
14425
protected:
 
14426
  CT_Statement () {}
 
14427
  virtual CT_Statement *IsStatement () { return this; }
 
14428
};
 
14429
 
 
14430
 
 
14431
#line 14432 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14432
} // closed Puma
 
14433
class CCExprResolve;
 
14434
class CExprResolve;
 
14435
class WinIfExists;
 
14436
class WinImportHandler;
 
14437
class WinMacros;
 
14438
class WinAsm;
 
14439
class WinDeclSpecs;
 
14440
class WinMemberExplSpec;
 
14441
class WinTypeKeywords;
 
14442
class WinFriend;
 
14443
class ExtAC;
 
14444
class ExtACBuilderCoupling;
 
14445
class ExtACSyntaxCoupling;
 
14446
class ExtACTree;
 
14447
class ExtACKeywords;
 
14448
class ExtGnu;
 
14449
class PragmaOnceUnitState;
 
14450
class PragmaOnce;
 
14451
class CMatchSyntax;
 
14452
namespace Puma {
 
14453
 
 
14454
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14455
class CT_LabelStmt : public CT_Statement {
 
14456
#line 14457 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14457
  friend class ::CCExprResolve;
 
14458
  friend class ::CExprResolve;
 
14459
  friend class ::WinIfExists;
 
14460
  friend class ::WinImportHandler;
 
14461
  friend class ::WinMacros;
 
14462
  friend class ::WinAsm;
 
14463
  friend class ::WinDeclSpecs;
 
14464
  friend class ::WinMemberExplSpec;
 
14465
  friend class ::WinTypeKeywords;
 
14466
  friend class ::WinFriend;
 
14467
  friend class ::ExtAC;
 
14468
  friend class ::ExtACBuilderCoupling;
 
14469
  friend class ::ExtACSyntaxCoupling;
 
14470
  friend class ::ExtACTree;
 
14471
  friend class ::ExtACKeywords;
 
14472
  friend class ::ExtGnu;
 
14473
  friend class ::PragmaOnceUnitState;
 
14474
  friend class ::PragmaOnce;
 
14475
  friend class ::CMatchSyntax;
 
14476
 
 
14477
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14478
 
 
14479
  CTree *sons[3]; // id, colon, stmt
 
14480
 
 
14481
public:
 
14482
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
 
14483
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
14484
  }
 
14485
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14486
  static const char *NodeId ();
 
14487
  /** Get the name of the node. Can be compared with NodeId(). */
 
14488
  const char *NodeName () const { return NodeId (); }
 
14489
  /** Get the number of sons. */
 
14490
  int Sons () const { return 3; }
 
14491
  /** Get the n-th son.
 
14492
   *  \param n The index of the son.
 
14493
   *  \return The n-th son or NULL. */
 
14494
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
14495
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
14496
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
14497
  /** Replace a son.
 
14498
   *  \param old_son The son to replace.
 
14499
   *  \param new_son The new son. */
 
14500
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14501
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
14502
  }
 
14503
};
 
14504
 
 
14505
 
 
14506
#line 14507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14507
} // closed Puma
 
14508
class CCExprResolve;
 
14509
class CExprResolve;
 
14510
class WinIfExists;
 
14511
class WinImportHandler;
 
14512
class WinMacros;
 
14513
class WinAsm;
 
14514
class WinDeclSpecs;
 
14515
class WinMemberExplSpec;
 
14516
class WinTypeKeywords;
 
14517
class WinFriend;
 
14518
class ExtAC;
 
14519
class ExtACBuilderCoupling;
 
14520
class ExtACSyntaxCoupling;
 
14521
class ExtACTree;
 
14522
class ExtACKeywords;
 
14523
class ExtGnu;
 
14524
class PragmaOnceUnitState;
 
14525
class PragmaOnce;
 
14526
class CMatchSyntax;
 
14527
namespace Puma {
 
14528
 
 
14529
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14530
class CT_DefaultStmt : public CT_Statement {
 
14531
#line 14532 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14532
  friend class ::CCExprResolve;
 
14533
  friend class ::CExprResolve;
 
14534
  friend class ::WinIfExists;
 
14535
  friend class ::WinImportHandler;
 
14536
  friend class ::WinMacros;
 
14537
  friend class ::WinAsm;
 
14538
  friend class ::WinDeclSpecs;
 
14539
  friend class ::WinMemberExplSpec;
 
14540
  friend class ::WinTypeKeywords;
 
14541
  friend class ::WinFriend;
 
14542
  friend class ::ExtAC;
 
14543
  friend class ::ExtACBuilderCoupling;
 
14544
  friend class ::ExtACSyntaxCoupling;
 
14545
  friend class ::ExtACTree;
 
14546
  friend class ::ExtACKeywords;
 
14547
  friend class ::ExtGnu;
 
14548
  friend class ::PragmaOnceUnitState;
 
14549
  friend class ::PragmaOnce;
 
14550
  friend class ::CMatchSyntax;
 
14551
 
 
14552
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14553
 
 
14554
  CTree *sons[3]; // keyword, colon, stmt
 
14555
 
 
14556
public:
 
14557
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
 
14558
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
14559
  }
 
14560
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14561
  static const char *NodeId ();
 
14562
  /** Get the name of the node. Can be compared with NodeId(). */
 
14563
  const char *NodeName () const { return NodeId (); }
 
14564
  /** Get the number of sons. */
 
14565
  int Sons () const { return 3; }
 
14566
  /** Get the n-th son.
 
14567
   *  \param n The index of the son.
 
14568
   *  \return The n-th son or NULL. */
 
14569
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
14570
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
14571
  /** Replace a son.
 
14572
   *  \param old_son The son to replace.
 
14573
   *  \param new_son The new son. */
 
14574
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14575
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
14576
  }
 
14577
};
 
14578
 
 
14579
 
 
14580
#line 14581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14581
} // closed Puma
 
14582
class CCExprResolve;
 
14583
class CExprResolve;
 
14584
class WinIfExists;
 
14585
class WinImportHandler;
 
14586
class WinMacros;
 
14587
class WinAsm;
 
14588
class WinDeclSpecs;
 
14589
class WinMemberExplSpec;
 
14590
class WinTypeKeywords;
 
14591
class WinFriend;
 
14592
class ExtAC;
 
14593
class ExtACBuilderCoupling;
 
14594
class ExtACSyntaxCoupling;
 
14595
class ExtACTree;
 
14596
class ExtACKeywords;
 
14597
class ExtGnu;
 
14598
class PragmaOnceUnitState;
 
14599
class PragmaOnce;
 
14600
class CMatchSyntax;
 
14601
namespace Puma {
 
14602
 
 
14603
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14604
class CT_TryStmt : public CT_Statement {
 
14605
#line 14606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14606
  friend class ::CCExprResolve;
 
14607
  friend class ::CExprResolve;
 
14608
  friend class ::WinIfExists;
 
14609
  friend class ::WinImportHandler;
 
14610
  friend class ::WinMacros;
 
14611
  friend class ::WinAsm;
 
14612
  friend class ::WinDeclSpecs;
 
14613
  friend class ::WinMemberExplSpec;
 
14614
  friend class ::WinTypeKeywords;
 
14615
  friend class ::WinFriend;
 
14616
  friend class ::ExtAC;
 
14617
  friend class ::ExtACBuilderCoupling;
 
14618
  friend class ::ExtACSyntaxCoupling;
 
14619
  friend class ::ExtACTree;
 
14620
  friend class ::ExtACKeywords;
 
14621
  friend class ::ExtGnu;
 
14622
  friend class ::PragmaOnceUnitState;
 
14623
  friend class ::PragmaOnce;
 
14624
  friend class ::CMatchSyntax;
 
14625
 
 
14626
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14627
 
 
14628
  CTree *sons[3]; // try, stmt, handlers
 
14629
 
 
14630
public:
 
14631
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
 
14632
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
 
14633
  }
 
14634
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14635
  static const char *NodeId ();
 
14636
  /** Get the name of the node. Can be compared with NodeId(). */
 
14637
  const char *NodeName () const { return NodeId (); }
 
14638
  /** Get the number of sons. */
 
14639
  int Sons () const { return 3; }
 
14640
  /** Get the n-th son.
 
14641
   *  \param n The index of the son.
 
14642
   *  \return The n-th son or NULL. */
 
14643
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
14644
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
14645
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
14646
  /** Replace a son.
 
14647
   *  \param old_son The son to replace.
 
14648
   *  \param new_son The new son. */
 
14649
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14650
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
14651
  }
 
14652
};
 
14653
 
 
14654
 
 
14655
#line 14656 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14656
} // closed Puma
 
14657
class CCExprResolve;
 
14658
class CExprResolve;
 
14659
class WinIfExists;
 
14660
class WinImportHandler;
 
14661
class WinMacros;
 
14662
class WinAsm;
 
14663
class WinDeclSpecs;
 
14664
class WinMemberExplSpec;
 
14665
class WinTypeKeywords;
 
14666
class WinFriend;
 
14667
class ExtAC;
 
14668
class ExtACBuilderCoupling;
 
14669
class ExtACSyntaxCoupling;
 
14670
class ExtACTree;
 
14671
class ExtACKeywords;
 
14672
class ExtGnu;
 
14673
class PragmaOnceUnitState;
 
14674
class PragmaOnce;
 
14675
class CMatchSyntax;
 
14676
namespace Puma {
 
14677
 
 
14678
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14679
class CT_CaseStmt : public CT_Statement {
 
14680
#line 14681 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14681
  friend class ::CCExprResolve;
 
14682
  friend class ::CExprResolve;
 
14683
  friend class ::WinIfExists;
 
14684
  friend class ::WinImportHandler;
 
14685
  friend class ::WinMacros;
 
14686
  friend class ::WinAsm;
 
14687
  friend class ::WinDeclSpecs;
 
14688
  friend class ::WinMemberExplSpec;
 
14689
  friend class ::WinTypeKeywords;
 
14690
  friend class ::WinFriend;
 
14691
  friend class ::ExtAC;
 
14692
  friend class ::ExtACBuilderCoupling;
 
14693
  friend class ::ExtACSyntaxCoupling;
 
14694
  friend class ::ExtACTree;
 
14695
  friend class ::ExtACKeywords;
 
14696
  friend class ::ExtGnu;
 
14697
  friend class ::PragmaOnceUnitState;
 
14698
  friend class ::PragmaOnce;
 
14699
  friend class ::CMatchSyntax;
 
14700
 
 
14701
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14702
 
 
14703
  CTree *sons[4]; // keyword, expr, colon, stmt
 
14704
 
 
14705
public:
 
14706
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
 
14707
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
14708
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
 
14709
  }
 
14710
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14711
  static const char *NodeId ();
 
14712
  /** Get the name of the node. Can be compared with NodeId(). */
 
14713
  const char *NodeName () const { return NodeId (); }
 
14714
  /** Get the number of sons. */
 
14715
  int Sons () const { return 4; }
 
14716
  /** Get the n-th son.
 
14717
   *  \param n The index of the son.
 
14718
   *  \return The n-th son or NULL. */
 
14719
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
14720
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
 
14721
  CTree *Expr () const { return sons[1]; }
 
14722
  /** Replace a son.
 
14723
   *  \param old_son The son to replace.
 
14724
   *  \param new_son The new son. */
 
14725
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14726
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
14727
  }
 
14728
};
 
14729
 
 
14730
 
 
14731
#line 14732 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14732
} // closed Puma
 
14733
class CCExprResolve;
 
14734
class CExprResolve;
 
14735
class WinIfExists;
 
14736
class WinImportHandler;
 
14737
class WinMacros;
 
14738
class WinAsm;
 
14739
class WinDeclSpecs;
 
14740
class WinMemberExplSpec;
 
14741
class WinTypeKeywords;
 
14742
class WinFriend;
 
14743
class ExtAC;
 
14744
class ExtACBuilderCoupling;
 
14745
class ExtACSyntaxCoupling;
 
14746
class ExtACTree;
 
14747
class ExtACKeywords;
 
14748
class ExtGnu;
 
14749
class PragmaOnceUnitState;
 
14750
class PragmaOnce;
 
14751
class CMatchSyntax;
 
14752
namespace Puma {
 
14753
 
 
14754
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14755
class CT_ExprStmt : public CT_Statement {
 
14756
#line 14757 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14757
  friend class ::CCExprResolve;
 
14758
  friend class ::CExprResolve;
 
14759
  friend class ::WinIfExists;
 
14760
  friend class ::WinImportHandler;
 
14761
  friend class ::WinMacros;
 
14762
  friend class ::WinAsm;
 
14763
  friend class ::WinDeclSpecs;
 
14764
  friend class ::WinMemberExplSpec;
 
14765
  friend class ::WinTypeKeywords;
 
14766
  friend class ::WinFriend;
 
14767
  friend class ::ExtAC;
 
14768
  friend class ::ExtACBuilderCoupling;
 
14769
  friend class ::ExtACSyntaxCoupling;
 
14770
  friend class ::ExtACTree;
 
14771
  friend class ::ExtACKeywords;
 
14772
  friend class ::ExtGnu;
 
14773
  friend class ::PragmaOnceUnitState;
 
14774
  friend class ::PragmaOnce;
 
14775
  friend class ::CMatchSyntax;
 
14776
 
 
14777
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14778
 
 
14779
  CTree *sons[2]; // expr, semi_colon
 
14780
 
 
14781
public:
 
14782
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
14783
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14784
  static const char *NodeId ();
 
14785
  /** Get the name of the node. Can be compared with NodeId(). */
 
14786
  const char *NodeName () const { return NodeId (); }
 
14787
  /** Get the number of sons. */
 
14788
  int Sons () const { return CTree::Sons (sons, 2); }
 
14789
  /** Get the n-th son.
 
14790
   *  \param n The index of the son.
 
14791
   *  \return The n-th son or NULL. */
 
14792
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
14793
  CTree *Expr () const { return sons[0]; }
 
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, 2, old_son, new_son);
 
14799
  }
 
14800
};
 
14801
 
 
14802
 
 
14803
#line 14804 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.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 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14827
class CT_DeclStmt : public CT_Statement {
 
14828
#line 14829 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.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 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14850
 
 
14851
  CTree *_decl;
 
14852
 
 
14853
public:
 
14854
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
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 1; }
 
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 n == 0 ? _decl : (CTree*)0; }
 
14865
  /** Replace a son.
 
14866
   *  \param old_son The son to replace.
 
14867
   *  \param new_son The new son. */
 
14868
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
14869
   { CTree::ReplaceSon (_decl, old_son, new_son); }
 
14870
};
 
14871
 
 
14872
 
 
14873
#line 14874 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14874
} // closed Puma
 
14875
class CCExprResolve;
 
14876
class CExprResolve;
 
14877
class WinIfExists;
 
14878
class WinImportHandler;
 
14879
class WinMacros;
 
14880
class WinAsm;
 
14881
class WinDeclSpecs;
 
14882
class WinMemberExplSpec;
 
14883
class WinTypeKeywords;
 
14884
class WinFriend;
 
14885
class ExtAC;
 
14886
class ExtACBuilderCoupling;
 
14887
class ExtACSyntaxCoupling;
 
14888
class ExtACTree;
 
14889
class ExtACKeywords;
 
14890
class ExtGnu;
 
14891
class PragmaOnceUnitState;
 
14892
class PragmaOnce;
 
14893
class CMatchSyntax;
 
14894
namespace Puma {
 
14895
 
 
14896
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14897
class CT_SwitchStmt : public CT_Statement, public CSemScope {
 
14898
#line 14899 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14899
  friend class ::CCExprResolve;
 
14900
  friend class ::CExprResolve;
 
14901
  friend class ::WinIfExists;
 
14902
  friend class ::WinImportHandler;
 
14903
  friend class ::WinMacros;
 
14904
  friend class ::WinAsm;
 
14905
  friend class ::WinDeclSpecs;
 
14906
  friend class ::WinMemberExplSpec;
 
14907
  friend class ::WinTypeKeywords;
 
14908
  friend class ::WinFriend;
 
14909
  friend class ::ExtAC;
 
14910
  friend class ::ExtACBuilderCoupling;
 
14911
  friend class ::ExtACSyntaxCoupling;
 
14912
  friend class ::ExtACTree;
 
14913
  friend class ::ExtACKeywords;
 
14914
  friend class ::ExtGnu;
 
14915
  friend class ::PragmaOnceUnitState;
 
14916
  friend class ::PragmaOnce;
 
14917
  friend class ::CMatchSyntax;
 
14918
 
 
14919
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14920
 
 
14921
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
14922
 
 
14923
public:
 
14924
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
14925
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
14926
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
14927
  }
 
14928
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14929
  static const char *NodeId ();
 
14930
  /** Get the name of the node. Can be compared with NodeId(). */
 
14931
  const char *NodeName () const { return NodeId (); }
 
14932
  /** Get the number of sons. */
 
14933
  int Sons () const { return 5; }
 
14934
  /** Get the n-th son.
 
14935
   *  \param n The index of the son.
 
14936
   *  \return The n-th son or NULL. */
 
14937
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
14938
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
14939
  CTree *Condition () const { return sons[2]; }
 
14940
  /** Replace a son.
 
14941
   *  \param old_son The son to replace.
 
14942
   *  \param new_son The new son. */
 
14943
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14944
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
14945
  }
 
14946
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
14947
};
 
14948
 
 
14949
 
 
14950
#line 14951 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14951
} // closed Puma
 
14952
class CCExprResolve;
 
14953
class CExprResolve;
 
14954
class WinIfExists;
 
14955
class WinImportHandler;
 
14956
class WinMacros;
 
14957
class WinAsm;
 
14958
class WinDeclSpecs;
 
14959
class WinMemberExplSpec;
 
14960
class WinTypeKeywords;
 
14961
class WinFriend;
 
14962
class ExtAC;
 
14963
class ExtACBuilderCoupling;
 
14964
class ExtACSyntaxCoupling;
 
14965
class ExtACTree;
 
14966
class ExtACKeywords;
 
14967
class ExtGnu;
 
14968
class PragmaOnceUnitState;
 
14969
class PragmaOnce;
 
14970
class CMatchSyntax;
 
14971
namespace Puma {
 
14972
 
 
14973
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14974
class CT_IfStmt : public CT_Statement, public CSemScope {
 
14975
#line 14976 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
14976
  friend class ::CCExprResolve;
 
14977
  friend class ::CExprResolve;
 
14978
  friend class ::WinIfExists;
 
14979
  friend class ::WinImportHandler;
 
14980
  friend class ::WinMacros;
 
14981
  friend class ::WinAsm;
 
14982
  friend class ::WinDeclSpecs;
 
14983
  friend class ::WinMemberExplSpec;
 
14984
  friend class ::WinTypeKeywords;
 
14985
  friend class ::WinFriend;
 
14986
  friend class ::ExtAC;
 
14987
  friend class ::ExtACBuilderCoupling;
 
14988
  friend class ::ExtACSyntaxCoupling;
 
14989
  friend class ::ExtACTree;
 
14990
  friend class ::ExtACKeywords;
 
14991
  friend class ::ExtGnu;
 
14992
  friend class ::PragmaOnceUnitState;
 
14993
  friend class ::PragmaOnce;
 
14994
  friend class ::CMatchSyntax;
 
14995
 
 
14996
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14997
 
 
14998
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
14999
 
 
15000
public:
 
15001
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
15002
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
15003
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
15004
  }
 
15005
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15006
  static const char *NodeId ();
 
15007
  /** Get the name of the node. Can be compared with NodeId(). */
 
15008
  const char *NodeName () const { return NodeId (); }
 
15009
  /** Get the number of sons. */
 
15010
  int Sons () const { return 5; }
 
15011
  /** Get the n-th son.
 
15012
   *  \param n The index of the son.
 
15013
   *  \return The n-th son or NULL. */
 
15014
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
15015
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
15016
  CTree *Condition () const { return sons[2]; }
 
15017
  /** Replace a son.
 
15018
   *  \param old_son The son to replace.
 
15019
   *  \param new_son The new son. */
 
15020
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15021
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
15022
  }
 
15023
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
15024
};
 
15025
 
 
15026
 
 
15027
#line 15028 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15028
} // closed Puma
 
15029
class CCExprResolve;
 
15030
class CExprResolve;
 
15031
class WinIfExists;
 
15032
class WinImportHandler;
 
15033
class WinMacros;
 
15034
class WinAsm;
 
15035
class WinDeclSpecs;
 
15036
class WinMemberExplSpec;
 
15037
class WinTypeKeywords;
 
15038
class WinFriend;
 
15039
class ExtAC;
 
15040
class ExtACBuilderCoupling;
 
15041
class ExtACSyntaxCoupling;
 
15042
class ExtACTree;
 
15043
class ExtACKeywords;
 
15044
class ExtGnu;
 
15045
class PragmaOnceUnitState;
 
15046
class PragmaOnce;
 
15047
class CMatchSyntax;
 
15048
namespace Puma {
 
15049
 
 
15050
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15051
class CT_IfElseStmt : public CT_Statement, public CSemScope {
 
15052
#line 15053 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15053
  friend class ::CCExprResolve;
 
15054
  friend class ::CExprResolve;
 
15055
  friend class ::WinIfExists;
 
15056
  friend class ::WinImportHandler;
 
15057
  friend class ::WinMacros;
 
15058
  friend class ::WinAsm;
 
15059
  friend class ::WinDeclSpecs;
 
15060
  friend class ::WinMemberExplSpec;
 
15061
  friend class ::WinTypeKeywords;
 
15062
  friend class ::WinFriend;
 
15063
  friend class ::ExtAC;
 
15064
  friend class ::ExtACBuilderCoupling;
 
15065
  friend class ::ExtACSyntaxCoupling;
 
15066
  friend class ::ExtACTree;
 
15067
  friend class ::ExtACKeywords;
 
15068
  friend class ::ExtGnu;
 
15069
  friend class ::PragmaOnceUnitState;
 
15070
  friend class ::PragmaOnce;
 
15071
  friend class ::CMatchSyntax;
 
15072
 
 
15073
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15074
 
 
15075
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
 
15076
 
 
15077
public:
 
15078
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
 
15079
                 CTree *is, CTree *e, CTree *es) {
 
15080
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
15081
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
15082
    AddSon (sons[6], es); 
 
15083
  }
 
15084
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15085
  static const char *NodeId ();
 
15086
  /** Get the name of the node. Can be compared with NodeId(). */
 
15087
  const char *NodeName () const { return NodeId (); }
 
15088
  /** Get the number of sons. */
 
15089
  int Sons () const { return 7; }
 
15090
  /** Get the n-th son.
 
15091
   *  \param n The index of the son.
 
15092
   *  \return The n-th son or NULL. */
 
15093
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
15094
  CTree *Condition () const { return sons[2]; }
 
15095
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
 
15096
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
15097
  /** Replace a son.
 
15098
   *  \param old_son The son to replace.
 
15099
   *  \param new_son The new son. */
 
15100
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15101
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
15102
  }
 
15103
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
15104
};
 
15105
 
 
15106
 
 
15107
#line 15108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15108
} // closed Puma
 
15109
class CCExprResolve;
 
15110
class CExprResolve;
 
15111
class WinIfExists;
 
15112
class WinImportHandler;
 
15113
class WinMacros;
 
15114
class WinAsm;
 
15115
class WinDeclSpecs;
 
15116
class WinMemberExplSpec;
 
15117
class WinTypeKeywords;
 
15118
class WinFriend;
 
15119
class ExtAC;
 
15120
class ExtACBuilderCoupling;
 
15121
class ExtACSyntaxCoupling;
 
15122
class ExtACTree;
 
15123
class ExtACKeywords;
 
15124
class ExtGnu;
 
15125
class PragmaOnceUnitState;
 
15126
class PragmaOnce;
 
15127
class CMatchSyntax;
 
15128
namespace Puma {
 
15129
 
 
15130
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15131
class CT_BreakStmt : public CT_Statement {
 
15132
#line 15133 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15133
  friend class ::CCExprResolve;
 
15134
  friend class ::CExprResolve;
 
15135
  friend class ::WinIfExists;
 
15136
  friend class ::WinImportHandler;
 
15137
  friend class ::WinMacros;
 
15138
  friend class ::WinAsm;
 
15139
  friend class ::WinDeclSpecs;
 
15140
  friend class ::WinMemberExplSpec;
 
15141
  friend class ::WinTypeKeywords;
 
15142
  friend class ::WinFriend;
 
15143
  friend class ::ExtAC;
 
15144
  friend class ::ExtACBuilderCoupling;
 
15145
  friend class ::ExtACSyntaxCoupling;
 
15146
  friend class ::ExtACTree;
 
15147
  friend class ::ExtACKeywords;
 
15148
  friend class ::ExtGnu;
 
15149
  friend class ::PragmaOnceUnitState;
 
15150
  friend class ::PragmaOnce;
 
15151
  friend class ::CMatchSyntax;
 
15152
 
 
15153
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15154
 
 
15155
  CTree *sons[2]; // key, semi_colon
 
15156
 
 
15157
public:
 
15158
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
15159
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15160
  static const char *NodeId ();
 
15161
  /** Get the name of the node. Can be compared with NodeId(). */
 
15162
  const char *NodeName () const { return NodeId (); }
 
15163
  /** Get the number of sons. */
 
15164
  int Sons () const { return 2; }
 
15165
  /** Get the n-th son.
 
15166
   *  \param n The index of the son.
 
15167
   *  \return The n-th son or NULL. */
 
15168
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
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, 2, old_son, new_son);
 
15174
  }
 
15175
};
 
15176
 
 
15177
 
 
15178
#line 15179 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15179
} // closed Puma
 
15180
class CCExprResolve;
 
15181
class CExprResolve;
 
15182
class WinIfExists;
 
15183
class WinImportHandler;
 
15184
class WinMacros;
 
15185
class WinAsm;
 
15186
class WinDeclSpecs;
 
15187
class WinMemberExplSpec;
 
15188
class WinTypeKeywords;
 
15189
class WinFriend;
 
15190
class ExtAC;
 
15191
class ExtACBuilderCoupling;
 
15192
class ExtACSyntaxCoupling;
 
15193
class ExtACTree;
 
15194
class ExtACKeywords;
 
15195
class ExtGnu;
 
15196
class PragmaOnceUnitState;
 
15197
class PragmaOnce;
 
15198
class CMatchSyntax;
 
15199
namespace Puma {
 
15200
 
 
15201
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15202
class CT_ContinueStmt : public CT_Statement {
 
15203
#line 15204 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15204
  friend class ::CCExprResolve;
 
15205
  friend class ::CExprResolve;
 
15206
  friend class ::WinIfExists;
 
15207
  friend class ::WinImportHandler;
 
15208
  friend class ::WinMacros;
 
15209
  friend class ::WinAsm;
 
15210
  friend class ::WinDeclSpecs;
 
15211
  friend class ::WinMemberExplSpec;
 
15212
  friend class ::WinTypeKeywords;
 
15213
  friend class ::WinFriend;
 
15214
  friend class ::ExtAC;
 
15215
  friend class ::ExtACBuilderCoupling;
 
15216
  friend class ::ExtACSyntaxCoupling;
 
15217
  friend class ::ExtACTree;
 
15218
  friend class ::ExtACKeywords;
 
15219
  friend class ::ExtGnu;
 
15220
  friend class ::PragmaOnceUnitState;
 
15221
  friend class ::PragmaOnce;
 
15222
  friend class ::CMatchSyntax;
 
15223
 
 
15224
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15225
 
 
15226
  CTree *sons[2]; // key, semi_colon
 
15227
 
 
15228
public:
 
15229
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
15230
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15231
  static const char *NodeId ();
 
15232
  /** Get the name of the node. Can be compared with NodeId(). */
 
15233
  const char *NodeName () const { return NodeId (); }
 
15234
  /** Get the number of sons. */
 
15235
  int Sons () const { return 2; }
 
15236
  /** Get the n-th son.
 
15237
   *  \param n The index of the son.
 
15238
   *  \return The n-th son or NULL. */
 
15239
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
15240
  /** Replace a son.
 
15241
   *  \param old_son The son to replace.
 
15242
   *  \param new_son The new son. */
 
15243
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15244
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
15245
  }
 
15246
};
 
15247
 
 
15248
 
 
15249
#line 15250 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15250
} // closed Puma
 
15251
class CCExprResolve;
 
15252
class CExprResolve;
 
15253
class WinIfExists;
 
15254
class WinImportHandler;
 
15255
class WinMacros;
 
15256
class WinAsm;
 
15257
class WinDeclSpecs;
 
15258
class WinMemberExplSpec;
 
15259
class WinTypeKeywords;
 
15260
class WinFriend;
 
15261
class ExtAC;
 
15262
class ExtACBuilderCoupling;
 
15263
class ExtACSyntaxCoupling;
 
15264
class ExtACTree;
 
15265
class ExtACKeywords;
 
15266
class ExtGnu;
 
15267
class PragmaOnceUnitState;
 
15268
class PragmaOnce;
 
15269
class CMatchSyntax;
 
15270
namespace Puma {
 
15271
 
 
15272
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15273
class CT_GotoStmt : public CT_Statement {
 
15274
#line 15275 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15275
  friend class ::CCExprResolve;
 
15276
  friend class ::CExprResolve;
 
15277
  friend class ::WinIfExists;
 
15278
  friend class ::WinImportHandler;
 
15279
  friend class ::WinMacros;
 
15280
  friend class ::WinAsm;
 
15281
  friend class ::WinDeclSpecs;
 
15282
  friend class ::WinMemberExplSpec;
 
15283
  friend class ::WinTypeKeywords;
 
15284
  friend class ::WinFriend;
 
15285
  friend class ::ExtAC;
 
15286
  friend class ::ExtACBuilderCoupling;
 
15287
  friend class ::ExtACSyntaxCoupling;
 
15288
  friend class ::ExtACTree;
 
15289
  friend class ::ExtACKeywords;
 
15290
  friend class ::ExtGnu;
 
15291
  friend class ::PragmaOnceUnitState;
 
15292
  friend class ::PragmaOnce;
 
15293
  friend class ::CMatchSyntax;
 
15294
 
 
15295
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15296
 
 
15297
  CTree *sons[3]; // key, label, semi_colon
 
15298
 
 
15299
public:
 
15300
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
 
15301
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
 
15302
  }
 
15303
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15304
  static const char *NodeId ();
 
15305
  /** Get the name of the node. Can be compared with NodeId(). */
 
15306
  const char *NodeName () const { return NodeId (); }
 
15307
  /** Get the number of sons. */
 
15308
  int Sons () const { return 3; }
 
15309
  /** Get the n-th son.
 
15310
   *  \param n The index of the son.
 
15311
   *  \return The n-th son or NULL. */
 
15312
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
15313
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
15314
  /** Replace a son.
 
15315
   *  \param old_son The son to replace.
 
15316
   *  \param new_son The new son. */
 
15317
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15318
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
15319
  }
 
15320
};
 
15321
 
 
15322
 
 
15323
#line 15324 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15324
} // closed Puma
 
15325
class CCExprResolve;
 
15326
class CExprResolve;
 
15327
class WinIfExists;
 
15328
class WinImportHandler;
 
15329
class WinMacros;
 
15330
class WinAsm;
 
15331
class WinDeclSpecs;
 
15332
class WinMemberExplSpec;
 
15333
class WinTypeKeywords;
 
15334
class WinFriend;
 
15335
class ExtAC;
 
15336
class ExtACBuilderCoupling;
 
15337
class ExtACSyntaxCoupling;
 
15338
class ExtACTree;
 
15339
class ExtACKeywords;
 
15340
class ExtGnu;
 
15341
class PragmaOnceUnitState;
 
15342
class PragmaOnce;
 
15343
class CMatchSyntax;
 
15344
namespace Puma {
 
15345
 
 
15346
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15347
class CT_ReturnStmt : public CT_Statement {
 
15348
#line 15349 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15349
  friend class ::CCExprResolve;
 
15350
  friend class ::CExprResolve;
 
15351
  friend class ::WinIfExists;
 
15352
  friend class ::WinImportHandler;
 
15353
  friend class ::WinMacros;
 
15354
  friend class ::WinAsm;
 
15355
  friend class ::WinDeclSpecs;
 
15356
  friend class ::WinMemberExplSpec;
 
15357
  friend class ::WinTypeKeywords;
 
15358
  friend class ::WinFriend;
 
15359
  friend class ::ExtAC;
 
15360
  friend class ::ExtACBuilderCoupling;
 
15361
  friend class ::ExtACSyntaxCoupling;
 
15362
  friend class ::ExtACTree;
 
15363
  friend class ::ExtACKeywords;
 
15364
  friend class ::ExtGnu;
 
15365
  friend class ::PragmaOnceUnitState;
 
15366
  friend class ::PragmaOnce;
 
15367
  friend class ::CMatchSyntax;
 
15368
 
 
15369
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15370
 
 
15371
  CTree *sons[3]; // key, expr, semi_colon
 
15372
 
 
15373
public:
 
15374
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
 
15375
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
 
15376
  }
 
15377
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15378
  static const char *NodeId ();
 
15379
  /** Get the name of the node. Can be compared with NodeId(). */
 
15380
  const char *NodeName () const { return NodeId (); }
 
15381
  /** Get the number of sons. */
 
15382
  int Sons () const { return CTree::Sons (sons, 3); }
 
15383
  /** Get the n-th son.
 
15384
   *  \param n The index of the son.
 
15385
   *  \return The n-th son or NULL. */
 
15386
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
15387
  CTree *Expr () const { return sons[1]; }
 
15388
  /** Replace a son.
 
15389
   *  \param old_son The son to replace.
 
15390
   *  \param new_son The new son. */
 
15391
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15392
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
15393
  }
 
15394
};
 
15395
 
 
15396
 
 
15397
#line 15398 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15398
} // closed Puma
 
15399
class CCExprResolve;
 
15400
class CExprResolve;
 
15401
class WinIfExists;
 
15402
class WinImportHandler;
 
15403
class WinMacros;
 
15404
class WinAsm;
 
15405
class WinDeclSpecs;
 
15406
class WinMemberExplSpec;
 
15407
class WinTypeKeywords;
 
15408
class WinFriend;
 
15409
class ExtAC;
 
15410
class ExtACBuilderCoupling;
 
15411
class ExtACSyntaxCoupling;
 
15412
class ExtACTree;
 
15413
class ExtACKeywords;
 
15414
class ExtGnu;
 
15415
class PragmaOnceUnitState;
 
15416
class PragmaOnce;
 
15417
class CMatchSyntax;
 
15418
namespace Puma {
 
15419
 
 
15420
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15421
class CT_WhileStmt : public CT_Statement, public CSemScope {
 
15422
#line 15423 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15423
  friend class ::CCExprResolve;
 
15424
  friend class ::CExprResolve;
 
15425
  friend class ::WinIfExists;
 
15426
  friend class ::WinImportHandler;
 
15427
  friend class ::WinMacros;
 
15428
  friend class ::WinAsm;
 
15429
  friend class ::WinDeclSpecs;
 
15430
  friend class ::WinMemberExplSpec;
 
15431
  friend class ::WinTypeKeywords;
 
15432
  friend class ::WinFriend;
 
15433
  friend class ::ExtAC;
 
15434
  friend class ::ExtACBuilderCoupling;
 
15435
  friend class ::ExtACSyntaxCoupling;
 
15436
  friend class ::ExtACTree;
 
15437
  friend class ::ExtACKeywords;
 
15438
  friend class ::ExtGnu;
 
15439
  friend class ::PragmaOnceUnitState;
 
15440
  friend class ::PragmaOnce;
 
15441
  friend class ::CMatchSyntax;
 
15442
 
 
15443
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15444
 
 
15445
  CTree *sons[5]; // key, open, cond, close, stmt
 
15446
 
 
15447
public:
 
15448
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
15449
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
15450
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
15451
  }
 
15452
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15453
  static const char *NodeId ();
 
15454
  /** Get the name of the node. Can be compared with NodeId(). */
 
15455
  const char *NodeName () const { return NodeId (); }
 
15456
  /** Get the number of sons. */
 
15457
  int Sons () const { return 5; }
 
15458
  /** Get the n-th son.
 
15459
   *  \param n The index of the son.
 
15460
   *  \return The n-th son or NULL. */
 
15461
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
15462
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
15463
  CTree *Condition () const { return sons[2]; }
 
15464
  /** Replace a son.
 
15465
   *  \param old_son The son to replace.
 
15466
   *  \param new_son The new son. */
 
15467
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15468
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
15469
  }
 
15470
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
15471
};
 
15472
 
 
15473
 
 
15474
#line 15475 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15475
} // closed Puma
 
15476
class CCExprResolve;
 
15477
class CExprResolve;
 
15478
class WinIfExists;
 
15479
class WinImportHandler;
 
15480
class WinMacros;
 
15481
class WinAsm;
 
15482
class WinDeclSpecs;
 
15483
class WinMemberExplSpec;
 
15484
class WinTypeKeywords;
 
15485
class WinFriend;
 
15486
class ExtAC;
 
15487
class ExtACBuilderCoupling;
 
15488
class ExtACSyntaxCoupling;
 
15489
class ExtACTree;
 
15490
class ExtACKeywords;
 
15491
class ExtGnu;
 
15492
class PragmaOnceUnitState;
 
15493
class PragmaOnce;
 
15494
class CMatchSyntax;
 
15495
namespace Puma {
 
15496
 
 
15497
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15498
class CT_DoStmt : public CT_Statement {
 
15499
#line 15500 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15500
  friend class ::CCExprResolve;
 
15501
  friend class ::CExprResolve;
 
15502
  friend class ::WinIfExists;
 
15503
  friend class ::WinImportHandler;
 
15504
  friend class ::WinMacros;
 
15505
  friend class ::WinAsm;
 
15506
  friend class ::WinDeclSpecs;
 
15507
  friend class ::WinMemberExplSpec;
 
15508
  friend class ::WinTypeKeywords;
 
15509
  friend class ::WinFriend;
 
15510
  friend class ::ExtAC;
 
15511
  friend class ::ExtACBuilderCoupling;
 
15512
  friend class ::ExtACSyntaxCoupling;
 
15513
  friend class ::ExtACTree;
 
15514
  friend class ::ExtACKeywords;
 
15515
  friend class ::ExtGnu;
 
15516
  friend class ::PragmaOnceUnitState;
 
15517
  friend class ::PragmaOnce;
 
15518
  friend class ::CMatchSyntax;
 
15519
 
 
15520
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15521
 
 
15522
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
 
15523
 
 
15524
public:
 
15525
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
 
15526
             CTree *c, CTree *sc) {
 
15527
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
15528
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
15529
    AddSon (sons[6], sc); 
 
15530
  }
 
15531
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15532
  static const char *NodeId ();
 
15533
  /** Get the name of the node. Can be compared with NodeId(). */
 
15534
  const char *NodeName () const { return NodeId (); }
 
15535
  /** Get the number of sons. */
 
15536
  int Sons () const { return 7; }
 
15537
  /** Get the n-th son.
 
15538
   *  \param n The index of the son.
 
15539
   *  \return The n-th son or NULL. */
 
15540
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
15541
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
15542
  CTree *Expr () const { return sons[4]; }
 
15543
  /** Replace a son.
 
15544
   *  \param old_son The son to replace.
 
15545
   *  \param new_son The new son. */
 
15546
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15547
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
15548
  }
 
15549
};
 
15550
 
 
15551
 
 
15552
#line 15553 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15553
} // closed Puma
 
15554
class CCExprResolve;
 
15555
class CExprResolve;
 
15556
class WinIfExists;
 
15557
class WinImportHandler;
 
15558
class WinMacros;
 
15559
class WinAsm;
 
15560
class WinDeclSpecs;
 
15561
class WinMemberExplSpec;
 
15562
class WinTypeKeywords;
 
15563
class WinFriend;
 
15564
class ExtAC;
 
15565
class ExtACBuilderCoupling;
 
15566
class ExtACSyntaxCoupling;
 
15567
class ExtACTree;
 
15568
class ExtACKeywords;
 
15569
class ExtGnu;
 
15570
class PragmaOnceUnitState;
 
15571
class PragmaOnce;
 
15572
class CMatchSyntax;
 
15573
namespace Puma {
 
15574
 
 
15575
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15576
class CT_ForStmt : public CT_Statement, public CSemScope {
 
15577
#line 15578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15578
  friend class ::CCExprResolve;
 
15579
  friend class ::CExprResolve;
 
15580
  friend class ::WinIfExists;
 
15581
  friend class ::WinImportHandler;
 
15582
  friend class ::WinMacros;
 
15583
  friend class ::WinAsm;
 
15584
  friend class ::WinDeclSpecs;
 
15585
  friend class ::WinMemberExplSpec;
 
15586
  friend class ::WinTypeKeywords;
 
15587
  friend class ::WinFriend;
 
15588
  friend class ::ExtAC;
 
15589
  friend class ::ExtACBuilderCoupling;
 
15590
  friend class ::ExtACSyntaxCoupling;
 
15591
  friend class ::ExtACTree;
 
15592
  friend class ::ExtACKeywords;
 
15593
  friend class ::ExtGnu;
 
15594
  friend class ::PragmaOnceUnitState;
 
15595
  friend class ::PragmaOnce;
 
15596
  friend class ::CMatchSyntax;
 
15597
 
 
15598
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15599
 
 
15600
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
 
15601
 
 
15602
public:
 
15603
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
 
15604
              CTree *e, CTree *c, CTree *stmt) {
 
15605
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
15606
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
15607
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
 
15608
  }
 
15609
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15610
  static const char *NodeId ();
 
15611
  /** Get the name of the node. Can be compared with NodeId(). */
 
15612
  const char *NodeName () const { return NodeId (); }
 
15613
  /** Get the number of sons. */
 
15614
  int Sons () const { return CTree::Sons (sons, 8); }
 
15615
  /** Get the n-th son.
 
15616
   *  \param n The index of the son.
 
15617
   *  \return The n-th son or NULL. */
 
15618
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
 
15619
  CTree *InitStmt () const { return sons[2]; }
 
15620
  CTree *Condition () const { return sons[3]; }
 
15621
  CTree *Expr () const { return sons[5]; }
 
15622
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
15623
  /** Replace a son.
 
15624
   *  \param old_son The son to replace.
 
15625
   *  \param new_son The new son. */
 
15626
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15627
    CTree::ReplaceSon (sons, 8, old_son, new_son);
 
15628
  }
 
15629
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
15630
};
 
15631
 
 
15632
 
 
15633
#line 15634 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15634
} // closed Puma
 
15635
class CCExprResolve;
 
15636
class CExprResolve;
 
15637
class WinIfExists;
 
15638
class WinImportHandler;
 
15639
class WinMacros;
 
15640
class WinAsm;
 
15641
class WinDeclSpecs;
 
15642
class WinMemberExplSpec;
 
15643
class WinTypeKeywords;
 
15644
class WinFriend;
 
15645
class ExtAC;
 
15646
class ExtACBuilderCoupling;
 
15647
class ExtACSyntaxCoupling;
 
15648
class ExtACTree;
 
15649
class ExtACKeywords;
 
15650
class ExtGnu;
 
15651
class PragmaOnceUnitState;
 
15652
class PragmaOnce;
 
15653
class CMatchSyntax;
 
15654
namespace Puma {
 
15655
 
 
15656
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15657
class CT_Condition : public CT_Decl, public CSemObject {
 
15658
#line 15659 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15659
  friend class ::CCExprResolve;
 
15660
  friend class ::CExprResolve;
 
15661
  friend class ::WinIfExists;
 
15662
  friend class ::WinImportHandler;
 
15663
  friend class ::WinMacros;
 
15664
  friend class ::WinAsm;
 
15665
  friend class ::WinDeclSpecs;
 
15666
  friend class ::WinMemberExplSpec;
 
15667
  friend class ::WinTypeKeywords;
 
15668
  friend class ::WinFriend;
 
15669
  friend class ::ExtAC;
 
15670
  friend class ::ExtACBuilderCoupling;
 
15671
  friend class ::ExtACSyntaxCoupling;
 
15672
  friend class ::ExtACTree;
 
15673
  friend class ::ExtACKeywords;
 
15674
  friend class ::ExtGnu;
 
15675
  friend class ::PragmaOnceUnitState;
 
15676
  friend class ::PragmaOnce;
 
15677
  friend class ::CMatchSyntax;
 
15678
 
 
15679
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15680
 
 
15681
  CTree *sons[3]; // declspecs, declarator, init
 
15682
 
 
15683
public:
 
15684
  CT_Condition (CTree *dsl, CTree *d) {
 
15685
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
 
15686
  }
 
15687
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15688
  static const char *NodeId ();
 
15689
  /** Get the name of the node. Can be compared with NodeId(). */
 
15690
  const char *NodeName () const { return NodeId (); }
 
15691
  /** Get the number of sons. */
 
15692
  int Sons () const { return CTree::Sons (sons, 3); }
 
15693
  /** Get the n-th son.
 
15694
   *  \param n The index of the son.
 
15695
   *  \return The n-th son or NULL. */
 
15696
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
15697
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
15698
  CTree *Declarator () const { return sons[1]; }
 
15699
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
15700
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
15701
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
15702
  /** Replace a son.
 
15703
   *  \param old_son The son to replace.
 
15704
   *  \param new_son The new son. */
 
15705
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15706
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
15707
  }
 
15708
};
 
15709
 
 
15710
/*****************************************************************************/
 
15711
/*                                                                           */
 
15712
/*                              Classes                                      */
 
15713
/*                                                                           */
 
15714
/*****************************************************************************/
 
15715
 
 
15716
 
 
15717
#line 15718 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15718
} // closed Puma
 
15719
class CCExprResolve;
 
15720
class CExprResolve;
 
15721
class WinIfExists;
 
15722
class WinImportHandler;
 
15723
class WinMacros;
 
15724
class WinAsm;
 
15725
class WinDeclSpecs;
 
15726
class WinMemberExplSpec;
 
15727
class WinTypeKeywords;
 
15728
class WinFriend;
 
15729
class ExtAC;
 
15730
class ExtACBuilderCoupling;
 
15731
class ExtACSyntaxCoupling;
 
15732
class ExtACTree;
 
15733
class ExtACKeywords;
 
15734
class ExtGnu;
 
15735
class PragmaOnceUnitState;
 
15736
class PragmaOnce;
 
15737
class CMatchSyntax;
 
15738
namespace Puma {
 
15739
 
 
15740
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15741
 
 
15742
#line 15743 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15743
} // closed Puma
 
15744
 
 
15745
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
15746
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
15747
 
 
15748
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15749
// This file is part of PUMA.
 
15750
// Copyright (C) 1999-2003  The PUMA developer team.
 
15751
//                                                                
 
15752
// This program is free software;  you can redistribute it and/or 
 
15753
// modify it under the terms of the GNU General Public License as 
 
15754
// published by the Free Software Foundation; either version 2 of 
 
15755
// the License, or (at your option) any later version.            
 
15756
//                                                                
 
15757
// This program is distributed in the hope that it will be useful,
 
15758
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
15759
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
15760
// GNU General Public License for more details.                   
 
15761
//                                                                
 
15762
// You should have received a copy of the GNU General Public      
 
15763
// License along with this program; if not, write to the Free     
 
15764
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
15765
// MA  02111-1307  USA                                            
 
15766
 
 
15767
#ifndef __ExtACTree_ah__
 
15768
#define __ExtACTree_ah__
 
15769
 
 
15770
// TODO:
 
15771
// this shall be introduced by the ExtAC aspect as soon as the include cycle
 
15772
// problem is solved!
 
15773
 
 
15774
namespace Puma {
 
15775
  class CTree;
 
15776
}
 
15777
 
 
15778
 
 
15779
#line 15780 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15780
class CCExprResolve;
 
15781
class CExprResolve;
 
15782
class WinIfExists;
 
15783
class WinImportHandler;
 
15784
class WinMacros;
 
15785
class WinAsm;
 
15786
class WinDeclSpecs;
 
15787
class WinMemberExplSpec;
 
15788
class WinTypeKeywords;
 
15789
class WinFriend;
 
15790
class ExtAC;
 
15791
class ExtACBuilderCoupling;
 
15792
class ExtACSyntaxCoupling;
 
15793
class ExtACKeywords;
 
15794
class ExtGnu;
 
15795
class PragmaOnceUnitState;
 
15796
class PragmaOnce;
 
15797
class CMatchSyntax;
 
15798
 
 
15799
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15800
class ExtACTree {
 
15801
#line 15802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15802
 
 
15803
public:
 
15804
  static ExtACTree *aspectof () {
 
15805
    static ExtACTree __instance;
 
15806
    return &__instance;
 
15807
  }
 
15808
  static ExtACTree *aspectOf () {
 
15809
    return aspectof ();
 
15810
  }
 
15811
private:
 
15812
 
 
15813
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15814
 
 
15815
#line 15816 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15816
  friend class ::CCExprResolve;
 
15817
  friend class ::CExprResolve;
 
15818
  friend class ::WinIfExists;
 
15819
  friend class ::WinImportHandler;
 
15820
  friend class ::WinMacros;
 
15821
  friend class ::WinAsm;
 
15822
  friend class ::WinDeclSpecs;
 
15823
  friend class ::WinMemberExplSpec;
 
15824
  friend class ::WinTypeKeywords;
 
15825
  friend class ::WinFriend;
 
15826
  friend class ::ExtAC;
 
15827
  friend class ::ExtACBuilderCoupling;
 
15828
  friend class ::ExtACSyntaxCoupling;
 
15829
  friend class ::ExtACKeywords;
 
15830
  friend class ::ExtGnu;
 
15831
  friend class ::PragmaOnceUnitState;
 
15832
  friend class ::PragmaOnce;
 
15833
  friend class ::CMatchSyntax;
 
15834
 
 
15835
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15836
 
 
15837
  
 
15838
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15839
 
 
15840
  
 
15841
  // implemented in a separate .cc file, because Builder.h is needed!
 
15842
  void delete_tree (Puma::CTree *t);
 
15843
  
 
15844
  
 
15845
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15846
 
 
15847
  
 
15848
  
 
15849
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15850
 
 
15851
public: template<class JoinPoint> void __a0_after 
 
15852
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15853
 
 
15854
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15855
(JoinPoint *tjp)
 
15856
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15857
 {
 
15858
#line 15859 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15859
 
 
15860
  typedef typename JoinPoint::That __JP_That;
 
15861
  typedef typename JoinPoint::Target __JP_Target;
 
15862
  typedef typename JoinPoint::Result __JP_Result;
 
15863
 
 
15864
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15865
 
 
15866
    tjp->that ()->_intro_members = 0;
 
15867
    tjp->that ()->_base_intros = 0;
 
15868
  }
 
15869
#line 15870 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15870
 
 
15871
private:
 
15872
 
 
15873
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15874
 
 
15875
  
 
15876
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15877
 
 
15878
public: template<class JoinPoint> void __a1_before 
 
15879
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15880
 
 
15881
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15882
(JoinPoint *tjp)
 
15883
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15884
 {
 
15885
#line 15886 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15886
 
 
15887
  typedef typename JoinPoint::That __JP_That;
 
15888
  typedef typename JoinPoint::Target __JP_Target;
 
15889
  typedef typename JoinPoint::Result __JP_Result;
 
15890
 
 
15891
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15892
 
 
15893
    delete_tree (tjp->that ()->_intro_members);
 
15894
    delete_tree (tjp->that ()->_base_intros);
 
15895
  }
 
15896
#line 15897 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15897
 
 
15898
private:
 
15899
 
 
15900
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15901
 
 
15902
};
 
15903
#line 15904 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15904
 
 
15905
namespace AC {
 
15906
  template <class JoinPoint>
 
15907
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp) {
 
15908
    ::ExtACTree::aspectof()->__a0_after (tjp);
 
15909
  }
 
15910
  template <class JoinPoint>
 
15911
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp) {
 
15912
    ::ExtACTree::aspectof()->__a1_before (tjp);
 
15913
  }
 
15914
 
15915
 
 
15916
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15917
 
 
15918
 
 
15919
#endif // __ExtACTree_ah__
 
15920
 
 
15921
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15922
#endif
 
15923
namespace Puma {
 
15924
 
 
15925
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15926
class CT_ClassDef : public CT_Decl, public CSemObject {
 
15927
#line 15928 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15928
  friend class ::CCExprResolve;
 
15929
  friend class ::CExprResolve;
 
15930
  friend class ::WinIfExists;
 
15931
  friend class ::WinImportHandler;
 
15932
  friend class ::WinMacros;
 
15933
  friend class ::WinAsm;
 
15934
  friend class ::WinDeclSpecs;
 
15935
  friend class ::WinMemberExplSpec;
 
15936
  friend class ::WinTypeKeywords;
 
15937
  friend class ::WinFriend;
 
15938
  friend class ::ExtAC;
 
15939
  friend class ::ExtACBuilderCoupling;
 
15940
  friend class ::ExtACSyntaxCoupling;
 
15941
  friend class ::ExtACTree;
 
15942
  friend class ::ExtACKeywords;
 
15943
  friend class ::ExtGnu;
 
15944
  friend class ::PragmaOnceUnitState;
 
15945
  friend class ::PragmaOnce;
 
15946
  friend class ::CMatchSyntax;
 
15947
 
 
15948
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15949
 
 
15950
   
 
15951
#line 15952 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15952
 
 
15953
  struct __ac_wrapper_sons {
 
15954
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
 
15955
    operator A& () { return _data; }
 
15956
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
 
15957
    operator const A& () { return _data; }
 
15958
    operator const A& () const { return _data; }
 
15959
    operator void* () { return _data; }
 
15960
    operator void* () const { return (void*)_data; }
 
15961
    operator const void* () { return _data; }
 
15962
    operator const void* () const { return _data; }
 
15963
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
 
15964
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
 
15965
  } sons
 
15966
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15967
 
 
15968
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15969
; // key, name, bases, members
 
15970
  CTree *obj_decl;
 
15971
 
 
15972
public:
 
15973
  
 
15974
#line 15975 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
15975
 
 
15976
 
 
15977
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
15978
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
15979
  typedef TResult Result;
 
15980
  typedef TThat   That;
 
15981
  typedef TTarget Target;
 
15982
  enum { ARGS = TArgs::ARGS };
 
15983
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
15984
  static const int JPID = 55;
 
15985
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
15986
  struct Res {
 
15987
    typedef void Type;
 
15988
    typedef void ReferredType;
 
15989
  };
 
15990
 
 
15991
  That *_that;
 
15992
 
 
15993
  inline That *that() {return (That*)_that;}
 
15994
 
 
15995
};
 
15996
 
 
15997
 
 
15998
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15999
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
 
16000
#line 16001 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16001
{
 
16002
  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;
 
16003
    __TJP tjp;
 
16004
  tjp._that =  (__TJP::That*)this;
 
16005
    this->__exec_old_C1(arg0, arg1, arg2);
 
16006
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
16007
  
 
16008
}
 
16009
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
16010
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16011
{
 
16012
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
16013
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
 
16014
  }
 
16015
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16016
  static const char *NodeId ();
 
16017
  /** Get the name of the node. Can be compared with NodeId(). */
 
16018
  const char *NodeName () const { return NodeId (); }
 
16019
  /** Get the number of sons. */
 
16020
  int Sons () const { return CTree::Sons (sons, 4); }
 
16021
  /** Get the n-th son.
 
16022
   *  \param n The index of the son.
 
16023
   *  \return The n-th son or NULL. */
 
16024
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
16025
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
16026
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
 
16027
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
 
16028
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
16029
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
16030
  void Members (CTree *m) { AddSon (sons[3], m); }
 
16031
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
16032
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
16033
  /** Replace a son.
 
16034
   *  \param old_son The son to replace.
 
16035
   *  \param new_son The new son. */
 
16036
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
16037
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
16038
  }
 
16039
   private:
 
16040
 
 
16041
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16042
 Puma :: CTree * _intro_members ;
 
16043
Puma :: CTree * _base_intros ;
 
16044
public :
 
16045
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
16046
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
16047
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
16048
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
16049
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16050
 
 
16051
#line 16052 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16052
 
 
16053
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
16054
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
16055
  typedef TResult Result;
 
16056
  typedef TThat   That;
 
16057
  typedef TTarget Target;
 
16058
  enum { ARGS = TArgs::ARGS };
 
16059
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
16060
  static const int JPID = 6191;
 
16061
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
16062
  struct Res {
 
16063
    typedef void Type;
 
16064
    typedef void ReferredType;
 
16065
  };
 
16066
 
 
16067
  That *_that;
 
16068
 
 
16069
  inline That *that() {return (That*)_that;}
 
16070
 
 
16071
};
 
16072
 
 
16073
 
 
16074
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16075
 
 
16076
#line 16077 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16077
 
 
16078
public:
 
16079
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) {
 
16080
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
16081
  __TJP tjp;
 
16082
  tjp._that =  (__TJP::That*)this;
 
16083
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
16084
 
 
16085
}
 
16086
 
 
16087
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16088
 
 
16089
#line 16090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16090
 
 
16091
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
16092
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
16093
  typedef TResult Result;
 
16094
  typedef TThat   That;
 
16095
  typedef TTarget Target;
 
16096
  enum { ARGS = TArgs::ARGS };
 
16097
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
16098
  static const int JPID = 6189;
 
16099
  static const AC::JPType JPTYPE = (AC::JPType)32;
 
16100
  struct Res {
 
16101
    typedef void Type;
 
16102
    typedef void ReferredType;
 
16103
  };
 
16104
 
 
16105
  That *_that;
 
16106
 
 
16107
  inline That *that() {return (That*)_that;}
 
16108
 
 
16109
};
 
16110
 
 
16111
 
 
16112
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16113
 
 
16114
#line 16115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16115
 
 
16116
public:
 
16117
inline ~CT_ClassDef () {
 
16118
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
16119
  __TJP tjp;
 
16120
  tjp._that =  (__TJP::That*)this;
 
16121
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
 
16122
 
 
16123
}
 
16124
 
 
16125
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16126
};
 
16127
      
 
16128
 
 
16129
#line 16130 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16130
} // closed Puma
 
16131
class CCExprResolve;
 
16132
class CExprResolve;
 
16133
class WinIfExists;
 
16134
class WinImportHandler;
 
16135
class WinMacros;
 
16136
class WinAsm;
 
16137
class WinDeclSpecs;
 
16138
class WinMemberExplSpec;
 
16139
class WinTypeKeywords;
 
16140
class WinFriend;
 
16141
class ExtAC;
 
16142
class ExtACBuilderCoupling;
 
16143
class ExtACSyntaxCoupling;
 
16144
class ExtACTree;
 
16145
class ExtACKeywords;
 
16146
class ExtGnu;
 
16147
class PragmaOnceUnitState;
 
16148
class PragmaOnce;
 
16149
class CMatchSyntax;
 
16150
namespace Puma {
 
16151
 
 
16152
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16153
class CT_UnionDef : public CT_ClassDef {
 
16154
#line 16155 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16155
  friend class ::CCExprResolve;
 
16156
  friend class ::CExprResolve;
 
16157
  friend class ::WinIfExists;
 
16158
  friend class ::WinImportHandler;
 
16159
  friend class ::WinMacros;
 
16160
  friend class ::WinAsm;
 
16161
  friend class ::WinDeclSpecs;
 
16162
  friend class ::WinMemberExplSpec;
 
16163
  friend class ::WinTypeKeywords;
 
16164
  friend class ::WinFriend;
 
16165
  friend class ::ExtAC;
 
16166
  friend class ::ExtACBuilderCoupling;
 
16167
  friend class ::ExtACSyntaxCoupling;
 
16168
  friend class ::ExtACTree;
 
16169
  friend class ::ExtACKeywords;
 
16170
  friend class ::ExtGnu;
 
16171
  friend class ::PragmaOnceUnitState;
 
16172
  friend class ::PragmaOnce;
 
16173
  friend class ::CMatchSyntax;
 
16174
 
 
16175
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16176
 
 
16177
public:
 
16178
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
 
16179
  static const char *NodeId ();
 
16180
  /** Get the name of the node. Can be compared with NodeId(). */
 
16181
  const char *NodeName () const { return NodeId (); }
 
16182
};
 
16183
      
 
16184
 
 
16185
#line 16186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16186
} // closed Puma
 
16187
class CCExprResolve;
 
16188
class CExprResolve;
 
16189
class WinIfExists;
 
16190
class WinImportHandler;
 
16191
class WinMacros;
 
16192
class WinAsm;
 
16193
class WinDeclSpecs;
 
16194
class WinMemberExplSpec;
 
16195
class WinTypeKeywords;
 
16196
class WinFriend;
 
16197
class ExtAC;
 
16198
class ExtACBuilderCoupling;
 
16199
class ExtACSyntaxCoupling;
 
16200
class ExtACTree;
 
16201
class ExtACKeywords;
 
16202
class ExtGnu;
 
16203
class PragmaOnceUnitState;
 
16204
class PragmaOnce;
 
16205
class CMatchSyntax;
 
16206
namespace Puma {
 
16207
 
 
16208
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16209
class CT_MembList : public CT_DeclList, public CSemScope {
 
16210
#line 16211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16211
  friend class ::CCExprResolve;
 
16212
  friend class ::CExprResolve;
 
16213
  friend class ::WinIfExists;
 
16214
  friend class ::WinImportHandler;
 
16215
  friend class ::WinMacros;
 
16216
  friend class ::WinAsm;
 
16217
  friend class ::WinDeclSpecs;
 
16218
  friend class ::WinMemberExplSpec;
 
16219
  friend class ::WinTypeKeywords;
 
16220
  friend class ::WinFriend;
 
16221
  friend class ::ExtAC;
 
16222
  friend class ::ExtACBuilderCoupling;
 
16223
  friend class ::ExtACSyntaxCoupling;
 
16224
  friend class ::ExtACTree;
 
16225
  friend class ::ExtACKeywords;
 
16226
  friend class ::ExtGnu;
 
16227
  friend class ::PragmaOnceUnitState;
 
16228
  friend class ::PragmaOnce;
 
16229
  friend class ::CMatchSyntax;
 
16230
 
 
16231
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16232
 
 
16233
public:
 
16234
  CT_MembList (int size = 10, int incr = 10) : 
 
16235
    CT_DeclList (size, incr) {}
 
16236
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16237
  static const char *NodeId ();
 
16238
  /** Get the name of the node. Can be compared with NodeId(). */
 
16239
  const char *NodeName () const { return NodeId (); }
 
16240
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
16241
};
 
16242
 
 
16243
 
 
16244
#line 16245 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16245
} // closed Puma
 
16246
class CCExprResolve;
 
16247
class CExprResolve;
 
16248
class WinIfExists;
 
16249
class WinImportHandler;
 
16250
class WinMacros;
 
16251
class WinAsm;
 
16252
class WinDeclSpecs;
 
16253
class WinMemberExplSpec;
 
16254
class WinTypeKeywords;
 
16255
class WinFriend;
 
16256
class ExtAC;
 
16257
class ExtACBuilderCoupling;
 
16258
class ExtACSyntaxCoupling;
 
16259
class ExtACTree;
 
16260
class ExtACKeywords;
 
16261
class ExtGnu;
 
16262
class PragmaOnceUnitState;
 
16263
class PragmaOnce;
 
16264
class CMatchSyntax;
 
16265
namespace Puma {
 
16266
 
 
16267
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16268
class CT_MembInitList : public CT_List, public CSemScope {
 
16269
#line 16270 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16270
  friend class ::CCExprResolve;
 
16271
  friend class ::CExprResolve;
 
16272
  friend class ::WinIfExists;
 
16273
  friend class ::WinImportHandler;
 
16274
  friend class ::WinMacros;
 
16275
  friend class ::WinAsm;
 
16276
  friend class ::WinDeclSpecs;
 
16277
  friend class ::WinMemberExplSpec;
 
16278
  friend class ::WinTypeKeywords;
 
16279
  friend class ::WinFriend;
 
16280
  friend class ::ExtAC;
 
16281
  friend class ::ExtACBuilderCoupling;
 
16282
  friend class ::ExtACSyntaxCoupling;
 
16283
  friend class ::ExtACTree;
 
16284
  friend class ::ExtACKeywords;
 
16285
  friend class ::ExtGnu;
 
16286
  friend class ::PragmaOnceUnitState;
 
16287
  friend class ::PragmaOnce;
 
16288
  friend class ::CMatchSyntax;
 
16289
 
 
16290
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16291
 
 
16292
public:
 
16293
  CT_MembInitList (int size = 2) : 
 
16294
    CT_List (size, 2, CT_List::OPEN) {}
 
16295
  static const char *NodeId ();
 
16296
  /** Get the name of the node. Can be compared with NodeId(). */
 
16297
  const char *NodeName () const { return NodeId (); }
 
16298
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
16299
};
 
16300
 
 
16301
 
 
16302
#line 16303 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16303
} // closed Puma
 
16304
class CCExprResolve;
 
16305
class CExprResolve;
 
16306
class WinIfExists;
 
16307
class WinImportHandler;
 
16308
class WinMacros;
 
16309
class WinAsm;
 
16310
class WinDeclSpecs;
 
16311
class WinMemberExplSpec;
 
16312
class WinTypeKeywords;
 
16313
class WinFriend;
 
16314
class ExtAC;
 
16315
class ExtACBuilderCoupling;
 
16316
class ExtACSyntaxCoupling;
 
16317
class ExtACTree;
 
16318
class ExtACKeywords;
 
16319
class ExtGnu;
 
16320
class PragmaOnceUnitState;
 
16321
class PragmaOnce;
 
16322
class CMatchSyntax;
 
16323
namespace Puma {
 
16324
 
 
16325
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16326
 
 
16327
#line 16328 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16328
} // closed Puma
 
16329
 
 
16330
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16331
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16332
#include "CCExprResolveH.ah"
 
16333
#endif
 
16334
namespace Puma {
 
16335
 
 
16336
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16337
 
 
16338
#line 16339 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16339
} // closed Puma
 
16340
 
 
16341
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16342
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16343
#include "CExprResolveH.ah"
 
16344
#endif
 
16345
namespace Puma {
 
16346
 
 
16347
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16348
class CT_MembInit : public CT_Expression, public CSemObject {
 
16349
#line 16350 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16350
  friend class ::CCExprResolve;
 
16351
  friend class ::CExprResolve;
 
16352
  friend class ::WinIfExists;
 
16353
  friend class ::WinImportHandler;
 
16354
  friend class ::WinMacros;
 
16355
  friend class ::WinAsm;
 
16356
  friend class ::WinDeclSpecs;
 
16357
  friend class ::WinMemberExplSpec;
 
16358
  friend class ::WinTypeKeywords;
 
16359
  friend class ::WinFriend;
 
16360
  friend class ::ExtAC;
 
16361
  friend class ::ExtACBuilderCoupling;
 
16362
  friend class ::ExtACSyntaxCoupling;
 
16363
  friend class ::ExtACTree;
 
16364
  friend class ::ExtACKeywords;
 
16365
  friend class ::ExtGnu;
 
16366
  friend class ::PragmaOnceUnitState;
 
16367
  friend class ::PragmaOnce;
 
16368
  friend class ::CMatchSyntax;
 
16369
 
 
16370
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16371
 
 
16372
  CTree *sons[2]; // name, init
 
16373
 
 
16374
public:
 
16375
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
16376
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16377
  static const char *NodeId ();
 
16378
  /** Get the name of the node. Can be compared with NodeId(). */
 
16379
  const char *NodeName () const { return NodeId (); }
 
16380
  /** Get the number of sons. */
 
16381
  int Sons () const { return 2; }
 
16382
  /** Get the n-th son.
 
16383
   *  \param n The index of the son.
 
16384
   *  \return The n-th son or NULL. */
 
16385
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
16386
  /** Replace a son.
 
16387
   *  \param old_son The son to replace.
 
16388
   *  \param new_son The new son. */
 
16389
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
16390
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
16391
  }
 
16392
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
16393
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
16394
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
16395
   private:
 
16396
  typedef CT_MembInit CCExprResolveExpr;
 
16397
 
 
16398
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
16399
 public :
 
16400
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
16401
  typedef CT_MembInit CExprResolveExpr;
 
16402
 
 
16403
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
16404
 public :
 
16405
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
16406
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16407
};
 
16408
 
 
16409
 
 
16410
#line 16411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16411
} // closed Puma
 
16412
class CCExprResolve;
 
16413
class CExprResolve;
 
16414
class WinIfExists;
 
16415
class WinImportHandler;
 
16416
class WinMacros;
 
16417
class WinAsm;
 
16418
class WinDeclSpecs;
 
16419
class WinMemberExplSpec;
 
16420
class WinTypeKeywords;
 
16421
class WinFriend;
 
16422
class ExtAC;
 
16423
class ExtACBuilderCoupling;
 
16424
class ExtACSyntaxCoupling;
 
16425
class ExtACTree;
 
16426
class ExtACKeywords;
 
16427
class ExtGnu;
 
16428
class PragmaOnceUnitState;
 
16429
class PragmaOnce;
 
16430
class CMatchSyntax;
 
16431
namespace Puma {
 
16432
 
 
16433
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16434
class CT_BaseSpecList : public CT_List {
 
16435
#line 16436 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16436
  friend class ::CCExprResolve;
 
16437
  friend class ::CExprResolve;
 
16438
  friend class ::WinIfExists;
 
16439
  friend class ::WinImportHandler;
 
16440
  friend class ::WinMacros;
 
16441
  friend class ::WinAsm;
 
16442
  friend class ::WinDeclSpecs;
 
16443
  friend class ::WinMemberExplSpec;
 
16444
  friend class ::WinTypeKeywords;
 
16445
  friend class ::WinFriend;
 
16446
  friend class ::ExtAC;
 
16447
  friend class ::ExtACBuilderCoupling;
 
16448
  friend class ::ExtACSyntaxCoupling;
 
16449
  friend class ::ExtACTree;
 
16450
  friend class ::ExtACKeywords;
 
16451
  friend class ::ExtGnu;
 
16452
  friend class ::PragmaOnceUnitState;
 
16453
  friend class ::PragmaOnce;
 
16454
  friend class ::CMatchSyntax;
 
16455
 
 
16456
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16457
 
 
16458
public:
 
16459
  CT_BaseSpecList (int size = 2) : 
 
16460
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
16461
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16462
  static const char *NodeId ();
 
16463
  /** Get the name of the node. Can be compared with NodeId(). */
 
16464
  const char *NodeName () const { return NodeId (); }
 
16465
};
 
16466
 
 
16467
 
 
16468
#line 16469 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16469
} // closed Puma
 
16470
class CCExprResolve;
 
16471
class CExprResolve;
 
16472
class WinIfExists;
 
16473
class WinImportHandler;
 
16474
class WinMacros;
 
16475
class WinAsm;
 
16476
class WinDeclSpecs;
 
16477
class WinMemberExplSpec;
 
16478
class WinTypeKeywords;
 
16479
class WinFriend;
 
16480
class ExtAC;
 
16481
class ExtACBuilderCoupling;
 
16482
class ExtACSyntaxCoupling;
 
16483
class ExtACTree;
 
16484
class ExtACKeywords;
 
16485
class ExtGnu;
 
16486
class PragmaOnceUnitState;
 
16487
class PragmaOnce;
 
16488
class CMatchSyntax;
 
16489
namespace Puma {
 
16490
 
 
16491
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16492
class CT_AccessSpec : public CTree {
 
16493
#line 16494 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16494
  friend class ::CCExprResolve;
 
16495
  friend class ::CExprResolve;
 
16496
  friend class ::WinIfExists;
 
16497
  friend class ::WinImportHandler;
 
16498
  friend class ::WinMacros;
 
16499
  friend class ::WinAsm;
 
16500
  friend class ::WinDeclSpecs;
 
16501
  friend class ::WinMemberExplSpec;
 
16502
  friend class ::WinTypeKeywords;
 
16503
  friend class ::WinFriend;
 
16504
  friend class ::ExtAC;
 
16505
  friend class ::ExtACBuilderCoupling;
 
16506
  friend class ::ExtACSyntaxCoupling;
 
16507
  friend class ::ExtACTree;
 
16508
  friend class ::ExtACKeywords;
 
16509
  friend class ::ExtGnu;
 
16510
  friend class ::PragmaOnceUnitState;
 
16511
  friend class ::PragmaOnce;
 
16512
  friend class ::CMatchSyntax;
 
16513
 
 
16514
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16515
 
 
16516
  CTree *sons[2]; // access, colon
 
16517
 
 
16518
public:
 
16519
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
16520
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16521
  static const char *NodeId ();
 
16522
  /** Get the name of the node. Can be compared with NodeId(). */
 
16523
  const char *NodeName () const { return NodeId (); }
 
16524
  /** Get the number of sons. */
 
16525
  int Sons () const { return 2; }
 
16526
  /** Get the n-th son.
 
16527
   *  \param n The index of the son.
 
16528
   *  \return The n-th son or NULL. */
 
16529
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
16530
  int Access () const { return sons[0]->token ()->type (); }
 
16531
  /** Replace a son.
 
16532
   *  \param old_son The son to replace.
 
16533
   *  \param new_son The new son. */
 
16534
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
16535
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
16536
  }
 
16537
};
 
16538
 
 
16539
 
 
16540
#line 16541 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.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 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16564
class CT_BaseSpec : public CTree {
 
16565
#line 16566 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.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 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16587
 
 
16588
  CTree *sons[3]; // virtual, access, name
 
16589
 
 
16590
public:
 
16591
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
 
16592
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
 
16593
  }
 
16594
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16595
  static const char *NodeId ();
 
16596
  /** Get the name of the node. Can be compared with NodeId(). */
 
16597
  const char *NodeName () const { return NodeId (); }
 
16598
  /** Get the number of sons. */
 
16599
  int Sons () const { return CTree::Sons (sons, 3); }
 
16600
  /** Get the n-th son.
 
16601
   *  \param n The index of the son.
 
16602
   *  \return The n-th son or NULL. */
 
16603
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
16604
  int Access () const { return sons[1]->token ()->type (); }
 
16605
  CTree *AccessSpec () const { return sons[1]; }
 
16606
  CTree *Virtual () const { return sons[0]; }
 
16607
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
16608
  /** Replace a son.
 
16609
   *  \param old_son The son to replace.
 
16610
   *  \param new_son The new son. */
 
16611
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
16612
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
16613
  }
 
16614
};
 
16615
 
 
16616
 
 
16617
#line 16618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16618
} // closed Puma
 
16619
class CCExprResolve;
 
16620
class CExprResolve;
 
16621
class WinIfExists;
 
16622
class WinImportHandler;
 
16623
class WinMacros;
 
16624
class WinAsm;
 
16625
class WinDeclSpecs;
 
16626
class WinMemberExplSpec;
 
16627
class WinTypeKeywords;
 
16628
class WinFriend;
 
16629
class ExtAC;
 
16630
class ExtACBuilderCoupling;
 
16631
class ExtACSyntaxCoupling;
 
16632
class ExtACTree;
 
16633
class ExtACKeywords;
 
16634
class ExtGnu;
 
16635
class PragmaOnceUnitState;
 
16636
class PragmaOnce;
 
16637
class CMatchSyntax;
 
16638
namespace Puma {
 
16639
 
 
16640
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16641
class CT_AccessDecl : public CT_Decl {
 
16642
#line 16643 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16643
  friend class ::CCExprResolve;
 
16644
  friend class ::CExprResolve;
 
16645
  friend class ::WinIfExists;
 
16646
  friend class ::WinImportHandler;
 
16647
  friend class ::WinMacros;
 
16648
  friend class ::WinAsm;
 
16649
  friend class ::WinDeclSpecs;
 
16650
  friend class ::WinMemberExplSpec;
 
16651
  friend class ::WinTypeKeywords;
 
16652
  friend class ::WinFriend;
 
16653
  friend class ::ExtAC;
 
16654
  friend class ::ExtACBuilderCoupling;
 
16655
  friend class ::ExtACSyntaxCoupling;
 
16656
  friend class ::ExtACTree;
 
16657
  friend class ::ExtACKeywords;
 
16658
  friend class ::ExtGnu;
 
16659
  friend class ::PragmaOnceUnitState;
 
16660
  friend class ::PragmaOnce;
 
16661
  friend class ::CMatchSyntax;
 
16662
 
 
16663
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16664
 
 
16665
  CTree *sons[2]; // name, semi_colon
 
16666
 
 
16667
public:
 
16668
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
16669
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16670
  static const char *NodeId ();
 
16671
  /** Get the name of the node. Can be compared with NodeId(). */
 
16672
  const char *NodeName () const { return NodeId (); }
 
16673
  /** Get the number of sons. */
 
16674
  int Sons () const { return 2; }
 
16675
  /** Get the n-th son.
 
16676
   *  \param n The index of the son.
 
16677
   *  \return The n-th son or NULL. */
 
16678
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
16679
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
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, 2, old_son, new_son);
 
16685
  }
 
16686
};
 
16687
 
 
16688
 
 
16689
#line 16690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.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 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16713
class CT_UsingDecl : public CT_AccessDecl {
 
16714
#line 16715 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.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 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16736
 
 
16737
  CTree *sons[2]; // using, typename
 
16738
 
 
16739
public:
 
16740
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
16741
    AddSon (sons[0], u); AddSon (sons[1], 0); 
 
16742
  }
 
16743
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
16744
    AddSon (sons[0], u); AddSon (sons[1], t); 
 
16745
  }
 
16746
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16747
  static const char *NodeId ();
 
16748
  /** Get the name of the node. Can be compared with NodeId(). */
 
16749
  const char *NodeName () const { return NodeId (); }
 
16750
  /** Get the number of sons. */
 
16751
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
16752
  /** Get the n-th son.
 
16753
   *  \param n The index of the son.
 
16754
   *  \return The n-th son or NULL. */
 
16755
  CTree *Son (int n) const {
 
16756
    int num = CTree::Sons (sons, 2);
 
16757
    CTree *result = CTree::Son (sons, 2, n);
 
16758
    return result ? result : CT_AccessDecl::Son (n-num);
 
16759
  }
 
16760
  CTree *Typename () const { return sons[1]; }
 
16761
  /** Replace a son.
 
16762
   *  \param old_son The son to replace.
 
16763
   *  \param new_son The new son. */
 
16764
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
16765
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
16766
    CT_AccessDecl::ReplaceSon (old_son, new_son);
 
16767
  }
 
16768
};
 
16769
 
 
16770
/*****************************************************************************/
 
16771
/*                                                                           */
 
16772
/*                              Wildcards                                    */
 
16773
/*                                                                           */
 
16774
/*****************************************************************************/
 
16775
 
 
16776
 
 
16777
#line 16778 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16778
} // closed Puma
 
16779
class CCExprResolve;
 
16780
class CExprResolve;
 
16781
class WinIfExists;
 
16782
class WinImportHandler;
 
16783
class WinMacros;
 
16784
class WinAsm;
 
16785
class WinDeclSpecs;
 
16786
class WinMemberExplSpec;
 
16787
class WinTypeKeywords;
 
16788
class WinFriend;
 
16789
class ExtAC;
 
16790
class ExtACBuilderCoupling;
 
16791
class ExtACSyntaxCoupling;
 
16792
class ExtACTree;
 
16793
class ExtACKeywords;
 
16794
class ExtGnu;
 
16795
class PragmaOnceUnitState;
 
16796
class PragmaOnce;
 
16797
class CMatchSyntax;
 
16798
namespace Puma {
 
16799
 
 
16800
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16801
class CT_Any : public CTree {
 
16802
#line 16803 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16803
  friend class ::CCExprResolve;
 
16804
  friend class ::CExprResolve;
 
16805
  friend class ::WinIfExists;
 
16806
  friend class ::WinImportHandler;
 
16807
  friend class ::WinMacros;
 
16808
  friend class ::WinAsm;
 
16809
  friend class ::WinDeclSpecs;
 
16810
  friend class ::WinMemberExplSpec;
 
16811
  friend class ::WinTypeKeywords;
 
16812
  friend class ::WinFriend;
 
16813
  friend class ::ExtAC;
 
16814
  friend class ::ExtACBuilderCoupling;
 
16815
  friend class ::ExtACSyntaxCoupling;
 
16816
  friend class ::ExtACTree;
 
16817
  friend class ::ExtACKeywords;
 
16818
  friend class ::ExtGnu;
 
16819
  friend class ::PragmaOnceUnitState;
 
16820
  friend class ::PragmaOnce;
 
16821
  friend class ::CMatchSyntax;
 
16822
 
 
16823
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16824
 
 
16825
  CTree *sons[2]; // keyword, extension
 
16826
 
 
16827
public:
 
16828
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
16829
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16830
  static const char *NodeId ();
 
16831
  /** Get the name of the node. Can be compared with NodeId(). */
 
16832
  const char *NodeName () const { return NodeId (); }
 
16833
  /** Get the number of sons. */
 
16834
  int Sons () const { return CTree::Sons (sons, 2); }
 
16835
  /** Get the n-th son.
 
16836
   *  \param n The index of the son.
 
16837
   *  \return The n-th son or NULL. */
 
16838
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
16839
  /** Replace a son.
 
16840
   *  \param old_son The son to replace.
 
16841
   *  \param new_son The new son. */
 
16842
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
16843
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
16844
  }
 
16845
  int AnyType () const { return sons[0]->token ()->type (); }
 
16846
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
 
16847
};
 
16848
 
 
16849
 
 
16850
#line 16851 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16851
} // closed Puma
 
16852
class CCExprResolve;
 
16853
class CExprResolve;
 
16854
class WinIfExists;
 
16855
class WinImportHandler;
 
16856
class WinMacros;
 
16857
class WinAsm;
 
16858
class WinDeclSpecs;
 
16859
class WinMemberExplSpec;
 
16860
class WinTypeKeywords;
 
16861
class WinFriend;
 
16862
class ExtAC;
 
16863
class ExtACBuilderCoupling;
 
16864
class ExtACSyntaxCoupling;
 
16865
class ExtACTree;
 
16866
class ExtACKeywords;
 
16867
class ExtGnu;
 
16868
class PragmaOnceUnitState;
 
16869
class PragmaOnce;
 
16870
class CMatchSyntax;
 
16871
namespace Puma {
 
16872
 
 
16873
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16874
class CT_AnyList : public CT_Any {
 
16875
#line 16876 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16876
  friend class ::CCExprResolve;
 
16877
  friend class ::CExprResolve;
 
16878
  friend class ::WinIfExists;
 
16879
  friend class ::WinImportHandler;
 
16880
  friend class ::WinMacros;
 
16881
  friend class ::WinAsm;
 
16882
  friend class ::WinDeclSpecs;
 
16883
  friend class ::WinMemberExplSpec;
 
16884
  friend class ::WinTypeKeywords;
 
16885
  friend class ::WinFriend;
 
16886
  friend class ::ExtAC;
 
16887
  friend class ::ExtACBuilderCoupling;
 
16888
  friend class ::ExtACSyntaxCoupling;
 
16889
  friend class ::ExtACTree;
 
16890
  friend class ::ExtACKeywords;
 
16891
  friend class ::ExtGnu;
 
16892
  friend class ::PragmaOnceUnitState;
 
16893
  friend class ::PragmaOnce;
 
16894
  friend class ::CMatchSyntax;
 
16895
 
 
16896
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16897
 
 
16898
public:
 
16899
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
16900
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16901
  static const char *NodeId ();
 
16902
  /** Get the name of the node. Can be compared with NodeId(). */
 
16903
  const char *NodeName () const { return NodeId (); }
 
16904
};
 
16905
 
 
16906
 
 
16907
#line 16908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16908
} // closed Puma
 
16909
class CCExprResolve;
 
16910
class CExprResolve;
 
16911
class WinIfExists;
 
16912
class WinImportHandler;
 
16913
class WinMacros;
 
16914
class WinAsm;
 
16915
class WinDeclSpecs;
 
16916
class WinMemberExplSpec;
 
16917
class WinTypeKeywords;
 
16918
class WinFriend;
 
16919
class ExtAC;
 
16920
class ExtACBuilderCoupling;
 
16921
class ExtACSyntaxCoupling;
 
16922
class ExtACTree;
 
16923
class ExtACKeywords;
 
16924
class ExtGnu;
 
16925
class PragmaOnceUnitState;
 
16926
class PragmaOnce;
 
16927
class CMatchSyntax;
 
16928
namespace Puma {
 
16929
 
 
16930
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16931
class CT_AnyExtension : public CTree, public CSemValue {
 
16932
#line 16933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16933
  friend class ::CCExprResolve;
 
16934
  friend class ::CExprResolve;
 
16935
  friend class ::WinIfExists;
 
16936
  friend class ::WinImportHandler;
 
16937
  friend class ::WinMacros;
 
16938
  friend class ::WinAsm;
 
16939
  friend class ::WinDeclSpecs;
 
16940
  friend class ::WinMemberExplSpec;
 
16941
  friend class ::WinTypeKeywords;
 
16942
  friend class ::WinFriend;
 
16943
  friend class ::ExtAC;
 
16944
  friend class ::ExtACBuilderCoupling;
 
16945
  friend class ::ExtACSyntaxCoupling;
 
16946
  friend class ::ExtACTree;
 
16947
  friend class ::ExtACKeywords;
 
16948
  friend class ::ExtGnu;
 
16949
  friend class ::PragmaOnceUnitState;
 
16950
  friend class ::PragmaOnce;
 
16951
  friend class ::CMatchSyntax;
 
16952
 
 
16953
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16954
 
 
16955
  CTree *sons[5]; // open, string, comma, cond, close
 
16956
 
 
16957
public:
 
16958
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
 
16959
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
16960
    AddSon (sons[3], c); AddSon (sons[4], cr); 
 
16961
  }
 
16962
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16963
  static const char *NodeId ();
 
16964
  /** Get the name of the node. Can be compared with NodeId(). */
 
16965
  const char *NodeName () const { return NodeId (); }
 
16966
  /** Get the number of sons. */
 
16967
  int Sons () const { return CTree::Sons (sons, 5); }
 
16968
  /** Get the n-th son.
 
16969
   *  \param n The index of the son.
 
16970
   *  \return The n-th son or NULL. */
 
16971
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
16972
  /** Replace a son.
 
16973
   *  \param old_son The son to replace.
 
16974
   *  \param new_son The new son. */
 
16975
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
16976
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
16977
  }
 
16978
  CTree *Condition () const { return sons[3]; }
 
16979
  CT_Token *String () const { return (CT_Token*)sons[1]; }
 
16980
  const char *Name () const { 
 
16981
    return value ? value->StrLiteral ()->String () : (const char*)0; }
 
16982
 
 
16983
  CExprValue *Value () const { return value; }
 
16984
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
16985
};
 
16986
 
 
16987
 
 
16988
#line 16989 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
16989
} // closed Puma
 
16990
class CCExprResolve;
 
16991
class CExprResolve;
 
16992
class WinIfExists;
 
16993
class WinImportHandler;
 
16994
class WinMacros;
 
16995
class WinAsm;
 
16996
class WinDeclSpecs;
 
16997
class WinMemberExplSpec;
 
16998
class WinTypeKeywords;
 
16999
class WinFriend;
 
17000
class ExtAC;
 
17001
class ExtACBuilderCoupling;
 
17002
class ExtACSyntaxCoupling;
 
17003
class ExtACTree;
 
17004
class ExtACKeywords;
 
17005
class ExtGnu;
 
17006
class PragmaOnceUnitState;
 
17007
class PragmaOnce;
 
17008
class CMatchSyntax;
 
17009
namespace Puma {
 
17010
 
 
17011
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17012
class CT_AnyCondition : public CTree {
 
17013
#line 17014 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17014
  friend class ::CCExprResolve;
 
17015
  friend class ::CExprResolve;
 
17016
  friend class ::WinIfExists;
 
17017
  friend class ::WinImportHandler;
 
17018
  friend class ::WinMacros;
 
17019
  friend class ::WinAsm;
 
17020
  friend class ::WinDeclSpecs;
 
17021
  friend class ::WinMemberExplSpec;
 
17022
  friend class ::WinTypeKeywords;
 
17023
  friend class ::WinFriend;
 
17024
  friend class ::ExtAC;
 
17025
  friend class ::ExtACBuilderCoupling;
 
17026
  friend class ::ExtACSyntaxCoupling;
 
17027
  friend class ::ExtACTree;
 
17028
  friend class ::ExtACKeywords;
 
17029
  friend class ::ExtGnu;
 
17030
  friend class ::PragmaOnceUnitState;
 
17031
  friend class ::PragmaOnce;
 
17032
  friend class ::CMatchSyntax;
 
17033
 
 
17034
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17035
 
 
17036
  CTree *sons[3]; // arg1, arg2, arg3
 
17037
 
 
17038
public:
 
17039
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
 
17040
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
 
17041
  }
 
17042
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
17043
  static const char *NodeId ();
 
17044
  /** Get the name of the node. Can be compared with NodeId(). */
 
17045
  const char *NodeName () const { return NodeId (); }
 
17046
  /** Get the number of sons. */
 
17047
  int Sons () const { return CTree::Sons (sons, 3); }
 
17048
  /** Get the n-th son.
 
17049
   *  \param n The index of the son.
 
17050
   *  \return The n-th son or NULL. */
 
17051
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
17052
  /** Replace a son.
 
17053
   *  \param old_son The son to replace.
 
17054
   *  \param new_son The new son. */
 
17055
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
17056
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
17057
  }
 
17058
};
 
17059
 
 
17060
 
 
17061
} // namespace Puma
 
17062
 
 
17063
#endif /* __CTree_h__ */
 
17064
 
 
17065
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
17066
// This file is part of PUMA.
 
17067
// Copyright (C) 1999-2003  The PUMA developer team.
 
17068
//                                                                
 
17069
// This program is free software;  you can redistribute it and/or 
 
17070
// modify it under the terms of the GNU General Public License as 
 
17071
// published by the Free Software Foundation; either version 2 of 
 
17072
// the License, or (at your option) any later version.            
 
17073
//                                                                
 
17074
// This program is distributed in the hope that it will be useful,
 
17075
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
17076
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
17077
// GNU General Public License for more details.                   
 
17078
//                                                                
 
17079
// You should have received a copy of the GNU General Public      
 
17080
// License along with this program; if not, write to the Free     
 
17081
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
17082
// MA  02111-1307  USA                                            
 
17083
 
 
17084
#ifndef __gnu_c_tree_h__
 
17085
#define __gnu_c_tree_h__
 
17086
 
 
17087
namespace Puma {
 
17088
 
 
17089
// Syntax tree node hierarchy:
 
17090
class   CT_GnuAsmSpec;       // derived from CTree
 
17091
class   CT_GnuAsmDef;        // derived from CT_AsmDef
 
17092
class   CT_GnuAsmOperand;    // derived from CTree
 
17093
class     CT_GnuAsmOperands; // derived from CT_List
 
17094
class     CT_GnuAsmClobbers; // derived from CT_List
 
17095
class   CT_GnuStatementExpr; // derived from CT_Expression
 
17096
 
 
17097
} // namespace Puma
 
17098
 
 
17099
 
 
17100
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17101
 
 
17102
#line 17103 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17103
 
 
17104
#ifndef __ac_fwd_ExtACTree__
 
17105
#define __ac_fwd_ExtACTree__
 
17106
class ExtACTree;
 
17107
namespace AC {
 
17108
  template <class JoinPoint>
 
17109
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
17110
  template <class JoinPoint>
 
17111
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
17112
}
 
17113
#endif
 
17114
 
 
17115
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
17116
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
17117
#endif
 
17118
 
 
17119
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17120
// This file is part of PUMA.
 
17121
// Copyright (C) 1999-2003  The PUMA developer team.
 
17122
//                                                                
 
17123
// This program is free software;  you can redistribute it and/or 
 
17124
// modify it under the terms of the GNU General Public License as 
 
17125
// published by the Free Software Foundation; either version 2 of 
 
17126
// the License, or (at your option) any later version.            
 
17127
//                                                                
 
17128
// This program is distributed in the hope that it will be useful,
 
17129
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
17130
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
17131
// GNU General Public License for more details.                   
 
17132
//                                                                
 
17133
// You should have received a copy of the GNU General Public      
 
17134
// License along with this program; if not, write to the Free     
 
17135
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
17136
// MA  02111-1307  USA                                            
 
17137
 
 
17138
#ifndef __CTree_h__
 
17139
#define __CTree_h__
 
17140
 
 
17141
namespace Puma {
 
17142
 
 
17143
 
 
17144
// Syntax tree node hierarchy:
 
17145
class CTree;
 
17146
class   CT_Statement;          
 
17147
class     CT_LabelStmt;
 
17148
class     CT_IfStmt;
 
17149
class     CT_IfElseStmt;
 
17150
class     CT_SwitchStmt;
 
17151
class     CT_BreakStmt;
 
17152
class     CT_ExprStmt;
 
17153
class     CT_WhileStmt;
 
17154
class     CT_DoStmt;
 
17155
class     CT_ForStmt;
 
17156
class     CT_ContinueStmt;
 
17157
class     CT_ReturnStmt;
 
17158
class     CT_GotoStmt;
 
17159
class     CT_DeclStmt;
 
17160
class     CT_CaseStmt;
 
17161
class     CT_DefaultStmt;
 
17162
class     CT_TryStmt;
 
17163
class   CT_Expression;
 
17164
class     CT_Call;
 
17165
class       CT_CallExpr;
 
17166
class       CT_ImplicitCall;
 
17167
class     CT_ThrowExpr;
 
17168
class     CT_NewExpr;
 
17169
class     CT_DeleteExpr;
 
17170
class     CT_ConstructExpr;
 
17171
class     CT_Integer;
 
17172
class     CT_Character;
 
17173
class       CT_WideCharacter;
 
17174
class     CT_Float;
 
17175
class     CT_Bool;
 
17176
class     CT_BracedExpr;
 
17177
class     CT_BinaryExpr;
 
17178
class       CT_MembPtrExpr;
 
17179
class         CT_MembRefExpr;
 
17180
class     CT_UnaryExpr;
 
17181
class       CT_PostfixExpr;
 
17182
class       CT_AddrExpr;
 
17183
class       CT_DerefExpr;
 
17184
class     CT_IfThenExpr;
 
17185
class     CT_CmpdLiteral;
 
17186
class     CT_IndexExpr;
 
17187
class     CT_CastExpr;
 
17188
class     CT_StaticCast;
 
17189
class       CT_ConstCast;
 
17190
class       CT_ReintCast;
 
17191
class       CT_DynamicCast;
 
17192
class     CT_TypeidExpr;
 
17193
class     CT_SizeofExpr;
 
17194
class     CT_MembDesignator;
 
17195
class     CT_IndexDesignator;
 
17196
class     CT_ImplicitCast;
 
17197
class   CT_DeclSpec;
 
17198
class     CT_PrimDeclSpec;
 
17199
class     CT_NamedType;
 
17200
class     CT_ClassSpec;
 
17201
class       CT_UnionSpec;
 
17202
class       CT_EnumSpec;
 
17203
class     CT_ExceptionSpec;
 
17204
class   CT_Declarator;
 
17205
class     CT_InitDeclarator;
 
17206
class     CT_BracedDeclarator;
 
17207
class     CT_ArrayDeclarator;
 
17208
class     CT_FctDeclarator;
 
17209
class     CT_RefDeclarator;
 
17210
class     CT_PtrDeclarator;
 
17211
class     CT_MembPtrDeclarator;
 
17212
class     CT_BitFieldDeclarator;
 
17213
class   CT_Decl;
 
17214
class     CT_ObjDecl;
 
17215
class     CT_ArgDecl;
 
17216
class     CT_AccessDecl;
 
17217
class       CT_UsingDecl;
 
17218
class     CT_FctDef;
 
17219
class     CT_AsmDef;
 
17220
class     CT_EnumDef;
 
17221
class     CT_ClassDef;
 
17222
class       CT_UnionDef;
 
17223
class     CT_Enumerator;
 
17224
class     CT_LinkageSpec;
 
17225
class     CT_Handler;
 
17226
class     CT_TemplateDecl;
 
17227
class     CT_TemplateParamDecl;
 
17228
class       CT_TypeParamDecl;
 
17229
class       CT_NonTypeParamDecl;
 
17230
class     CT_NamespaceDef;
 
17231
class     CT_NamespaceAliasDef;
 
17232
class     CT_UsingDirective;
 
17233
class     CT_Condition;
 
17234
class   CT_List;
 
17235
class     CT_CmpdStmt;
 
17236
class     CT_DeclSpecSeq;
 
17237
class     CT_HandlerSeq;
 
17238
class     CT_DesignatorSeq;
 
17239
class     CT_DeclList;
 
17240
class       CT_Program;
 
17241
class       CT_ArgDeclList;
 
17242
class         CT_ArgNameList;
 
17243
class       CT_ArgDeclSeq;
 
17244
class       CT_MembList;
 
17245
class     CT_ExprList;
 
17246
class     CT_DeclaratorList;
 
17247
class     CT_BaseSpecList;
 
17248
class     CT_MembInitList;
 
17249
class     CT_SimpleName;
 
17250
class       CT_SpecialName;
 
17251
class         CT_PrivateName;
 
17252
class         CT_OperatorName;
 
17253
class         CT_DestructorName;
 
17254
class         CT_ConversionName;
 
17255
class         CT_TemplateName;
 
17256
class       CT_QualName;
 
17257
class         CT_RootQualName;
 
17258
class     CT_String;
 
17259
class       CT_WideString;
 
17260
class     CT_TemplateParamList;
 
17261
class     CT_TemplateArgList;
 
17262
class   CT_Token;
 
17263
class   CT_Error;
 
17264
class   CT_BaseSpec;
 
17265
class   CT_AccessSpec;
 
17266
class   CT_ArrayDelimiter;
 
17267
class   CT_Any;
 
17268
class   CT_AnyList;
 
17269
class   CT_AnyExtension;
 
17270
class   CT_AnyCondition;
 
17271
 
 
17272
 
 
17273
} // namespace Puma
 
17274
 
 
17275
#include "Puma/ErrorSeverity.h"
 
17276
#include "Puma/CSemObject.h"
 
17277
#include "Puma/CSemScope.h"
 
17278
#include "Puma/CSemValue.h"
 
17279
#include "Puma/CExprValue.h"
 
17280
#include "Puma/CStrLiteral.h"
 
17281
#include "Puma/CTypeInfo.h"
 
17282
#include "Puma/Printable.h"
 
17283
#include "Puma/CTokens.h"
 
17284
#include "Puma/Token.h"
 
17285
 
 
17286
#include <iostream>
 
17287
#include <string.h>
 
17288
using namespace std;
 
17289
 
 
17290
namespace Puma {
 
17291
 
 
17292
 
 
17293
class ErrorStream;
 
17294
class CObjectInfo;
 
17295
class CStructure;
 
17296
 
 
17297
/*****************************************************************************/
 
17298
/*                                                                           */
 
17299
/*                    S y n t a x  t r e e  n o d e s                        */
 
17300
/*                                                                           */
 
17301
/*****************************************************************************/
 
17302
 
 
17303
/** \file
 
17304
 *  C/C++ syntax tree classes.
 
17305
 *  \see Puma::CTree */
 
17306
 
 
17307
/** \class CTree CTree.h Puma/CTree.h
 
17308
 *  Base class for all C/C++ syntax tree classes. */
 
17309
 
 
17310
#line 17311 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17311
} // closed Puma
 
17312
class CCExprResolve;
 
17313
class CExprResolve;
 
17314
class WinIfExists;
 
17315
class WinImportHandler;
 
17316
class WinMacros;
 
17317
class WinAsm;
 
17318
class WinDeclSpecs;
 
17319
class WinMemberExplSpec;
 
17320
class WinTypeKeywords;
 
17321
class WinFriend;
 
17322
class ExtAC;
 
17323
class ExtACBuilderCoupling;
 
17324
class ExtACSyntaxCoupling;
 
17325
class ExtACTree;
 
17326
class ExtACKeywords;
 
17327
class ExtGnu;
 
17328
class PragmaOnceUnitState;
 
17329
class PragmaOnce;
 
17330
class CMatchSyntax;
 
17331
namespace Puma {
 
17332
 
 
17333
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17334
 
 
17335
#line 17336 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17336
} // closed Puma
 
17337
 
 
17338
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
17339
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
17340
#include "CCExprResolveH.ah"
 
17341
#endif
 
17342
namespace Puma {
 
17343
 
 
17344
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17345
 
 
17346
#line 17347 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17347
} // closed Puma
 
17348
 
 
17349
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
17350
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
17351
#include "CExprResolveH.ah"
 
17352
#endif
 
17353
namespace Puma {
 
17354
 
 
17355
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17356
class CTree {
 
17357
#line 17358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17358
  friend class ::CCExprResolve;
 
17359
  friend class ::CExprResolve;
 
17360
  friend class ::WinIfExists;
 
17361
  friend class ::WinImportHandler;
 
17362
  friend class ::WinMacros;
 
17363
  friend class ::WinAsm;
 
17364
  friend class ::WinDeclSpecs;
 
17365
  friend class ::WinMemberExplSpec;
 
17366
  friend class ::WinTypeKeywords;
 
17367
  friend class ::WinFriend;
 
17368
  friend class ::ExtAC;
 
17369
  friend class ::ExtACBuilderCoupling;
 
17370
  friend class ::ExtACSyntaxCoupling;
 
17371
  friend class ::ExtACTree;
 
17372
  friend class ::ExtACKeywords;
 
17373
  friend class ::ExtGnu;
 
17374
  friend class ::PragmaOnceUnitState;
 
17375
  friend class ::PragmaOnce;
 
17376
  friend class ::CMatchSyntax;
 
17377
 
 
17378
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17379
 
 
17380
  CTree * _parent;
 
17381
 
 
17382
public:
 
17383
  /*DEBUG*/static int alloc;
 
17384
  /*DEBUG*/static int release;
 
17385
 
 
17386
protected:
 
17387
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
17388
   *  \param sons The sons array.
 
17389
   *  \param len Length of the sons array.
 
17390
   *  \param n Index of the son.
 
17391
   *  \return The n-th son or NULL. */
 
17392
  CTree *Son (CTree * const *sons, int len, int n) const;
 
17393
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
17394
   *  \param sons The sons array.
 
17395
   *  \param len Length of the sons array. */
 
17396
  int Sons (CTree * const *sons, int len) const;
 
17397
  /** Replace a son.
 
17398
   *  \param sons The sons array.
 
17399
   *  \param len Length of the sons array.
 
17400
   *  \param old_son The son to replace.
 
17401
   *  \param new_son The new son. */
 
17402
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
17403
  /** Replace a son if it equals the given son.
 
17404
   *  \param son The actual son.
 
17405
   *  \param old_son The son to replace, must match the actual son.
 
17406
   *  \param new_son The new son, overwrites the actual son. */
 
17407
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
17408
  /** Add a new son.
 
17409
   *  \param son The actual son.
 
17410
   *  \param new_son The new son, overwrites the actual son. */
 
17411
  void AddSon (CTree *&son, CTree *new_son);
 
17412
  /** Set the parent tree node.
 
17413
   *  \param parent The new parent tree node. */
 
17414
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
17415
  /** Set the parent tree node of the given tree node.
 
17416
   *  \param node The tree node.
 
17417
   *  \param parent The new parent. */
 
17418
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
 
17419
  
 
17420
protected:
 
17421
  /** Default constructor. */
 
17422
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
 
17423
 
 
17424
public:
 
17425
  /** Destructor. */
 
17426
  virtual ~CTree () { /*DEBUG*/release++; }
 
17427
  /** Get the number of sons. */
 
17428
  virtual int Sons () const = 0;
 
17429
  /** Get the n-th son.
 
17430
   *  \param n The index of the son.
 
17431
   *  \return The n-th son or NULL. */
 
17432
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
17433
  /** Get the node name (node identifier). */
 
17434
  virtual const char *NodeName () const = 0;
 
17435
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
17436
   *  \return The token or NULL. */
 
17437
  virtual Token *token () const;
 
17438
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
17439
   *  \return The token or NULL. */
 
17440
  virtual Token *end_token () const;
 
17441
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
17442
   *  \return The token node or NULL. */
 
17443
  virtual CT_Token *token_node () const;
 
17444
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
17445
   *  \return The token node or NULL. */
 
17446
  virtual CT_Token *end_token_node () const;
 
17447
  /** Replace a son.
 
17448
   *  \param old_son The son to replace.
 
17449
   *  \param new_son The son with which to replace. */
 
17450
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
17451
  /** Get the parent node.
 
17452
   *  \return The parent node or NULL. */
 
17453
  virtual CTree *Parent () const { return (CTree*)_parent; }
 
17454
 
 
17455
public: // semantic information
 
17456
  /** Get the semantic type of the node.
 
17457
   *  \return The type object or NULL. */
 
17458
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
17459
  /** Get the calculated value of the expression.
 
17460
   *  \return The value object or NULL. */
 
17461
  virtual CExprValue *Value () const { return (CExprValue*)0; }
 
17462
  
 
17463
  /** Get the semantic scope of the node.
 
17464
   *  \return The scope object or NULL. */
 
17465
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
17466
  /** Get the semantic value of the node.
 
17467
   *  \return The value object or NULL. */
 
17468
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
17469
  /** Get the semantic object of the node.
 
17470
   *  \return The semantic object or NULL. */
 
17471
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
 
17472
  
 
17473
public: // node classification function
 
17474
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
17475
   *  \return The CT_SimpleName node or NULL. */
 
17476
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
17477
  /** Get a pointer to CT_String if the current node represents a string.
 
17478
   *  \return The CT_String node or NULL. */
 
17479
  virtual CT_String *IsString () { return 0; }
 
17480
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
17481
   *  \return The CT_Declarator pointer or NULL. */
 
17482
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
17483
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
17484
   *  \return The CT_Statement pointer or NULL. */
 
17485
  virtual CT_Statement *IsStatement () { return 0; }
 
17486
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
17487
   *  \return The CT_Expression pointer or NULL. */
 
17488
  virtual CT_Expression *IsExpression () { return 0; }
 
17489
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
17490
   *  \return The CT_Decl pointer or NULL. */
 
17491
  virtual CT_Decl *IsDeclaration () { return 0; }
 
17492
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
17493
   *  \return The CT_Call pointer or NULL. */
 
17494
  virtual CT_Call *IsCall () { return 0; }
 
17495
   private:
 
17496
  typedef CTree CCExprResolveCTree;
 
17497
 
 
17498
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
17499
 public :
 
17500
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
17501
  typedef CTree CExprResolveCTree;
 
17502
 
 
17503
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
17504
 public :
 
17505
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
17506
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17507
};
 
17508
 
 
17509
/** \class CT_Error CTree.h Puma/CTree.h
 
17510
 *  Error tree node that is inserted into the tree for syntactic constructs
 
17511
 *  that could not be parsed. */
 
17512
 
 
17513
#line 17514 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17514
} // closed Puma
 
17515
class CCExprResolve;
 
17516
class CExprResolve;
 
17517
class WinIfExists;
 
17518
class WinImportHandler;
 
17519
class WinMacros;
 
17520
class WinAsm;
 
17521
class WinDeclSpecs;
 
17522
class WinMemberExplSpec;
 
17523
class WinTypeKeywords;
 
17524
class WinFriend;
 
17525
class ExtAC;
 
17526
class ExtACBuilderCoupling;
 
17527
class ExtACSyntaxCoupling;
 
17528
class ExtACTree;
 
17529
class ExtACKeywords;
 
17530
class ExtGnu;
 
17531
class PragmaOnceUnitState;
 
17532
class PragmaOnce;
 
17533
class CMatchSyntax;
 
17534
namespace Puma {
 
17535
 
 
17536
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17537
class CT_Error : public CTree {
 
17538
#line 17539 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17539
  friend class ::CCExprResolve;
 
17540
  friend class ::CExprResolve;
 
17541
  friend class ::WinIfExists;
 
17542
  friend class ::WinImportHandler;
 
17543
  friend class ::WinMacros;
 
17544
  friend class ::WinAsm;
 
17545
  friend class ::WinDeclSpecs;
 
17546
  friend class ::WinMemberExplSpec;
 
17547
  friend class ::WinTypeKeywords;
 
17548
  friend class ::WinFriend;
 
17549
  friend class ::ExtAC;
 
17550
  friend class ::ExtACBuilderCoupling;
 
17551
  friend class ::ExtACSyntaxCoupling;
 
17552
  friend class ::ExtACTree;
 
17553
  friend class ::ExtACKeywords;
 
17554
  friend class ::ExtGnu;
 
17555
  friend class ::PragmaOnceUnitState;
 
17556
  friend class ::PragmaOnce;
 
17557
  friend class ::CMatchSyntax;
 
17558
 
 
17559
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17560
 
 
17561
public:
 
17562
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
17563
  static const char *NodeId ();
 
17564
  /** Get the name of the node. Can be compared with NodeId(). */
 
17565
  const char *NodeName () const { return NodeId (); }
 
17566
  /** Get the number of sons. */
 
17567
  int Sons () const { return 0; }
 
17568
};
 
17569
 
 
17570
/** \class CT_Token CTree.h Puma/CTree.h
 
17571
 *  Tree node representing a single token in the source code. */
 
17572
 
 
17573
#line 17574 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17574
} // closed Puma
 
17575
class CCExprResolve;
 
17576
class CExprResolve;
 
17577
class WinIfExists;
 
17578
class WinImportHandler;
 
17579
class WinMacros;
 
17580
class WinAsm;
 
17581
class WinDeclSpecs;
 
17582
class WinMemberExplSpec;
 
17583
class WinTypeKeywords;
 
17584
class WinFriend;
 
17585
class ExtAC;
 
17586
class ExtACBuilderCoupling;
 
17587
class ExtACSyntaxCoupling;
 
17588
class ExtACTree;
 
17589
class ExtACKeywords;
 
17590
class ExtGnu;
 
17591
class PragmaOnceUnitState;
 
17592
class PragmaOnce;
 
17593
class CMatchSyntax;
 
17594
namespace Puma {
 
17595
 
 
17596
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17597
class CT_Token : public CTree {
 
17598
#line 17599 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17599
  friend class ::CCExprResolve;
 
17600
  friend class ::CExprResolve;
 
17601
  friend class ::WinIfExists;
 
17602
  friend class ::WinImportHandler;
 
17603
  friend class ::WinMacros;
 
17604
  friend class ::WinAsm;
 
17605
  friend class ::WinDeclSpecs;
 
17606
  friend class ::WinMemberExplSpec;
 
17607
  friend class ::WinTypeKeywords;
 
17608
  friend class ::WinFriend;
 
17609
  friend class ::ExtAC;
 
17610
  friend class ::ExtACBuilderCoupling;
 
17611
  friend class ::ExtACSyntaxCoupling;
 
17612
  friend class ::ExtACTree;
 
17613
  friend class ::ExtACKeywords;
 
17614
  friend class ::ExtGnu;
 
17615
  friend class ::PragmaOnceUnitState;
 
17616
  friend class ::PragmaOnce;
 
17617
  friend class ::CMatchSyntax;
 
17618
 
 
17619
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17620
 
 
17621
  Token *_token;
 
17622
  unsigned long int _number;
 
17623
  
 
17624
public:
 
17625
  /** Constructor. 
 
17626
   *  \param token The represented token.
 
17627
   *  \param number The token number (a consecutive number). */
 
17628
  CT_Token (Token *token, unsigned long int number = 0) : 
 
17629
    _token (token), _number (number) {}
 
17630
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
17631
  static const char *NodeId ();
 
17632
  /** Get the name of the node. Can be compared with NodeId(). */
 
17633
  const char *NodeName () const { return NodeId (); }
 
17634
  /** Get the number of sons. */
 
17635
  int Sons () const { return 0; }
 
17636
  /** Get the represented token. */
 
17637
  Token *token () const { return _token; }
 
17638
  /** Get the represented token. */
 
17639
  Token *end_token () const { return _token; }
 
17640
  /** Get this. */
 
17641
  CT_Token *token_node () const { return (CT_Token*)this; }
 
17642
  /** Get this. */
 
17643
  CT_Token *end_token_node () const { return (CT_Token*)this; }
 
17644
  /** Set the token number. 
 
17645
   *  \param number The token number. */ 
 
17646
  void Number (unsigned long int number) { _number = number; }
 
17647
  /** Get the token number. Can be used to indentify this token. */
 
17648
  unsigned long int Number () const { return _number; }
 
17649
  
 
17650
public:
 
17651
  /** Own new operator reusing memory. */
 
17652
  void *operator new (size_t);
 
17653
  /** Own delete operator. */
 
17654
  void operator delete (void *);
 
17655
};
 
17656
 
 
17657
/*****************************************************************************/
 
17658
/*                                                                           */
 
17659
/*                              List nodes                                   */
 
17660
/*                                                                           */
 
17661
/*****************************************************************************/
 
17662
 
 
17663
/** \class CT_List CTree.h Puma/CTree.h
 
17664
 *  Base class for tree nodes representing lists. */
 
17665
 
 
17666
#line 17667 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17667
} // closed Puma
 
17668
class CCExprResolve;
 
17669
class CExprResolve;
 
17670
class WinIfExists;
 
17671
class WinImportHandler;
 
17672
class WinMacros;
 
17673
class WinAsm;
 
17674
class WinDeclSpecs;
 
17675
class WinMemberExplSpec;
 
17676
class WinTypeKeywords;
 
17677
class WinFriend;
 
17678
class ExtAC;
 
17679
class ExtACBuilderCoupling;
 
17680
class ExtACSyntaxCoupling;
 
17681
class ExtACTree;
 
17682
class ExtACKeywords;
 
17683
class ExtGnu;
 
17684
class PragmaOnceUnitState;
 
17685
class PragmaOnce;
 
17686
class CMatchSyntax;
 
17687
namespace Puma {
 
17688
 
 
17689
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17690
class CT_List : public CTree {
 
17691
#line 17692 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17692
  friend class ::CCExprResolve;
 
17693
  friend class ::CExprResolve;
 
17694
  friend class ::WinIfExists;
 
17695
  friend class ::WinImportHandler;
 
17696
  friend class ::WinMacros;
 
17697
  friend class ::WinAsm;
 
17698
  friend class ::WinDeclSpecs;
 
17699
  friend class ::WinMemberExplSpec;
 
17700
  friend class ::WinTypeKeywords;
 
17701
  friend class ::WinFriend;
 
17702
  friend class ::ExtAC;
 
17703
  friend class ::ExtACBuilderCoupling;
 
17704
  friend class ::ExtACSyntaxCoupling;
 
17705
  friend class ::ExtACTree;
 
17706
  friend class ::ExtACKeywords;
 
17707
  friend class ::ExtGnu;
 
17708
  friend class ::PragmaOnceUnitState;
 
17709
  friend class ::PragmaOnce;
 
17710
  friend class ::CMatchSyntax;
 
17711
 
 
17712
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17713
 
 
17714
  Array<CTree*> _sons;
 
17715
  int _properties;
 
17716
 
 
17717
protected:
 
17718
  /** Constructor.
 
17719
   *  \param size The initial list size.
 
17720
   *  \param incr The initial increment count. 
 
17721
   *  \param props The list properties (bit array). */
 
17722
  CT_List(int size = 5, int incr = 5, int props = 0) : 
 
17723
    _sons (size, incr), _properties (props) {}
 
17724
 
 
17725
public:
 
17726
  /** List properties. */
 
17727
  enum {
 
17728
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
17729
    CLOSE = 2,        /** List has an end token */
 
17730
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
17731
    SEPARATORS = 4,   /** List has separators, like ',' */
 
17732
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
17733
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
17734
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
17735
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
 
17736
  };
 
17737
 
 
17738
  /** Get the number of list entries. */
 
17739
  int Entries () const;
 
17740
  /** Get the n-th list entry.
 
17741
   *  \param n The index of the entry. 
 
17742
   *  \return The list entry or NULL. */
 
17743
  CTree *Entry (int n) const;
 
17744
  /** Get the number of sons. */
 
17745
  int Sons () const { return _sons.length (); }
 
17746
  /** Get the n-th son.
 
17747
   *  \param n The index of the son. 
 
17748
   *  \return The n-th son or NULL. */
 
17749
  CTree *Son (int n) const { return _sons.lookup (n); }
 
17750
  /** Get the list properties. */
 
17751
  int GetProperties () const { return _properties; }
 
17752
  /** Add a list property.
 
17753
   *  \param p The property to add. */
 
17754
  void AddProperties (int p) { _properties |= p; }
 
17755
  /** Add a son.
 
17756
   *  \param s The son to add. */
 
17757
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
17758
  /** Prepend a son.
 
17759
   *  \param s The son to prepend. */
 
17760
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
17761
  /** Insert a son before another son.
 
17762
   *  \param before The son to insert the new son before.
 
17763
   *  \param son The son to insert. */
 
17764
  void InsertSon (CTree *before, CTree *son); 
 
17765
  /** Replace a son.
 
17766
   *  \param old_son The son to replace.
 
17767
   *  \param new_son The new son. */
 
17768
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
17769
  /** Remove a son.
 
17770
   *  \param son The son to remove. */
 
17771
  void RemoveSon (CTree *son);
 
17772
  /** Insert a son at the given index. 
 
17773
   *  \param idx The index at which to insert.
 
17774
   *  \param s The son to insert. */
 
17775
  void InsertSon (int idx, CTree *s)
 
17776
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
17777
  /** Replace the son at the given index.
 
17778
   *  \param idx The index of the son to replace.
 
17779
   *  \param s The new son. */
 
17780
  void ReplaceSon (int idx, CTree *s) 
 
17781
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
17782
  /** Remove the son at the given index. 
 
17783
   *  \param idx The index of the son to remove. */
 
17784
  void RemoveSon (int idx) 
 
17785
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
 
17786
};
 
17787
 
 
17788
/** \class CT_ExprList CTree.h Puma/CTree.h
 
17789
 *  Tree node representing an expression list. */
 
17790
 
 
17791
#line 17792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17792
} // closed Puma
 
17793
class CCExprResolve;
 
17794
class CExprResolve;
 
17795
class WinIfExists;
 
17796
class WinImportHandler;
 
17797
class WinMacros;
 
17798
class WinAsm;
 
17799
class WinDeclSpecs;
 
17800
class WinMemberExplSpec;
 
17801
class WinTypeKeywords;
 
17802
class WinFriend;
 
17803
class ExtAC;
 
17804
class ExtACBuilderCoupling;
 
17805
class ExtACSyntaxCoupling;
 
17806
class ExtACTree;
 
17807
class ExtACKeywords;
 
17808
class ExtGnu;
 
17809
class PragmaOnceUnitState;
 
17810
class PragmaOnce;
 
17811
class CMatchSyntax;
 
17812
namespace Puma {
 
17813
 
 
17814
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17815
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
 
17816
#line 17817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17817
  friend class ::CCExprResolve;
 
17818
  friend class ::CExprResolve;
 
17819
  friend class ::WinIfExists;
 
17820
  friend class ::WinImportHandler;
 
17821
  friend class ::WinMacros;
 
17822
  friend class ::WinAsm;
 
17823
  friend class ::WinDeclSpecs;
 
17824
  friend class ::WinMemberExplSpec;
 
17825
  friend class ::WinTypeKeywords;
 
17826
  friend class ::WinFriend;
 
17827
  friend class ::ExtAC;
 
17828
  friend class ::ExtACBuilderCoupling;
 
17829
  friend class ::ExtACSyntaxCoupling;
 
17830
  friend class ::ExtACTree;
 
17831
  friend class ::ExtACKeywords;
 
17832
  friend class ::ExtGnu;
 
17833
  friend class ::PragmaOnceUnitState;
 
17834
  friend class ::PragmaOnce;
 
17835
  friend class ::CMatchSyntax;
 
17836
 
 
17837
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17838
 
 
17839
public:
 
17840
  /** Constructor. */
 
17841
  CT_ExprList () { AddProperties (SEPARATORS); }
 
17842
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
17843
  static const char *NodeId ();
 
17844
  /** Get the name of the node. Can be compared with NodeId(). */
 
17845
  const char *NodeName () const { return NodeId (); }
 
17846
 
 
17847
  /** Get the type of the last expression in the expression list.
 
17848
   *  \return The type or NULL. */
 
17849
  CTypeInfo *Type () const { return type; }
 
17850
  /** Get the value of the last expression in the expression list.
 
17851
   *  \return The value of NULL. */
 
17852
  CExprValue *Value () const { return value; }
 
17853
  /** Get the semantic value of the node. */
 
17854
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
17855
  /** Get the semantic object of the node. */
 
17856
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
17857
};
 
17858
 
 
17859
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
17860
 *  Tree node representing a list of declarators. */
 
17861
 
 
17862
#line 17863 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17863
} // closed Puma
 
17864
class CCExprResolve;
 
17865
class CExprResolve;
 
17866
class WinIfExists;
 
17867
class WinImportHandler;
 
17868
class WinMacros;
 
17869
class WinAsm;
 
17870
class WinDeclSpecs;
 
17871
class WinMemberExplSpec;
 
17872
class WinTypeKeywords;
 
17873
class WinFriend;
 
17874
class ExtAC;
 
17875
class ExtACBuilderCoupling;
 
17876
class ExtACSyntaxCoupling;
 
17877
class ExtACTree;
 
17878
class ExtACKeywords;
 
17879
class ExtGnu;
 
17880
class PragmaOnceUnitState;
 
17881
class PragmaOnce;
 
17882
class CMatchSyntax;
 
17883
namespace Puma {
 
17884
 
 
17885
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17886
class CT_DeclaratorList : public CT_List {
 
17887
#line 17888 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17888
  friend class ::CCExprResolve;
 
17889
  friend class ::CExprResolve;
 
17890
  friend class ::WinIfExists;
 
17891
  friend class ::WinImportHandler;
 
17892
  friend class ::WinMacros;
 
17893
  friend class ::WinAsm;
 
17894
  friend class ::WinDeclSpecs;
 
17895
  friend class ::WinMemberExplSpec;
 
17896
  friend class ::WinTypeKeywords;
 
17897
  friend class ::WinFriend;
 
17898
  friend class ::ExtAC;
 
17899
  friend class ::ExtACBuilderCoupling;
 
17900
  friend class ::ExtACSyntaxCoupling;
 
17901
  friend class ::ExtACTree;
 
17902
  friend class ::ExtACKeywords;
 
17903
  friend class ::ExtGnu;
 
17904
  friend class ::PragmaOnceUnitState;
 
17905
  friend class ::PragmaOnce;
 
17906
  friend class ::CMatchSyntax;
 
17907
 
 
17908
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17909
 
 
17910
public:
 
17911
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
17912
  static const char *NodeId ();
 
17913
  /** Get the name of the node. Can be compared with NodeId(). */
 
17914
  const char *NodeName () const { return NodeId (); }
 
17915
};
 
17916
 
 
17917
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
17918
 *  Tree node representing a list of enumerator constants. */
 
17919
 
 
17920
#line 17921 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17921
} // closed Puma
 
17922
class CCExprResolve;
 
17923
class CExprResolve;
 
17924
class WinIfExists;
 
17925
class WinImportHandler;
 
17926
class WinMacros;
 
17927
class WinAsm;
 
17928
class WinDeclSpecs;
 
17929
class WinMemberExplSpec;
 
17930
class WinTypeKeywords;
 
17931
class WinFriend;
 
17932
class ExtAC;
 
17933
class ExtACBuilderCoupling;
 
17934
class ExtACSyntaxCoupling;
 
17935
class ExtACTree;
 
17936
class ExtACKeywords;
 
17937
class ExtGnu;
 
17938
class PragmaOnceUnitState;
 
17939
class PragmaOnce;
 
17940
class CMatchSyntax;
 
17941
namespace Puma {
 
17942
 
 
17943
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17944
class CT_EnumeratorList : public CT_List {
 
17945
#line 17946 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17946
  friend class ::CCExprResolve;
 
17947
  friend class ::CExprResolve;
 
17948
  friend class ::WinIfExists;
 
17949
  friend class ::WinImportHandler;
 
17950
  friend class ::WinMacros;
 
17951
  friend class ::WinAsm;
 
17952
  friend class ::WinDeclSpecs;
 
17953
  friend class ::WinMemberExplSpec;
 
17954
  friend class ::WinTypeKeywords;
 
17955
  friend class ::WinFriend;
 
17956
  friend class ::ExtAC;
 
17957
  friend class ::ExtACBuilderCoupling;
 
17958
  friend class ::ExtACSyntaxCoupling;
 
17959
  friend class ::ExtACTree;
 
17960
  friend class ::ExtACKeywords;
 
17961
  friend class ::ExtGnu;
 
17962
  friend class ::PragmaOnceUnitState;
 
17963
  friend class ::PragmaOnce;
 
17964
  friend class ::CMatchSyntax;
 
17965
 
 
17966
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17967
 
 
17968
public:
 
17969
  /** Constructor. */
 
17970
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
17971
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
17972
  static const char *NodeId ();
 
17973
  /** Get the name of the node. Can be compared with NodeId(). */
 
17974
  const char *NodeName () const { return NodeId (); }
 
17975
};
 
17976
   
 
17977
/** \class CT_DeclList CTree.h Puma/CTree.h
 
17978
 *  Tree node representing a list of declarations. */
 
17979
 
 
17980
#line 17981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
17981
} // closed Puma
 
17982
class CCExprResolve;
 
17983
class CExprResolve;
 
17984
class WinIfExists;
 
17985
class WinImportHandler;
 
17986
class WinMacros;
 
17987
class WinAsm;
 
17988
class WinDeclSpecs;
 
17989
class WinMemberExplSpec;
 
17990
class WinTypeKeywords;
 
17991
class WinFriend;
 
17992
class ExtAC;
 
17993
class ExtACBuilderCoupling;
 
17994
class ExtACSyntaxCoupling;
 
17995
class ExtACTree;
 
17996
class ExtACKeywords;
 
17997
class ExtGnu;
 
17998
class PragmaOnceUnitState;
 
17999
class PragmaOnce;
 
18000
class CMatchSyntax;
 
18001
namespace Puma {
 
18002
 
 
18003
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18004
class CT_DeclList : public CT_List {
 
18005
#line 18006 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18006
  friend class ::CCExprResolve;
 
18007
  friend class ::CExprResolve;
 
18008
  friend class ::WinIfExists;
 
18009
  friend class ::WinImportHandler;
 
18010
  friend class ::WinMacros;
 
18011
  friend class ::WinAsm;
 
18012
  friend class ::WinDeclSpecs;
 
18013
  friend class ::WinMemberExplSpec;
 
18014
  friend class ::WinTypeKeywords;
 
18015
  friend class ::WinFriend;
 
18016
  friend class ::ExtAC;
 
18017
  friend class ::ExtACBuilderCoupling;
 
18018
  friend class ::ExtACSyntaxCoupling;
 
18019
  friend class ::ExtACTree;
 
18020
  friend class ::ExtACKeywords;
 
18021
  friend class ::ExtGnu;
 
18022
  friend class ::PragmaOnceUnitState;
 
18023
  friend class ::PragmaOnce;
 
18024
  friend class ::CMatchSyntax;
 
18025
 
 
18026
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18027
 
 
18028
public:
 
18029
  /** Constructor. 
 
18030
   *  \param size The initial size of the list.
 
18031
   *  \param incr The initial increment count of the list. */
 
18032
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
18033
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18034
  static const char *NodeId ();
 
18035
  /** Get the name of the node. Can be compared with NodeId(). */
 
18036
  const char *NodeName () const { return NodeId (); }
 
18037
  /** Set the linkage specifiers to each declaration in the list.
 
18038
   *  \param l The linkage specifiers node. */
 
18039
  void Linkage (CT_LinkageSpec *l);
 
18040
};
 
18041
 
 
18042
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
18043
 *  Tree node representing a sequence of declaration specifiers. */
 
18044
 
 
18045
#line 18046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18046
} // closed Puma
 
18047
class CCExprResolve;
 
18048
class CExprResolve;
 
18049
class WinIfExists;
 
18050
class WinImportHandler;
 
18051
class WinMacros;
 
18052
class WinAsm;
 
18053
class WinDeclSpecs;
 
18054
class WinMemberExplSpec;
 
18055
class WinTypeKeywords;
 
18056
class WinFriend;
 
18057
class ExtAC;
 
18058
class ExtACBuilderCoupling;
 
18059
class ExtACSyntaxCoupling;
 
18060
class ExtACTree;
 
18061
class ExtACKeywords;
 
18062
class ExtGnu;
 
18063
class PragmaOnceUnitState;
 
18064
class PragmaOnce;
 
18065
class CMatchSyntax;
 
18066
namespace Puma {
 
18067
 
 
18068
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18069
class CT_DeclSpecSeq : public CT_List {
 
18070
#line 18071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18071
  friend class ::CCExprResolve;
 
18072
  friend class ::CExprResolve;
 
18073
  friend class ::WinIfExists;
 
18074
  friend class ::WinImportHandler;
 
18075
  friend class ::WinMacros;
 
18076
  friend class ::WinAsm;
 
18077
  friend class ::WinDeclSpecs;
 
18078
  friend class ::WinMemberExplSpec;
 
18079
  friend class ::WinTypeKeywords;
 
18080
  friend class ::WinFriend;
 
18081
  friend class ::ExtAC;
 
18082
  friend class ::ExtACBuilderCoupling;
 
18083
  friend class ::ExtACSyntaxCoupling;
 
18084
  friend class ::ExtACTree;
 
18085
  friend class ::ExtACKeywords;
 
18086
  friend class ::ExtGnu;
 
18087
  friend class ::PragmaOnceUnitState;
 
18088
  friend class ::PragmaOnce;
 
18089
  friend class ::CMatchSyntax;
 
18090
 
 
18091
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18092
 
 
18093
public:
 
18094
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18095
  static const char *NodeId ();
 
18096
  /** Get the name of the node. Can be compared with NodeId(). */
 
18097
  const char *NodeName () const { return NodeId (); }
 
18098
};
 
18099
 
 
18100
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
18101
 *  Tree node representing a compound statement. */
 
18102
 
 
18103
#line 18104 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18104
} // closed Puma
 
18105
class CCExprResolve;
 
18106
class CExprResolve;
 
18107
class WinIfExists;
 
18108
class WinImportHandler;
 
18109
class WinMacros;
 
18110
class WinAsm;
 
18111
class WinDeclSpecs;
 
18112
class WinMemberExplSpec;
 
18113
class WinTypeKeywords;
 
18114
class WinFriend;
 
18115
class ExtAC;
 
18116
class ExtACBuilderCoupling;
 
18117
class ExtACSyntaxCoupling;
 
18118
class ExtACTree;
 
18119
class ExtACKeywords;
 
18120
class ExtGnu;
 
18121
class PragmaOnceUnitState;
 
18122
class PragmaOnce;
 
18123
class CMatchSyntax;
 
18124
namespace Puma {
 
18125
 
 
18126
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18127
class CT_CmpdStmt : public CT_List, public CSemScope {
 
18128
#line 18129 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18129
  friend class ::CCExprResolve;
 
18130
  friend class ::CExprResolve;
 
18131
  friend class ::WinIfExists;
 
18132
  friend class ::WinImportHandler;
 
18133
  friend class ::WinMacros;
 
18134
  friend class ::WinAsm;
 
18135
  friend class ::WinDeclSpecs;
 
18136
  friend class ::WinMemberExplSpec;
 
18137
  friend class ::WinTypeKeywords;
 
18138
  friend class ::WinFriend;
 
18139
  friend class ::ExtAC;
 
18140
  friend class ::ExtACBuilderCoupling;
 
18141
  friend class ::ExtACSyntaxCoupling;
 
18142
  friend class ::ExtACTree;
 
18143
  friend class ::ExtACKeywords;
 
18144
  friend class ::ExtGnu;
 
18145
  friend class ::PragmaOnceUnitState;
 
18146
  friend class ::PragmaOnce;
 
18147
  friend class ::CMatchSyntax;
 
18148
 
 
18149
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18150
 
 
18151
public:
 
18152
  /* Constructor. */
 
18153
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
18154
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18155
  static const char *NodeId ();
 
18156
  /** Get the name of the node. Can be compared with NodeId(). */
 
18157
  const char *NodeName () const { return NodeId (); }
 
18158
  /** Get the local scope of the compound statement. */
 
18159
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
18160
};
 
18161
 
 
18162
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
18163
 *  Tree node representing an exception handler sequence. */
 
18164
 
 
18165
#line 18166 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18166
} // closed Puma
 
18167
class CCExprResolve;
 
18168
class CExprResolve;
 
18169
class WinIfExists;
 
18170
class WinImportHandler;
 
18171
class WinMacros;
 
18172
class WinAsm;
 
18173
class WinDeclSpecs;
 
18174
class WinMemberExplSpec;
 
18175
class WinTypeKeywords;
 
18176
class WinFriend;
 
18177
class ExtAC;
 
18178
class ExtACBuilderCoupling;
 
18179
class ExtACSyntaxCoupling;
 
18180
class ExtACTree;
 
18181
class ExtACKeywords;
 
18182
class ExtGnu;
 
18183
class PragmaOnceUnitState;
 
18184
class PragmaOnce;
 
18185
class CMatchSyntax;
 
18186
namespace Puma {
 
18187
 
 
18188
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18189
class CT_HandlerSeq : public CT_List {
 
18190
#line 18191 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18191
  friend class ::CCExprResolve;
 
18192
  friend class ::CExprResolve;
 
18193
  friend class ::WinIfExists;
 
18194
  friend class ::WinImportHandler;
 
18195
  friend class ::WinMacros;
 
18196
  friend class ::WinAsm;
 
18197
  friend class ::WinDeclSpecs;
 
18198
  friend class ::WinMemberExplSpec;
 
18199
  friend class ::WinTypeKeywords;
 
18200
  friend class ::WinFriend;
 
18201
  friend class ::ExtAC;
 
18202
  friend class ::ExtACBuilderCoupling;
 
18203
  friend class ::ExtACSyntaxCoupling;
 
18204
  friend class ::ExtACTree;
 
18205
  friend class ::ExtACKeywords;
 
18206
  friend class ::ExtGnu;
 
18207
  friend class ::PragmaOnceUnitState;
 
18208
  friend class ::PragmaOnce;
 
18209
  friend class ::CMatchSyntax;
 
18210
 
 
18211
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18212
 
 
18213
public:
 
18214
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18215
  static const char *NodeId ();
 
18216
  /** Get the name of the node. Can be compared with NodeId(). */
 
18217
  const char *NodeName () const { return NodeId (); }
 
18218
};
 
18219
 
 
18220
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
18221
 *  Tree node representing a template parameter list. */
 
18222
 
 
18223
#line 18224 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18224
} // closed Puma
 
18225
class CCExprResolve;
 
18226
class CExprResolve;
 
18227
class WinIfExists;
 
18228
class WinImportHandler;
 
18229
class WinMacros;
 
18230
class WinAsm;
 
18231
class WinDeclSpecs;
 
18232
class WinMemberExplSpec;
 
18233
class WinTypeKeywords;
 
18234
class WinFriend;
 
18235
class ExtAC;
 
18236
class ExtACBuilderCoupling;
 
18237
class ExtACSyntaxCoupling;
 
18238
class ExtACTree;
 
18239
class ExtACKeywords;
 
18240
class ExtGnu;
 
18241
class PragmaOnceUnitState;
 
18242
class PragmaOnce;
 
18243
class CMatchSyntax;
 
18244
namespace Puma {
 
18245
 
 
18246
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18247
class CT_TemplateParamList : public CT_List, public CSemScope {
 
18248
#line 18249 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18249
  friend class ::CCExprResolve;
 
18250
  friend class ::CExprResolve;
 
18251
  friend class ::WinIfExists;
 
18252
  friend class ::WinImportHandler;
 
18253
  friend class ::WinMacros;
 
18254
  friend class ::WinAsm;
 
18255
  friend class ::WinDeclSpecs;
 
18256
  friend class ::WinMemberExplSpec;
 
18257
  friend class ::WinTypeKeywords;
 
18258
  friend class ::WinFriend;
 
18259
  friend class ::ExtAC;
 
18260
  friend class ::ExtACBuilderCoupling;
 
18261
  friend class ::ExtACSyntaxCoupling;
 
18262
  friend class ::ExtACTree;
 
18263
  friend class ::ExtACKeywords;
 
18264
  friend class ::ExtGnu;
 
18265
  friend class ::PragmaOnceUnitState;
 
18266
  friend class ::PragmaOnce;
 
18267
  friend class ::CMatchSyntax;
 
18268
 
 
18269
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18270
 
 
18271
public:
 
18272
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
18273
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18274
  static const char *NodeId ();
 
18275
  /** Get the name of the node. Can be compared with NodeId(). */
 
18276
  const char *NodeName () const { return NodeId (); }
 
18277
  /** Get the scope of the template parameter list. */
 
18278
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
18279
};
 
18280
 
 
18281
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
18282
 *  Tree node representing a template argument list. */
 
18283
 
 
18284
#line 18285 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18285
} // closed Puma
 
18286
class CCExprResolve;
 
18287
class CExprResolve;
 
18288
class WinIfExists;
 
18289
class WinImportHandler;
 
18290
class WinMacros;
 
18291
class WinAsm;
 
18292
class WinDeclSpecs;
 
18293
class WinMemberExplSpec;
 
18294
class WinTypeKeywords;
 
18295
class WinFriend;
 
18296
class ExtAC;
 
18297
class ExtACBuilderCoupling;
 
18298
class ExtACSyntaxCoupling;
 
18299
class ExtACTree;
 
18300
class ExtACKeywords;
 
18301
class ExtGnu;
 
18302
class PragmaOnceUnitState;
 
18303
class PragmaOnce;
 
18304
class CMatchSyntax;
 
18305
namespace Puma {
 
18306
 
 
18307
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18308
class CT_TemplateArgList : public CT_List {
 
18309
#line 18310 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18310
  friend class ::CCExprResolve;
 
18311
  friend class ::CExprResolve;
 
18312
  friend class ::WinIfExists;
 
18313
  friend class ::WinImportHandler;
 
18314
  friend class ::WinMacros;
 
18315
  friend class ::WinAsm;
 
18316
  friend class ::WinDeclSpecs;
 
18317
  friend class ::WinMemberExplSpec;
 
18318
  friend class ::WinTypeKeywords;
 
18319
  friend class ::WinFriend;
 
18320
  friend class ::ExtAC;
 
18321
  friend class ::ExtACBuilderCoupling;
 
18322
  friend class ::ExtACSyntaxCoupling;
 
18323
  friend class ::ExtACTree;
 
18324
  friend class ::ExtACKeywords;
 
18325
  friend class ::ExtGnu;
 
18326
  friend class ::PragmaOnceUnitState;
 
18327
  friend class ::PragmaOnce;
 
18328
  friend class ::CMatchSyntax;
 
18329
 
 
18330
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18331
 
 
18332
public:
 
18333
  /** Constructor. */
 
18334
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
18335
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18336
  static const char *NodeId ();
 
18337
  /** Get the name of the node. Can be compared with NodeId(). */
 
18338
  const char *NodeName () const { return NodeId (); }
 
18339
};
 
18340
 
 
18341
/*****************************************************************************/
 
18342
/*                                                                           */
 
18343
/*                              Expressions                                  */
 
18344
/*                                                                           */
 
18345
/*****************************************************************************/
 
18346
 
 
18347
/** \class CT_Expression CTree.h Puma/CTree.h
 
18348
 *  Base class for all expression tree nodes. */
 
18349
 
 
18350
#line 18351 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18351
} // closed Puma
 
18352
class CCExprResolve;
 
18353
class CExprResolve;
 
18354
class WinIfExists;
 
18355
class WinImportHandler;
 
18356
class WinMacros;
 
18357
class WinAsm;
 
18358
class WinDeclSpecs;
 
18359
class WinMemberExplSpec;
 
18360
class WinTypeKeywords;
 
18361
class WinFriend;
 
18362
class ExtAC;
 
18363
class ExtACBuilderCoupling;
 
18364
class ExtACSyntaxCoupling;
 
18365
class ExtACTree;
 
18366
class ExtACKeywords;
 
18367
class ExtGnu;
 
18368
class PragmaOnceUnitState;
 
18369
class PragmaOnce;
 
18370
class CMatchSyntax;
 
18371
namespace Puma {
 
18372
 
 
18373
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18374
 
 
18375
#line 18376 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18376
} // closed Puma
 
18377
 
 
18378
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18379
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18380
#include "CCExprResolveH.ah"
 
18381
#endif
 
18382
namespace Puma {
 
18383
 
 
18384
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18385
 
 
18386
#line 18387 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18387
} // closed Puma
 
18388
 
 
18389
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18390
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18391
#include "CExprResolveH.ah"
 
18392
#endif
 
18393
namespace Puma {
 
18394
 
 
18395
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18396
class CT_Expression : public CTree, public CSemValue {
 
18397
#line 18398 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18398
  friend class ::CCExprResolve;
 
18399
  friend class ::CExprResolve;
 
18400
  friend class ::WinIfExists;
 
18401
  friend class ::WinImportHandler;
 
18402
  friend class ::WinMacros;
 
18403
  friend class ::WinAsm;
 
18404
  friend class ::WinDeclSpecs;
 
18405
  friend class ::WinMemberExplSpec;
 
18406
  friend class ::WinTypeKeywords;
 
18407
  friend class ::WinFriend;
 
18408
  friend class ::ExtAC;
 
18409
  friend class ::ExtACBuilderCoupling;
 
18410
  friend class ::ExtACSyntaxCoupling;
 
18411
  friend class ::ExtACTree;
 
18412
  friend class ::ExtACKeywords;
 
18413
  friend class ::ExtGnu;
 
18414
  friend class ::PragmaOnceUnitState;
 
18415
  friend class ::PragmaOnce;
 
18416
  friend class ::CMatchSyntax;
 
18417
 
 
18418
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18419
 
 
18420
protected:
 
18421
  /** Constructor. */
 
18422
  CT_Expression () {}
 
18423
 
 
18424
public:
 
18425
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18426
  static const char *NodeId ();
 
18427
  /** Get the name of the node. Can be compared with NodeId(). */
 
18428
  const char *NodeName () const { return NodeId (); }
 
18429
  /** Get the type of the expression.
 
18430
   *  \return The type information object or NULL. */
 
18431
  CTypeInfo *Type () const { return type; }
 
18432
  /** Get the value of the expression.
 
18433
   *  \return The value object or NULL. */
 
18434
  CExprValue *Value () const { return value; }
 
18435
  /** Get the semantic value information of the expression.
 
18436
   *  \return The value object or NULL. */
 
18437
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
18438
  /** Get this. */
 
18439
  virtual CT_Expression *IsExpression () { return this; }
 
18440
   private:
 
18441
  typedef CT_Expression CCExprResolveExpr;
 
18442
 
 
18443
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
18444
 public :
 
18445
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
18446
  typedef CT_Expression CExprResolveExpr;
 
18447
 
 
18448
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
18449
 public :
 
18450
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
18451
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18452
};
 
18453
 
 
18454
/** \class CT_Call CTree.h Puma/CTree.h
 
18455
 *  Tree node representing explicit or implicit function calls 
 
18456
 *  including built-in or user-defined functions and overloaded
 
18457
 *  operators. */
 
18458
 
 
18459
#line 18460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18460
} // closed Puma
 
18461
class CCExprResolve;
 
18462
class CExprResolve;
 
18463
class WinIfExists;
 
18464
class WinImportHandler;
 
18465
class WinMacros;
 
18466
class WinAsm;
 
18467
class WinDeclSpecs;
 
18468
class WinMemberExplSpec;
 
18469
class WinTypeKeywords;
 
18470
class WinFriend;
 
18471
class ExtAC;
 
18472
class ExtACBuilderCoupling;
 
18473
class ExtACSyntaxCoupling;
 
18474
class ExtACTree;
 
18475
class ExtACKeywords;
 
18476
class ExtGnu;
 
18477
class PragmaOnceUnitState;
 
18478
class PragmaOnce;
 
18479
class CMatchSyntax;
 
18480
namespace Puma {
 
18481
 
 
18482
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18483
 
 
18484
#line 18485 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18485
} // closed Puma
 
18486
 
 
18487
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18488
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18489
#include "CCExprResolveH.ah"
 
18490
#endif
 
18491
namespace Puma {
 
18492
 
 
18493
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18494
 
 
18495
#line 18496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18496
} // closed Puma
 
18497
 
 
18498
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18499
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18500
#include "CExprResolveH.ah"
 
18501
#endif
 
18502
namespace Puma {
 
18503
 
 
18504
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18505
class CT_Call : public CT_Expression, public CSemObject {
 
18506
#line 18507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18507
  friend class ::CCExprResolve;
 
18508
  friend class ::CExprResolve;
 
18509
  friend class ::WinIfExists;
 
18510
  friend class ::WinImportHandler;
 
18511
  friend class ::WinMacros;
 
18512
  friend class ::WinAsm;
 
18513
  friend class ::WinDeclSpecs;
 
18514
  friend class ::WinMemberExplSpec;
 
18515
  friend class ::WinTypeKeywords;
 
18516
  friend class ::WinFriend;
 
18517
  friend class ::ExtAC;
 
18518
  friend class ::ExtACBuilderCoupling;
 
18519
  friend class ::ExtACSyntaxCoupling;
 
18520
  friend class ::ExtACTree;
 
18521
  friend class ::ExtACKeywords;
 
18522
  friend class ::ExtGnu;
 
18523
  friend class ::PragmaOnceUnitState;
 
18524
  friend class ::PragmaOnce;
 
18525
  friend class ::CMatchSyntax;
 
18526
 
 
18527
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18528
 
 
18529
protected:
 
18530
  /** Constructor. */
 
18531
  CT_Call () {}
 
18532
  
 
18533
public:
 
18534
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18535
  static const char *NodeId ();
 
18536
  /** Get the name of the node. Can be compared with NodeId(). */
 
18537
  const char *NodeName () const { return NodeId (); }
 
18538
  /** Get the semantic information of the call.
 
18539
   *  \return The semantic information or NULL. */
 
18540
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
18541
  /** Get this. */
 
18542
  CT_Call *IsCall () { return this; }
 
18543
   private:
 
18544
  typedef CT_Call CCExprResolveExpr;
 
18545
 
 
18546
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
18547
 public :
 
18548
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
18549
  typedef CT_Call CExprResolveExpr;
 
18550
 
 
18551
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
18552
 public :
 
18553
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
18554
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18555
};
 
18556
 
 
18557
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
18558
 *  Tree node representing implicit function calls detected by
 
18559
 *  the semantic analysis. */
 
18560
 
 
18561
#line 18562 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18562
} // closed Puma
 
18563
class CCExprResolve;
 
18564
class CExprResolve;
 
18565
class WinIfExists;
 
18566
class WinImportHandler;
 
18567
class WinMacros;
 
18568
class WinAsm;
 
18569
class WinDeclSpecs;
 
18570
class WinMemberExplSpec;
 
18571
class WinTypeKeywords;
 
18572
class WinFriend;
 
18573
class ExtAC;
 
18574
class ExtACBuilderCoupling;
 
18575
class ExtACSyntaxCoupling;
 
18576
class ExtACTree;
 
18577
class ExtACKeywords;
 
18578
class ExtGnu;
 
18579
class PragmaOnceUnitState;
 
18580
class PragmaOnce;
 
18581
class CMatchSyntax;
 
18582
namespace Puma {
 
18583
 
 
18584
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18585
 
 
18586
#line 18587 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18587
} // closed Puma
 
18588
 
 
18589
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18590
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18591
#include "CCExprResolveH.ah"
 
18592
#endif
 
18593
namespace Puma {
 
18594
 
 
18595
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18596
 
 
18597
#line 18598 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18598
} // closed Puma
 
18599
 
 
18600
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18601
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18602
#include "CExprResolveH.ah"
 
18603
#endif
 
18604
namespace Puma {
 
18605
 
 
18606
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18607
class CT_ImplicitCall : public CT_Call {
 
18608
#line 18609 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18609
  friend class ::CCExprResolve;
 
18610
  friend class ::CExprResolve;
 
18611
  friend class ::WinIfExists;
 
18612
  friend class ::WinImportHandler;
 
18613
  friend class ::WinMacros;
 
18614
  friend class ::WinAsm;
 
18615
  friend class ::WinDeclSpecs;
 
18616
  friend class ::WinMemberExplSpec;
 
18617
  friend class ::WinTypeKeywords;
 
18618
  friend class ::WinFriend;
 
18619
  friend class ::ExtAC;
 
18620
  friend class ::ExtACBuilderCoupling;
 
18621
  friend class ::ExtACSyntaxCoupling;
 
18622
  friend class ::ExtACTree;
 
18623
  friend class ::ExtACKeywords;
 
18624
  friend class ::ExtGnu;
 
18625
  friend class ::PragmaOnceUnitState;
 
18626
  friend class ::PragmaOnce;
 
18627
  friend class ::CMatchSyntax;
 
18628
 
 
18629
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18630
 
 
18631
  CTree *_arg;
 
18632
 
 
18633
public:
 
18634
  /** Constructor.
 
18635
   *  \param arg The call argument. */
 
18636
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
18637
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18638
  static const char *NodeId ();
 
18639
  /** Get the name of the node. Can be compared with NodeId(). */
 
18640
  const char *NodeName () const { return NodeId (); }
 
18641
  /** Get the number of sons. */
 
18642
  int Sons () const { return 1; }
 
18643
  /** Get the n-th son.
 
18644
   *  \param n The index of the son.
 
18645
   *  \return The n-th son or NULL. */
 
18646
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
18647
  /** Replace a son.
 
18648
   *  \param old_son The son to replace.
 
18649
   *  \param new_son The new son. */
 
18650
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
18651
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
18652
   private:
 
18653
  typedef CT_ImplicitCall CCExprResolveExpr;
 
18654
 
 
18655
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
18656
 public :
 
18657
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
18658
  typedef CT_ImplicitCall CExprResolveExpr;
 
18659
 
 
18660
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
18661
 public :
 
18662
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
18663
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18664
};
 
18665
 
 
18666
/** \class CT_String CTree.h Puma/CTree.h
 
18667
 *  Tree node representing a string literal. */
 
18668
 
 
18669
#line 18670 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18670
} // closed Puma
 
18671
class CCExprResolve;
 
18672
class CExprResolve;
 
18673
class WinIfExists;
 
18674
class WinImportHandler;
 
18675
class WinMacros;
 
18676
class WinAsm;
 
18677
class WinDeclSpecs;
 
18678
class WinMemberExplSpec;
 
18679
class WinTypeKeywords;
 
18680
class WinFriend;
 
18681
class ExtAC;
 
18682
class ExtACBuilderCoupling;
 
18683
class ExtACSyntaxCoupling;
 
18684
class ExtACTree;
 
18685
class ExtACKeywords;
 
18686
class ExtGnu;
 
18687
class PragmaOnceUnitState;
 
18688
class PragmaOnce;
 
18689
class CMatchSyntax;
 
18690
namespace Puma {
 
18691
 
 
18692
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18693
 
 
18694
#line 18695 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18695
} // closed Puma
 
18696
 
 
18697
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18698
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18699
#include "CCExprResolveH.ah"
 
18700
#endif
 
18701
namespace Puma {
 
18702
 
 
18703
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18704
 
 
18705
#line 18706 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18706
} // closed Puma
 
18707
 
 
18708
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18709
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18710
#include "CExprResolveH.ah"
 
18711
#endif
 
18712
namespace Puma {
 
18713
 
 
18714
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18715
class CT_String : public CT_List, public CSemValue {
 
18716
#line 18717 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18717
  friend class ::CCExprResolve;
 
18718
  friend class ::CExprResolve;
 
18719
  friend class ::WinIfExists;
 
18720
  friend class ::WinImportHandler;
 
18721
  friend class ::WinMacros;
 
18722
  friend class ::WinAsm;
 
18723
  friend class ::WinDeclSpecs;
 
18724
  friend class ::WinMemberExplSpec;
 
18725
  friend class ::WinTypeKeywords;
 
18726
  friend class ::WinFriend;
 
18727
  friend class ::ExtAC;
 
18728
  friend class ::ExtACBuilderCoupling;
 
18729
  friend class ::ExtACSyntaxCoupling;
 
18730
  friend class ::ExtACTree;
 
18731
  friend class ::ExtACKeywords;
 
18732
  friend class ::ExtGnu;
 
18733
  friend class ::PragmaOnceUnitState;
 
18734
  friend class ::PragmaOnce;
 
18735
  friend class ::CMatchSyntax;
 
18736
 
 
18737
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18738
 
 
18739
public:
 
18740
  /** Constructor. 
 
18741
   *  \param size The number of sub-strings. */
 
18742
  CT_String (int size) : CT_List (size, 1) {}
 
18743
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18744
  static const char *NodeId ();
 
18745
  /** Get the name of the node. Can be compared with NodeId(). */
 
18746
  const char *NodeName () const { return NodeId (); }
 
18747
 
 
18748
  /** Get the type of the string. 
 
18749
   *  \return The type or NULL. */
 
18750
  CTypeInfo *Type () const { return type; }
 
18751
  /** Get the string value.
 
18752
   *  \return The value or NULL. */
 
18753
  CExprValue *Value () const { return value; }
 
18754
  /** Get the semantic value info object.
 
18755
   *  \return The semantic value object or NULL. */
 
18756
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
18757
  /** Get this. */
 
18758
  virtual CT_String *IsString () { return this; }
 
18759
   private:
 
18760
  typedef CT_String CCExprResolveExpr;
 
18761
 
 
18762
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
18763
 public :
 
18764
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
18765
  typedef CT_String CExprResolveExpr;
 
18766
 
 
18767
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
18768
 public :
 
18769
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
18770
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18771
};
 
18772
 
 
18773
/** \class CT_WideString CTree.h Puma/CTree.h
 
18774
 *  Tree node representing a wide string literal. */
 
18775
 
 
18776
#line 18777 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18777
} // closed Puma
 
18778
class CCExprResolve;
 
18779
class CExprResolve;
 
18780
class WinIfExists;
 
18781
class WinImportHandler;
 
18782
class WinMacros;
 
18783
class WinAsm;
 
18784
class WinDeclSpecs;
 
18785
class WinMemberExplSpec;
 
18786
class WinTypeKeywords;
 
18787
class WinFriend;
 
18788
class ExtAC;
 
18789
class ExtACBuilderCoupling;
 
18790
class ExtACSyntaxCoupling;
 
18791
class ExtACTree;
 
18792
class ExtACKeywords;
 
18793
class ExtGnu;
 
18794
class PragmaOnceUnitState;
 
18795
class PragmaOnce;
 
18796
class CMatchSyntax;
 
18797
namespace Puma {
 
18798
 
 
18799
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18800
 
 
18801
#line 18802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18802
} // closed Puma
 
18803
 
 
18804
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18805
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18806
#include "CCExprResolveH.ah"
 
18807
#endif
 
18808
namespace Puma {
 
18809
 
 
18810
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18811
 
 
18812
#line 18813 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18813
} // closed Puma
 
18814
 
 
18815
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18816
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18817
#include "CExprResolveH.ah"
 
18818
#endif
 
18819
namespace Puma {
 
18820
 
 
18821
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18822
class CT_WideString : public CT_String {
 
18823
#line 18824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18824
  friend class ::CCExprResolve;
 
18825
  friend class ::CExprResolve;
 
18826
  friend class ::WinIfExists;
 
18827
  friend class ::WinImportHandler;
 
18828
  friend class ::WinMacros;
 
18829
  friend class ::WinAsm;
 
18830
  friend class ::WinDeclSpecs;
 
18831
  friend class ::WinMemberExplSpec;
 
18832
  friend class ::WinTypeKeywords;
 
18833
  friend class ::WinFriend;
 
18834
  friend class ::ExtAC;
 
18835
  friend class ::ExtACBuilderCoupling;
 
18836
  friend class ::ExtACSyntaxCoupling;
 
18837
  friend class ::ExtACTree;
 
18838
  friend class ::ExtACKeywords;
 
18839
  friend class ::ExtGnu;
 
18840
  friend class ::PragmaOnceUnitState;
 
18841
  friend class ::PragmaOnce;
 
18842
  friend class ::CMatchSyntax;
 
18843
 
 
18844
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18845
 
 
18846
public:
 
18847
  /** Constructor.
 
18848
   *  \param size The number of sub-strings. */
 
18849
  CT_WideString (int size) : CT_String (size) {}
 
18850
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18851
  static const char *NodeId ();
 
18852
  /** Get the name of the node. Can be compared with NodeId(). */
 
18853
  const char *NodeName () const { return NodeId (); }
 
18854
   private:
 
18855
  typedef CT_WideString CCExprResolveExpr;
 
18856
 
 
18857
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
18858
 public :
 
18859
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
18860
  typedef CT_WideString CExprResolveExpr;
 
18861
 
 
18862
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
18863
 public :
 
18864
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
18865
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18866
};
 
18867
 
 
18868
/** \class CT_Integer CTree.h Puma/CTree.h
 
18869
 *  Tree node representing an integer constant. */
 
18870
 
 
18871
#line 18872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18872
} // closed Puma
 
18873
class CCExprResolve;
 
18874
class CExprResolve;
 
18875
class WinIfExists;
 
18876
class WinImportHandler;
 
18877
class WinMacros;
 
18878
class WinAsm;
 
18879
class WinDeclSpecs;
 
18880
class WinMemberExplSpec;
 
18881
class WinTypeKeywords;
 
18882
class WinFriend;
 
18883
class ExtAC;
 
18884
class ExtACBuilderCoupling;
 
18885
class ExtACSyntaxCoupling;
 
18886
class ExtACTree;
 
18887
class ExtACKeywords;
 
18888
class ExtGnu;
 
18889
class PragmaOnceUnitState;
 
18890
class PragmaOnce;
 
18891
class CMatchSyntax;
 
18892
namespace Puma {
 
18893
 
 
18894
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18895
 
 
18896
#line 18897 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18897
} // closed Puma
 
18898
 
 
18899
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18900
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18901
#include "CCExprResolveH.ah"
 
18902
#endif
 
18903
namespace Puma {
 
18904
 
 
18905
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18906
 
 
18907
#line 18908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18908
} // closed Puma
 
18909
 
 
18910
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18911
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18912
#include "CExprResolveH.ah"
 
18913
#endif
 
18914
namespace Puma {
 
18915
 
 
18916
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18917
class CT_Integer : public CT_Expression {
 
18918
#line 18919 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18919
  friend class ::CCExprResolve;
 
18920
  friend class ::CExprResolve;
 
18921
  friend class ::WinIfExists;
 
18922
  friend class ::WinImportHandler;
 
18923
  friend class ::WinMacros;
 
18924
  friend class ::WinAsm;
 
18925
  friend class ::WinDeclSpecs;
 
18926
  friend class ::WinMemberExplSpec;
 
18927
  friend class ::WinTypeKeywords;
 
18928
  friend class ::WinFriend;
 
18929
  friend class ::ExtAC;
 
18930
  friend class ::ExtACBuilderCoupling;
 
18931
  friend class ::ExtACSyntaxCoupling;
 
18932
  friend class ::ExtACTree;
 
18933
  friend class ::ExtACKeywords;
 
18934
  friend class ::ExtGnu;
 
18935
  friend class ::PragmaOnceUnitState;
 
18936
  friend class ::PragmaOnce;
 
18937
  friend class ::CMatchSyntax;
 
18938
 
 
18939
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18940
 
 
18941
  CTree *_value;  // CT_Token
 
18942
 
 
18943
public:
 
18944
  /** Constructor.
 
18945
   *  \param token The token containing the integer value. */
 
18946
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
18947
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18948
  static const char *NodeId ();
 
18949
  /** Get the name of the node. Can be compared with NodeId(). */
 
18950
  const char *NodeName () const { return NodeId (); }
 
18951
  /** Get the number of sons. */
 
18952
  int Sons () const { return _value ? 1 : 0; }
 
18953
  /** Get the n-th son.
 
18954
   *  \param n The index of the son.
 
18955
   *  \return The n-th son or NULL. */
 
18956
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
18957
  /** Replace a son.
 
18958
   *  \param old_son The son to replace.
 
18959
   *  \param new_son The new son. */
 
18960
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
18961
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
18962
   private:
 
18963
  typedef CT_Integer CCExprResolveExpr;
 
18964
 
 
18965
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
18966
 public :
 
18967
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
18968
  typedef CT_Integer CExprResolveExpr;
 
18969
 
 
18970
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
18971
 public :
 
18972
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
18973
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18974
};
 
18975
 
 
18976
/** \class CT_Character CTree.h Puma/CTree.h
 
18977
 *  Tree node representing a single character constant. */
 
18978
 
 
18979
#line 18980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
18980
} // closed Puma
 
18981
class CCExprResolve;
 
18982
class CExprResolve;
 
18983
class WinIfExists;
 
18984
class WinImportHandler;
 
18985
class WinMacros;
 
18986
class WinAsm;
 
18987
class WinDeclSpecs;
 
18988
class WinMemberExplSpec;
 
18989
class WinTypeKeywords;
 
18990
class WinFriend;
 
18991
class ExtAC;
 
18992
class ExtACBuilderCoupling;
 
18993
class ExtACSyntaxCoupling;
 
18994
class ExtACTree;
 
18995
class ExtACKeywords;
 
18996
class ExtGnu;
 
18997
class PragmaOnceUnitState;
 
18998
class PragmaOnce;
 
18999
class CMatchSyntax;
 
19000
namespace Puma {
 
19001
 
 
19002
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19003
 
 
19004
#line 19005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19005
} // closed Puma
 
19006
 
 
19007
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19008
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19009
#include "CCExprResolveH.ah"
 
19010
#endif
 
19011
namespace Puma {
 
19012
 
 
19013
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19014
 
 
19015
#line 19016 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19016
} // closed Puma
 
19017
 
 
19018
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19019
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19020
#include "CExprResolveH.ah"
 
19021
#endif
 
19022
namespace Puma {
 
19023
 
 
19024
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19025
class CT_Character : public CT_Expression {
 
19026
#line 19027 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19027
  friend class ::CCExprResolve;
 
19028
  friend class ::CExprResolve;
 
19029
  friend class ::WinIfExists;
 
19030
  friend class ::WinImportHandler;
 
19031
  friend class ::WinMacros;
 
19032
  friend class ::WinAsm;
 
19033
  friend class ::WinDeclSpecs;
 
19034
  friend class ::WinMemberExplSpec;
 
19035
  friend class ::WinTypeKeywords;
 
19036
  friend class ::WinFriend;
 
19037
  friend class ::ExtAC;
 
19038
  friend class ::ExtACBuilderCoupling;
 
19039
  friend class ::ExtACSyntaxCoupling;
 
19040
  friend class ::ExtACTree;
 
19041
  friend class ::ExtACKeywords;
 
19042
  friend class ::ExtGnu;
 
19043
  friend class ::PragmaOnceUnitState;
 
19044
  friend class ::PragmaOnce;
 
19045
  friend class ::CMatchSyntax;
 
19046
 
 
19047
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19048
 
 
19049
  CTree *_value;  // CT_Token
 
19050
 
 
19051
public:
 
19052
  /** Constructor.
 
19053
   *  \param token The token containing the character value. */
 
19054
  CT_Character (CTree *token) { AddSon (_value, token); }
 
19055
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
19056
  static const char *NodeId ();
 
19057
  /** Get the name of the node. Can be compared with NodeId(). */
 
19058
  const char *NodeName () const { return NodeId (); }
 
19059
  /** Get the number of sons. */
 
19060
  int Sons () const { return 1; }
 
19061
  /** Get the n-th son.
 
19062
   *  \param n The index of the son.
 
19063
   *  \return The n-th son or NULL. */
 
19064
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
19065
  /** Replace a son.
 
19066
   *  \param old_son The son to replace.
 
19067
   *  \param new_son The new son. */
 
19068
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
19069
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
19070
   private:
 
19071
  typedef CT_Character CCExprResolveExpr;
 
19072
 
 
19073
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19074
 public :
 
19075
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19076
  typedef CT_Character CExprResolveExpr;
 
19077
 
 
19078
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19079
 public :
 
19080
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19081
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19082
};
 
19083
 
 
19084
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
19085
 *  Tree node representing a wide character constant. */
 
19086
 
 
19087
#line 19088 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19088
} // closed Puma
 
19089
class CCExprResolve;
 
19090
class CExprResolve;
 
19091
class WinIfExists;
 
19092
class WinImportHandler;
 
19093
class WinMacros;
 
19094
class WinAsm;
 
19095
class WinDeclSpecs;
 
19096
class WinMemberExplSpec;
 
19097
class WinTypeKeywords;
 
19098
class WinFriend;
 
19099
class ExtAC;
 
19100
class ExtACBuilderCoupling;
 
19101
class ExtACSyntaxCoupling;
 
19102
class ExtACTree;
 
19103
class ExtACKeywords;
 
19104
class ExtGnu;
 
19105
class PragmaOnceUnitState;
 
19106
class PragmaOnce;
 
19107
class CMatchSyntax;
 
19108
namespace Puma {
 
19109
 
 
19110
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19111
 
 
19112
#line 19113 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19113
} // closed Puma
 
19114
 
 
19115
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19116
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19117
#include "CCExprResolveH.ah"
 
19118
#endif
 
19119
namespace Puma {
 
19120
 
 
19121
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19122
 
 
19123
#line 19124 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19124
} // closed Puma
 
19125
 
 
19126
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19127
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19128
#include "CExprResolveH.ah"
 
19129
#endif
 
19130
namespace Puma {
 
19131
 
 
19132
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19133
class CT_WideCharacter : public CT_Character {
 
19134
#line 19135 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19135
  friend class ::CCExprResolve;
 
19136
  friend class ::CExprResolve;
 
19137
  friend class ::WinIfExists;
 
19138
  friend class ::WinImportHandler;
 
19139
  friend class ::WinMacros;
 
19140
  friend class ::WinAsm;
 
19141
  friend class ::WinDeclSpecs;
 
19142
  friend class ::WinMemberExplSpec;
 
19143
  friend class ::WinTypeKeywords;
 
19144
  friend class ::WinFriend;
 
19145
  friend class ::ExtAC;
 
19146
  friend class ::ExtACBuilderCoupling;
 
19147
  friend class ::ExtACSyntaxCoupling;
 
19148
  friend class ::ExtACTree;
 
19149
  friend class ::ExtACKeywords;
 
19150
  friend class ::ExtGnu;
 
19151
  friend class ::PragmaOnceUnitState;
 
19152
  friend class ::PragmaOnce;
 
19153
  friend class ::CMatchSyntax;
 
19154
 
 
19155
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19156
 
 
19157
public:
 
19158
  /** Constructor.
 
19159
   *  \param token The token containing the wide character value. */
 
19160
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
19161
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
19162
  static const char *NodeId ();
 
19163
  /** Get the name of the node. Can be compared with NodeId(). */
 
19164
  const char *NodeName () const { return NodeId (); }
 
19165
   private:
 
19166
  typedef CT_WideCharacter CCExprResolveExpr;
 
19167
 
 
19168
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19169
 public :
 
19170
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19171
  typedef CT_WideCharacter CExprResolveExpr;
 
19172
 
 
19173
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19174
 public :
 
19175
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19176
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19177
};
 
19178
 
 
19179
/** \class CT_Float CTree.h Puma/CTree.h
 
19180
 *  Tree node representing a floating point constant. */
 
19181
 
 
19182
#line 19183 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19183
} // closed Puma
 
19184
class CCExprResolve;
 
19185
class CExprResolve;
 
19186
class WinIfExists;
 
19187
class WinImportHandler;
 
19188
class WinMacros;
 
19189
class WinAsm;
 
19190
class WinDeclSpecs;
 
19191
class WinMemberExplSpec;
 
19192
class WinTypeKeywords;
 
19193
class WinFriend;
 
19194
class ExtAC;
 
19195
class ExtACBuilderCoupling;
 
19196
class ExtACSyntaxCoupling;
 
19197
class ExtACTree;
 
19198
class ExtACKeywords;
 
19199
class ExtGnu;
 
19200
class PragmaOnceUnitState;
 
19201
class PragmaOnce;
 
19202
class CMatchSyntax;
 
19203
namespace Puma {
 
19204
 
 
19205
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19206
 
 
19207
#line 19208 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19208
} // closed Puma
 
19209
 
 
19210
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19211
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19212
#include "CCExprResolveH.ah"
 
19213
#endif
 
19214
namespace Puma {
 
19215
 
 
19216
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19217
 
 
19218
#line 19219 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19219
} // closed Puma
 
19220
 
 
19221
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19222
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19223
#include "CExprResolveH.ah"
 
19224
#endif
 
19225
namespace Puma {
 
19226
 
 
19227
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19228
class CT_Float : public CT_Expression {
 
19229
#line 19230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19230
  friend class ::CCExprResolve;
 
19231
  friend class ::CExprResolve;
 
19232
  friend class ::WinIfExists;
 
19233
  friend class ::WinImportHandler;
 
19234
  friend class ::WinMacros;
 
19235
  friend class ::WinAsm;
 
19236
  friend class ::WinDeclSpecs;
 
19237
  friend class ::WinMemberExplSpec;
 
19238
  friend class ::WinTypeKeywords;
 
19239
  friend class ::WinFriend;
 
19240
  friend class ::ExtAC;
 
19241
  friend class ::ExtACBuilderCoupling;
 
19242
  friend class ::ExtACSyntaxCoupling;
 
19243
  friend class ::ExtACTree;
 
19244
  friend class ::ExtACKeywords;
 
19245
  friend class ::ExtGnu;
 
19246
  friend class ::PragmaOnceUnitState;
 
19247
  friend class ::PragmaOnce;
 
19248
  friend class ::CMatchSyntax;
 
19249
 
 
19250
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19251
 
 
19252
  CTree *_value;  // CT_Token
 
19253
 
 
19254
public:
 
19255
  /** Constructor.
 
19256
   *  \param token The token containing the floating point value. */
 
19257
  CT_Float (CTree *token) { AddSon (_value, token); }
 
19258
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
19259
  static const char *NodeId ();
 
19260
  /** Get the name of the node. Can be compared with NodeId(). */
 
19261
  const char *NodeName () const { return NodeId (); }
 
19262
  /** Get the number of sons. */
 
19263
  int Sons () const { return 1; }
 
19264
  /** Get the n-th son.
 
19265
   *  \param n The index of the son.
 
19266
   *  \return The n-th son or NULL. */
 
19267
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
19268
  /** Replace a son.
 
19269
   *  \param old_son The son to replace.
 
19270
   *  \param new_son The new son. */
 
19271
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
19272
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
19273
   private:
 
19274
  typedef CT_Float CCExprResolveExpr;
 
19275
 
 
19276
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19277
 public :
 
19278
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19279
  typedef CT_Float CExprResolveExpr;
 
19280
 
 
19281
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19282
 public :
 
19283
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19284
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19285
};
 
19286
 
 
19287
/** \class CT_Bool CTree.h Puma/CTree.h
 
19288
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
 
19289
 
 
19290
#line 19291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19291
} // closed Puma
 
19292
class CCExprResolve;
 
19293
class CExprResolve;
 
19294
class WinIfExists;
 
19295
class WinImportHandler;
 
19296
class WinMacros;
 
19297
class WinAsm;
 
19298
class WinDeclSpecs;
 
19299
class WinMemberExplSpec;
 
19300
class WinTypeKeywords;
 
19301
class WinFriend;
 
19302
class ExtAC;
 
19303
class ExtACBuilderCoupling;
 
19304
class ExtACSyntaxCoupling;
 
19305
class ExtACTree;
 
19306
class ExtACKeywords;
 
19307
class ExtGnu;
 
19308
class PragmaOnceUnitState;
 
19309
class PragmaOnce;
 
19310
class CMatchSyntax;
 
19311
namespace Puma {
 
19312
 
 
19313
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19314
 
 
19315
#line 19316 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19316
} // closed Puma
 
19317
 
 
19318
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19319
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19320
#include "CCExprResolveH.ah"
 
19321
#endif
 
19322
namespace Puma {
 
19323
 
 
19324
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19325
 
 
19326
#line 19327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19327
} // closed Puma
 
19328
 
 
19329
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19330
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19331
#include "CExprResolveH.ah"
 
19332
#endif
 
19333
namespace Puma {
 
19334
 
 
19335
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19336
class CT_Bool : public CT_Expression {
 
19337
#line 19338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19338
  friend class ::CCExprResolve;
 
19339
  friend class ::CExprResolve;
 
19340
  friend class ::WinIfExists;
 
19341
  friend class ::WinImportHandler;
 
19342
  friend class ::WinMacros;
 
19343
  friend class ::WinAsm;
 
19344
  friend class ::WinDeclSpecs;
 
19345
  friend class ::WinMemberExplSpec;
 
19346
  friend class ::WinTypeKeywords;
 
19347
  friend class ::WinFriend;
 
19348
  friend class ::ExtAC;
 
19349
  friend class ::ExtACBuilderCoupling;
 
19350
  friend class ::ExtACSyntaxCoupling;
 
19351
  friend class ::ExtACTree;
 
19352
  friend class ::ExtACKeywords;
 
19353
  friend class ::ExtGnu;
 
19354
  friend class ::PragmaOnceUnitState;
 
19355
  friend class ::PragmaOnce;
 
19356
  friend class ::CMatchSyntax;
 
19357
 
 
19358
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19359
 
 
19360
  CTree *_value;  // CT_Token
 
19361
 
 
19362
public:
 
19363
  /** Constructor.
 
19364
   *  \param token The token containing the boolean value. */
 
19365
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
19366
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
19367
  static const char *NodeId ();
 
19368
  /** Get the name of the node. Can be compared with NodeId(). */
 
19369
  const char *NodeName () const { return NodeId (); }
 
19370
  /** Get the number of sons. */
 
19371
  int Sons () const { return 1; }
 
19372
  /** Get the n-th son.
 
19373
   *  \param n The index of the son.
 
19374
   *  \return The n-th son or NULL. */
 
19375
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
19376
  /** Replace a son.
 
19377
   *  \param old_son The son to replace.
 
19378
   *  \param new_son The new son. */
 
19379
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
19380
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
19381
   private:
 
19382
  typedef CT_Bool CCExprResolveExpr;
 
19383
 
 
19384
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19385
 public :
 
19386
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19387
  typedef CT_Bool CExprResolveExpr;
 
19388
 
 
19389
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19390
 public :
 
19391
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19392
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19393
};
 
19394
 
 
19395
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
19396
 *  Tree node representing a braced expression, e.g. (a+b). */
 
19397
 
 
19398
#line 19399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19399
} // closed Puma
 
19400
class CCExprResolve;
 
19401
class CExprResolve;
 
19402
class WinIfExists;
 
19403
class WinImportHandler;
 
19404
class WinMacros;
 
19405
class WinAsm;
 
19406
class WinDeclSpecs;
 
19407
class WinMemberExplSpec;
 
19408
class WinTypeKeywords;
 
19409
class WinFriend;
 
19410
class ExtAC;
 
19411
class ExtACBuilderCoupling;
 
19412
class ExtACSyntaxCoupling;
 
19413
class ExtACTree;
 
19414
class ExtACKeywords;
 
19415
class ExtGnu;
 
19416
class PragmaOnceUnitState;
 
19417
class PragmaOnce;
 
19418
class CMatchSyntax;
 
19419
namespace Puma {
 
19420
 
 
19421
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19422
 
 
19423
#line 19424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19424
} // closed Puma
 
19425
 
 
19426
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19427
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19428
#include "CCExprResolveH.ah"
 
19429
#endif
 
19430
namespace Puma {
 
19431
 
 
19432
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19433
 
 
19434
#line 19435 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19435
} // closed Puma
 
19436
 
 
19437
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19438
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19439
#include "CExprResolveH.ah"
 
19440
#endif
 
19441
namespace Puma {
 
19442
 
 
19443
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19444
class CT_BracedExpr : public CT_Expression {
 
19445
#line 19446 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19446
  friend class ::CCExprResolve;
 
19447
  friend class ::CExprResolve;
 
19448
  friend class ::WinIfExists;
 
19449
  friend class ::WinImportHandler;
 
19450
  friend class ::WinMacros;
 
19451
  friend class ::WinAsm;
 
19452
  friend class ::WinDeclSpecs;
 
19453
  friend class ::WinMemberExplSpec;
 
19454
  friend class ::WinTypeKeywords;
 
19455
  friend class ::WinFriend;
 
19456
  friend class ::ExtAC;
 
19457
  friend class ::ExtACBuilderCoupling;
 
19458
  friend class ::ExtACSyntaxCoupling;
 
19459
  friend class ::ExtACTree;
 
19460
  friend class ::ExtACKeywords;
 
19461
  friend class ::ExtGnu;
 
19462
  friend class ::PragmaOnceUnitState;
 
19463
  friend class ::PragmaOnce;
 
19464
  friend class ::CMatchSyntax;
 
19465
 
 
19466
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19467
 
 
19468
  CTree *sons[3]; // open, expr, close
 
19469
 
 
19470
public:
 
19471
  /** Constructor.
 
19472
   *  \param o The opening brace.
 
19473
   *  \param e The enclosed expression.
 
19474
   *  \param c The closing brace. */
 
19475
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
 
19476
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
 
19477
  }
 
19478
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
19479
  static const char *NodeId ();
 
19480
  /** Get the name of the node. Can be compared with NodeId(). */
 
19481
  const char *NodeName () const { return NodeId (); }
 
19482
  /** Get the number of sons. */
 
19483
  int Sons () const { return 3; }
 
19484
  /** Get the n-th son.
 
19485
   *  \param n The index of the son.
 
19486
   *  \return The n-th son or NULL. */
 
19487
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
19488
  /** Get the enclosed expression. */
 
19489
  CTree *Expr () const { return sons[1]; }
 
19490
  /** Get the type of the enclosed expression. */
 
19491
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
19492
  /** Get the value of the enclosed expression. */
 
19493
  CExprValue *Value () const { return Expr ()->Value (); }
 
19494
  /** Get the semantic value object. */
 
19495
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
19496
  /** Replace a son.
 
19497
   *  \param old_son The son to replace.
 
19498
   *  \param new_son The new son. */
 
19499
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
19500
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
19501
  }
 
19502
   private:
 
19503
  typedef CT_BracedExpr CCExprResolveExpr;
 
19504
 
 
19505
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19506
 public :
 
19507
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19508
  typedef CT_BracedExpr CExprResolveExpr;
 
19509
 
 
19510
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19511
 public :
 
19512
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19513
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19514
};
 
19515
 
 
19516
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
19517
 *  Base class for all tree nodes representing a name. */
 
19518
 
 
19519
#line 19520 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19520
} // closed Puma
 
19521
class CCExprResolve;
 
19522
class CExprResolve;
 
19523
class WinIfExists;
 
19524
class WinImportHandler;
 
19525
class WinMacros;
 
19526
class WinAsm;
 
19527
class WinDeclSpecs;
 
19528
class WinMemberExplSpec;
 
19529
class WinTypeKeywords;
 
19530
class WinFriend;
 
19531
class ExtAC;
 
19532
class ExtACBuilderCoupling;
 
19533
class ExtACSyntaxCoupling;
 
19534
class ExtACTree;
 
19535
class ExtACKeywords;
 
19536
class ExtGnu;
 
19537
class PragmaOnceUnitState;
 
19538
class PragmaOnce;
 
19539
class CMatchSyntax;
 
19540
namespace Puma {
 
19541
 
 
19542
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19543
 
 
19544
#line 19545 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19545
} // closed Puma
 
19546
 
 
19547
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19548
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19549
#include "CCExprResolveH.ah"
 
19550
#endif
 
19551
namespace Puma {
 
19552
 
 
19553
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19554
 
 
19555
#line 19556 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19556
} // closed Puma
 
19557
 
 
19558
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19559
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19560
#include "CExprResolveH.ah"
 
19561
#endif
 
19562
namespace Puma {
 
19563
 
 
19564
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19565
class CT_SimpleName : public CT_List, public Printable, 
 
19566
                      public CSemValue, public CSemObject {
 
19567
#line 19568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19568
  friend class ::CCExprResolve;
 
19569
  friend class ::CExprResolve;
 
19570
  friend class ::WinIfExists;
 
19571
  friend class ::WinImportHandler;
 
19572
  friend class ::WinMacros;
 
19573
  friend class ::WinAsm;
 
19574
  friend class ::WinDeclSpecs;
 
19575
  friend class ::WinMemberExplSpec;
 
19576
  friend class ::WinTypeKeywords;
 
19577
  friend class ::WinFriend;
 
19578
  friend class ::ExtAC;
 
19579
  friend class ::ExtACBuilderCoupling;
 
19580
  friend class ::ExtACSyntaxCoupling;
 
19581
  friend class ::ExtACTree;
 
19582
  friend class ::ExtACKeywords;
 
19583
  friend class ::ExtGnu;
 
19584
  friend class ::PragmaOnceUnitState;
 
19585
  friend class ::PragmaOnce;
 
19586
  friend class ::CMatchSyntax;
 
19587
 
 
19588
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19589
 
 
19590
protected:
 
19591
  /** Constructor.
 
19592
   *  \param size The number of sub-names (for qualified names). */
 
19593
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
19594
  /** Constructor.
 
19595
   *  \param size The number of sub-names (for qualified names). 
 
19596
   *  \param properties Additional name list properties (for root qualified names). */
 
19597
  CT_SimpleName (int size, int properties) : 
 
19598
    CT_List (size, 2, properties) {}
 
19599
  
 
19600
public:
 
19601
  /** Constructor.
 
19602
   *  \param n The sub-tree containing the name. */
 
19603
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
19604
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
19605
  static const char *NodeId ();
 
19606
  /** Get the name of the node. Can be compared with NodeId(). */
 
19607
  const char *NodeName () const { return NodeId (); }
 
19608
  /** Get the string containing the name. */
 
19609
  virtual const char *Text () const 
 
19610
   { return Son (Sons ()-1)->token ()->text (); }
 
19611
  /** Print the name on the given stream. 
 
19612
   *  \param os The output stream. */
 
19613
  virtual void print (ostream &os) const { os << Text (); }
 
19614
  /** Get this. */
 
19615
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
19616
  /** Get the type of the entity represented by the name. */
 
19617
  CTypeInfo *Type () const { return type; }
 
19618
  /** Get the value of the entity represented by the name. */ 
 
19619
  CExprValue *Value () const { return value; }
 
19620
  /** Get the sematic value information object. */
 
19621
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
19622
  /** Get the sematic information object. */
 
19623
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
19624
  /** Get this. */
 
19625
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
19626
 
 
19627
public:
 
19628
  /** Own new operator reusing memory. */
 
19629
  void *operator new (size_t);
 
19630
  /** Own delete operator. */
 
19631
  void operator delete (void *);
 
19632
   private:
 
19633
  typedef CT_SimpleName CCExprResolveExpr;
 
19634
 
 
19635
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19636
 public :
 
19637
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19638
  typedef CT_SimpleName CExprResolveExpr;
 
19639
 
 
19640
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19641
 public :
 
19642
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19643
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19644
};
 
19645
 
 
19646
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
19647
 *  Base class for tree nodes representing a special name, like destructor names. */
 
19648
 
 
19649
#line 19650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19650
} // closed Puma
 
19651
class CCExprResolve;
 
19652
class CExprResolve;
 
19653
class WinIfExists;
 
19654
class WinImportHandler;
 
19655
class WinMacros;
 
19656
class WinAsm;
 
19657
class WinDeclSpecs;
 
19658
class WinMemberExplSpec;
 
19659
class WinTypeKeywords;
 
19660
class WinFriend;
 
19661
class ExtAC;
 
19662
class ExtACBuilderCoupling;
 
19663
class ExtACSyntaxCoupling;
 
19664
class ExtACTree;
 
19665
class ExtACKeywords;
 
19666
class ExtGnu;
 
19667
class PragmaOnceUnitState;
 
19668
class PragmaOnce;
 
19669
class CMatchSyntax;
 
19670
namespace Puma {
 
19671
 
 
19672
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19673
 
 
19674
#line 19675 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19675
} // closed Puma
 
19676
 
 
19677
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19678
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19679
#include "CCExprResolveH.ah"
 
19680
#endif
 
19681
namespace Puma {
 
19682
 
 
19683
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19684
 
 
19685
#line 19686 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19686
} // closed Puma
 
19687
 
 
19688
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19689
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19690
#include "CExprResolveH.ah"
 
19691
#endif
 
19692
namespace Puma {
 
19693
 
 
19694
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19695
class CT_SpecialName : public CT_SimpleName {
 
19696
#line 19697 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19697
  friend class ::CCExprResolve;
 
19698
  friend class ::CExprResolve;
 
19699
  friend class ::WinIfExists;
 
19700
  friend class ::WinImportHandler;
 
19701
  friend class ::WinMacros;
 
19702
  friend class ::WinAsm;
 
19703
  friend class ::WinDeclSpecs;
 
19704
  friend class ::WinMemberExplSpec;
 
19705
  friend class ::WinTypeKeywords;
 
19706
  friend class ::WinFriend;
 
19707
  friend class ::ExtAC;
 
19708
  friend class ::ExtACBuilderCoupling;
 
19709
  friend class ::ExtACSyntaxCoupling;
 
19710
  friend class ::ExtACTree;
 
19711
  friend class ::ExtACKeywords;
 
19712
  friend class ::ExtGnu;
 
19713
  friend class ::PragmaOnceUnitState;
 
19714
  friend class ::PragmaOnce;
 
19715
  friend class ::CMatchSyntax;
 
19716
 
 
19717
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19718
 
 
19719
  char *_name;
 
19720
  
 
19721
protected:
 
19722
  /** Constructor.
 
19723
   *  \param size The number of sub-names (for qualified names). */
 
19724
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
 
19725
  
 
19726
public:
 
19727
  /** Destructor. Deletes the name string. */
 
19728
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
19729
  /** Get the string containing the name. */
 
19730
  const char *Text () const { return _name; }
 
19731
  /** Set the name. The name is copied.
 
19732
   *  \param n The name. */
 
19733
  void Name (const char *n) { 
 
19734
    if (n) { 
 
19735
      _name = new char[strlen(n) + 1];
 
19736
      strcpy (_name,n);
 
19737
    }
 
19738
  }
 
19739
 
 
19740
public:
 
19741
  /** Own new operator reusing memory. */
 
19742
  void *operator new (size_t);
 
19743
  /** Own delete operator. */
 
19744
  void operator delete (void *);
 
19745
   private:
 
19746
  typedef CT_SpecialName CCExprResolveExpr;
 
19747
 
 
19748
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19749
 public :
 
19750
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19751
  typedef CT_SpecialName CExprResolveExpr;
 
19752
 
 
19753
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19754
 public :
 
19755
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19756
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19757
};
 
19758
 
 
19759
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
19760
 *  Tree node representing a private name. Private names 
 
19761
 *  are generated names for abstract declarators etc. */
 
19762
 
 
19763
#line 19764 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19764
} // closed Puma
 
19765
class CCExprResolve;
 
19766
class CExprResolve;
 
19767
class WinIfExists;
 
19768
class WinImportHandler;
 
19769
class WinMacros;
 
19770
class WinAsm;
 
19771
class WinDeclSpecs;
 
19772
class WinMemberExplSpec;
 
19773
class WinTypeKeywords;
 
19774
class WinFriend;
 
19775
class ExtAC;
 
19776
class ExtACBuilderCoupling;
 
19777
class ExtACSyntaxCoupling;
 
19778
class ExtACTree;
 
19779
class ExtACKeywords;
 
19780
class ExtGnu;
 
19781
class PragmaOnceUnitState;
 
19782
class PragmaOnce;
 
19783
class CMatchSyntax;
 
19784
namespace Puma {
 
19785
 
 
19786
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19787
 
 
19788
#line 19789 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19789
} // closed Puma
 
19790
 
 
19791
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19792
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19793
#include "CCExprResolveH.ah"
 
19794
#endif
 
19795
namespace Puma {
 
19796
 
 
19797
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19798
 
 
19799
#line 19800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19800
} // closed Puma
 
19801
 
 
19802
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19803
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19804
#include "CExprResolveH.ah"
 
19805
#endif
 
19806
namespace Puma {
 
19807
 
 
19808
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19809
class CT_PrivateName : public CT_SpecialName {
 
19810
#line 19811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19811
  friend class ::CCExprResolve;
 
19812
  friend class ::CExprResolve;
 
19813
  friend class ::WinIfExists;
 
19814
  friend class ::WinImportHandler;
 
19815
  friend class ::WinMacros;
 
19816
  friend class ::WinAsm;
 
19817
  friend class ::WinDeclSpecs;
 
19818
  friend class ::WinMemberExplSpec;
 
19819
  friend class ::WinTypeKeywords;
 
19820
  friend class ::WinFriend;
 
19821
  friend class ::ExtAC;
 
19822
  friend class ::ExtACBuilderCoupling;
 
19823
  friend class ::ExtACSyntaxCoupling;
 
19824
  friend class ::ExtACTree;
 
19825
  friend class ::ExtACKeywords;
 
19826
  friend class ::ExtGnu;
 
19827
  friend class ::PragmaOnceUnitState;
 
19828
  friend class ::PragmaOnce;
 
19829
  friend class ::CMatchSyntax;
 
19830
 
 
19831
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19832
 
 
19833
public:
 
19834
  /** Constructor.
 
19835
   *  \param n The private (generated) name. */
 
19836
  CT_PrivateName (const char *n) { Name (n); }
 
19837
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
19838
  static const char *NodeId ();
 
19839
  /** Get the name of the node. Can be compared with NodeId(). */
 
19840
  const char *NodeName () const { return NodeId (); }
 
19841
  /** Get the number of sons. */
 
19842
  int Sons () const { return 0; }
 
19843
  /** Get the n-th son.
 
19844
   *  \param n The index of the son.
 
19845
   *  \return The n-th son or NULL. */
 
19846
  CTree *Son (int n) const { return (CTree*)0; }
 
19847
 
 
19848
public:
 
19849
  /** Own new operator reusing memory. */
 
19850
  void *operator new (size_t);
 
19851
  /** Own delete operator. */
 
19852
  void operator delete (void *);
 
19853
   private:
 
19854
  typedef CT_PrivateName CCExprResolveExpr;
 
19855
 
 
19856
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19857
 public :
 
19858
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19859
  typedef CT_PrivateName CExprResolveExpr;
 
19860
 
 
19861
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19862
 public :
 
19863
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19864
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19865
};
 
19866
 
 
19867
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
19868
 *  Tree node representing a destructor name. */
 
19869
 
 
19870
#line 19871 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19871
} // closed Puma
 
19872
class CCExprResolve;
 
19873
class CExprResolve;
 
19874
class WinIfExists;
 
19875
class WinImportHandler;
 
19876
class WinMacros;
 
19877
class WinAsm;
 
19878
class WinDeclSpecs;
 
19879
class WinMemberExplSpec;
 
19880
class WinTypeKeywords;
 
19881
class WinFriend;
 
19882
class ExtAC;
 
19883
class ExtACBuilderCoupling;
 
19884
class ExtACSyntaxCoupling;
 
19885
class ExtACTree;
 
19886
class ExtACKeywords;
 
19887
class ExtGnu;
 
19888
class PragmaOnceUnitState;
 
19889
class PragmaOnce;
 
19890
class CMatchSyntax;
 
19891
namespace Puma {
 
19892
 
 
19893
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19894
 
 
19895
#line 19896 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19896
} // closed Puma
 
19897
 
 
19898
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19899
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19900
#include "CCExprResolveH.ah"
 
19901
#endif
 
19902
namespace Puma {
 
19903
 
 
19904
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19905
 
 
19906
#line 19907 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19907
} // closed Puma
 
19908
 
 
19909
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19910
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19911
#include "CExprResolveH.ah"
 
19912
#endif
 
19913
namespace Puma {
 
19914
 
 
19915
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19916
class CT_DestructorName : public CT_SpecialName {
 
19917
#line 19918 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19918
  friend class ::CCExprResolve;
 
19919
  friend class ::CExprResolve;
 
19920
  friend class ::WinIfExists;
 
19921
  friend class ::WinImportHandler;
 
19922
  friend class ::WinMacros;
 
19923
  friend class ::WinAsm;
 
19924
  friend class ::WinDeclSpecs;
 
19925
  friend class ::WinMemberExplSpec;
 
19926
  friend class ::WinTypeKeywords;
 
19927
  friend class ::WinFriend;
 
19928
  friend class ::ExtAC;
 
19929
  friend class ::ExtACBuilderCoupling;
 
19930
  friend class ::ExtACSyntaxCoupling;
 
19931
  friend class ::ExtACTree;
 
19932
  friend class ::ExtACKeywords;
 
19933
  friend class ::ExtGnu;
 
19934
  friend class ::PragmaOnceUnitState;
 
19935
  friend class ::PragmaOnce;
 
19936
  friend class ::CMatchSyntax;
 
19937
 
 
19938
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19939
 
 
19940
public:
 
19941
  /** Constructor.
 
19942
   *  \param t The tilde operator.
 
19943
   *  \param n The class name. */
 
19944
  CT_DestructorName (CTree *t, CTree *n);
 
19945
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
19946
  static const char *NodeId ();
 
19947
  /** Get the name of the node. Can be compared with NodeId(). */
 
19948
  const char *NodeName () const { return NodeId (); }
 
19949
 
 
19950
public:
 
19951
  /** Own new operator reusing memory. */
 
19952
  void *operator new (size_t);
 
19953
  /** Own delete operator. */
 
19954
  void operator delete (void *);
 
19955
   private:
 
19956
  typedef CT_DestructorName CCExprResolveExpr;
 
19957
 
 
19958
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19959
 public :
 
19960
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19961
  typedef CT_DestructorName CExprResolveExpr;
 
19962
 
 
19963
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19964
 public :
 
19965
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19966
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19967
};
 
19968
 
 
19969
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
19970
 *  Tree node representing a template name. */
 
19971
 
 
19972
#line 19973 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19973
} // closed Puma
 
19974
class CCExprResolve;
 
19975
class CExprResolve;
 
19976
class WinIfExists;
 
19977
class WinImportHandler;
 
19978
class WinMacros;
 
19979
class WinAsm;
 
19980
class WinDeclSpecs;
 
19981
class WinMemberExplSpec;
 
19982
class WinTypeKeywords;
 
19983
class WinFriend;
 
19984
class ExtAC;
 
19985
class ExtACBuilderCoupling;
 
19986
class ExtACSyntaxCoupling;
 
19987
class ExtACTree;
 
19988
class ExtACKeywords;
 
19989
class ExtGnu;
 
19990
class PragmaOnceUnitState;
 
19991
class PragmaOnce;
 
19992
class CMatchSyntax;
 
19993
namespace Puma {
 
19994
 
 
19995
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19996
 
 
19997
#line 19998 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
19998
} // closed Puma
 
19999
 
 
20000
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20001
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20002
#include "CCExprResolveH.ah"
 
20003
#endif
 
20004
namespace Puma {
 
20005
 
 
20006
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20007
 
 
20008
#line 20009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20009
} // closed Puma
 
20010
 
 
20011
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20012
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20013
#include "CExprResolveH.ah"
 
20014
#endif
 
20015
namespace Puma {
 
20016
 
 
20017
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20018
class CT_TemplateName : public CT_SpecialName {
 
20019
#line 20020 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20020
  friend class ::CCExprResolve;
 
20021
  friend class ::CExprResolve;
 
20022
  friend class ::WinIfExists;
 
20023
  friend class ::WinImportHandler;
 
20024
  friend class ::WinMacros;
 
20025
  friend class ::WinAsm;
 
20026
  friend class ::WinDeclSpecs;
 
20027
  friend class ::WinMemberExplSpec;
 
20028
  friend class ::WinTypeKeywords;
 
20029
  friend class ::WinFriend;
 
20030
  friend class ::ExtAC;
 
20031
  friend class ::ExtACBuilderCoupling;
 
20032
  friend class ::ExtACSyntaxCoupling;
 
20033
  friend class ::ExtACTree;
 
20034
  friend class ::ExtACKeywords;
 
20035
  friend class ::ExtGnu;
 
20036
  friend class ::PragmaOnceUnitState;
 
20037
  friend class ::PragmaOnce;
 
20038
  friend class ::CMatchSyntax;
 
20039
 
 
20040
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20041
 
 
20042
public:
 
20043
  /** Constructor.
 
20044
   *  \param n The template class or function name.
 
20045
   *  \param a The template argument list. */
 
20046
  CT_TemplateName (CTree *n, CTree *a) 
 
20047
   { AddSon (n); AddSon (a); }
 
20048
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20049
  static const char *NodeId ();
 
20050
  /** Get the name of the node. Can be compared with NodeId(). */
 
20051
  const char *NodeName () const { return NodeId (); }
 
20052
  /** Get the template argument list. */
 
20053
  CT_TemplateArgList *Arguments () const 
 
20054
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
20055
  /** Get the template class or function name. */
 
20056
  CT_SimpleName *TemplateName () const 
 
20057
   { return (CT_SimpleName*)Son (Sons ()-2); }
 
20058
  // may change in the future
 
20059
  const char *Text () const { return TemplateName ()->Text (); }
 
20060
 
 
20061
public:
 
20062
  /** Own new operator reusing memory. */
 
20063
  void *operator new (size_t);
 
20064
  /** Own delete operator. */
 
20065
  void operator delete (void *);
 
20066
   private:
 
20067
  typedef CT_TemplateName CCExprResolveExpr;
 
20068
 
 
20069
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20070
 public :
 
20071
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20072
  typedef CT_TemplateName CExprResolveExpr;
 
20073
 
 
20074
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20075
 public :
 
20076
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20077
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20078
};
 
20079
 
 
20080
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
20081
 *  Tree node representing the name of an overloaded operator. */
 
20082
 
 
20083
#line 20084 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20084
} // closed Puma
 
20085
class CCExprResolve;
 
20086
class CExprResolve;
 
20087
class WinIfExists;
 
20088
class WinImportHandler;
 
20089
class WinMacros;
 
20090
class WinAsm;
 
20091
class WinDeclSpecs;
 
20092
class WinMemberExplSpec;
 
20093
class WinTypeKeywords;
 
20094
class WinFriend;
 
20095
class ExtAC;
 
20096
class ExtACBuilderCoupling;
 
20097
class ExtACSyntaxCoupling;
 
20098
class ExtACTree;
 
20099
class ExtACKeywords;
 
20100
class ExtGnu;
 
20101
class PragmaOnceUnitState;
 
20102
class PragmaOnce;
 
20103
class CMatchSyntax;
 
20104
namespace Puma {
 
20105
 
 
20106
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20107
 
 
20108
#line 20109 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20109
} // closed Puma
 
20110
 
 
20111
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20112
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20113
#include "CCExprResolveH.ah"
 
20114
#endif
 
20115
namespace Puma {
 
20116
 
 
20117
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20118
 
 
20119
#line 20120 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20120
} // closed Puma
 
20121
 
 
20122
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20123
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20124
#include "CExprResolveH.ah"
 
20125
#endif
 
20126
namespace Puma {
 
20127
 
 
20128
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20129
class CT_OperatorName : public CT_SpecialName {
 
20130
#line 20131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20131
  friend class ::CCExprResolve;
 
20132
  friend class ::CExprResolve;
 
20133
  friend class ::WinIfExists;
 
20134
  friend class ::WinImportHandler;
 
20135
  friend class ::WinMacros;
 
20136
  friend class ::WinAsm;
 
20137
  friend class ::WinDeclSpecs;
 
20138
  friend class ::WinMemberExplSpec;
 
20139
  friend class ::WinTypeKeywords;
 
20140
  friend class ::WinFriend;
 
20141
  friend class ::ExtAC;
 
20142
  friend class ::ExtACBuilderCoupling;
 
20143
  friend class ::ExtACSyntaxCoupling;
 
20144
  friend class ::ExtACTree;
 
20145
  friend class ::ExtACKeywords;
 
20146
  friend class ::ExtGnu;
 
20147
  friend class ::PragmaOnceUnitState;
 
20148
  friend class ::PragmaOnce;
 
20149
  friend class ::CMatchSyntax;
 
20150
 
 
20151
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20152
 
 
20153
  int _oper;
 
20154
 
 
20155
public:
 
20156
  /** Complex operator types. */
 
20157
  enum { 
 
20158
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
20159
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
20160
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
20161
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
 
20162
  };
 
20163
 
 
20164
public:
 
20165
  /** Constructor.
 
20166
   *  \param op The token containing the operator. */
 
20167
  CT_OperatorName (CTree *op);
 
20168
  /** Constructor.
 
20169
   *  \param f The operator function keyword 'operator'.
 
20170
   *  \param op The token containing the operator. 
 
20171
   *  \param o The token of '[' or '('.
 
20172
   *  \param c The token of ']' or ')'. */
 
20173
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
20174
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20175
  static const char *NodeId ();
 
20176
  /** Get the name of the node. Can be compared with NodeId(). */
 
20177
  const char *NodeName () const { return NodeId (); }
 
20178
  /** Get the operator type (either the token type or one of 
 
20179
   *  the complex operator types). */
 
20180
  int Operator () const { return _oper; }
 
20181
 
 
20182
public:
 
20183
  /** Own new operator reusing memory. */
 
20184
  void *operator new (size_t);
 
20185
  /** Own delete operator. */
 
20186
  void operator delete (void *);
 
20187
   private:
 
20188
  typedef CT_OperatorName CCExprResolveExpr;
 
20189
 
 
20190
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20191
 public :
 
20192
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20193
  typedef CT_OperatorName CExprResolveExpr;
 
20194
 
 
20195
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20196
 public :
 
20197
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20198
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20199
};
 
20200
 
 
20201
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
20202
 *  Tree node representing the name of a conversion function. */
 
20203
 
 
20204
#line 20205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20205
} // closed Puma
 
20206
class CCExprResolve;
 
20207
class CExprResolve;
 
20208
class WinIfExists;
 
20209
class WinImportHandler;
 
20210
class WinMacros;
 
20211
class WinAsm;
 
20212
class WinDeclSpecs;
 
20213
class WinMemberExplSpec;
 
20214
class WinTypeKeywords;
 
20215
class WinFriend;
 
20216
class ExtAC;
 
20217
class ExtACBuilderCoupling;
 
20218
class ExtACSyntaxCoupling;
 
20219
class ExtACTree;
 
20220
class ExtACKeywords;
 
20221
class ExtGnu;
 
20222
class PragmaOnceUnitState;
 
20223
class PragmaOnce;
 
20224
class CMatchSyntax;
 
20225
namespace Puma {
 
20226
 
 
20227
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20228
 
 
20229
#line 20230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20230
} // closed Puma
 
20231
 
 
20232
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20233
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20234
#include "CCExprResolveH.ah"
 
20235
#endif
 
20236
namespace Puma {
 
20237
 
 
20238
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20239
 
 
20240
#line 20241 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20241
} // closed Puma
 
20242
 
 
20243
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20244
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20245
#include "CExprResolveH.ah"
 
20246
#endif
 
20247
namespace Puma {
 
20248
 
 
20249
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20250
class CT_ConversionName : public CT_SpecialName {
 
20251
#line 20252 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20252
  friend class ::CCExprResolve;
 
20253
  friend class ::CExprResolve;
 
20254
  friend class ::WinIfExists;
 
20255
  friend class ::WinImportHandler;
 
20256
  friend class ::WinMacros;
 
20257
  friend class ::WinAsm;
 
20258
  friend class ::WinDeclSpecs;
 
20259
  friend class ::WinMemberExplSpec;
 
20260
  friend class ::WinTypeKeywords;
 
20261
  friend class ::WinFriend;
 
20262
  friend class ::ExtAC;
 
20263
  friend class ::ExtACBuilderCoupling;
 
20264
  friend class ::ExtACSyntaxCoupling;
 
20265
  friend class ::ExtACTree;
 
20266
  friend class ::ExtACKeywords;
 
20267
  friend class ::ExtGnu;
 
20268
  friend class ::PragmaOnceUnitState;
 
20269
  friend class ::PragmaOnce;
 
20270
  friend class ::CMatchSyntax;
 
20271
 
 
20272
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20273
 
 
20274
public:
 
20275
  /** Constructor.
 
20276
   *  \param f The operator function keyword 'operator'.
 
20277
   *  \param t The sub-tree containing the conversion type. */
 
20278
  CT_ConversionName (CTree *f, CTree *t);
 
20279
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20280
  static const char *NodeId ();
 
20281
  /** Get the name of the node. Can be compared with NodeId(). */
 
20282
  const char *NodeName () const { return NodeId (); }
 
20283
  /** Get the conversion type. */
 
20284
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
 
20285
 
 
20286
public:
 
20287
  /** Own new operator reusing memory. */
 
20288
  void *operator new (size_t);
 
20289
  /** Own delete operator. */
 
20290
  void operator delete (void *);
 
20291
   private:
 
20292
  typedef CT_ConversionName CCExprResolveExpr;
 
20293
 
 
20294
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20295
 public :
 
20296
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20297
  typedef CT_ConversionName CExprResolveExpr;
 
20298
 
 
20299
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20300
 public :
 
20301
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20302
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20303
};
 
20304
 
 
20305
/** \class CT_QualName CTree.h Puma/CTree.h
 
20306
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
 
20307
 
 
20308
#line 20309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20309
} // closed Puma
 
20310
class CCExprResolve;
 
20311
class CExprResolve;
 
20312
class WinIfExists;
 
20313
class WinImportHandler;
 
20314
class WinMacros;
 
20315
class WinAsm;
 
20316
class WinDeclSpecs;
 
20317
class WinMemberExplSpec;
 
20318
class WinTypeKeywords;
 
20319
class WinFriend;
 
20320
class ExtAC;
 
20321
class ExtACBuilderCoupling;
 
20322
class ExtACSyntaxCoupling;
 
20323
class ExtACTree;
 
20324
class ExtACKeywords;
 
20325
class ExtGnu;
 
20326
class PragmaOnceUnitState;
 
20327
class PragmaOnce;
 
20328
class CMatchSyntax;
 
20329
namespace Puma {
 
20330
 
 
20331
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20332
 
 
20333
#line 20334 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20334
} // closed Puma
 
20335
 
 
20336
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20337
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20338
#include "CCExprResolveH.ah"
 
20339
#endif
 
20340
namespace Puma {
 
20341
 
 
20342
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20343
 
 
20344
#line 20345 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20345
} // closed Puma
 
20346
 
 
20347
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20348
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20349
#include "CExprResolveH.ah"
 
20350
#endif
 
20351
namespace Puma {
 
20352
 
 
20353
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20354
class CT_QualName : public CT_SimpleName {
 
20355
#line 20356 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20356
  friend class ::CCExprResolve;
 
20357
  friend class ::CExprResolve;
 
20358
  friend class ::WinIfExists;
 
20359
  friend class ::WinImportHandler;
 
20360
  friend class ::WinMacros;
 
20361
  friend class ::WinAsm;
 
20362
  friend class ::WinDeclSpecs;
 
20363
  friend class ::WinMemberExplSpec;
 
20364
  friend class ::WinTypeKeywords;
 
20365
  friend class ::WinFriend;
 
20366
  friend class ::ExtAC;
 
20367
  friend class ::ExtACBuilderCoupling;
 
20368
  friend class ::ExtACSyntaxCoupling;
 
20369
  friend class ::ExtACTree;
 
20370
  friend class ::ExtACKeywords;
 
20371
  friend class ::ExtGnu;
 
20372
  friend class ::PragmaOnceUnitState;
 
20373
  friend class ::PragmaOnce;
 
20374
  friend class ::CMatchSyntax;
 
20375
 
 
20376
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20377
 
 
20378
public:
 
20379
  /** Constructor.
 
20380
   *  \param size The initial number sub-names plus separators. */
 
20381
  CT_QualName (int size = 3) : 
 
20382
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
20383
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20384
  static const char *NodeId ();
 
20385
  /** Get the name of the node. Can be compared with NodeId(). */
 
20386
  const char *NodeName () const { return NodeId (); }
 
20387
  /** Print the qualified name on the given stream. 
 
20388
   *  \param os The output stream. */
 
20389
  void print (ostream &os) const;
 
20390
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
 
20391
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
20392
  /** Get the string containing the last name of the qualified name. */
 
20393
  const char *Text () const { return Name ()->Text (); }
 
20394
  /** Get the type of the last name. */
 
20395
  CTypeInfo *Type () const { return Name ()->Type (); }
 
20396
  /** Get the value of the last name. */
 
20397
  CExprValue *Value () const { return Name ()->Value (); }
 
20398
  /** Get the semantic value object of the last name. */
 
20399
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
20400
  /** Get the semantic information object of the last name. */
 
20401
  CSemObject *SemObject () const { return Name ()->SemObject (); }
 
20402
 
 
20403
public:
 
20404
  /** Own new operator reusing memory. */
 
20405
  void *operator new (size_t);
 
20406
  /** Own delete operator. */
 
20407
  void operator delete (void *);
 
20408
   private:
 
20409
  typedef CT_QualName CCExprResolveExpr;
 
20410
 
 
20411
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20412
 public :
 
20413
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20414
  typedef CT_QualName CExprResolveExpr;
 
20415
 
 
20416
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20417
 public :
 
20418
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20419
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20420
};
 
20421
 
 
20422
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
20423
 *  Tree node representing a qualified name with introducing name separator,
 
20424
 *  e.g. ::X::Y::Z. */
 
20425
 
 
20426
#line 20427 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20427
} // closed Puma
 
20428
class CCExprResolve;
 
20429
class CExprResolve;
 
20430
class WinIfExists;
 
20431
class WinImportHandler;
 
20432
class WinMacros;
 
20433
class WinAsm;
 
20434
class WinDeclSpecs;
 
20435
class WinMemberExplSpec;
 
20436
class WinTypeKeywords;
 
20437
class WinFriend;
 
20438
class ExtAC;
 
20439
class ExtACBuilderCoupling;
 
20440
class ExtACSyntaxCoupling;
 
20441
class ExtACTree;
 
20442
class ExtACKeywords;
 
20443
class ExtGnu;
 
20444
class PragmaOnceUnitState;
 
20445
class PragmaOnce;
 
20446
class CMatchSyntax;
 
20447
namespace Puma {
 
20448
 
 
20449
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20450
 
 
20451
#line 20452 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20452
} // closed Puma
 
20453
 
 
20454
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20455
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20456
#include "CCExprResolveH.ah"
 
20457
#endif
 
20458
namespace Puma {
 
20459
 
 
20460
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20461
 
 
20462
#line 20463 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20463
} // closed Puma
 
20464
 
 
20465
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20466
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20467
#include "CExprResolveH.ah"
 
20468
#endif
 
20469
namespace Puma {
 
20470
 
 
20471
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20472
class CT_RootQualName : public CT_QualName {
 
20473
#line 20474 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20474
  friend class ::CCExprResolve;
 
20475
  friend class ::CExprResolve;
 
20476
  friend class ::WinIfExists;
 
20477
  friend class ::WinImportHandler;
 
20478
  friend class ::WinMacros;
 
20479
  friend class ::WinAsm;
 
20480
  friend class ::WinDeclSpecs;
 
20481
  friend class ::WinMemberExplSpec;
 
20482
  friend class ::WinTypeKeywords;
 
20483
  friend class ::WinFriend;
 
20484
  friend class ::ExtAC;
 
20485
  friend class ::ExtACBuilderCoupling;
 
20486
  friend class ::ExtACSyntaxCoupling;
 
20487
  friend class ::ExtACTree;
 
20488
  friend class ::ExtACKeywords;
 
20489
  friend class ::ExtGnu;
 
20490
  friend class ::PragmaOnceUnitState;
 
20491
  friend class ::PragmaOnce;
 
20492
  friend class ::CMatchSyntax;
 
20493
 
 
20494
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20495
 
 
20496
public:
 
20497
  /** Constructor.
 
20498
   *  \param size Initial number of sub-name plus separator. */
 
20499
  CT_RootQualName (int size = 2) : 
 
20500
    CT_QualName (size) { AddProperties (INTRO); }
 
20501
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20502
  static const char *NodeId ();
 
20503
  /** Get the name of the node. Can be compared with NodeId(). */
 
20504
  const char *NodeName () const { return NodeId (); }
 
20505
 
 
20506
public:
 
20507
  /** Own new operator reusing memory. */
 
20508
  void *operator new (size_t);
 
20509
  /** Own delete operator. */
 
20510
  void operator delete (void *);
 
20511
   private:
 
20512
  typedef CT_RootQualName CCExprResolveExpr;
 
20513
 
 
20514
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20515
 public :
 
20516
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20517
  typedef CT_RootQualName CExprResolveExpr;
 
20518
 
 
20519
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20520
 public :
 
20521
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20522
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20523
};
 
20524
 
 
20525
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
20526
 *  Tree node representing a binary expression, e.g. a+b. */
 
20527
 
 
20528
#line 20529 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20529
} // closed Puma
 
20530
class CCExprResolve;
 
20531
class CExprResolve;
 
20532
class WinIfExists;
 
20533
class WinImportHandler;
 
20534
class WinMacros;
 
20535
class WinAsm;
 
20536
class WinDeclSpecs;
 
20537
class WinMemberExplSpec;
 
20538
class WinTypeKeywords;
 
20539
class WinFriend;
 
20540
class ExtAC;
 
20541
class ExtACBuilderCoupling;
 
20542
class ExtACSyntaxCoupling;
 
20543
class ExtACTree;
 
20544
class ExtACKeywords;
 
20545
class ExtGnu;
 
20546
class PragmaOnceUnitState;
 
20547
class PragmaOnce;
 
20548
class CMatchSyntax;
 
20549
namespace Puma {
 
20550
 
 
20551
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20552
 
 
20553
#line 20554 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20554
} // closed Puma
 
20555
 
 
20556
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20557
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20558
#include "CCExprResolveH.ah"
 
20559
#endif
 
20560
namespace Puma {
 
20561
 
 
20562
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20563
 
 
20564
#line 20565 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20565
} // closed Puma
 
20566
 
 
20567
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20568
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20569
#include "CExprResolveH.ah"
 
20570
#endif
 
20571
namespace Puma {
 
20572
 
 
20573
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20574
class CT_BinaryExpr : public CT_Call {
 
20575
#line 20576 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20576
  friend class ::CCExprResolve;
 
20577
  friend class ::CExprResolve;
 
20578
  friend class ::WinIfExists;
 
20579
  friend class ::WinImportHandler;
 
20580
  friend class ::WinMacros;
 
20581
  friend class ::WinAsm;
 
20582
  friend class ::WinDeclSpecs;
 
20583
  friend class ::WinMemberExplSpec;
 
20584
  friend class ::WinTypeKeywords;
 
20585
  friend class ::WinFriend;
 
20586
  friend class ::ExtAC;
 
20587
  friend class ::ExtACBuilderCoupling;
 
20588
  friend class ::ExtACSyntaxCoupling;
 
20589
  friend class ::ExtACTree;
 
20590
  friend class ::ExtACKeywords;
 
20591
  friend class ::ExtGnu;
 
20592
  friend class ::PragmaOnceUnitState;
 
20593
  friend class ::PragmaOnce;
 
20594
  friend class ::CMatchSyntax;
 
20595
 
 
20596
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20597
 
 
20598
  CTree *sons[3]; // expr, oper, expr
 
20599
 
 
20600
public:
 
20601
  /** Constructor. 
 
20602
   *  \param l Left hand side of the expression. 
 
20603
   *  \param o The operator token. 
 
20604
   *  \param r Right hand side of the expression. */
 
20605
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
 
20606
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
 
20607
  }
 
20608
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20609
  static const char *NodeId ();
 
20610
  /** Get the name of the node. Can be compared with NodeId(). */
 
20611
  const char *NodeName () const { return NodeId (); }
 
20612
  /** Get the number of sons. */
 
20613
  int Sons () const { return 3; }
 
20614
  /** Get the n-th son.
 
20615
   *  \param n The index of the son.
 
20616
   *  \return The n-th son or NULL. */
 
20617
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
20618
  /** Replace a son.
 
20619
   *  \param old_son The son to replace.
 
20620
   *  \param new_son The new son. */
 
20621
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
20622
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
20623
  }
 
20624
   private:
 
20625
  typedef CT_BinaryExpr CCExprResolveExpr;
 
20626
 
 
20627
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20628
 public :
 
20629
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20630
  typedef CT_BinaryExpr CExprResolveExpr;
 
20631
 
 
20632
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20633
 public :
 
20634
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20635
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20636
};
 
20637
 
 
20638
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
20639
 *  Tree node representing a member pointer expression, e.g. a->b. */
 
20640
 
 
20641
#line 20642 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20642
} // closed Puma
 
20643
class CCExprResolve;
 
20644
class CExprResolve;
 
20645
class WinIfExists;
 
20646
class WinImportHandler;
 
20647
class WinMacros;
 
20648
class WinAsm;
 
20649
class WinDeclSpecs;
 
20650
class WinMemberExplSpec;
 
20651
class WinTypeKeywords;
 
20652
class WinFriend;
 
20653
class ExtAC;
 
20654
class ExtACBuilderCoupling;
 
20655
class ExtACSyntaxCoupling;
 
20656
class ExtACTree;
 
20657
class ExtACKeywords;
 
20658
class ExtGnu;
 
20659
class PragmaOnceUnitState;
 
20660
class PragmaOnce;
 
20661
class CMatchSyntax;
 
20662
namespace Puma {
 
20663
 
 
20664
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20665
 
 
20666
#line 20667 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20667
} // closed Puma
 
20668
 
 
20669
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20670
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20671
#include "CCExprResolveH.ah"
 
20672
#endif
 
20673
namespace Puma {
 
20674
 
 
20675
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20676
 
 
20677
#line 20678 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20678
} // closed Puma
 
20679
 
 
20680
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20681
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20682
#include "CExprResolveH.ah"
 
20683
#endif
 
20684
namespace Puma {
 
20685
 
 
20686
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20687
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
20688
#line 20689 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20689
  friend class ::CCExprResolve;
 
20690
  friend class ::CExprResolve;
 
20691
  friend class ::WinIfExists;
 
20692
  friend class ::WinImportHandler;
 
20693
  friend class ::WinMacros;
 
20694
  friend class ::WinAsm;
 
20695
  friend class ::WinDeclSpecs;
 
20696
  friend class ::WinMemberExplSpec;
 
20697
  friend class ::WinTypeKeywords;
 
20698
  friend class ::WinFriend;
 
20699
  friend class ::ExtAC;
 
20700
  friend class ::ExtACBuilderCoupling;
 
20701
  friend class ::ExtACSyntaxCoupling;
 
20702
  friend class ::ExtACTree;
 
20703
  friend class ::ExtACKeywords;
 
20704
  friend class ::ExtGnu;
 
20705
  friend class ::PragmaOnceUnitState;
 
20706
  friend class ::PragmaOnce;
 
20707
  friend class ::CMatchSyntax;
 
20708
 
 
20709
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20710
 
 
20711
  CTree *sons[3]; // expr, oper, expr
 
20712
  
 
20713
public:
 
20714
  /** Constructor.
 
20715
   *  \param e Expression on which to call the member.
 
20716
   *  \param o The arrow operator token.
 
20717
   *  \param i The member name. */
 
20718
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
20719
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
20720
  }
 
20721
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20722
  static const char *NodeId ();
 
20723
  /** Get the name of the node. Can be compared with NodeId(). */
 
20724
  const char *NodeName () const { return NodeId (); }
 
20725
  /** Get the number of sons. */
 
20726
  int Sons () const { return 3; }
 
20727
  /** Get the n-th son.
 
20728
   *  \param n The index of the son.
 
20729
   *  \return The n-th son or NULL. */
 
20730
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
20731
  /** Replace a son.
 
20732
   *  \param old_son The son to replace.
 
20733
   *  \param new_son The new son. */
 
20734
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
20735
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
20736
  }
 
20737
   private:
 
20738
  typedef CT_MembPtrExpr CCExprResolveExpr;
 
20739
 
 
20740
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20741
 public :
 
20742
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20743
  typedef CT_MembPtrExpr CExprResolveExpr;
 
20744
 
 
20745
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20746
 public :
 
20747
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20748
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20749
};
 
20750
 
 
20751
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
20752
 *  Tree node representing a member reference expression, e.g. a.b. */
 
20753
 
 
20754
#line 20755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20755
} // closed Puma
 
20756
class CCExprResolve;
 
20757
class CExprResolve;
 
20758
class WinIfExists;
 
20759
class WinImportHandler;
 
20760
class WinMacros;
 
20761
class WinAsm;
 
20762
class WinDeclSpecs;
 
20763
class WinMemberExplSpec;
 
20764
class WinTypeKeywords;
 
20765
class WinFriend;
 
20766
class ExtAC;
 
20767
class ExtACBuilderCoupling;
 
20768
class ExtACSyntaxCoupling;
 
20769
class ExtACTree;
 
20770
class ExtACKeywords;
 
20771
class ExtGnu;
 
20772
class PragmaOnceUnitState;
 
20773
class PragmaOnce;
 
20774
class CMatchSyntax;
 
20775
namespace Puma {
 
20776
 
 
20777
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20778
 
 
20779
#line 20780 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20780
} // closed Puma
 
20781
 
 
20782
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20783
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20784
#include "CCExprResolveH.ah"
 
20785
#endif
 
20786
namespace Puma {
 
20787
 
 
20788
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20789
 
 
20790
#line 20791 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20791
} // closed Puma
 
20792
 
 
20793
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20794
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20795
#include "CExprResolveH.ah"
 
20796
#endif
 
20797
namespace Puma {
 
20798
 
 
20799
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20800
class CT_MembRefExpr : public CT_MembPtrExpr {
 
20801
#line 20802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20802
  friend class ::CCExprResolve;
 
20803
  friend class ::CExprResolve;
 
20804
  friend class ::WinIfExists;
 
20805
  friend class ::WinImportHandler;
 
20806
  friend class ::WinMacros;
 
20807
  friend class ::WinAsm;
 
20808
  friend class ::WinDeclSpecs;
 
20809
  friend class ::WinMemberExplSpec;
 
20810
  friend class ::WinTypeKeywords;
 
20811
  friend class ::WinFriend;
 
20812
  friend class ::ExtAC;
 
20813
  friend class ::ExtACBuilderCoupling;
 
20814
  friend class ::ExtACSyntaxCoupling;
 
20815
  friend class ::ExtACTree;
 
20816
  friend class ::ExtACKeywords;
 
20817
  friend class ::ExtGnu;
 
20818
  friend class ::PragmaOnceUnitState;
 
20819
  friend class ::PragmaOnce;
 
20820
  friend class ::CMatchSyntax;
 
20821
 
 
20822
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20823
 
 
20824
public:
 
20825
  /** Constructor.
 
20826
   *  \param e Expression on which to call the member.
 
20827
   *  \param o The dot operator.
 
20828
   *  \param i The member name. */
 
20829
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
 
20830
    CT_MembPtrExpr (e, o, i) {}
 
20831
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20832
  static const char *NodeId ();
 
20833
  /** Get the name of the node. Can be compared with NodeId(). */
 
20834
  const char *NodeName () const { return NodeId (); }
 
20835
   private:
 
20836
  typedef CT_MembRefExpr CCExprResolveExpr;
 
20837
 
 
20838
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20839
 public :
 
20840
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20841
  typedef CT_MembRefExpr CExprResolveExpr;
 
20842
 
 
20843
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20844
 public :
 
20845
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20846
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20847
};
 
20848
 
 
20849
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
20850
 *  Base class for tree nodes representing unary expressions. */
 
20851
 
 
20852
#line 20853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20853
} // closed Puma
 
20854
class CCExprResolve;
 
20855
class CExprResolve;
 
20856
class WinIfExists;
 
20857
class WinImportHandler;
 
20858
class WinMacros;
 
20859
class WinAsm;
 
20860
class WinDeclSpecs;
 
20861
class WinMemberExplSpec;
 
20862
class WinTypeKeywords;
 
20863
class WinFriend;
 
20864
class ExtAC;
 
20865
class ExtACBuilderCoupling;
 
20866
class ExtACSyntaxCoupling;
 
20867
class ExtACTree;
 
20868
class ExtACKeywords;
 
20869
class ExtGnu;
 
20870
class PragmaOnceUnitState;
 
20871
class PragmaOnce;
 
20872
class CMatchSyntax;
 
20873
namespace Puma {
 
20874
 
 
20875
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20876
 
 
20877
#line 20878 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20878
} // closed Puma
 
20879
 
 
20880
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20881
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20882
#include "CCExprResolveH.ah"
 
20883
#endif
 
20884
namespace Puma {
 
20885
 
 
20886
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20887
 
 
20888
#line 20889 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20889
} // closed Puma
 
20890
 
 
20891
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20892
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20893
#include "CExprResolveH.ah"
 
20894
#endif
 
20895
namespace Puma {
 
20896
 
 
20897
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20898
class CT_UnaryExpr : public CT_Call {
 
20899
#line 20900 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20900
  friend class ::CCExprResolve;
 
20901
  friend class ::CExprResolve;
 
20902
  friend class ::WinIfExists;
 
20903
  friend class ::WinImportHandler;
 
20904
  friend class ::WinMacros;
 
20905
  friend class ::WinAsm;
 
20906
  friend class ::WinDeclSpecs;
 
20907
  friend class ::WinMemberExplSpec;
 
20908
  friend class ::WinTypeKeywords;
 
20909
  friend class ::WinFriend;
 
20910
  friend class ::ExtAC;
 
20911
  friend class ::ExtACBuilderCoupling;
 
20912
  friend class ::ExtACSyntaxCoupling;
 
20913
  friend class ::ExtACTree;
 
20914
  friend class ::ExtACKeywords;
 
20915
  friend class ::ExtGnu;
 
20916
  friend class ::PragmaOnceUnitState;
 
20917
  friend class ::PragmaOnce;
 
20918
  friend class ::CMatchSyntax;
 
20919
 
 
20920
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20921
 
 
20922
  CTree *sons[2]; // oper, expr
 
20923
 
 
20924
public:
 
20925
  /** Constructor.
 
20926
   *  \param o The unary operator.
 
20927
   *  \param e The expression on which the operator is invoked. */
 
20928
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
20929
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20930
  static const char *NodeId ();
 
20931
  /** Get the name of the node. Can be compared with NodeId(). */
 
20932
  const char *NodeName () const { return NodeId (); }
 
20933
  /** Get the number of sons. */
 
20934
  int Sons () const { return 2; }
 
20935
  /** Get the n-th son.
 
20936
   *  \param n The index of the son.
 
20937
   *  \return The n-th son or NULL. */
 
20938
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
20939
  /** Replace a son.
 
20940
   *  \param old_son The son to replace.
 
20941
   *  \param new_son The new son. */
 
20942
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
20943
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
20944
  }
 
20945
  /** Get the expression node. */
 
20946
  CTree *Expr () const { return sons[1]; }
 
20947
   private:
 
20948
  typedef CT_UnaryExpr CCExprResolveExpr;
 
20949
 
 
20950
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20951
 public :
 
20952
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20953
  typedef CT_UnaryExpr CExprResolveExpr;
 
20954
 
 
20955
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20956
 public :
 
20957
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20958
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20959
};
 
20960
 
 
20961
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
20962
 *  Tree node representing a postfix expression, e.g. a++. */
 
20963
 
 
20964
#line 20965 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20965
} // closed Puma
 
20966
class CCExprResolve;
 
20967
class CExprResolve;
 
20968
class WinIfExists;
 
20969
class WinImportHandler;
 
20970
class WinMacros;
 
20971
class WinAsm;
 
20972
class WinDeclSpecs;
 
20973
class WinMemberExplSpec;
 
20974
class WinTypeKeywords;
 
20975
class WinFriend;
 
20976
class ExtAC;
 
20977
class ExtACBuilderCoupling;
 
20978
class ExtACSyntaxCoupling;
 
20979
class ExtACTree;
 
20980
class ExtACKeywords;
 
20981
class ExtGnu;
 
20982
class PragmaOnceUnitState;
 
20983
class PragmaOnce;
 
20984
class CMatchSyntax;
 
20985
namespace Puma {
 
20986
 
 
20987
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20988
 
 
20989
#line 20990 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
20990
} // closed Puma
 
20991
 
 
20992
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20993
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20994
#include "CCExprResolveH.ah"
 
20995
#endif
 
20996
namespace Puma {
 
20997
 
 
20998
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20999
 
 
21000
#line 21001 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21001
} // closed Puma
 
21002
 
 
21003
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21004
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21005
#include "CExprResolveH.ah"
 
21006
#endif
 
21007
namespace Puma {
 
21008
 
 
21009
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21010
class CT_PostfixExpr : public CT_UnaryExpr {
 
21011
#line 21012 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21012
  friend class ::CCExprResolve;
 
21013
  friend class ::CExprResolve;
 
21014
  friend class ::WinIfExists;
 
21015
  friend class ::WinImportHandler;
 
21016
  friend class ::WinMacros;
 
21017
  friend class ::WinAsm;
 
21018
  friend class ::WinDeclSpecs;
 
21019
  friend class ::WinMemberExplSpec;
 
21020
  friend class ::WinTypeKeywords;
 
21021
  friend class ::WinFriend;
 
21022
  friend class ::ExtAC;
 
21023
  friend class ::ExtACBuilderCoupling;
 
21024
  friend class ::ExtACSyntaxCoupling;
 
21025
  friend class ::ExtACTree;
 
21026
  friend class ::ExtACKeywords;
 
21027
  friend class ::ExtGnu;
 
21028
  friend class ::PragmaOnceUnitState;
 
21029
  friend class ::PragmaOnce;
 
21030
  friend class ::CMatchSyntax;
 
21031
 
 
21032
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21033
 
 
21034
public:
 
21035
  /** Constructor.
 
21036
   *  \param e The expression on which to invoke the operator. 
 
21037
   *  \param o The postfix operator. */
 
21038
  CT_PostfixExpr (CTree *e, CTree *o) :
 
21039
    CT_UnaryExpr (e, o) {}
 
21040
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21041
  static const char *NodeId ();
 
21042
  /** Get the name of the node. Can be compared with NodeId(). */
 
21043
  const char *NodeName () const { return NodeId (); }
 
21044
   private:
 
21045
  typedef CT_PostfixExpr CCExprResolveExpr;
 
21046
 
 
21047
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21048
 public :
 
21049
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21050
  typedef CT_PostfixExpr CExprResolveExpr;
 
21051
 
 
21052
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21053
 public :
 
21054
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21055
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21056
};
 
21057
 
 
21058
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
21059
 *  Tree node representing an address expression, e.g. &a. */
 
21060
 
 
21061
#line 21062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21062
} // closed Puma
 
21063
class CCExprResolve;
 
21064
class CExprResolve;
 
21065
class WinIfExists;
 
21066
class WinImportHandler;
 
21067
class WinMacros;
 
21068
class WinAsm;
 
21069
class WinDeclSpecs;
 
21070
class WinMemberExplSpec;
 
21071
class WinTypeKeywords;
 
21072
class WinFriend;
 
21073
class ExtAC;
 
21074
class ExtACBuilderCoupling;
 
21075
class ExtACSyntaxCoupling;
 
21076
class ExtACTree;
 
21077
class ExtACKeywords;
 
21078
class ExtGnu;
 
21079
class PragmaOnceUnitState;
 
21080
class PragmaOnce;
 
21081
class CMatchSyntax;
 
21082
namespace Puma {
 
21083
 
 
21084
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21085
 
 
21086
#line 21087 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21087
} // closed Puma
 
21088
 
 
21089
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21090
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21091
#include "CCExprResolveH.ah"
 
21092
#endif
 
21093
namespace Puma {
 
21094
 
 
21095
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21096
 
 
21097
#line 21098 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21098
} // closed Puma
 
21099
 
 
21100
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21101
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21102
#include "CExprResolveH.ah"
 
21103
#endif
 
21104
namespace Puma {
 
21105
 
 
21106
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21107
class CT_AddrExpr : public CT_UnaryExpr {
 
21108
#line 21109 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21109
  friend class ::CCExprResolve;
 
21110
  friend class ::CExprResolve;
 
21111
  friend class ::WinIfExists;
 
21112
  friend class ::WinImportHandler;
 
21113
  friend class ::WinMacros;
 
21114
  friend class ::WinAsm;
 
21115
  friend class ::WinDeclSpecs;
 
21116
  friend class ::WinMemberExplSpec;
 
21117
  friend class ::WinTypeKeywords;
 
21118
  friend class ::WinFriend;
 
21119
  friend class ::ExtAC;
 
21120
  friend class ::ExtACBuilderCoupling;
 
21121
  friend class ::ExtACSyntaxCoupling;
 
21122
  friend class ::ExtACTree;
 
21123
  friend class ::ExtACKeywords;
 
21124
  friend class ::ExtGnu;
 
21125
  friend class ::PragmaOnceUnitState;
 
21126
  friend class ::PragmaOnce;
 
21127
  friend class ::CMatchSyntax;
 
21128
 
 
21129
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21130
 
 
21131
public:
 
21132
  /** Constructor.
 
21133
   *  \param o The address operator, i.e. '&'.
 
21134
   *  \param e The expression from which to take the address. */
 
21135
  CT_AddrExpr (CTree *o, CTree *e) :
 
21136
    CT_UnaryExpr (o, e) {}
 
21137
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21138
  static const char *NodeId ();
 
21139
  /** Get the name of the node. Can be compared with NodeId(). */
 
21140
  const char *NodeName () const { return NodeId (); }
 
21141
   private:
 
21142
  typedef CT_AddrExpr CCExprResolveExpr;
 
21143
 
 
21144
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21145
 public :
 
21146
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21147
  typedef CT_AddrExpr CExprResolveExpr;
 
21148
 
 
21149
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21150
 public :
 
21151
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21152
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21153
};
 
21154
 
 
21155
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
21156
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
 
21157
 
 
21158
#line 21159 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21159
} // closed Puma
 
21160
class CCExprResolve;
 
21161
class CExprResolve;
 
21162
class WinIfExists;
 
21163
class WinImportHandler;
 
21164
class WinMacros;
 
21165
class WinAsm;
 
21166
class WinDeclSpecs;
 
21167
class WinMemberExplSpec;
 
21168
class WinTypeKeywords;
 
21169
class WinFriend;
 
21170
class ExtAC;
 
21171
class ExtACBuilderCoupling;
 
21172
class ExtACSyntaxCoupling;
 
21173
class ExtACTree;
 
21174
class ExtACKeywords;
 
21175
class ExtGnu;
 
21176
class PragmaOnceUnitState;
 
21177
class PragmaOnce;
 
21178
class CMatchSyntax;
 
21179
namespace Puma {
 
21180
 
 
21181
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21182
 
 
21183
#line 21184 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21184
} // closed Puma
 
21185
 
 
21186
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21187
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21188
#include "CCExprResolveH.ah"
 
21189
#endif
 
21190
namespace Puma {
 
21191
 
 
21192
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21193
 
 
21194
#line 21195 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21195
} // closed Puma
 
21196
 
 
21197
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21198
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21199
#include "CExprResolveH.ah"
 
21200
#endif
 
21201
namespace Puma {
 
21202
 
 
21203
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21204
class CT_DerefExpr : public CT_UnaryExpr {
 
21205
#line 21206 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21206
  friend class ::CCExprResolve;
 
21207
  friend class ::CExprResolve;
 
21208
  friend class ::WinIfExists;
 
21209
  friend class ::WinImportHandler;
 
21210
  friend class ::WinMacros;
 
21211
  friend class ::WinAsm;
 
21212
  friend class ::WinDeclSpecs;
 
21213
  friend class ::WinMemberExplSpec;
 
21214
  friend class ::WinTypeKeywords;
 
21215
  friend class ::WinFriend;
 
21216
  friend class ::ExtAC;
 
21217
  friend class ::ExtACBuilderCoupling;
 
21218
  friend class ::ExtACSyntaxCoupling;
 
21219
  friend class ::ExtACTree;
 
21220
  friend class ::ExtACKeywords;
 
21221
  friend class ::ExtGnu;
 
21222
  friend class ::PragmaOnceUnitState;
 
21223
  friend class ::PragmaOnce;
 
21224
  friend class ::CMatchSyntax;
 
21225
 
 
21226
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21227
 
 
21228
public:
 
21229
  /** Constructor.
 
21230
   *  \param o The dereferencing operator, i.e. '*'.
 
21231
   *  \param e The expression to dereference. */
 
21232
  CT_DerefExpr (CTree *o, CTree *e) :
 
21233
    CT_UnaryExpr (o, e) {}
 
21234
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21235
  static const char *NodeId ();
 
21236
  /** Get the name of the node. Can be compared with NodeId(). */
 
21237
  const char *NodeName () const { return NodeId (); }
 
21238
   private:
 
21239
  typedef CT_DerefExpr CCExprResolveExpr;
 
21240
 
 
21241
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21242
 public :
 
21243
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21244
  typedef CT_DerefExpr CExprResolveExpr;
 
21245
 
 
21246
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21247
 public :
 
21248
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21249
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21250
};
 
21251
 
 
21252
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
21253
 *  Tree node representing a delete expression, e.g. delete a. */
 
21254
 
 
21255
#line 21256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21256
} // closed Puma
 
21257
class CCExprResolve;
 
21258
class CExprResolve;
 
21259
class WinIfExists;
 
21260
class WinImportHandler;
 
21261
class WinMacros;
 
21262
class WinAsm;
 
21263
class WinDeclSpecs;
 
21264
class WinMemberExplSpec;
 
21265
class WinTypeKeywords;
 
21266
class WinFriend;
 
21267
class ExtAC;
 
21268
class ExtACBuilderCoupling;
 
21269
class ExtACSyntaxCoupling;
 
21270
class ExtACTree;
 
21271
class ExtACKeywords;
 
21272
class ExtGnu;
 
21273
class PragmaOnceUnitState;
 
21274
class PragmaOnce;
 
21275
class CMatchSyntax;
 
21276
namespace Puma {
 
21277
 
 
21278
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21279
 
 
21280
#line 21281 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21281
} // closed Puma
 
21282
 
 
21283
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21284
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21285
#include "CCExprResolveH.ah"
 
21286
#endif
 
21287
namespace Puma {
 
21288
 
 
21289
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21290
 
 
21291
#line 21292 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21292
} // closed Puma
 
21293
 
 
21294
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21295
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21296
#include "CExprResolveH.ah"
 
21297
#endif
 
21298
namespace Puma {
 
21299
 
 
21300
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21301
class CT_DeleteExpr : public CT_Expression, public CSemObject {
 
21302
#line 21303 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21303
  friend class ::CCExprResolve;
 
21304
  friend class ::CExprResolve;
 
21305
  friend class ::WinIfExists;
 
21306
  friend class ::WinImportHandler;
 
21307
  friend class ::WinMacros;
 
21308
  friend class ::WinAsm;
 
21309
  friend class ::WinDeclSpecs;
 
21310
  friend class ::WinMemberExplSpec;
 
21311
  friend class ::WinTypeKeywords;
 
21312
  friend class ::WinFriend;
 
21313
  friend class ::ExtAC;
 
21314
  friend class ::ExtACBuilderCoupling;
 
21315
  friend class ::ExtACSyntaxCoupling;
 
21316
  friend class ::ExtACTree;
 
21317
  friend class ::ExtACKeywords;
 
21318
  friend class ::ExtGnu;
 
21319
  friend class ::PragmaOnceUnitState;
 
21320
  friend class ::PragmaOnce;
 
21321
  friend class ::CMatchSyntax;
 
21322
 
 
21323
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21324
 
 
21325
  CTree *sons[2]; // oper, expr
 
21326
 
 
21327
public:
 
21328
  /** Constructor.
 
21329
   *  \param op The delete operator.
 
21330
   *  \param e The expression representing the object to delete. */
 
21331
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
21332
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21333
  static const char *NodeId ();
 
21334
  /** Get the name of the node. Can be compared with NodeId(). */
 
21335
  const char *NodeName () const { return NodeId (); }
 
21336
  /** Get the number of sons. */
 
21337
  int Sons () const { return 2; }
 
21338
  /** Get the n-th son.
 
21339
   *  \param n The index of the son.
 
21340
   *  \return The n-th son or NULL. */
 
21341
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
21342
  /** Replace a son.
 
21343
   *  \param old_son The son to replace.
 
21344
   *  \param new_son The new son. */
 
21345
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
21346
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
21347
  }
 
21348
  /** Get the expression. */
 
21349
  CTree *Expr () const { return sons[1]; }
 
21350
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
 
21351
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
21352
  /** Get the semantic information object. */
 
21353
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
21354
   private:
 
21355
  typedef CT_DeleteExpr CCExprResolveExpr;
 
21356
 
 
21357
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21358
 public :
 
21359
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21360
  typedef CT_DeleteExpr CExprResolveExpr;
 
21361
 
 
21362
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21363
 public :
 
21364
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21365
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21366
};
 
21367
 
 
21368
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
21369
 *  Tree node representing a new expression, e.g. new A(). */
 
21370
 
 
21371
#line 21372 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21372
} // closed Puma
 
21373
class CCExprResolve;
 
21374
class CExprResolve;
 
21375
class WinIfExists;
 
21376
class WinImportHandler;
 
21377
class WinMacros;
 
21378
class WinAsm;
 
21379
class WinDeclSpecs;
 
21380
class WinMemberExplSpec;
 
21381
class WinTypeKeywords;
 
21382
class WinFriend;
 
21383
class ExtAC;
 
21384
class ExtACBuilderCoupling;
 
21385
class ExtACSyntaxCoupling;
 
21386
class ExtACTree;
 
21387
class ExtACKeywords;
 
21388
class ExtGnu;
 
21389
class PragmaOnceUnitState;
 
21390
class PragmaOnce;
 
21391
class CMatchSyntax;
 
21392
namespace Puma {
 
21393
 
 
21394
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21395
 
 
21396
#line 21397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21397
} // closed Puma
 
21398
 
 
21399
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21400
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21401
#include "CCExprResolveH.ah"
 
21402
#endif
 
21403
namespace Puma {
 
21404
 
 
21405
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21406
 
 
21407
#line 21408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21408
} // closed Puma
 
21409
 
 
21410
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21411
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21412
#include "CExprResolveH.ah"
 
21413
#endif
 
21414
namespace Puma {
 
21415
 
 
21416
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21417
class CT_NewExpr : public CT_Expression, public CSemObject {
 
21418
#line 21419 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21419
  friend class ::CCExprResolve;
 
21420
  friend class ::CExprResolve;
 
21421
  friend class ::WinIfExists;
 
21422
  friend class ::WinImportHandler;
 
21423
  friend class ::WinMacros;
 
21424
  friend class ::WinAsm;
 
21425
  friend class ::WinDeclSpecs;
 
21426
  friend class ::WinMemberExplSpec;
 
21427
  friend class ::WinTypeKeywords;
 
21428
  friend class ::WinFriend;
 
21429
  friend class ::ExtAC;
 
21430
  friend class ::ExtACBuilderCoupling;
 
21431
  friend class ::ExtACSyntaxCoupling;
 
21432
  friend class ::ExtACTree;
 
21433
  friend class ::ExtACKeywords;
 
21434
  friend class ::ExtGnu;
 
21435
  friend class ::PragmaOnceUnitState;
 
21436
  friend class ::PragmaOnce;
 
21437
  friend class ::CMatchSyntax;
 
21438
 
 
21439
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21440
 
 
21441
  CTree *sons[6]; // oper, placement, open, type, close, init
 
21442
 
 
21443
public:
 
21444
  /** Constructor.
 
21445
   *  \param op The new operator.
 
21446
   *  \param p The optional placement expression.
 
21447
   *  \param o The optional left parenthesis around the type identifier.
 
21448
   *  \param t The type identifier specifying the type of the object to create.
 
21449
   *  \param c The optional right parenthesis around the type identifier.
 
21450
   *  \param i The optional initializer. */
 
21451
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
 
21452
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
21453
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
 
21454
  }
 
21455
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21456
  static const char *NodeId ();
 
21457
  /** Get the name of the node. Can be compared with NodeId(). */
 
21458
  const char *NodeName () const { return NodeId (); }
 
21459
  /** Get the number of sons. */
 
21460
  int Sons () const { return CTree::Sons (sons, 6); }
 
21461
  /** Get the n-th son.
 
21462
   *  \param n The index of the son.
 
21463
   *  \return The n-th son or NULL. */
 
21464
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
21465
  /** Replace a son.
 
21466
   *  \param old_son The son to replace.
 
21467
   *  \param new_son The new son. */
 
21468
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
21469
    CTree::ReplaceSon (sons, 6, old_son, new_son);
 
21470
  }
 
21471
  /** Get the operator name. */
 
21472
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
21473
  /** Get the placement expression. */
 
21474
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
21475
  /** Get the initializer. */
 
21476
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
21477
  /** Get the type of the object to create. */
 
21478
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
21479
  /** Get the semantic information object. */
 
21480
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
21481
   private:
 
21482
  typedef CT_NewExpr CCExprResolveExpr;
 
21483
 
 
21484
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21485
 public :
 
21486
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21487
  typedef CT_NewExpr CExprResolveExpr;
 
21488
 
 
21489
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21490
 public :
 
21491
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21492
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21493
};
 
21494
 
 
21495
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
21496
 *  Tree node representing an if-then expression, 
 
21497
 *  e.g. a>0?a:b or a?:b. */
 
21498
 
 
21499
#line 21500 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21500
} // closed Puma
 
21501
class CCExprResolve;
 
21502
class CExprResolve;
 
21503
class WinIfExists;
 
21504
class WinImportHandler;
 
21505
class WinMacros;
 
21506
class WinAsm;
 
21507
class WinDeclSpecs;
 
21508
class WinMemberExplSpec;
 
21509
class WinTypeKeywords;
 
21510
class WinFriend;
 
21511
class ExtAC;
 
21512
class ExtACBuilderCoupling;
 
21513
class ExtACSyntaxCoupling;
 
21514
class ExtACTree;
 
21515
class ExtACKeywords;
 
21516
class ExtGnu;
 
21517
class PragmaOnceUnitState;
 
21518
class PragmaOnce;
 
21519
class CMatchSyntax;
 
21520
namespace Puma {
 
21521
 
 
21522
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21523
 
 
21524
#line 21525 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21525
} // closed Puma
 
21526
 
 
21527
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21528
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21529
#include "CCExprResolveH.ah"
 
21530
#endif
 
21531
namespace Puma {
 
21532
 
 
21533
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21534
 
 
21535
#line 21536 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21536
} // closed Puma
 
21537
 
 
21538
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21539
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21540
#include "CExprResolveH.ah"
 
21541
#endif
 
21542
namespace Puma {
 
21543
 
 
21544
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21545
class CT_IfThenExpr : public CT_Expression {
 
21546
#line 21547 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21547
  friend class ::CCExprResolve;
 
21548
  friend class ::CExprResolve;
 
21549
  friend class ::WinIfExists;
 
21550
  friend class ::WinImportHandler;
 
21551
  friend class ::WinMacros;
 
21552
  friend class ::WinAsm;
 
21553
  friend class ::WinDeclSpecs;
 
21554
  friend class ::WinMemberExplSpec;
 
21555
  friend class ::WinTypeKeywords;
 
21556
  friend class ::WinFriend;
 
21557
  friend class ::ExtAC;
 
21558
  friend class ::ExtACBuilderCoupling;
 
21559
  friend class ::ExtACSyntaxCoupling;
 
21560
  friend class ::ExtACTree;
 
21561
  friend class ::ExtACKeywords;
 
21562
  friend class ::ExtGnu;
 
21563
  friend class ::PragmaOnceUnitState;
 
21564
  friend class ::PragmaOnce;
 
21565
  friend class ::CMatchSyntax;
 
21566
 
 
21567
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21568
 
 
21569
  CTree *sons[5]; // cond, oper, left, colon, right
 
21570
 
 
21571
public:
 
21572
  /** Constructor.
 
21573
   *  \param c1 The condition expression.
 
21574
   *  \param o The question mark operator. 
 
21575
   *  \param l The expression to the left of the colon.
 
21576
   *  \param c2 The colon operator.
 
21577
   *  \param r The expression to the right of the colon. */ 
 
21578
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
 
21579
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
21580
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
21581
  }
 
21582
  /** Constructor.
 
21583
   *  \param c1 The condition expression.
 
21584
   *  \param o The question mark operator. 
 
21585
   *  \param c2 The colon operator.
 
21586
   *  \param r The expression to the right of the colon. */ 
 
21587
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
 
21588
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
21589
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
21590
  }
 
21591
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21592
  static const char *NodeId ();
 
21593
  /** Get the name of the node. Can be compared with NodeId(). */
 
21594
  const char *NodeName () const { return NodeId (); }
 
21595
  /** Get the number of sons. */
 
21596
  int Sons () const { return CTree::Sons (sons, 5); }
 
21597
  /** Get the n-th son.
 
21598
   *  \param n The index of the son.
 
21599
   *  \return The n-th son or NULL. */
 
21600
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
21601
  /** Get the condition expression. */
 
21602
  CTree *Condition () const { return sons[0]; }
 
21603
  /** Get the left expression (condition=true). */
 
21604
  CTree *LeftOperand () const { return sons[2]; }
 
21605
  /** Get the right expression (condition=false). */
 
21606
  CTree *RightOperand () const { return sons[4]; }
 
21607
  /** Replace a son.
 
21608
   *  \param old_son The son to replace.
 
21609
   *  \param new_son The new son. */
 
21610
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
21611
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
21612
  }
 
21613
   private:
 
21614
  typedef CT_IfThenExpr CCExprResolveExpr;
 
21615
 
 
21616
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21617
 public :
 
21618
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21619
  typedef CT_IfThenExpr CExprResolveExpr;
 
21620
 
 
21621
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21622
 public :
 
21623
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21624
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21625
};
 
21626
 
 
21627
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
21628
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
 
21629
 
 
21630
#line 21631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21631
} // closed Puma
 
21632
class CCExprResolve;
 
21633
class CExprResolve;
 
21634
class WinIfExists;
 
21635
class WinImportHandler;
 
21636
class WinMacros;
 
21637
class WinAsm;
 
21638
class WinDeclSpecs;
 
21639
class WinMemberExplSpec;
 
21640
class WinTypeKeywords;
 
21641
class WinFriend;
 
21642
class ExtAC;
 
21643
class ExtACBuilderCoupling;
 
21644
class ExtACSyntaxCoupling;
 
21645
class ExtACTree;
 
21646
class ExtACKeywords;
 
21647
class ExtGnu;
 
21648
class PragmaOnceUnitState;
 
21649
class PragmaOnce;
 
21650
class CMatchSyntax;
 
21651
namespace Puma {
 
21652
 
 
21653
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21654
 
 
21655
#line 21656 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21656
} // closed Puma
 
21657
 
 
21658
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21659
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21660
#include "CCExprResolveH.ah"
 
21661
#endif
 
21662
namespace Puma {
 
21663
 
 
21664
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21665
 
 
21666
#line 21667 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21667
} // closed Puma
 
21668
 
 
21669
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21670
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21671
#include "CExprResolveH.ah"
 
21672
#endif
 
21673
namespace Puma {
 
21674
 
 
21675
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21676
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
 
21677
#line 21678 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21678
  friend class ::CCExprResolve;
 
21679
  friend class ::CExprResolve;
 
21680
  friend class ::WinIfExists;
 
21681
  friend class ::WinImportHandler;
 
21682
  friend class ::WinMacros;
 
21683
  friend class ::WinAsm;
 
21684
  friend class ::WinDeclSpecs;
 
21685
  friend class ::WinMemberExplSpec;
 
21686
  friend class ::WinTypeKeywords;
 
21687
  friend class ::WinFriend;
 
21688
  friend class ::ExtAC;
 
21689
  friend class ::ExtACBuilderCoupling;
 
21690
  friend class ::ExtACSyntaxCoupling;
 
21691
  friend class ::ExtACTree;
 
21692
  friend class ::ExtACKeywords;
 
21693
  friend class ::ExtGnu;
 
21694
  friend class ::PragmaOnceUnitState;
 
21695
  friend class ::PragmaOnce;
 
21696
  friend class ::CMatchSyntax;
 
21697
 
 
21698
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21699
 
 
21700
  CTree *sons[4]; // open, type, close, init
 
21701
 
 
21702
public:
 
21703
  /** Constructor.
 
21704
   *  \param r Left parenthesis of the type name.
 
21705
   *  \param t The type name.
 
21706
   *  \param cr Right parenthesis of the type name.
 
21707
   *  \param i The initializer list. */
 
21708
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
 
21709
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
21710
    AddSon (sons[2], cr); AddSon (sons[3], i);
 
21711
  }
 
21712
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21713
  static const char *NodeId ();
 
21714
  /** Get the name of the node. Can be compared with NodeId(). */
 
21715
  const char *NodeName () const { return NodeId (); }
 
21716
  /** Get the number of sons. */
 
21717
  int Sons () const { return 4; }
 
21718
  /** Get the n-th son.
 
21719
   *  \param n The index of the son.
 
21720
   *  \return The n-th son or NULL. */
 
21721
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
21722
  /** Replace a son.
 
21723
   *  \param old_son The son to replace.
 
21724
   *  \param new_son The new son. */
 
21725
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
21726
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
21727
  }
 
21728
  /** Get the type name. */
 
21729
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
21730
  /** Get the initializer list. */
 
21731
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
21732
  /** Get the semantic information object. */
 
21733
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
21734
   private:
 
21735
  typedef CT_CmpdLiteral CCExprResolveExpr;
 
21736
 
 
21737
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21738
 public :
 
21739
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21740
  typedef CT_CmpdLiteral CExprResolveExpr;
 
21741
 
 
21742
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21743
 public :
 
21744
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21745
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21746
};
 
21747
 
 
21748
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
21749
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
 
21750
 
 
21751
#line 21752 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21752
} // closed Puma
 
21753
class CCExprResolve;
 
21754
class CExprResolve;
 
21755
class WinIfExists;
 
21756
class WinImportHandler;
 
21757
class WinMacros;
 
21758
class WinAsm;
 
21759
class WinDeclSpecs;
 
21760
class WinMemberExplSpec;
 
21761
class WinTypeKeywords;
 
21762
class WinFriend;
 
21763
class ExtAC;
 
21764
class ExtACBuilderCoupling;
 
21765
class ExtACSyntaxCoupling;
 
21766
class ExtACTree;
 
21767
class ExtACKeywords;
 
21768
class ExtGnu;
 
21769
class PragmaOnceUnitState;
 
21770
class PragmaOnce;
 
21771
class CMatchSyntax;
 
21772
namespace Puma {
 
21773
 
 
21774
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21775
 
 
21776
#line 21777 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21777
} // closed Puma
 
21778
 
 
21779
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21780
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21781
#include "CCExprResolveH.ah"
 
21782
#endif
 
21783
namespace Puma {
 
21784
 
 
21785
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21786
 
 
21787
#line 21788 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21788
} // closed Puma
 
21789
 
 
21790
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21791
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21792
#include "CExprResolveH.ah"
 
21793
#endif
 
21794
namespace Puma {
 
21795
 
 
21796
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21797
class CT_ConstructExpr : public CT_Expression, public CSemObject {
 
21798
#line 21799 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21799
  friend class ::CCExprResolve;
 
21800
  friend class ::CExprResolve;
 
21801
  friend class ::WinIfExists;
 
21802
  friend class ::WinImportHandler;
 
21803
  friend class ::WinMacros;
 
21804
  friend class ::WinAsm;
 
21805
  friend class ::WinDeclSpecs;
 
21806
  friend class ::WinMemberExplSpec;
 
21807
  friend class ::WinTypeKeywords;
 
21808
  friend class ::WinFriend;
 
21809
  friend class ::ExtAC;
 
21810
  friend class ::ExtACBuilderCoupling;
 
21811
  friend class ::ExtACSyntaxCoupling;
 
21812
  friend class ::ExtACTree;
 
21813
  friend class ::ExtACKeywords;
 
21814
  friend class ::ExtGnu;
 
21815
  friend class ::PragmaOnceUnitState;
 
21816
  friend class ::PragmaOnce;
 
21817
  friend class ::CMatchSyntax;
 
21818
 
 
21819
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21820
 
 
21821
  CTree *sons[2]; // type, init
 
21822
 
 
21823
public:
 
21824
  /** Constructor.
 
21825
   *  \param t The type name.
 
21826
   *  \param i The initializer list. */
 
21827
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
21828
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21829
  static const char *NodeId ();
 
21830
  /** Get the name of the node. Can be compared with NodeId(). */
 
21831
  const char *NodeName () const { return NodeId (); }
 
21832
  /** Get the number of sons. */
 
21833
  int Sons () const { return 2; }
 
21834
  /** Get the n-th son.
 
21835
   *  \param n The index of the son.
 
21836
   *  \return The n-th son or NULL. */
 
21837
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
21838
  /** Replace a son.
 
21839
   *  \param old_son The son to replace.
 
21840
   *  \param new_son The new son. */
 
21841
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
21842
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
21843
  }
 
21844
  /** Get the type name. */
 
21845
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
21846
  /** Get the initializer. */
 
21847
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
21848
  /** Get the semantic information object. */
 
21849
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
21850
   private:
 
21851
  typedef CT_ConstructExpr CCExprResolveExpr;
 
21852
 
 
21853
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21854
 public :
 
21855
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21856
  typedef CT_ConstructExpr CExprResolveExpr;
 
21857
 
 
21858
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21859
 public :
 
21860
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21861
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21862
};
 
21863
 
 
21864
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
21865
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
 
21866
 
 
21867
#line 21868 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21868
} // closed Puma
 
21869
class CCExprResolve;
 
21870
class CExprResolve;
 
21871
class WinIfExists;
 
21872
class WinImportHandler;
 
21873
class WinMacros;
 
21874
class WinAsm;
 
21875
class WinDeclSpecs;
 
21876
class WinMemberExplSpec;
 
21877
class WinTypeKeywords;
 
21878
class WinFriend;
 
21879
class ExtAC;
 
21880
class ExtACBuilderCoupling;
 
21881
class ExtACSyntaxCoupling;
 
21882
class ExtACTree;
 
21883
class ExtACKeywords;
 
21884
class ExtGnu;
 
21885
class PragmaOnceUnitState;
 
21886
class PragmaOnce;
 
21887
class CMatchSyntax;
 
21888
namespace Puma {
 
21889
 
 
21890
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21891
 
 
21892
#line 21893 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21893
} // closed Puma
 
21894
 
 
21895
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21896
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21897
#include "CCExprResolveH.ah"
 
21898
#endif
 
21899
namespace Puma {
 
21900
 
 
21901
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21902
 
 
21903
#line 21904 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21904
} // closed Puma
 
21905
 
 
21906
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21907
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21908
#include "CExprResolveH.ah"
 
21909
#endif
 
21910
namespace Puma {
 
21911
 
 
21912
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21913
class CT_ThrowExpr : public CT_Expression {
 
21914
#line 21915 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21915
  friend class ::CCExprResolve;
 
21916
  friend class ::CExprResolve;
 
21917
  friend class ::WinIfExists;
 
21918
  friend class ::WinImportHandler;
 
21919
  friend class ::WinMacros;
 
21920
  friend class ::WinAsm;
 
21921
  friend class ::WinDeclSpecs;
 
21922
  friend class ::WinMemberExplSpec;
 
21923
  friend class ::WinTypeKeywords;
 
21924
  friend class ::WinFriend;
 
21925
  friend class ::ExtAC;
 
21926
  friend class ::ExtACBuilderCoupling;
 
21927
  friend class ::ExtACSyntaxCoupling;
 
21928
  friend class ::ExtACTree;
 
21929
  friend class ::ExtACKeywords;
 
21930
  friend class ::ExtGnu;
 
21931
  friend class ::PragmaOnceUnitState;
 
21932
  friend class ::PragmaOnce;
 
21933
  friend class ::CMatchSyntax;
 
21934
 
 
21935
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21936
 
 
21937
  CTree *sons[2]; // throw, expr
 
21938
 
 
21939
public:
 
21940
  /** Constructor.
 
21941
   *  \param t The 'throw' keyword.
 
21942
   *  \param e The expression. */
 
21943
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
21944
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21945
  static const char *NodeId ();
 
21946
  /** Get the name of the node. Can be compared with NodeId(). */
 
21947
  const char *NodeName () const { return NodeId (); }
 
21948
  /** Get the number of sons. */
 
21949
  int Sons () const { return CTree::Sons (sons, 2); }
 
21950
  /** Get the n-th son.
 
21951
   *  \param n The index of the son.
 
21952
   *  \return The n-th son or NULL. */
 
21953
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
21954
  /** Replace a son.
 
21955
   *  \param old_son The son to replace.
 
21956
   *  \param new_son The new son. */
 
21957
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
21958
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
21959
  }
 
21960
  /** Get the expression. */
 
21961
  CTree *Expr () const { return sons[1]; }
 
21962
   private:
 
21963
  typedef CT_ThrowExpr CCExprResolveExpr;
 
21964
 
 
21965
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21966
 public :
 
21967
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21968
  typedef CT_ThrowExpr CExprResolveExpr;
 
21969
 
 
21970
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21971
 public :
 
21972
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21973
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21974
};
 
21975
 
 
21976
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
21977
 *  Tree node representing an index expression. */
 
21978
 
 
21979
#line 21980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
21980
} // closed Puma
 
21981
class CCExprResolve;
 
21982
class CExprResolve;
 
21983
class WinIfExists;
 
21984
class WinImportHandler;
 
21985
class WinMacros;
 
21986
class WinAsm;
 
21987
class WinDeclSpecs;
 
21988
class WinMemberExplSpec;
 
21989
class WinTypeKeywords;
 
21990
class WinFriend;
 
21991
class ExtAC;
 
21992
class ExtACBuilderCoupling;
 
21993
class ExtACSyntaxCoupling;
 
21994
class ExtACTree;
 
21995
class ExtACKeywords;
 
21996
class ExtGnu;
 
21997
class PragmaOnceUnitState;
 
21998
class PragmaOnce;
 
21999
class CMatchSyntax;
 
22000
namespace Puma {
 
22001
 
 
22002
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22003
 
 
22004
#line 22005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22005
} // closed Puma
 
22006
 
 
22007
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22008
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22009
#include "CCExprResolveH.ah"
 
22010
#endif
 
22011
namespace Puma {
 
22012
 
 
22013
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22014
 
 
22015
#line 22016 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22016
} // closed Puma
 
22017
 
 
22018
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22019
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22020
#include "CExprResolveH.ah"
 
22021
#endif
 
22022
namespace Puma {
 
22023
 
 
22024
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22025
class CT_IndexExpr : public CT_Call {
 
22026
#line 22027 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22027
  friend class ::CCExprResolve;
 
22028
  friend class ::CExprResolve;
 
22029
  friend class ::WinIfExists;
 
22030
  friend class ::WinImportHandler;
 
22031
  friend class ::WinMacros;
 
22032
  friend class ::WinAsm;
 
22033
  friend class ::WinDeclSpecs;
 
22034
  friend class ::WinMemberExplSpec;
 
22035
  friend class ::WinTypeKeywords;
 
22036
  friend class ::WinFriend;
 
22037
  friend class ::ExtAC;
 
22038
  friend class ::ExtACBuilderCoupling;
 
22039
  friend class ::ExtACSyntaxCoupling;
 
22040
  friend class ::ExtACTree;
 
22041
  friend class ::ExtACKeywords;
 
22042
  friend class ::ExtGnu;
 
22043
  friend class ::PragmaOnceUnitState;
 
22044
  friend class ::PragmaOnce;
 
22045
  friend class ::CMatchSyntax;
 
22046
 
 
22047
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22048
 
 
22049
  CTree *sons[4]; // expr, open, index, close
 
22050
 
 
22051
public:
 
22052
  /** Constructor.
 
22053
   *  \param e The expression on which to invoke the index operator.
 
22054
   *  \param o Left parenthesis of the index expression.
 
22055
   *  \param i The index expression. 
 
22056
   *  \param c Right parenthesis of the index expression. */
 
22057
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
 
22058
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
22059
    AddSon (sons[2], i); AddSon (sons[3], c);
 
22060
  }
 
22061
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22062
  static const char *NodeId ();
 
22063
  /** Get the name of the node. Can be compared with NodeId(). */
 
22064
  const char *NodeName () const { return NodeId (); }
 
22065
  /** Get the number of sons. */
 
22066
  int Sons () const { return 4; }
 
22067
  /** Get the n-th son.
 
22068
   *  \param n The index of the son.
 
22069
   *  \return The n-th son or NULL. */
 
22070
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
22071
  /** Replace a son.
 
22072
   *  \param old_son The son to replace.
 
22073
   *  \param new_son The new son. */
 
22074
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
22075
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
22076
  }
 
22077
   private:
 
22078
  typedef CT_IndexExpr CCExprResolveExpr;
 
22079
 
 
22080
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22081
 public :
 
22082
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22083
  typedef CT_IndexExpr CExprResolveExpr;
 
22084
 
 
22085
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22086
 public :
 
22087
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22088
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22089
};
 
22090
 
 
22091
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
22092
 *  Tree node representing a function call expression, e.g. f(i). */
 
22093
 
 
22094
#line 22095 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22095
} // closed Puma
 
22096
class CCExprResolve;
 
22097
class CExprResolve;
 
22098
class WinIfExists;
 
22099
class WinImportHandler;
 
22100
class WinMacros;
 
22101
class WinAsm;
 
22102
class WinDeclSpecs;
 
22103
class WinMemberExplSpec;
 
22104
class WinTypeKeywords;
 
22105
class WinFriend;
 
22106
class ExtAC;
 
22107
class ExtACBuilderCoupling;
 
22108
class ExtACSyntaxCoupling;
 
22109
class ExtACTree;
 
22110
class ExtACKeywords;
 
22111
class ExtGnu;
 
22112
class PragmaOnceUnitState;
 
22113
class PragmaOnce;
 
22114
class CMatchSyntax;
 
22115
namespace Puma {
 
22116
 
 
22117
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22118
 
 
22119
#line 22120 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22120
} // closed Puma
 
22121
 
 
22122
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22123
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22124
#include "CCExprResolveH.ah"
 
22125
#endif
 
22126
namespace Puma {
 
22127
 
 
22128
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22129
 
 
22130
#line 22131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22131
} // closed Puma
 
22132
 
 
22133
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22134
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22135
#include "CExprResolveH.ah"
 
22136
#endif
 
22137
namespace Puma {
 
22138
 
 
22139
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22140
class CT_CallExpr : public CT_Call {
 
22141
#line 22142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22142
  friend class ::CCExprResolve;
 
22143
  friend class ::CExprResolve;
 
22144
  friend class ::WinIfExists;
 
22145
  friend class ::WinImportHandler;
 
22146
  friend class ::WinMacros;
 
22147
  friend class ::WinAsm;
 
22148
  friend class ::WinDeclSpecs;
 
22149
  friend class ::WinMemberExplSpec;
 
22150
  friend class ::WinTypeKeywords;
 
22151
  friend class ::WinFriend;
 
22152
  friend class ::ExtAC;
 
22153
  friend class ::ExtACBuilderCoupling;
 
22154
  friend class ::ExtACSyntaxCoupling;
 
22155
  friend class ::ExtACTree;
 
22156
  friend class ::ExtACKeywords;
 
22157
  friend class ::ExtGnu;
 
22158
  friend class ::PragmaOnceUnitState;
 
22159
  friend class ::PragmaOnce;
 
22160
  friend class ::CMatchSyntax;
 
22161
 
 
22162
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22163
 
 
22164
  CTree *sons[2]; // expr, args
 
22165
 
 
22166
public:
 
22167
  /** Constructor.
 
22168
   *  \param e The expression on which the call is invoked. */
 
22169
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
22170
  /** Constructor.
 
22171
   *  \param e The expression on which the call is invoked.
 
22172
   *  \param l The argument list of the call. */
 
22173
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
22174
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22175
  static const char *NodeId ();
 
22176
  /** Get the name of the node. Can be compared with NodeId(). */
 
22177
  const char *NodeName () const { return NodeId (); }
 
22178
  /** Get the number of sons. */
 
22179
  int Sons () const { return CTree::Sons (sons, 2); }
 
22180
  /** Get the n-th son.
 
22181
   *  \param n The index of the son.
 
22182
   *  \return The n-th son or NULL. */
 
22183
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
22184
  /** Replace a son.
 
22185
   *  \param old_son The son to replace.
 
22186
   *  \param new_son The new son. */
 
22187
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
22188
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
22189
  }
 
22190
  CTree *Expr () const { return sons[0]; }
 
22191
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
 
22192
   private:
 
22193
  typedef CT_CallExpr CCExprResolveExpr;
 
22194
 
 
22195
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22196
 public :
 
22197
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22198
  typedef CT_CallExpr CExprResolveExpr;
 
22199
 
 
22200
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22201
 public :
 
22202
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22203
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22204
};
 
22205
 
 
22206
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
22207
 *  Tree node representing a cast expression, e.g. (int)a. */
 
22208
 
 
22209
#line 22210 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22210
} // closed Puma
 
22211
class CCExprResolve;
 
22212
class CExprResolve;
 
22213
class WinIfExists;
 
22214
class WinImportHandler;
 
22215
class WinMacros;
 
22216
class WinAsm;
 
22217
class WinDeclSpecs;
 
22218
class WinMemberExplSpec;
 
22219
class WinTypeKeywords;
 
22220
class WinFriend;
 
22221
class ExtAC;
 
22222
class ExtACBuilderCoupling;
 
22223
class ExtACSyntaxCoupling;
 
22224
class ExtACTree;
 
22225
class ExtACKeywords;
 
22226
class ExtGnu;
 
22227
class PragmaOnceUnitState;
 
22228
class PragmaOnce;
 
22229
class CMatchSyntax;
 
22230
namespace Puma {
 
22231
 
 
22232
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22233
 
 
22234
#line 22235 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22235
} // closed Puma
 
22236
 
 
22237
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22238
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22239
#include "CCExprResolveH.ah"
 
22240
#endif
 
22241
namespace Puma {
 
22242
 
 
22243
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22244
 
 
22245
#line 22246 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22246
} // closed Puma
 
22247
 
 
22248
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22249
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22250
#include "CExprResolveH.ah"
 
22251
#endif
 
22252
namespace Puma {
 
22253
 
 
22254
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22255
class CT_CastExpr : public CT_Expression {
 
22256
#line 22257 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22257
  friend class ::CCExprResolve;
 
22258
  friend class ::CExprResolve;
 
22259
  friend class ::WinIfExists;
 
22260
  friend class ::WinImportHandler;
 
22261
  friend class ::WinMacros;
 
22262
  friend class ::WinAsm;
 
22263
  friend class ::WinDeclSpecs;
 
22264
  friend class ::WinMemberExplSpec;
 
22265
  friend class ::WinTypeKeywords;
 
22266
  friend class ::WinFriend;
 
22267
  friend class ::ExtAC;
 
22268
  friend class ::ExtACBuilderCoupling;
 
22269
  friend class ::ExtACSyntaxCoupling;
 
22270
  friend class ::ExtACTree;
 
22271
  friend class ::ExtACKeywords;
 
22272
  friend class ::ExtGnu;
 
22273
  friend class ::PragmaOnceUnitState;
 
22274
  friend class ::PragmaOnce;
 
22275
  friend class ::CMatchSyntax;
 
22276
 
 
22277
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22278
 
 
22279
  CTree *sons[4]; // open, type, close, expr
 
22280
 
 
22281
public:
 
22282
  /** Constructor.
 
22283
   *  \param o Left parenthesis of the type name.
 
22284
   *  \param t The type to cast to.
 
22285
   *  \param c Right parenthesis of the type name. 
 
22286
   *  \param e The expression to cast. */
 
22287
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
 
22288
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
22289
    AddSon (sons[2], c); AddSon (sons[3], e);
 
22290
  }
 
22291
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22292
  static const char *NodeId ();
 
22293
  /** Get the name of the node. Can be compared with NodeId(). */
 
22294
  const char *NodeName () const { return NodeId (); }
 
22295
  /** Get the number of sons. */
 
22296
  int Sons () const { return 4; }
 
22297
  /** Get the n-th son.
 
22298
   *  \param n The index of the son.
 
22299
   *  \return The n-th son or NULL. */
 
22300
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
22301
  /** Replace a son.
 
22302
   *  \param old_son The son to replace.
 
22303
   *  \param new_son The new son. */
 
22304
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
22305
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
22306
  }
 
22307
  /** Get the casted expression. */
 
22308
  CTree *Expr () const { return sons[3]; }
 
22309
  /** Get the type to cast to. */
 
22310
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
22311
   private:
 
22312
  typedef CT_CastExpr CCExprResolveExpr;
 
22313
 
 
22314
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22315
 public :
 
22316
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22317
  typedef CT_CastExpr CExprResolveExpr;
 
22318
 
 
22319
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22320
 public :
 
22321
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22322
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22323
};
 
22324
 
 
22325
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
22326
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
 
22327
 
 
22328
#line 22329 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22329
} // closed Puma
 
22330
class CCExprResolve;
 
22331
class CExprResolve;
 
22332
class WinIfExists;
 
22333
class WinImportHandler;
 
22334
class WinMacros;
 
22335
class WinAsm;
 
22336
class WinDeclSpecs;
 
22337
class WinMemberExplSpec;
 
22338
class WinTypeKeywords;
 
22339
class WinFriend;
 
22340
class ExtAC;
 
22341
class ExtACBuilderCoupling;
 
22342
class ExtACSyntaxCoupling;
 
22343
class ExtACTree;
 
22344
class ExtACKeywords;
 
22345
class ExtGnu;
 
22346
class PragmaOnceUnitState;
 
22347
class PragmaOnce;
 
22348
class CMatchSyntax;
 
22349
namespace Puma {
 
22350
 
 
22351
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22352
 
 
22353
#line 22354 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22354
} // closed Puma
 
22355
 
 
22356
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22357
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22358
#include "CCExprResolveH.ah"
 
22359
#endif
 
22360
namespace Puma {
 
22361
 
 
22362
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22363
 
 
22364
#line 22365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22365
} // closed Puma
 
22366
 
 
22367
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22368
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22369
#include "CExprResolveH.ah"
 
22370
#endif
 
22371
namespace Puma {
 
22372
 
 
22373
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22374
class CT_StaticCast : public CT_Expression {
 
22375
#line 22376 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22376
  friend class ::CCExprResolve;
 
22377
  friend class ::CExprResolve;
 
22378
  friend class ::WinIfExists;
 
22379
  friend class ::WinImportHandler;
 
22380
  friend class ::WinMacros;
 
22381
  friend class ::WinAsm;
 
22382
  friend class ::WinDeclSpecs;
 
22383
  friend class ::WinMemberExplSpec;
 
22384
  friend class ::WinTypeKeywords;
 
22385
  friend class ::WinFriend;
 
22386
  friend class ::ExtAC;
 
22387
  friend class ::ExtACBuilderCoupling;
 
22388
  friend class ::ExtACSyntaxCoupling;
 
22389
  friend class ::ExtACTree;
 
22390
  friend class ::ExtACKeywords;
 
22391
  friend class ::ExtGnu;
 
22392
  friend class ::PragmaOnceUnitState;
 
22393
  friend class ::PragmaOnce;
 
22394
  friend class ::CMatchSyntax;
 
22395
 
 
22396
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22397
 
 
22398
  CTree *sons[5]; // cast, open, type, close, expr
 
22399
 
 
22400
public:
 
22401
  /** Constructor.
 
22402
   *  \param cst The cast operator, i.e. 'static_cast'.
 
22403
   *  \param o Left arrow bracket of the type name.
 
22404
   *  \param t The type to cast to.
 
22405
   *  \param c Right array bracket of the type name.
 
22406
   *  \param e The expression to cast. */
 
22407
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
 
22408
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
22409
    AddSon (sons[3], c); AddSon (sons[4], e);
 
22410
  }
 
22411
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22412
  static const char *NodeId ();
 
22413
  /** Get the name of the node. Can be compared with NodeId(). */
 
22414
  const char *NodeName () const { return NodeId (); }
 
22415
  /** Get the number of sons. */
 
22416
  int Sons () const { return 5; }
 
22417
  /** Get the n-th son.
 
22418
   *  \param n The index of the son.
 
22419
   *  \return The n-th son or NULL. */
 
22420
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
22421
  /** Replace a son.
 
22422
   *  \param old_son The son to replace.
 
22423
   *  \param new_son The new son. */
 
22424
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
22425
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
22426
  }
 
22427
  /** Get the casted expression. */
 
22428
  CTree *Expr () const { return sons[4]; }
 
22429
  /** Get the type to cast to. */
 
22430
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
22431
   private:
 
22432
  typedef CT_StaticCast CCExprResolveExpr;
 
22433
 
 
22434
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22435
 public :
 
22436
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22437
  typedef CT_StaticCast CExprResolveExpr;
 
22438
 
 
22439
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22440
 public :
 
22441
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22442
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22443
};
 
22444
 
 
22445
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
22446
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
 
22447
 
 
22448
#line 22449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22449
} // closed Puma
 
22450
class CCExprResolve;
 
22451
class CExprResolve;
 
22452
class WinIfExists;
 
22453
class WinImportHandler;
 
22454
class WinMacros;
 
22455
class WinAsm;
 
22456
class WinDeclSpecs;
 
22457
class WinMemberExplSpec;
 
22458
class WinTypeKeywords;
 
22459
class WinFriend;
 
22460
class ExtAC;
 
22461
class ExtACBuilderCoupling;
 
22462
class ExtACSyntaxCoupling;
 
22463
class ExtACTree;
 
22464
class ExtACKeywords;
 
22465
class ExtGnu;
 
22466
class PragmaOnceUnitState;
 
22467
class PragmaOnce;
 
22468
class CMatchSyntax;
 
22469
namespace Puma {
 
22470
 
 
22471
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22472
 
 
22473
#line 22474 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22474
} // closed Puma
 
22475
 
 
22476
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22477
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22478
#include "CCExprResolveH.ah"
 
22479
#endif
 
22480
namespace Puma {
 
22481
 
 
22482
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22483
 
 
22484
#line 22485 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22485
} // closed Puma
 
22486
 
 
22487
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22488
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22489
#include "CExprResolveH.ah"
 
22490
#endif
 
22491
namespace Puma {
 
22492
 
 
22493
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22494
class CT_ConstCast : public CT_StaticCast {
 
22495
#line 22496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22496
  friend class ::CCExprResolve;
 
22497
  friend class ::CExprResolve;
 
22498
  friend class ::WinIfExists;
 
22499
  friend class ::WinImportHandler;
 
22500
  friend class ::WinMacros;
 
22501
  friend class ::WinAsm;
 
22502
  friend class ::WinDeclSpecs;
 
22503
  friend class ::WinMemberExplSpec;
 
22504
  friend class ::WinTypeKeywords;
 
22505
  friend class ::WinFriend;
 
22506
  friend class ::ExtAC;
 
22507
  friend class ::ExtACBuilderCoupling;
 
22508
  friend class ::ExtACSyntaxCoupling;
 
22509
  friend class ::ExtACTree;
 
22510
  friend class ::ExtACKeywords;
 
22511
  friend class ::ExtGnu;
 
22512
  friend class ::PragmaOnceUnitState;
 
22513
  friend class ::PragmaOnce;
 
22514
  friend class ::CMatchSyntax;
 
22515
 
 
22516
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22517
 
 
22518
public:
 
22519
  /** Constructor.
 
22520
   *  \param cst The cast operator, i.e. 'const_cast'.
 
22521
   *  \param o Left arrow bracket of the type name.
 
22522
   *  \param t The type to cast to.
 
22523
   *  \param c Right array bracket of the type name.
 
22524
   *  \param e The expression to cast. */
 
22525
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
22526
    CT_StaticCast (cst, o, t, c, e) {}
 
22527
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22528
  static const char *NodeId ();
 
22529
  /** Get the name of the node. Can be compared with NodeId(). */
 
22530
  const char *NodeName () const { return NodeId (); }
 
22531
   private:
 
22532
  typedef CT_ConstCast CCExprResolveExpr;
 
22533
 
 
22534
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22535
 public :
 
22536
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22537
  typedef CT_ConstCast CExprResolveExpr;
 
22538
 
 
22539
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22540
 public :
 
22541
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22542
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22543
};
 
22544
 
 
22545
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
22546
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
 
22547
 
 
22548
#line 22549 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22549
} // closed Puma
 
22550
class CCExprResolve;
 
22551
class CExprResolve;
 
22552
class WinIfExists;
 
22553
class WinImportHandler;
 
22554
class WinMacros;
 
22555
class WinAsm;
 
22556
class WinDeclSpecs;
 
22557
class WinMemberExplSpec;
 
22558
class WinTypeKeywords;
 
22559
class WinFriend;
 
22560
class ExtAC;
 
22561
class ExtACBuilderCoupling;
 
22562
class ExtACSyntaxCoupling;
 
22563
class ExtACTree;
 
22564
class ExtACKeywords;
 
22565
class ExtGnu;
 
22566
class PragmaOnceUnitState;
 
22567
class PragmaOnce;
 
22568
class CMatchSyntax;
 
22569
namespace Puma {
 
22570
 
 
22571
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22572
 
 
22573
#line 22574 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22574
} // closed Puma
 
22575
 
 
22576
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22577
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22578
#include "CCExprResolveH.ah"
 
22579
#endif
 
22580
namespace Puma {
 
22581
 
 
22582
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22583
 
 
22584
#line 22585 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22585
} // closed Puma
 
22586
 
 
22587
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22588
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22589
#include "CExprResolveH.ah"
 
22590
#endif
 
22591
namespace Puma {
 
22592
 
 
22593
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22594
class CT_ReintCast : public CT_StaticCast {
 
22595
#line 22596 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22596
  friend class ::CCExprResolve;
 
22597
  friend class ::CExprResolve;
 
22598
  friend class ::WinIfExists;
 
22599
  friend class ::WinImportHandler;
 
22600
  friend class ::WinMacros;
 
22601
  friend class ::WinAsm;
 
22602
  friend class ::WinDeclSpecs;
 
22603
  friend class ::WinMemberExplSpec;
 
22604
  friend class ::WinTypeKeywords;
 
22605
  friend class ::WinFriend;
 
22606
  friend class ::ExtAC;
 
22607
  friend class ::ExtACBuilderCoupling;
 
22608
  friend class ::ExtACSyntaxCoupling;
 
22609
  friend class ::ExtACTree;
 
22610
  friend class ::ExtACKeywords;
 
22611
  friend class ::ExtGnu;
 
22612
  friend class ::PragmaOnceUnitState;
 
22613
  friend class ::PragmaOnce;
 
22614
  friend class ::CMatchSyntax;
 
22615
 
 
22616
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22617
 
 
22618
public:
 
22619
  /** Constructor.
 
22620
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
22621
   *  \param o Left arrow bracket of the type name.
 
22622
   *  \param t The type to cast to.
 
22623
   *  \param c Right array bracket of the type name.
 
22624
   *  \param e The expression to cast. */
 
22625
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
22626
    CT_StaticCast (cst, o, t, c, e) {}
 
22627
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22628
  static const char *NodeId ();
 
22629
  /** Get the name of the node. Can be compared with NodeId(). */
 
22630
  const char *NodeName () const { return NodeId (); }
 
22631
   private:
 
22632
  typedef CT_ReintCast CCExprResolveExpr;
 
22633
 
 
22634
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22635
 public :
 
22636
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22637
  typedef CT_ReintCast CExprResolveExpr;
 
22638
 
 
22639
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22640
 public :
 
22641
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22642
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22643
};
 
22644
 
 
22645
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
22646
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
 
22647
 
 
22648
#line 22649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22649
} // closed Puma
 
22650
class CCExprResolve;
 
22651
class CExprResolve;
 
22652
class WinIfExists;
 
22653
class WinImportHandler;
 
22654
class WinMacros;
 
22655
class WinAsm;
 
22656
class WinDeclSpecs;
 
22657
class WinMemberExplSpec;
 
22658
class WinTypeKeywords;
 
22659
class WinFriend;
 
22660
class ExtAC;
 
22661
class ExtACBuilderCoupling;
 
22662
class ExtACSyntaxCoupling;
 
22663
class ExtACTree;
 
22664
class ExtACKeywords;
 
22665
class ExtGnu;
 
22666
class PragmaOnceUnitState;
 
22667
class PragmaOnce;
 
22668
class CMatchSyntax;
 
22669
namespace Puma {
 
22670
 
 
22671
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22672
 
 
22673
#line 22674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22674
} // closed Puma
 
22675
 
 
22676
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22677
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22678
#include "CCExprResolveH.ah"
 
22679
#endif
 
22680
namespace Puma {
 
22681
 
 
22682
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22683
 
 
22684
#line 22685 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22685
} // closed Puma
 
22686
 
 
22687
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22688
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22689
#include "CExprResolveH.ah"
 
22690
#endif
 
22691
namespace Puma {
 
22692
 
 
22693
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22694
class CT_DynamicCast : public CT_StaticCast {
 
22695
#line 22696 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22696
  friend class ::CCExprResolve;
 
22697
  friend class ::CExprResolve;
 
22698
  friend class ::WinIfExists;
 
22699
  friend class ::WinImportHandler;
 
22700
  friend class ::WinMacros;
 
22701
  friend class ::WinAsm;
 
22702
  friend class ::WinDeclSpecs;
 
22703
  friend class ::WinMemberExplSpec;
 
22704
  friend class ::WinTypeKeywords;
 
22705
  friend class ::WinFriend;
 
22706
  friend class ::ExtAC;
 
22707
  friend class ::ExtACBuilderCoupling;
 
22708
  friend class ::ExtACSyntaxCoupling;
 
22709
  friend class ::ExtACTree;
 
22710
  friend class ::ExtACKeywords;
 
22711
  friend class ::ExtGnu;
 
22712
  friend class ::PragmaOnceUnitState;
 
22713
  friend class ::PragmaOnce;
 
22714
  friend class ::CMatchSyntax;
 
22715
 
 
22716
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22717
 
 
22718
public:
 
22719
  /** Constructor.
 
22720
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
22721
   *  \param o Left arrow bracket of the type name.
 
22722
   *  \param t The type to cast to.
 
22723
   *  \param c Right array bracket of the type name.
 
22724
   *  \param e The expression to cast. */
 
22725
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
22726
    CT_StaticCast (cst, o, t, c, e) {}
 
22727
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22728
  static const char *NodeId ();
 
22729
  /** Get the name of the node. Can be compared with NodeId(). */
 
22730
  const char *NodeName () const { return NodeId (); }
 
22731
   private:
 
22732
  typedef CT_DynamicCast CCExprResolveExpr;
 
22733
 
 
22734
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22735
 public :
 
22736
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22737
  typedef CT_DynamicCast CExprResolveExpr;
 
22738
 
 
22739
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22740
 public :
 
22741
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22742
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22743
};
 
22744
 
 
22745
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
22746
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
22747
 *  where 1.2 is implicitely casted from float to int. */
 
22748
 
 
22749
#line 22750 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22750
} // closed Puma
 
22751
class CCExprResolve;
 
22752
class CExprResolve;
 
22753
class WinIfExists;
 
22754
class WinImportHandler;
 
22755
class WinMacros;
 
22756
class WinAsm;
 
22757
class WinDeclSpecs;
 
22758
class WinMemberExplSpec;
 
22759
class WinTypeKeywords;
 
22760
class WinFriend;
 
22761
class ExtAC;
 
22762
class ExtACBuilderCoupling;
 
22763
class ExtACSyntaxCoupling;
 
22764
class ExtACTree;
 
22765
class ExtACKeywords;
 
22766
class ExtGnu;
 
22767
class PragmaOnceUnitState;
 
22768
class PragmaOnce;
 
22769
class CMatchSyntax;
 
22770
namespace Puma {
 
22771
 
 
22772
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22773
 
 
22774
#line 22775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22775
} // closed Puma
 
22776
 
 
22777
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22778
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22779
#include "CCExprResolveH.ah"
 
22780
#endif
 
22781
namespace Puma {
 
22782
 
 
22783
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22784
 
 
22785
#line 22786 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22786
} // closed Puma
 
22787
 
 
22788
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22789
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22790
#include "CExprResolveH.ah"
 
22791
#endif
 
22792
namespace Puma {
 
22793
 
 
22794
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22795
class CT_ImplicitCast : public CT_Expression {
 
22796
#line 22797 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22797
  friend class ::CCExprResolve;
 
22798
  friend class ::CExprResolve;
 
22799
  friend class ::WinIfExists;
 
22800
  friend class ::WinImportHandler;
 
22801
  friend class ::WinMacros;
 
22802
  friend class ::WinAsm;
 
22803
  friend class ::WinDeclSpecs;
 
22804
  friend class ::WinMemberExplSpec;
 
22805
  friend class ::WinTypeKeywords;
 
22806
  friend class ::WinFriend;
 
22807
  friend class ::ExtAC;
 
22808
  friend class ::ExtACBuilderCoupling;
 
22809
  friend class ::ExtACSyntaxCoupling;
 
22810
  friend class ::ExtACTree;
 
22811
  friend class ::ExtACKeywords;
 
22812
  friend class ::ExtGnu;
 
22813
  friend class ::PragmaOnceUnitState;
 
22814
  friend class ::PragmaOnce;
 
22815
  friend class ::CMatchSyntax;
 
22816
 
 
22817
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22818
 
 
22819
  CTree *_expr; // casted expression
 
22820
 
 
22821
public:
 
22822
  /** Constructor.
 
22823
   *  \param e The expression that is implicitely casted. */
 
22824
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
22825
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22826
  static const char *NodeId ();
 
22827
  /** Get the name of the node. Can be compared with NodeId(). */
 
22828
  const char *NodeName () const { return NodeId (); }
 
22829
  /** Get the number of sons. */
 
22830
  int Sons () const { return 1; }
 
22831
  /** Get the n-th son.
 
22832
   *  \param n The index of the son.
 
22833
   *  \return The n-th son or NULL. */
 
22834
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
22835
  /** Get the casted expression. */
 
22836
  CTree *Expr () const { return _expr; }
 
22837
  /** Replace a son.
 
22838
   *  \param old_son The son to replace.
 
22839
   *  \param new_son The new son. */
 
22840
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
22841
   { CTree::ReplaceSon (_expr, old_son, new_son); }
 
22842
   private:
 
22843
  typedef CT_ImplicitCast CCExprResolveExpr;
 
22844
 
 
22845
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22846
 public :
 
22847
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22848
  typedef CT_ImplicitCast CExprResolveExpr;
 
22849
 
 
22850
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22851
 public :
 
22852
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22853
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22854
};
 
22855
 
 
22856
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
22857
 *  Tree node representing a typeid expression, e.g. typeid(X). */
 
22858
 
 
22859
#line 22860 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22860
} // closed Puma
 
22861
class CCExprResolve;
 
22862
class CExprResolve;
 
22863
class WinIfExists;
 
22864
class WinImportHandler;
 
22865
class WinMacros;
 
22866
class WinAsm;
 
22867
class WinDeclSpecs;
 
22868
class WinMemberExplSpec;
 
22869
class WinTypeKeywords;
 
22870
class WinFriend;
 
22871
class ExtAC;
 
22872
class ExtACBuilderCoupling;
 
22873
class ExtACSyntaxCoupling;
 
22874
class ExtACTree;
 
22875
class ExtACKeywords;
 
22876
class ExtGnu;
 
22877
class PragmaOnceUnitState;
 
22878
class PragmaOnce;
 
22879
class CMatchSyntax;
 
22880
namespace Puma {
 
22881
 
 
22882
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22883
 
 
22884
#line 22885 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22885
} // closed Puma
 
22886
 
 
22887
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22888
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22889
#include "CCExprResolveH.ah"
 
22890
#endif
 
22891
namespace Puma {
 
22892
 
 
22893
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22894
 
 
22895
#line 22896 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22896
} // closed Puma
 
22897
 
 
22898
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22899
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22900
#include "CExprResolveH.ah"
 
22901
#endif
 
22902
namespace Puma {
 
22903
 
 
22904
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22905
class CT_TypeidExpr : public CT_Expression {
 
22906
#line 22907 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22907
  friend class ::CCExprResolve;
 
22908
  friend class ::CExprResolve;
 
22909
  friend class ::WinIfExists;
 
22910
  friend class ::WinImportHandler;
 
22911
  friend class ::WinMacros;
 
22912
  friend class ::WinAsm;
 
22913
  friend class ::WinDeclSpecs;
 
22914
  friend class ::WinMemberExplSpec;
 
22915
  friend class ::WinTypeKeywords;
 
22916
  friend class ::WinFriend;
 
22917
  friend class ::ExtAC;
 
22918
  friend class ::ExtACBuilderCoupling;
 
22919
  friend class ::ExtACSyntaxCoupling;
 
22920
  friend class ::ExtACTree;
 
22921
  friend class ::ExtACKeywords;
 
22922
  friend class ::ExtGnu;
 
22923
  friend class ::PragmaOnceUnitState;
 
22924
  friend class ::PragmaOnce;
 
22925
  friend class ::CMatchSyntax;
 
22926
 
 
22927
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22928
 
 
22929
  CTree *sons[4]; // typeid, open, type_id/expr, close
 
22930
 
 
22931
public:
 
22932
  /** Constructor.
 
22933
   *  \param tid The 'typeid' operator.
 
22934
   *  \param o The left parenthesis of the type name or expression.
 
22935
   *  \param e The expression or type name for which to get the type identifier.
 
22936
   *  \param c The right parenthesis of the type name or expression. */
 
22937
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
 
22938
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
22939
    AddSon (sons[2], e); AddSon (sons[3], c);
 
22940
  }
 
22941
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22942
  static const char *NodeId ();
 
22943
  /** Get the name of the node. Can be compared with NodeId(). */
 
22944
  const char *NodeName () const { return NodeId (); }
 
22945
  /** Get the number of sons. */
 
22946
  int Sons () const { return 4; }
 
22947
  /** Get the n-th son.
 
22948
   *  \param n The index of the son.
 
22949
   *  \return The n-th son or NULL. */
 
22950
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
22951
  /** Replace a son.
 
22952
   *  \param old_son The son to replace.
 
22953
   *  \param new_son The new son. */
 
22954
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
22955
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
22956
  }
 
22957
  /** Get the typeid argument, i.e. the expression or type name for
 
22958
   *  which to get the type identifier. */
 
22959
  CTree *Arg () const { return sons[2]; }
 
22960
   private:
 
22961
  typedef CT_TypeidExpr CCExprResolveExpr;
 
22962
 
 
22963
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22964
 public :
 
22965
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22966
  typedef CT_TypeidExpr CExprResolveExpr;
 
22967
 
 
22968
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22969
 public :
 
22970
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22971
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22972
};
 
22973
 
 
22974
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
22975
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
 
22976
 
 
22977
#line 22978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
22978
} // closed Puma
 
22979
class CCExprResolve;
 
22980
class CExprResolve;
 
22981
class WinIfExists;
 
22982
class WinImportHandler;
 
22983
class WinMacros;
 
22984
class WinAsm;
 
22985
class WinDeclSpecs;
 
22986
class WinMemberExplSpec;
 
22987
class WinTypeKeywords;
 
22988
class WinFriend;
 
22989
class ExtAC;
 
22990
class ExtACBuilderCoupling;
 
22991
class ExtACSyntaxCoupling;
 
22992
class ExtACTree;
 
22993
class ExtACKeywords;
 
22994
class ExtGnu;
 
22995
class PragmaOnceUnitState;
 
22996
class PragmaOnce;
 
22997
class CMatchSyntax;
 
22998
namespace Puma {
 
22999
 
 
23000
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23001
 
 
23002
#line 23003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23003
} // closed Puma
 
23004
 
 
23005
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23006
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23007
#include "CCExprResolveH.ah"
 
23008
#endif
 
23009
namespace Puma {
 
23010
 
 
23011
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23012
 
 
23013
#line 23014 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23014
} // closed Puma
 
23015
 
 
23016
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23017
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23018
#include "CExprResolveH.ah"
 
23019
#endif
 
23020
namespace Puma {
 
23021
 
 
23022
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23023
class CT_SizeofExpr : public CT_Expression {
 
23024
#line 23025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23025
  friend class ::CCExprResolve;
 
23026
  friend class ::CExprResolve;
 
23027
  friend class ::WinIfExists;
 
23028
  friend class ::WinImportHandler;
 
23029
  friend class ::WinMacros;
 
23030
  friend class ::WinAsm;
 
23031
  friend class ::WinDeclSpecs;
 
23032
  friend class ::WinMemberExplSpec;
 
23033
  friend class ::WinTypeKeywords;
 
23034
  friend class ::WinFriend;
 
23035
  friend class ::ExtAC;
 
23036
  friend class ::ExtACBuilderCoupling;
 
23037
  friend class ::ExtACSyntaxCoupling;
 
23038
  friend class ::ExtACTree;
 
23039
  friend class ::ExtACKeywords;
 
23040
  friend class ::ExtGnu;
 
23041
  friend class ::PragmaOnceUnitState;
 
23042
  friend class ::PragmaOnce;
 
23043
  friend class ::CMatchSyntax;
 
23044
 
 
23045
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23046
 
 
23047
  CTree *sons[5]; // key, open, type, close, expr
 
23048
 
 
23049
public:
 
23050
  /** Constructor.
 
23051
   *  \param k The 'sizeof' keyword.
 
23052
   *  \param o Left parenthesis around the type name.
 
23053
   *  \param t The type from which to get the size.
 
23054
   *  \param c Right parenthesis around the type name. */
 
23055
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
 
23056
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
23057
    AddSon (sons[3], c); AddSon (sons[4], 0);
 
23058
  }
 
23059
  /** Constructor.
 
23060
   *  \param k The 'sizeof' keyword.
 
23061
   *  \param e The expression from which to get the size. */
 
23062
  CT_SizeofExpr (CTree *k, CTree *e) {
 
23063
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
23064
    AddSon (sons[3], 0); AddSon (sons[4], e);
 
23065
  }
 
23066
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23067
  static const char *NodeId ();
 
23068
  /** Get the name of the node. Can be compared with NodeId(). */
 
23069
  const char *NodeName () const { return NodeId (); }
 
23070
  /** Get the number of sons. */
 
23071
  int Sons () const { return CTree::Sons (sons, 5); }
 
23072
  /** Get the n-th son.
 
23073
   *  \param n The index of the son.
 
23074
   *  \return The n-th son or NULL. */
 
23075
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
23076
  /** Replace a son.
 
23077
   *  \param old_son The son to replace.
 
23078
   *  \param new_son The new son. */
 
23079
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
23080
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
23081
  }
 
23082
  /** Get the expression. */
 
23083
  CTree *Expr () const { return sons[4]; }
 
23084
  /** Get the type name. */
 
23085
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
23086
   private:
 
23087
  typedef CT_SizeofExpr CCExprResolveExpr;
 
23088
 
 
23089
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
23090
 public :
 
23091
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
23092
  typedef CT_SizeofExpr CExprResolveExpr;
 
23093
 
 
23094
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
23095
 public :
 
23096
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
23097
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23098
};
 
23099
 
 
23100
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
23101
 *  Tree node representing an index designator, i.e. [1]. */
 
23102
 
 
23103
#line 23104 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23104
} // closed Puma
 
23105
class CCExprResolve;
 
23106
class CExprResolve;
 
23107
class WinIfExists;
 
23108
class WinImportHandler;
 
23109
class WinMacros;
 
23110
class WinAsm;
 
23111
class WinDeclSpecs;
 
23112
class WinMemberExplSpec;
 
23113
class WinTypeKeywords;
 
23114
class WinFriend;
 
23115
class ExtAC;
 
23116
class ExtACBuilderCoupling;
 
23117
class ExtACSyntaxCoupling;
 
23118
class ExtACTree;
 
23119
class ExtACKeywords;
 
23120
class ExtGnu;
 
23121
class PragmaOnceUnitState;
 
23122
class PragmaOnce;
 
23123
class CMatchSyntax;
 
23124
namespace Puma {
 
23125
 
 
23126
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23127
 
 
23128
#line 23129 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23129
} // closed Puma
 
23130
 
 
23131
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23132
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23133
#include "CCExprResolveH.ah"
 
23134
#endif
 
23135
namespace Puma {
 
23136
 
 
23137
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23138
 
 
23139
#line 23140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23140
} // closed Puma
 
23141
 
 
23142
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23143
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23144
#include "CExprResolveH.ah"
 
23145
#endif
 
23146
namespace Puma {
 
23147
 
 
23148
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23149
class CT_IndexDesignator : public CT_Expression {
 
23150
#line 23151 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23151
  friend class ::CCExprResolve;
 
23152
  friend class ::CExprResolve;
 
23153
  friend class ::WinIfExists;
 
23154
  friend class ::WinImportHandler;
 
23155
  friend class ::WinMacros;
 
23156
  friend class ::WinAsm;
 
23157
  friend class ::WinDeclSpecs;
 
23158
  friend class ::WinMemberExplSpec;
 
23159
  friend class ::WinTypeKeywords;
 
23160
  friend class ::WinFriend;
 
23161
  friend class ::ExtAC;
 
23162
  friend class ::ExtACBuilderCoupling;
 
23163
  friend class ::ExtACSyntaxCoupling;
 
23164
  friend class ::ExtACTree;
 
23165
  friend class ::ExtACKeywords;
 
23166
  friend class ::ExtGnu;
 
23167
  friend class ::PragmaOnceUnitState;
 
23168
  friend class ::PragmaOnce;
 
23169
  friend class ::CMatchSyntax;
 
23170
 
 
23171
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23172
 
 
23173
  CTree *sons[3]; // open, index, close
 
23174
 
 
23175
public:
 
23176
  /** Constructor.
 
23177
   *  \param o Left bracket of the index designator.
 
23178
   *  \param i The index expression.
 
23179
   *  \param c Right bracket of the index designator. */
 
23180
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
 
23181
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
 
23182
  }
 
23183
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23184
  static const char *NodeId ();
 
23185
  /** Get the name of the node. Can be compared with NodeId(). */
 
23186
  const char *NodeName () const { return NodeId (); }
 
23187
  /** Get the number of sons. */
 
23188
  int Sons () const { return 3; }
 
23189
  /** Get the n-th son.
 
23190
   *  \param n The index of the son.
 
23191
   *  \return The n-th son or NULL. */
 
23192
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
23193
  /** Replace a son.
 
23194
   *  \param old_son The son to replace.
 
23195
   *  \param new_son The new son. */
 
23196
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
23197
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
23198
  }
 
23199
   private:
 
23200
  typedef CT_IndexDesignator CCExprResolveExpr;
 
23201
 
 
23202
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
23203
 public :
 
23204
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
23205
  typedef CT_IndexDesignator CExprResolveExpr;
 
23206
 
 
23207
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
23208
 public :
 
23209
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
23210
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23211
};
 
23212
 
 
23213
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
23214
 *  Tree node representing a member designator, e.g. .a. */
 
23215
 
 
23216
#line 23217 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23217
} // closed Puma
 
23218
class CCExprResolve;
 
23219
class CExprResolve;
 
23220
class WinIfExists;
 
23221
class WinImportHandler;
 
23222
class WinMacros;
 
23223
class WinAsm;
 
23224
class WinDeclSpecs;
 
23225
class WinMemberExplSpec;
 
23226
class WinTypeKeywords;
 
23227
class WinFriend;
 
23228
class ExtAC;
 
23229
class ExtACBuilderCoupling;
 
23230
class ExtACSyntaxCoupling;
 
23231
class ExtACTree;
 
23232
class ExtACKeywords;
 
23233
class ExtGnu;
 
23234
class PragmaOnceUnitState;
 
23235
class PragmaOnce;
 
23236
class CMatchSyntax;
 
23237
namespace Puma {
 
23238
 
 
23239
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23240
 
 
23241
#line 23242 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23242
} // closed Puma
 
23243
 
 
23244
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23245
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23246
#include "CCExprResolveH.ah"
 
23247
#endif
 
23248
namespace Puma {
 
23249
 
 
23250
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23251
 
 
23252
#line 23253 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23253
} // closed Puma
 
23254
 
 
23255
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23256
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23257
#include "CExprResolveH.ah"
 
23258
#endif
 
23259
namespace Puma {
 
23260
 
 
23261
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23262
class CT_MembDesignator : public CT_Expression {
 
23263
#line 23264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23264
  friend class ::CCExprResolve;
 
23265
  friend class ::CExprResolve;
 
23266
  friend class ::WinIfExists;
 
23267
  friend class ::WinImportHandler;
 
23268
  friend class ::WinMacros;
 
23269
  friend class ::WinAsm;
 
23270
  friend class ::WinDeclSpecs;
 
23271
  friend class ::WinMemberExplSpec;
 
23272
  friend class ::WinTypeKeywords;
 
23273
  friend class ::WinFriend;
 
23274
  friend class ::ExtAC;
 
23275
  friend class ::ExtACBuilderCoupling;
 
23276
  friend class ::ExtACSyntaxCoupling;
 
23277
  friend class ::ExtACTree;
 
23278
  friend class ::ExtACKeywords;
 
23279
  friend class ::ExtGnu;
 
23280
  friend class ::PragmaOnceUnitState;
 
23281
  friend class ::PragmaOnce;
 
23282
  friend class ::CMatchSyntax;
 
23283
 
 
23284
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23285
 
 
23286
  CTree *sons[2]; // dot, member
 
23287
 
 
23288
public:
 
23289
  /** Constructor.
 
23290
   *  \param d The dot before the member name.
 
23291
   *  \param m The member name. */
 
23292
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
23293
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23294
  static const char *NodeId ();
 
23295
  /** Get the name of the node. Can be compared with NodeId(). */
 
23296
  const char *NodeName () const { return NodeId (); }
 
23297
  /** Get the number of sons. */
 
23298
  int Sons () const { return 2; }
 
23299
  /** Get the n-th son.
 
23300
   *  \param n The index of the son.
 
23301
   *  \return The n-th son or NULL. */
 
23302
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
23303
  /** Replace a son.
 
23304
   *  \param old_son The son to replace.
 
23305
   *  \param new_son The new son. */
 
23306
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
23307
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
23308
  }
 
23309
   private:
 
23310
  typedef CT_MembDesignator CCExprResolveExpr;
 
23311
 
 
23312
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
23313
 public :
 
23314
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
23315
  typedef CT_MembDesignator CExprResolveExpr;
 
23316
 
 
23317
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
23318
 public :
 
23319
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
23320
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23321
};
 
23322
 
 
23323
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
23324
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
 
23325
 
 
23326
#line 23327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23327
} // closed Puma
 
23328
class CCExprResolve;
 
23329
class CExprResolve;
 
23330
class WinIfExists;
 
23331
class WinImportHandler;
 
23332
class WinMacros;
 
23333
class WinAsm;
 
23334
class WinDeclSpecs;
 
23335
class WinMemberExplSpec;
 
23336
class WinTypeKeywords;
 
23337
class WinFriend;
 
23338
class ExtAC;
 
23339
class ExtACBuilderCoupling;
 
23340
class ExtACSyntaxCoupling;
 
23341
class ExtACTree;
 
23342
class ExtACKeywords;
 
23343
class ExtGnu;
 
23344
class PragmaOnceUnitState;
 
23345
class PragmaOnce;
 
23346
class CMatchSyntax;
 
23347
namespace Puma {
 
23348
 
 
23349
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23350
class CT_DesignatorSeq : public CT_List, public CSemValue {
 
23351
#line 23352 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23352
  friend class ::CCExprResolve;
 
23353
  friend class ::CExprResolve;
 
23354
  friend class ::WinIfExists;
 
23355
  friend class ::WinImportHandler;
 
23356
  friend class ::WinMacros;
 
23357
  friend class ::WinAsm;
 
23358
  friend class ::WinDeclSpecs;
 
23359
  friend class ::WinMemberExplSpec;
 
23360
  friend class ::WinTypeKeywords;
 
23361
  friend class ::WinFriend;
 
23362
  friend class ::ExtAC;
 
23363
  friend class ::ExtACBuilderCoupling;
 
23364
  friend class ::ExtACSyntaxCoupling;
 
23365
  friend class ::ExtACTree;
 
23366
  friend class ::ExtACKeywords;
 
23367
  friend class ::ExtGnu;
 
23368
  friend class ::PragmaOnceUnitState;
 
23369
  friend class ::PragmaOnce;
 
23370
  friend class ::CMatchSyntax;
 
23371
 
 
23372
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23373
 
 
23374
public:
 
23375
  /** Constructor.
 
23376
   *  \param size Initial number of designators. */
 
23377
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
23378
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23379
  static const char *NodeId ();
 
23380
  /** Get the name of the node. Can be compared with NodeId(). */
 
23381
  const char *NodeName () const { return NodeId (); }
 
23382
 
 
23383
  /** Get the type of the entity to initialize. */
 
23384
  CTypeInfo *Type () const { return type; }
 
23385
  /** Get the value of the entity to initialize. */
 
23386
  CExprValue *Value () const { return value; }
 
23387
  /** Get the semantic value object. */
 
23388
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
23389
};
 
23390
 
 
23391
/*****************************************************************************/
 
23392
/*                                                                           */
 
23393
/*                         Declaration specifiers                            */
 
23394
/*                                                                           */
 
23395
/*****************************************************************************/
 
23396
 
 
23397
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
23398
 *  Base class for all tree nodes representing declaration specifiers. */
 
23399
 
 
23400
#line 23401 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23401
} // closed Puma
 
23402
class CCExprResolve;
 
23403
class CExprResolve;
 
23404
class WinIfExists;
 
23405
class WinImportHandler;
 
23406
class WinMacros;
 
23407
class WinAsm;
 
23408
class WinDeclSpecs;
 
23409
class WinMemberExplSpec;
 
23410
class WinTypeKeywords;
 
23411
class WinFriend;
 
23412
class ExtAC;
 
23413
class ExtACBuilderCoupling;
 
23414
class ExtACSyntaxCoupling;
 
23415
class ExtACTree;
 
23416
class ExtACKeywords;
 
23417
class ExtGnu;
 
23418
class PragmaOnceUnitState;
 
23419
class PragmaOnce;
 
23420
class CMatchSyntax;
 
23421
namespace Puma {
 
23422
 
 
23423
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23424
class CT_DeclSpec : public CTree {
 
23425
#line 23426 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23426
  friend class ::CCExprResolve;
 
23427
  friend class ::CExprResolve;
 
23428
  friend class ::WinIfExists;
 
23429
  friend class ::WinImportHandler;
 
23430
  friend class ::WinMacros;
 
23431
  friend class ::WinAsm;
 
23432
  friend class ::WinDeclSpecs;
 
23433
  friend class ::WinMemberExplSpec;
 
23434
  friend class ::WinTypeKeywords;
 
23435
  friend class ::WinFriend;
 
23436
  friend class ::ExtAC;
 
23437
  friend class ::ExtACBuilderCoupling;
 
23438
  friend class ::ExtACSyntaxCoupling;
 
23439
  friend class ::ExtACTree;
 
23440
  friend class ::ExtACKeywords;
 
23441
  friend class ::ExtGnu;
 
23442
  friend class ::PragmaOnceUnitState;
 
23443
  friend class ::PragmaOnce;
 
23444
  friend class ::CMatchSyntax;
 
23445
 
 
23446
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23447
 
 
23448
protected:
 
23449
  /** Constructor. */
 
23450
  CT_DeclSpec () {}
 
23451
};
 
23452
 
 
23453
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
23454
 *  Tree node representing a primitive declaration specifier. */
 
23455
 
 
23456
#line 23457 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23457
} // closed Puma
 
23458
class CCExprResolve;
 
23459
class CExprResolve;
 
23460
class WinIfExists;
 
23461
class WinImportHandler;
 
23462
class WinMacros;
 
23463
class WinAsm;
 
23464
class WinDeclSpecs;
 
23465
class WinMemberExplSpec;
 
23466
class WinTypeKeywords;
 
23467
class WinFriend;
 
23468
class ExtAC;
 
23469
class ExtACBuilderCoupling;
 
23470
class ExtACSyntaxCoupling;
 
23471
class ExtACTree;
 
23472
class ExtACKeywords;
 
23473
class ExtGnu;
 
23474
class PragmaOnceUnitState;
 
23475
class PragmaOnce;
 
23476
class CMatchSyntax;
 
23477
namespace Puma {
 
23478
 
 
23479
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23480
class CT_PrimDeclSpec : public CT_DeclSpec {
 
23481
#line 23482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23482
  friend class ::CCExprResolve;
 
23483
  friend class ::CExprResolve;
 
23484
  friend class ::WinIfExists;
 
23485
  friend class ::WinImportHandler;
 
23486
  friend class ::WinMacros;
 
23487
  friend class ::WinAsm;
 
23488
  friend class ::WinDeclSpecs;
 
23489
  friend class ::WinMemberExplSpec;
 
23490
  friend class ::WinTypeKeywords;
 
23491
  friend class ::WinFriend;
 
23492
  friend class ::ExtAC;
 
23493
  friend class ::ExtACBuilderCoupling;
 
23494
  friend class ::ExtACSyntaxCoupling;
 
23495
  friend class ::ExtACTree;
 
23496
  friend class ::ExtACKeywords;
 
23497
  friend class ::ExtGnu;
 
23498
  friend class ::PragmaOnceUnitState;
 
23499
  friend class ::PragmaOnce;
 
23500
  friend class ::CMatchSyntax;
 
23501
 
 
23502
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23503
 
 
23504
public:
 
23505
  /** Declaration specifier types. */
 
23506
  enum Type { 
 
23507
    PDS_FRIEND,    /** friend */
 
23508
    PDS_TYPEDEF,   /** typedef */
 
23509
    PDS_AUTO,      /** auto */
 
23510
    PDS_REGISTER,  /** register */
 
23511
    PDS_STATIC,    /** static */
 
23512
    PDS_EXTERN,    /** extern */
 
23513
    PDS_MUTABLE,   /** mutable */
 
23514
    PDS_INLINE,    /** inline */
 
23515
    PDS_VIRTUAL,   /** virtual */
 
23516
    PDS_EXPLICIT,  /** explicit */
 
23517
    PDS_CONST,     /** const */
 
23518
    PDS_VOLATILE,  /** volatile */
 
23519
    PDS_RESTRICT,  /** restrict */
 
23520
    PDS_CHAR,      /** char */
 
23521
    PDS_WCHAR_T,   /** wchar_t */
 
23522
    PDS_BOOL,      /** bool */
 
23523
    PDS_SHORT,     /** short */
 
23524
    PDS_INT,       /** int */
 
23525
    PDS_LONG,      /** long */
 
23526
    PDS_SIGNED,    /** signed */
 
23527
    PDS_UNSIGNED,  /** unsigned */
 
23528
    PDS_FLOAT,     /** float */
 
23529
    PDS_DOUBLE,    /** double */
 
23530
    PDS_VOID,      /** void */
 
23531
    // AspectC++ specific type specifier
 
23532
    PDS_UNKNOWN_T, /** unknown_t */
 
23533
    // Win specific declaration specifiers
 
23534
    PDS_CDECL,     /** __cdecl */
 
23535
    PDS_STDCALL,   /** __stdcall */
 
23536
    PDS_FASTCALL,  /** __fastcall */
 
23537
    PDS_INT64,     /** __int64 */
 
23538
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
23539
    PDS_NUM        /** Number of declaration specifier types. */
 
23540
  };
 
23541
 
 
23542
private:
 
23543
  Type _type;
 
23544
  CTree *_token; // has to be a CT_Token
 
23545
 
 
23546
  void determine_type ();
 
23547
 
 
23548
public:
 
23549
  /** Constructor.
 
23550
   *  \param t The token containing the declaration specifier. */
 
23551
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
23552
  /** Constructor.
 
23553
   *  \param t The declaration specifier type. */
 
23554
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
23555
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23556
  static const char *NodeId ();
 
23557
  /** Get the name of the node. Can be compared with NodeId(). */
 
23558
  const char *NodeName () const { return NodeId (); }
 
23559
  /** Get the number of sons. */
 
23560
  int Sons () const { return _token ? 1 : 0; }
 
23561
  /** Get the n-th son.
 
23562
   *  \param n The index of the son.
 
23563
   *  \return The n-th son or NULL. */
 
23564
  CTree *Son (int n) const 
 
23565
   { return (n == 0) ? _token : (CTree*)0; }
 
23566
  /** Get the textual representation of the declaration specifier.
 
23567
   *  \return The string representation or " ". */
 
23568
  const char *SpecText () const 
 
23569
   { return _token ? _token->token ()->text () : " "; }
 
23570
  /** Get the declaration specifier type. */
 
23571
  Type SpecType () const { return _type; }
 
23572
  /** Number of declaration specifier types. */
 
23573
  static const int NumTypes = PDS_NUM;
 
23574
  /** Replace a son.
 
23575
   *  \param old_son The son to replace.
 
23576
   *  \param new_son The new son. */
 
23577
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
23578
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
23579
    determine_type ();
 
23580
  }
 
23581
};
 
23582
 
 
23583
/** \class CT_NamedType CTree.h Puma/CTree.h
 
23584
 *  Tree node representing a named type, e.g. (int*)a. 
 
23585
 *  where int* is a type with a generated name. */
 
23586
 
 
23587
#line 23588 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23588
} // closed Puma
 
23589
class CCExprResolve;
 
23590
class CExprResolve;
 
23591
class WinIfExists;
 
23592
class WinImportHandler;
 
23593
class WinMacros;
 
23594
class WinAsm;
 
23595
class WinDeclSpecs;
 
23596
class WinMemberExplSpec;
 
23597
class WinTypeKeywords;
 
23598
class WinFriend;
 
23599
class ExtAC;
 
23600
class ExtACBuilderCoupling;
 
23601
class ExtACSyntaxCoupling;
 
23602
class ExtACTree;
 
23603
class ExtACKeywords;
 
23604
class ExtGnu;
 
23605
class PragmaOnceUnitState;
 
23606
class PragmaOnce;
 
23607
class CMatchSyntax;
 
23608
namespace Puma {
 
23609
 
 
23610
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23611
class CT_NamedType : public CT_DeclSpec, public CSemObject {
 
23612
#line 23613 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23613
  friend class ::CCExprResolve;
 
23614
  friend class ::CExprResolve;
 
23615
  friend class ::WinIfExists;
 
23616
  friend class ::WinImportHandler;
 
23617
  friend class ::WinMacros;
 
23618
  friend class ::WinAsm;
 
23619
  friend class ::WinDeclSpecs;
 
23620
  friend class ::WinMemberExplSpec;
 
23621
  friend class ::WinTypeKeywords;
 
23622
  friend class ::WinFriend;
 
23623
  friend class ::ExtAC;
 
23624
  friend class ::ExtACBuilderCoupling;
 
23625
  friend class ::ExtACSyntaxCoupling;
 
23626
  friend class ::ExtACTree;
 
23627
  friend class ::ExtACKeywords;
 
23628
  friend class ::ExtGnu;
 
23629
  friend class ::PragmaOnceUnitState;
 
23630
  friend class ::PragmaOnce;
 
23631
  friend class ::CMatchSyntax;
 
23632
 
 
23633
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23634
 
 
23635
  CTree *sons[2]; // declspecs, declarator
 
23636
 
 
23637
public:
 
23638
  /** Constructor.
 
23639
   *  \param dss The declaration specifier sequence of the type.
 
23640
   *  \param d The type declarator. */
 
23641
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
23642
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23643
  static const char *NodeId ();
 
23644
  /** Get the name of the node. Can be compared with NodeId(). */
 
23645
  const char *NodeName () const { return NodeId (); }
 
23646
  /** Get the number of sons. */
 
23647
  int Sons () const { return CTree::Sons (sons, 2); }
 
23648
  /** Get the n-th son.
 
23649
   *  \param n The index of the son.
 
23650
   *  \return The n-th son or NULL. */
 
23651
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
23652
  /** Get the declarator. */
 
23653
  CTree *Declarator () const { return sons[1]; }
 
23654
  /** Replace a son.
 
23655
   *  \param old_son The son to replace.
 
23656
   *  \param new_son The new son. */
 
23657
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
23658
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
23659
  }
 
23660
  /** Get the semantic information object. */
 
23661
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
23662
};
 
23663
      
 
23664
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
23665
 *  Tree node representing a class specifier, e.g. class X. */
 
23666
 
 
23667
#line 23668 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23668
} // closed Puma
 
23669
class CCExprResolve;
 
23670
class CExprResolve;
 
23671
class WinIfExists;
 
23672
class WinImportHandler;
 
23673
class WinMacros;
 
23674
class WinAsm;
 
23675
class WinDeclSpecs;
 
23676
class WinMemberExplSpec;
 
23677
class WinTypeKeywords;
 
23678
class WinFriend;
 
23679
class ExtAC;
 
23680
class ExtACBuilderCoupling;
 
23681
class ExtACSyntaxCoupling;
 
23682
class ExtACTree;
 
23683
class ExtACKeywords;
 
23684
class ExtGnu;
 
23685
class PragmaOnceUnitState;
 
23686
class PragmaOnce;
 
23687
class CMatchSyntax;
 
23688
namespace Puma {
 
23689
 
 
23690
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23691
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
 
23692
#line 23693 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23693
  friend class ::CCExprResolve;
 
23694
  friend class ::CExprResolve;
 
23695
  friend class ::WinIfExists;
 
23696
  friend class ::WinImportHandler;
 
23697
  friend class ::WinMacros;
 
23698
  friend class ::WinAsm;
 
23699
  friend class ::WinDeclSpecs;
 
23700
  friend class ::WinMemberExplSpec;
 
23701
  friend class ::WinTypeKeywords;
 
23702
  friend class ::WinFriend;
 
23703
  friend class ::ExtAC;
 
23704
  friend class ::ExtACBuilderCoupling;
 
23705
  friend class ::ExtACSyntaxCoupling;
 
23706
  friend class ::ExtACTree;
 
23707
  friend class ::ExtACKeywords;
 
23708
  friend class ::ExtGnu;
 
23709
  friend class ::PragmaOnceUnitState;
 
23710
  friend class ::PragmaOnce;
 
23711
  friend class ::CMatchSyntax;
 
23712
 
 
23713
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23714
 
 
23715
  CTree *sons[2]; // key, name
 
23716
  
 
23717
public:
 
23718
  /** Constructor.
 
23719
   *  \param k The 'class' or 'struct' keyword.
 
23720
   *  \param n The class name. */
 
23721
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
23722
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23723
  static const char *NodeId ();
 
23724
  /** Get the name of the node. Can be compared with NodeId(). */
 
23725
  const char *NodeName () const { return NodeId (); }
 
23726
  /** Get the number of sons. */
 
23727
  int Sons () const { return 2; }
 
23728
  /** Get the n-th son.
 
23729
   *  \param n The index of the son.
 
23730
   *  \return The n-th son or NULL. */
 
23731
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
23732
  /** Get the class name. */
 
23733
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
23734
  /** Get the semantic information object. */
 
23735
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
23736
  /** Replace a son.
 
23737
   *  \param old_son The son to replace.
 
23738
   *  \param new_son The new son. */
 
23739
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
23740
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
23741
  }
 
23742
};
 
23743
 
 
23744
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
23745
 *  Tree node representing a union specifier, e.g. union X. */
 
23746
 
 
23747
#line 23748 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23748
} // closed Puma
 
23749
class CCExprResolve;
 
23750
class CExprResolve;
 
23751
class WinIfExists;
 
23752
class WinImportHandler;
 
23753
class WinMacros;
 
23754
class WinAsm;
 
23755
class WinDeclSpecs;
 
23756
class WinMemberExplSpec;
 
23757
class WinTypeKeywords;
 
23758
class WinFriend;
 
23759
class ExtAC;
 
23760
class ExtACBuilderCoupling;
 
23761
class ExtACSyntaxCoupling;
 
23762
class ExtACTree;
 
23763
class ExtACKeywords;
 
23764
class ExtGnu;
 
23765
class PragmaOnceUnitState;
 
23766
class PragmaOnce;
 
23767
class CMatchSyntax;
 
23768
namespace Puma {
 
23769
 
 
23770
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23771
class CT_UnionSpec : public CT_ClassSpec {
 
23772
#line 23773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23773
  friend class ::CCExprResolve;
 
23774
  friend class ::CExprResolve;
 
23775
  friend class ::WinIfExists;
 
23776
  friend class ::WinImportHandler;
 
23777
  friend class ::WinMacros;
 
23778
  friend class ::WinAsm;
 
23779
  friend class ::WinDeclSpecs;
 
23780
  friend class ::WinMemberExplSpec;
 
23781
  friend class ::WinTypeKeywords;
 
23782
  friend class ::WinFriend;
 
23783
  friend class ::ExtAC;
 
23784
  friend class ::ExtACBuilderCoupling;
 
23785
  friend class ::ExtACSyntaxCoupling;
 
23786
  friend class ::ExtACTree;
 
23787
  friend class ::ExtACKeywords;
 
23788
  friend class ::ExtGnu;
 
23789
  friend class ::PragmaOnceUnitState;
 
23790
  friend class ::PragmaOnce;
 
23791
  friend class ::CMatchSyntax;
 
23792
 
 
23793
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23794
 
 
23795
public:
 
23796
  /** Constructor.
 
23797
   *  \param k The 'union' keyword.
 
23798
   *  \param n The name of the union. */
 
23799
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
23800
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23801
  static const char *NodeId ();
 
23802
  /** Get the name of the node. Can be compared with NodeId(). */
 
23803
  const char *NodeName () const { return NodeId (); }
 
23804
};
 
23805
 
 
23806
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
23807
 *  Tree node representing an enumeration specifier, e.g. enum X. */
 
23808
 
 
23809
#line 23810 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23810
} // closed Puma
 
23811
class CCExprResolve;
 
23812
class CExprResolve;
 
23813
class WinIfExists;
 
23814
class WinImportHandler;
 
23815
class WinMacros;
 
23816
class WinAsm;
 
23817
class WinDeclSpecs;
 
23818
class WinMemberExplSpec;
 
23819
class WinTypeKeywords;
 
23820
class WinFriend;
 
23821
class ExtAC;
 
23822
class ExtACBuilderCoupling;
 
23823
class ExtACSyntaxCoupling;
 
23824
class ExtACTree;
 
23825
class ExtACKeywords;
 
23826
class ExtGnu;
 
23827
class PragmaOnceUnitState;
 
23828
class PragmaOnce;
 
23829
class CMatchSyntax;
 
23830
namespace Puma {
 
23831
 
 
23832
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23833
class CT_EnumSpec : public CT_ClassSpec {
 
23834
#line 23835 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23835
  friend class ::CCExprResolve;
 
23836
  friend class ::CExprResolve;
 
23837
  friend class ::WinIfExists;
 
23838
  friend class ::WinImportHandler;
 
23839
  friend class ::WinMacros;
 
23840
  friend class ::WinAsm;
 
23841
  friend class ::WinDeclSpecs;
 
23842
  friend class ::WinMemberExplSpec;
 
23843
  friend class ::WinTypeKeywords;
 
23844
  friend class ::WinFriend;
 
23845
  friend class ::ExtAC;
 
23846
  friend class ::ExtACBuilderCoupling;
 
23847
  friend class ::ExtACSyntaxCoupling;
 
23848
  friend class ::ExtACTree;
 
23849
  friend class ::ExtACKeywords;
 
23850
  friend class ::ExtGnu;
 
23851
  friend class ::PragmaOnceUnitState;
 
23852
  friend class ::PragmaOnce;
 
23853
  friend class ::CMatchSyntax;
 
23854
 
 
23855
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23856
 
 
23857
public:
 
23858
  /** Constructor.
 
23859
   *  \param k The 'enum' keyword. 
 
23860
   *  \param n The name of the enumeration. */
 
23861
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
23862
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23863
  static const char *NodeId ();
 
23864
  /** Get the name of the node. Can be compared with NodeId(). */
 
23865
  const char *NodeName () const { return NodeId (); }
 
23866
};
 
23867
 
 
23868
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
23869
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
 
23870
 
 
23871
#line 23872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23872
} // closed Puma
 
23873
class CCExprResolve;
 
23874
class CExprResolve;
 
23875
class WinIfExists;
 
23876
class WinImportHandler;
 
23877
class WinMacros;
 
23878
class WinAsm;
 
23879
class WinDeclSpecs;
 
23880
class WinMemberExplSpec;
 
23881
class WinTypeKeywords;
 
23882
class WinFriend;
 
23883
class ExtAC;
 
23884
class ExtACBuilderCoupling;
 
23885
class ExtACSyntaxCoupling;
 
23886
class ExtACTree;
 
23887
class ExtACKeywords;
 
23888
class ExtGnu;
 
23889
class PragmaOnceUnitState;
 
23890
class PragmaOnce;
 
23891
class CMatchSyntax;
 
23892
namespace Puma {
 
23893
 
 
23894
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23895
class CT_ExceptionSpec : public CT_DeclSpec {
 
23896
#line 23897 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23897
  friend class ::CCExprResolve;
 
23898
  friend class ::CExprResolve;
 
23899
  friend class ::WinIfExists;
 
23900
  friend class ::WinImportHandler;
 
23901
  friend class ::WinMacros;
 
23902
  friend class ::WinAsm;
 
23903
  friend class ::WinDeclSpecs;
 
23904
  friend class ::WinMemberExplSpec;
 
23905
  friend class ::WinTypeKeywords;
 
23906
  friend class ::WinFriend;
 
23907
  friend class ::ExtAC;
 
23908
  friend class ::ExtACBuilderCoupling;
 
23909
  friend class ::ExtACSyntaxCoupling;
 
23910
  friend class ::ExtACTree;
 
23911
  friend class ::ExtACKeywords;
 
23912
  friend class ::ExtGnu;
 
23913
  friend class ::PragmaOnceUnitState;
 
23914
  friend class ::PragmaOnce;
 
23915
  friend class ::CMatchSyntax;
 
23916
 
 
23917
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23918
 
 
23919
  CTree *sons[2]; // throw, type_id_list
 
23920
  
 
23921
public:
 
23922
  /** Constructor.
 
23923
   *  \param k The 'throw' keyword.
 
23924
   *  \param l The type list for the exception type to throw. */
 
23925
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
23926
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23927
  static const char *NodeId ();
 
23928
  /** Get the name of the node. Can be compared with NodeId(). */
 
23929
  const char *NodeName () const { return NodeId (); }
 
23930
  /** Get the number of sons. */
 
23931
  int Sons () const { return 2; }
 
23932
  /** Get the n-th son.
 
23933
   *  \param n The index of the son.
 
23934
   *  \return The n-th son or NULL. */
 
23935
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
23936
  /** Get the exception type list. */
 
23937
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
23938
  /** Replace a son.
 
23939
   *  \param old_son The son to replace.
 
23940
   *  \param new_son The new son. */
 
23941
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
23942
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
23943
  }
 
23944
};
 
23945
 
 
23946
/*****************************************************************************/
 
23947
/*                                                                           */
 
23948
/*                              Declarations                                 */
 
23949
/*                                                                           */
 
23950
/*****************************************************************************/
 
23951
 
 
23952
/** \class CT_Decl CTree.h Puma/CTree.h
 
23953
 *  Base class for all tree nodes representing declarations. */
 
23954
 
 
23955
#line 23956 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23956
} // closed Puma
 
23957
class CCExprResolve;
 
23958
class CExprResolve;
 
23959
class WinIfExists;
 
23960
class WinImportHandler;
 
23961
class WinMacros;
 
23962
class WinAsm;
 
23963
class WinDeclSpecs;
 
23964
class WinMemberExplSpec;
 
23965
class WinTypeKeywords;
 
23966
class WinFriend;
 
23967
class ExtAC;
 
23968
class ExtACBuilderCoupling;
 
23969
class ExtACSyntaxCoupling;
 
23970
class ExtACTree;
 
23971
class ExtACKeywords;
 
23972
class ExtGnu;
 
23973
class PragmaOnceUnitState;
 
23974
class PragmaOnce;
 
23975
class CMatchSyntax;
 
23976
namespace Puma {
 
23977
 
 
23978
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23979
class CT_Decl : public CTree {
 
23980
#line 23981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
23981
  friend class ::CCExprResolve;
 
23982
  friend class ::CExprResolve;
 
23983
  friend class ::WinIfExists;
 
23984
  friend class ::WinImportHandler;
 
23985
  friend class ::WinMacros;
 
23986
  friend class ::WinAsm;
 
23987
  friend class ::WinDeclSpecs;
 
23988
  friend class ::WinMemberExplSpec;
 
23989
  friend class ::WinTypeKeywords;
 
23990
  friend class ::WinFriend;
 
23991
  friend class ::ExtAC;
 
23992
  friend class ::ExtACBuilderCoupling;
 
23993
  friend class ::ExtACSyntaxCoupling;
 
23994
  friend class ::ExtACTree;
 
23995
  friend class ::ExtACKeywords;
 
23996
  friend class ::ExtGnu;
 
23997
  friend class ::PragmaOnceUnitState;
 
23998
  friend class ::PragmaOnce;
 
23999
  friend class ::CMatchSyntax;
 
24000
 
 
24001
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24002
 
 
24003
  CT_LinkageSpec *_linkage;
 
24004
  
 
24005
protected:
 
24006
  /** Constructor. */
 
24007
  CT_Decl () : _linkage (0) {}
 
24008
  
 
24009
public:
 
24010
  /** Set the linkage of the declared entity.
 
24011
   *  \param l The linkage specifiers. */
 
24012
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
24013
  /** Get the linkage specifiers. */
 
24014
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
24015
  /** Get this. */
 
24016
  virtual CT_Decl *IsDeclaration () { return this; }
 
24017
};
 
24018
 
 
24019
/** \class CT_Program CTree.h Puma/CTree.h
 
24020
 *  Root node of C/C++ syntax tree. */
 
24021
 
 
24022
#line 24023 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24023
} // closed Puma
 
24024
class CCExprResolve;
 
24025
class CExprResolve;
 
24026
class WinIfExists;
 
24027
class WinImportHandler;
 
24028
class WinMacros;
 
24029
class WinAsm;
 
24030
class WinDeclSpecs;
 
24031
class WinMemberExplSpec;
 
24032
class WinTypeKeywords;
 
24033
class WinFriend;
 
24034
class ExtAC;
 
24035
class ExtACBuilderCoupling;
 
24036
class ExtACSyntaxCoupling;
 
24037
class ExtACTree;
 
24038
class ExtACKeywords;
 
24039
class ExtGnu;
 
24040
class PragmaOnceUnitState;
 
24041
class PragmaOnce;
 
24042
class CMatchSyntax;
 
24043
namespace Puma {
 
24044
 
 
24045
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24046
class CT_Program : public CT_DeclList, public CSemScope {
 
24047
#line 24048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24048
  friend class ::CCExprResolve;
 
24049
  friend class ::CExprResolve;
 
24050
  friend class ::WinIfExists;
 
24051
  friend class ::WinImportHandler;
 
24052
  friend class ::WinMacros;
 
24053
  friend class ::WinAsm;
 
24054
  friend class ::WinDeclSpecs;
 
24055
  friend class ::WinMemberExplSpec;
 
24056
  friend class ::WinTypeKeywords;
 
24057
  friend class ::WinFriend;
 
24058
  friend class ::ExtAC;
 
24059
  friend class ::ExtACBuilderCoupling;
 
24060
  friend class ::ExtACSyntaxCoupling;
 
24061
  friend class ::ExtACTree;
 
24062
  friend class ::ExtACKeywords;
 
24063
  friend class ::ExtGnu;
 
24064
  friend class ::PragmaOnceUnitState;
 
24065
  friend class ::PragmaOnce;
 
24066
  friend class ::CMatchSyntax;
 
24067
 
 
24068
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24069
 
 
24070
public:
 
24071
  /** Constructor.
 
24072
   *  \param size The initial number of declarations in the program.
 
24073
   *  \param incr The initial increment count. */
 
24074
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
24075
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24076
  static const char *NodeId ();
 
24077
  /** Get the name of the node. Can be compared with NodeId(). */
 
24078
  const char *NodeName () const { return NodeId (); }
 
24079
  /** Get the semantic scope object. */
 
24080
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
24081
};
 
24082
   
 
24083
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
24084
 *  Tree node representing an object declaration, e.g. int *i. */
 
24085
 
 
24086
#line 24087 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24087
} // closed Puma
 
24088
class CCExprResolve;
 
24089
class CExprResolve;
 
24090
class WinIfExists;
 
24091
class WinImportHandler;
 
24092
class WinMacros;
 
24093
class WinAsm;
 
24094
class WinDeclSpecs;
 
24095
class WinMemberExplSpec;
 
24096
class WinTypeKeywords;
 
24097
class WinFriend;
 
24098
class ExtAC;
 
24099
class ExtACBuilderCoupling;
 
24100
class ExtACSyntaxCoupling;
 
24101
class ExtACTree;
 
24102
class ExtACKeywords;
 
24103
class ExtGnu;
 
24104
class PragmaOnceUnitState;
 
24105
class PragmaOnce;
 
24106
class CMatchSyntax;
 
24107
namespace Puma {
 
24108
 
 
24109
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24110
class CT_ObjDecl : public CT_Decl {
 
24111
#line 24112 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24112
  friend class ::CCExprResolve;
 
24113
  friend class ::CExprResolve;
 
24114
  friend class ::WinIfExists;
 
24115
  friend class ::WinImportHandler;
 
24116
  friend class ::WinMacros;
 
24117
  friend class ::WinAsm;
 
24118
  friend class ::WinDeclSpecs;
 
24119
  friend class ::WinMemberExplSpec;
 
24120
  friend class ::WinTypeKeywords;
 
24121
  friend class ::WinFriend;
 
24122
  friend class ::ExtAC;
 
24123
  friend class ::ExtACBuilderCoupling;
 
24124
  friend class ::ExtACSyntaxCoupling;
 
24125
  friend class ::ExtACTree;
 
24126
  friend class ::ExtACKeywords;
 
24127
  friend class ::ExtGnu;
 
24128
  friend class ::PragmaOnceUnitState;
 
24129
  friend class ::PragmaOnce;
 
24130
  friend class ::CMatchSyntax;
 
24131
 
 
24132
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24133
 
 
24134
  CTree *sons[3]; // declspecs, declarators, colon
 
24135
 
 
24136
public:
 
24137
  /** Constructor.
 
24138
   *  \param dsl The declaration specifier sequence.
 
24139
   *  \param dl The declarator list.
 
24140
   *  \param c Optional colon. */
 
24141
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
 
24142
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
 
24143
  }
 
24144
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24145
  static const char *NodeId ();
 
24146
  /** Get the name of the node. Can be compared with NodeId(). */
 
24147
  const char *NodeName () const { return NodeId (); }
 
24148
  /** Get the number of sons. */
 
24149
  int Sons () const { return 3; }
 
24150
  /** Get the n-th son.
 
24151
   *  \param n The index of the son.
 
24152
   *  \return The n-th son or NULL. */
 
24153
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
24154
  /** Get the declaration specifier sequence. */
 
24155
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
24156
  /** Get the declarator list. */
 
24157
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
24158
  /** Replace a son.
 
24159
   *  \param old_son The son to replace.
 
24160
   *  \param new_son The new son. */
 
24161
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24162
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
24163
  }
 
24164
};
 
24165
 
 
24166
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
24167
 *  Tree node representing a template declaration. */
 
24168
 
 
24169
#line 24170 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24170
} // closed Puma
 
24171
class CCExprResolve;
 
24172
class CExprResolve;
 
24173
class WinIfExists;
 
24174
class WinImportHandler;
 
24175
class WinMacros;
 
24176
class WinAsm;
 
24177
class WinDeclSpecs;
 
24178
class WinMemberExplSpec;
 
24179
class WinTypeKeywords;
 
24180
class WinFriend;
 
24181
class ExtAC;
 
24182
class ExtACBuilderCoupling;
 
24183
class ExtACSyntaxCoupling;
 
24184
class ExtACTree;
 
24185
class ExtACKeywords;
 
24186
class ExtGnu;
 
24187
class PragmaOnceUnitState;
 
24188
class PragmaOnce;
 
24189
class CMatchSyntax;
 
24190
namespace Puma {
 
24191
 
 
24192
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24193
class CT_TemplateDecl : public CT_Decl, public CSemScope {
 
24194
#line 24195 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24195
  friend class ::CCExprResolve;
 
24196
  friend class ::CExprResolve;
 
24197
  friend class ::WinIfExists;
 
24198
  friend class ::WinImportHandler;
 
24199
  friend class ::WinMacros;
 
24200
  friend class ::WinAsm;
 
24201
  friend class ::WinDeclSpecs;
 
24202
  friend class ::WinMemberExplSpec;
 
24203
  friend class ::WinTypeKeywords;
 
24204
  friend class ::WinFriend;
 
24205
  friend class ::ExtAC;
 
24206
  friend class ::ExtACBuilderCoupling;
 
24207
  friend class ::ExtACSyntaxCoupling;
 
24208
  friend class ::ExtACTree;
 
24209
  friend class ::ExtACKeywords;
 
24210
  friend class ::ExtGnu;
 
24211
  friend class ::PragmaOnceUnitState;
 
24212
  friend class ::PragmaOnce;
 
24213
  friend class ::CMatchSyntax;
 
24214
 
 
24215
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24216
 
 
24217
  CTree *sons[3]; // export, param_list, decl
 
24218
 
 
24219
public:
 
24220
  /** Constructor.
 
24221
   *  \param e Optional 'export' keyword. 
 
24222
   *  \param p The template parameter list.
 
24223
   *  \param d The class or function declaration. */
 
24224
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
 
24225
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
 
24226
  }
 
24227
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24228
  static const char *NodeId ();
 
24229
  /** Get the name of the node. Can be compared with NodeId(). */
 
24230
  const char *NodeName () const { return NodeId (); }
 
24231
  /** Get the number of sons. */
 
24232
  int Sons () const { return CTree::Sons (sons, 3); }
 
24233
  /** Get the n-th son.
 
24234
   *  \param n The index of the son.
 
24235
   *  \return The n-th son or NULL. */
 
24236
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
24237
  /** Replace a son.
 
24238
   *  \param old_son The son to replace.
 
24239
   *  \param new_son The new son. */
 
24240
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24241
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
 
24242
  }
 
24243
  /** Get the 'export' keyword. */
 
24244
  CTree *Export () const { return sons[0]; }
 
24245
  /** Get the template parameter list. */
 
24246
  CT_TemplateParamList *Parameters () const { 
 
24247
    return (CT_TemplateParamList*)sons[1]; 
 
24248
  }
 
24249
  /** Get the class or function declaration. */
 
24250
  CTree *Declaration () const { return sons[2]; }
 
24251
  /** Get the semantic scope object. */
 
24252
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
24253
};
 
24254
 
 
24255
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
24256
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
 
24257
 
 
24258
#line 24259 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24259
} // closed Puma
 
24260
class CCExprResolve;
 
24261
class CExprResolve;
 
24262
class WinIfExists;
 
24263
class WinImportHandler;
 
24264
class WinMacros;
 
24265
class WinAsm;
 
24266
class WinDeclSpecs;
 
24267
class WinMemberExplSpec;
 
24268
class WinTypeKeywords;
 
24269
class WinFriend;
 
24270
class ExtAC;
 
24271
class ExtACBuilderCoupling;
 
24272
class ExtACSyntaxCoupling;
 
24273
class ExtACTree;
 
24274
class ExtACKeywords;
 
24275
class ExtGnu;
 
24276
class PragmaOnceUnitState;
 
24277
class PragmaOnce;
 
24278
class CMatchSyntax;
 
24279
namespace Puma {
 
24280
 
 
24281
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24282
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
 
24283
#line 24284 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24284
  friend class ::CCExprResolve;
 
24285
  friend class ::CExprResolve;
 
24286
  friend class ::WinIfExists;
 
24287
  friend class ::WinImportHandler;
 
24288
  friend class ::WinMacros;
 
24289
  friend class ::WinAsm;
 
24290
  friend class ::WinDeclSpecs;
 
24291
  friend class ::WinMemberExplSpec;
 
24292
  friend class ::WinTypeKeywords;
 
24293
  friend class ::WinFriend;
 
24294
  friend class ::ExtAC;
 
24295
  friend class ::ExtACBuilderCoupling;
 
24296
  friend class ::ExtACSyntaxCoupling;
 
24297
  friend class ::ExtACTree;
 
24298
  friend class ::ExtACKeywords;
 
24299
  friend class ::ExtGnu;
 
24300
  friend class ::PragmaOnceUnitState;
 
24301
  friend class ::PragmaOnce;
 
24302
  friend class ::CMatchSyntax;
 
24303
 
 
24304
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24305
 
 
24306
protected:
 
24307
  /** Constructor. */
 
24308
  CT_TemplateParamDecl () {}
 
24309
  
 
24310
public:
 
24311
  /** Get the template default argument. */
 
24312
  virtual CT_ExprList *DefaultArgument () const = 0;
 
24313
  /** Get the semantic information object. */
 
24314
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
24315
};
 
24316
 
 
24317
 
 
24318
#line 24319 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24319
} // closed Puma
 
24320
class CCExprResolve;
 
24321
class CExprResolve;
 
24322
class WinIfExists;
 
24323
class WinImportHandler;
 
24324
class WinMacros;
 
24325
class WinAsm;
 
24326
class WinDeclSpecs;
 
24327
class WinMemberExplSpec;
 
24328
class WinTypeKeywords;
 
24329
class WinFriend;
 
24330
class ExtAC;
 
24331
class ExtACBuilderCoupling;
 
24332
class ExtACSyntaxCoupling;
 
24333
class ExtACTree;
 
24334
class ExtACKeywords;
 
24335
class ExtGnu;
 
24336
class PragmaOnceUnitState;
 
24337
class PragmaOnce;
 
24338
class CMatchSyntax;
 
24339
namespace Puma {
 
24340
 
 
24341
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24342
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
 
24343
#line 24344 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24344
  friend class ::CCExprResolve;
 
24345
  friend class ::CExprResolve;
 
24346
  friend class ::WinIfExists;
 
24347
  friend class ::WinImportHandler;
 
24348
  friend class ::WinMacros;
 
24349
  friend class ::WinAsm;
 
24350
  friend class ::WinDeclSpecs;
 
24351
  friend class ::WinMemberExplSpec;
 
24352
  friend class ::WinTypeKeywords;
 
24353
  friend class ::WinFriend;
 
24354
  friend class ::ExtAC;
 
24355
  friend class ::ExtACBuilderCoupling;
 
24356
  friend class ::ExtACSyntaxCoupling;
 
24357
  friend class ::ExtACTree;
 
24358
  friend class ::ExtACKeywords;
 
24359
  friend class ::ExtGnu;
 
24360
  friend class ::PragmaOnceUnitState;
 
24361
  friend class ::PragmaOnce;
 
24362
  friend class ::CMatchSyntax;
 
24363
 
 
24364
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24365
 
 
24366
  CTree *sons[3]; // declspecs, declarator, init
 
24367
 
 
24368
public:
 
24369
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
 
24370
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
 
24371
  }
 
24372
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24373
  static const char *NodeId ();
 
24374
  /** Get the name of the node. Can be compared with NodeId(). */
 
24375
  const char *NodeName () const { return NodeId (); }
 
24376
  /** Get the number of sons. */
 
24377
  int Sons () const { return CTree::Sons (sons, 3); }
 
24378
  /** Get the n-th son.
 
24379
   *  \param n The index of the son.
 
24380
   *  \return The n-th son or NULL. */
 
24381
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
24382
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
24383
  CTree *Declarator () const { return sons[1]; }
 
24384
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
 
24385
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
24386
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
24387
  /** Replace a son.
 
24388
   *  \param old_son The son to replace.
 
24389
   *  \param new_son The new son. */
 
24390
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24391
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
24392
  }
 
24393
};
 
24394
 
 
24395
 
 
24396
#line 24397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24397
} // closed Puma
 
24398
class CCExprResolve;
 
24399
class CExprResolve;
 
24400
class WinIfExists;
 
24401
class WinImportHandler;
 
24402
class WinMacros;
 
24403
class WinAsm;
 
24404
class WinDeclSpecs;
 
24405
class WinMemberExplSpec;
 
24406
class WinTypeKeywords;
 
24407
class WinFriend;
 
24408
class ExtAC;
 
24409
class ExtACBuilderCoupling;
 
24410
class ExtACSyntaxCoupling;
 
24411
class ExtACTree;
 
24412
class ExtACKeywords;
 
24413
class ExtGnu;
 
24414
class PragmaOnceUnitState;
 
24415
class PragmaOnce;
 
24416
class CMatchSyntax;
 
24417
namespace Puma {
 
24418
 
 
24419
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24420
class CT_TypeParamDecl : public CT_TemplateParamDecl {
 
24421
#line 24422 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24422
  friend class ::CCExprResolve;
 
24423
  friend class ::CExprResolve;
 
24424
  friend class ::WinIfExists;
 
24425
  friend class ::WinImportHandler;
 
24426
  friend class ::WinMacros;
 
24427
  friend class ::WinAsm;
 
24428
  friend class ::WinDeclSpecs;
 
24429
  friend class ::WinMemberExplSpec;
 
24430
  friend class ::WinTypeKeywords;
 
24431
  friend class ::WinFriend;
 
24432
  friend class ::ExtAC;
 
24433
  friend class ::ExtACBuilderCoupling;
 
24434
  friend class ::ExtACSyntaxCoupling;
 
24435
  friend class ::ExtACTree;
 
24436
  friend class ::ExtACKeywords;
 
24437
  friend class ::ExtGnu;
 
24438
  friend class ::PragmaOnceUnitState;
 
24439
  friend class ::PragmaOnce;
 
24440
  friend class ::CMatchSyntax;
 
24441
 
 
24442
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24443
 
 
24444
  CTree *sons[4]; // params, key, id, init
 
24445
 
 
24446
public:
 
24447
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
 
24448
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
24449
    AddSon (sons[2], id); AddSon (sons[3], i);
 
24450
  }
 
24451
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24452
  static const char *NodeId ();
 
24453
  /** Get the name of the node. Can be compared with NodeId(). */
 
24454
  const char *NodeName () const { return NodeId (); }
 
24455
  /** Get the number of sons. */
 
24456
  int Sons () const { return CTree::Sons (sons, 4); }
 
24457
  /** Get the n-th son.
 
24458
   *  \param n The index of the son.
 
24459
   *  \return The n-th son or NULL. */
 
24460
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
24461
  CT_TemplateParamList *Parameters () const { 
 
24462
    return (CT_TemplateParamList*)sons[0]; 
 
24463
  }
 
24464
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
24465
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
 
24466
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
24467
  /** Replace a son.
 
24468
   *  \param old_son The son to replace.
 
24469
   *  \param new_son The new son. */
 
24470
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24471
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
24472
  }
 
24473
};
 
24474
 
 
24475
 
 
24476
#line 24477 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24477
} // closed Puma
 
24478
class CCExprResolve;
 
24479
class CExprResolve;
 
24480
class WinIfExists;
 
24481
class WinImportHandler;
 
24482
class WinMacros;
 
24483
class WinAsm;
 
24484
class WinDeclSpecs;
 
24485
class WinMemberExplSpec;
 
24486
class WinTypeKeywords;
 
24487
class WinFriend;
 
24488
class ExtAC;
 
24489
class ExtACBuilderCoupling;
 
24490
class ExtACSyntaxCoupling;
 
24491
class ExtACTree;
 
24492
class ExtACKeywords;
 
24493
class ExtGnu;
 
24494
class PragmaOnceUnitState;
 
24495
class PragmaOnce;
 
24496
class CMatchSyntax;
 
24497
namespace Puma {
 
24498
 
 
24499
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24500
class CT_EnumDef : public CT_Decl, public CSemObject {
 
24501
#line 24502 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24502
  friend class ::CCExprResolve;
 
24503
  friend class ::CExprResolve;
 
24504
  friend class ::WinIfExists;
 
24505
  friend class ::WinImportHandler;
 
24506
  friend class ::WinMacros;
 
24507
  friend class ::WinAsm;
 
24508
  friend class ::WinDeclSpecs;
 
24509
  friend class ::WinMemberExplSpec;
 
24510
  friend class ::WinTypeKeywords;
 
24511
  friend class ::WinFriend;
 
24512
  friend class ::ExtAC;
 
24513
  friend class ::ExtACBuilderCoupling;
 
24514
  friend class ::ExtACSyntaxCoupling;
 
24515
  friend class ::ExtACTree;
 
24516
  friend class ::ExtACKeywords;
 
24517
  friend class ::ExtGnu;
 
24518
  friend class ::PragmaOnceUnitState;
 
24519
  friend class ::PragmaOnce;
 
24520
  friend class ::CMatchSyntax;
 
24521
 
 
24522
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24523
 
 
24524
  CTree *sons[3]; // key, name, enumerators
 
24525
 
 
24526
public:
 
24527
  CT_EnumDef (CTree *k, CTree *n) {
 
24528
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
 
24529
  }
 
24530
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24531
  static const char *NodeId ();
 
24532
  /** Get the name of the node. Can be compared with NodeId(). */
 
24533
  const char *NodeName () const { return NodeId (); }
 
24534
  /** Get the number of sons. */
 
24535
  int Sons () const { return CTree::Sons (sons, 3); }
 
24536
  /** Get the n-th son.
 
24537
   *  \param n The index of the son.
 
24538
   *  \return The n-th son or NULL. */
 
24539
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
24540
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
24541
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
 
24542
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
24543
  /** Replace a son.
 
24544
   *  \param old_son The son to replace.
 
24545
   *  \param new_son The new son. */
 
24546
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24547
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
24548
  }
 
24549
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
24550
};
 
24551
 
 
24552
 
 
24553
#line 24554 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24554
} // closed Puma
 
24555
class CCExprResolve;
 
24556
class CExprResolve;
 
24557
class WinIfExists;
 
24558
class WinImportHandler;
 
24559
class WinMacros;
 
24560
class WinAsm;
 
24561
class WinDeclSpecs;
 
24562
class WinMemberExplSpec;
 
24563
class WinTypeKeywords;
 
24564
class WinFriend;
 
24565
class ExtAC;
 
24566
class ExtACBuilderCoupling;
 
24567
class ExtACSyntaxCoupling;
 
24568
class ExtACTree;
 
24569
class ExtACKeywords;
 
24570
class ExtGnu;
 
24571
class PragmaOnceUnitState;
 
24572
class PragmaOnce;
 
24573
class CMatchSyntax;
 
24574
namespace Puma {
 
24575
 
 
24576
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24577
class CT_Enumerator : public CT_Decl, public CSemObject {
 
24578
#line 24579 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24579
  friend class ::CCExprResolve;
 
24580
  friend class ::CExprResolve;
 
24581
  friend class ::WinIfExists;
 
24582
  friend class ::WinImportHandler;
 
24583
  friend class ::WinMacros;
 
24584
  friend class ::WinAsm;
 
24585
  friend class ::WinDeclSpecs;
 
24586
  friend class ::WinMemberExplSpec;
 
24587
  friend class ::WinTypeKeywords;
 
24588
  friend class ::WinFriend;
 
24589
  friend class ::ExtAC;
 
24590
  friend class ::ExtACBuilderCoupling;
 
24591
  friend class ::ExtACSyntaxCoupling;
 
24592
  friend class ::ExtACTree;
 
24593
  friend class ::ExtACKeywords;
 
24594
  friend class ::ExtGnu;
 
24595
  friend class ::PragmaOnceUnitState;
 
24596
  friend class ::PragmaOnce;
 
24597
  friend class ::CMatchSyntax;
 
24598
 
 
24599
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24600
 
 
24601
  CTree *sons[2]; // name, init
 
24602
 
 
24603
public:
 
24604
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
24605
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24606
  static const char *NodeId ();
 
24607
  /** Get the name of the node. Can be compared with NodeId(). */
 
24608
  const char *NodeName () const { return NodeId (); }
 
24609
  /** Get the number of sons. */
 
24610
  int Sons () const { return CTree::Sons (sons, 2); }
 
24611
  /** Get the n-th son.
 
24612
   *  \param n The index of the son.
 
24613
   *  \return The n-th son or NULL. */
 
24614
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
24615
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
24616
  void Initializer (CTree *i) { AddSon (sons[1], i); }
 
24617
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
24618
  /** Replace a son.
 
24619
   *  \param old_son The son to replace.
 
24620
   *  \param new_son The new son. */
 
24621
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24622
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
 
24623
  }
 
24624
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
24625
};
 
24626
 
 
24627
 
 
24628
#line 24629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24629
} // closed Puma
 
24630
class CCExprResolve;
 
24631
class CExprResolve;
 
24632
class WinIfExists;
 
24633
class WinImportHandler;
 
24634
class WinMacros;
 
24635
class WinAsm;
 
24636
class WinDeclSpecs;
 
24637
class WinMemberExplSpec;
 
24638
class WinTypeKeywords;
 
24639
class WinFriend;
 
24640
class ExtAC;
 
24641
class ExtACBuilderCoupling;
 
24642
class ExtACSyntaxCoupling;
 
24643
class ExtACTree;
 
24644
class ExtACKeywords;
 
24645
class ExtGnu;
 
24646
class PragmaOnceUnitState;
 
24647
class PragmaOnce;
 
24648
class CMatchSyntax;
 
24649
namespace Puma {
 
24650
 
 
24651
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24652
class CT_FctDef : public CT_Decl, public CSemObject {
 
24653
#line 24654 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24654
  friend class ::CCExprResolve;
 
24655
  friend class ::CExprResolve;
 
24656
  friend class ::WinIfExists;
 
24657
  friend class ::WinImportHandler;
 
24658
  friend class ::WinMacros;
 
24659
  friend class ::WinAsm;
 
24660
  friend class ::WinDeclSpecs;
 
24661
  friend class ::WinMemberExplSpec;
 
24662
  friend class ::WinTypeKeywords;
 
24663
  friend class ::WinFriend;
 
24664
  friend class ::ExtAC;
 
24665
  friend class ::ExtACBuilderCoupling;
 
24666
  friend class ::ExtACSyntaxCoupling;
 
24667
  friend class ::ExtACTree;
 
24668
  friend class ::ExtACKeywords;
 
24669
  friend class ::ExtGnu;
 
24670
  friend class ::PragmaOnceUnitState;
 
24671
  friend class ::PragmaOnce;
 
24672
  friend class ::CMatchSyntax;
 
24673
 
 
24674
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24675
 
 
24676
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
 
24677
 
 
24678
public:
 
24679
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
 
24680
             CTree *b, CTree *hs) {
 
24681
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
24682
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
24683
    AddSon (sons[6], hs); 
 
24684
  }
 
24685
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24686
  static const char *NodeId ();
 
24687
  /** Get the name of the node. Can be compared with NodeId(). */
 
24688
  const char *NodeName () const { return NodeId (); }
 
24689
  /** Get the number of sons. */
 
24690
  int Sons () const { return CTree::Sons (sons, 7); }
 
24691
  /** Get the n-th son.
 
24692
   *  \param n The index of the son.
 
24693
   *  \return The n-th son or NULL. */
 
24694
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
24695
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
24696
  CTree *Declarator () const { return sons[1]; }
 
24697
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
 
24698
  CTree *CtorInit () const { return sons[3]; }
 
24699
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
 
24700
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
 
24701
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
 
24702
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
24703
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
24704
  void Body (CTree *b) { AddSon (sons[5], b); }
 
24705
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
 
24706
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
24707
    AddSon (sons[5], b); AddSon (sons[6], h);
 
24708
  }
 
24709
  /** Replace a son.
 
24710
   *  \param old_son The son to replace.
 
24711
   *  \param new_son The new son. */
 
24712
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24713
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
24714
  }
 
24715
};
 
24716
 
 
24717
 
 
24718
#line 24719 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24719
} // closed Puma
 
24720
class CCExprResolve;
 
24721
class CExprResolve;
 
24722
class WinIfExists;
 
24723
class WinImportHandler;
 
24724
class WinMacros;
 
24725
class WinAsm;
 
24726
class WinDeclSpecs;
 
24727
class WinMemberExplSpec;
 
24728
class WinTypeKeywords;
 
24729
class WinFriend;
 
24730
class ExtAC;
 
24731
class ExtACBuilderCoupling;
 
24732
class ExtACSyntaxCoupling;
 
24733
class ExtACTree;
 
24734
class ExtACKeywords;
 
24735
class ExtGnu;
 
24736
class PragmaOnceUnitState;
 
24737
class PragmaOnce;
 
24738
class CMatchSyntax;
 
24739
namespace Puma {
 
24740
 
 
24741
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24742
class CT_AsmDef : public CT_Decl {
 
24743
#line 24744 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24744
  friend class ::CCExprResolve;
 
24745
  friend class ::CExprResolve;
 
24746
  friend class ::WinIfExists;
 
24747
  friend class ::WinImportHandler;
 
24748
  friend class ::WinMacros;
 
24749
  friend class ::WinAsm;
 
24750
  friend class ::WinDeclSpecs;
 
24751
  friend class ::WinMemberExplSpec;
 
24752
  friend class ::WinTypeKeywords;
 
24753
  friend class ::WinFriend;
 
24754
  friend class ::ExtAC;
 
24755
  friend class ::ExtACBuilderCoupling;
 
24756
  friend class ::ExtACSyntaxCoupling;
 
24757
  friend class ::ExtACTree;
 
24758
  friend class ::ExtACKeywords;
 
24759
  friend class ::ExtGnu;
 
24760
  friend class ::PragmaOnceUnitState;
 
24761
  friend class ::PragmaOnce;
 
24762
  friend class ::CMatchSyntax;
 
24763
 
 
24764
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24765
 
 
24766
  CTree *sons[5]; // asm, open, str, close, semi_colon
 
24767
 
 
24768
public:
 
24769
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
 
24770
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
24771
    AddSon (sons[3], c); AddSon (sons[4], sc); 
 
24772
  }
 
24773
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24774
  static const char *NodeId ();
 
24775
  /** Get the name of the node. Can be compared with NodeId(). */
 
24776
  const char *NodeName () const { return NodeId (); }
 
24777
  /** Get the number of sons. */
 
24778
  int Sons () const { return 5; }
 
24779
  /** Get the n-th son.
 
24780
   *  \param n The index of the son.
 
24781
   *  \return The n-th son or NULL. */
 
24782
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
24783
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
24784
  /** Replace a son.
 
24785
   *  \param old_son The son to replace.
 
24786
   *  \param new_son The new son. */
 
24787
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24788
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
24789
  }
 
24790
};
 
24791
 
 
24792
 
 
24793
#line 24794 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24794
} // closed Puma
 
24795
class CCExprResolve;
 
24796
class CExprResolve;
 
24797
class WinIfExists;
 
24798
class WinImportHandler;
 
24799
class WinMacros;
 
24800
class WinAsm;
 
24801
class WinDeclSpecs;
 
24802
class WinMemberExplSpec;
 
24803
class WinTypeKeywords;
 
24804
class WinFriend;
 
24805
class ExtAC;
 
24806
class ExtACBuilderCoupling;
 
24807
class ExtACSyntaxCoupling;
 
24808
class ExtACTree;
 
24809
class ExtACKeywords;
 
24810
class ExtGnu;
 
24811
class PragmaOnceUnitState;
 
24812
class PragmaOnce;
 
24813
class CMatchSyntax;
 
24814
namespace Puma {
 
24815
 
 
24816
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24817
class CT_Handler : public CT_Decl, public CSemScope {
 
24818
#line 24819 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24819
  friend class ::CCExprResolve;
 
24820
  friend class ::CExprResolve;
 
24821
  friend class ::WinIfExists;
 
24822
  friend class ::WinImportHandler;
 
24823
  friend class ::WinMacros;
 
24824
  friend class ::WinAsm;
 
24825
  friend class ::WinDeclSpecs;
 
24826
  friend class ::WinMemberExplSpec;
 
24827
  friend class ::WinTypeKeywords;
 
24828
  friend class ::WinFriend;
 
24829
  friend class ::ExtAC;
 
24830
  friend class ::ExtACBuilderCoupling;
 
24831
  friend class ::ExtACSyntaxCoupling;
 
24832
  friend class ::ExtACTree;
 
24833
  friend class ::ExtACKeywords;
 
24834
  friend class ::ExtGnu;
 
24835
  friend class ::PragmaOnceUnitState;
 
24836
  friend class ::PragmaOnce;
 
24837
  friend class ::CMatchSyntax;
 
24838
 
 
24839
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24840
 
 
24841
  CTree *sons[3]; // catch, exception_decl, stmt
 
24842
 
 
24843
public:
 
24844
  CT_Handler (CTree *c, CTree *e, CTree *s) {
 
24845
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
 
24846
  }
 
24847
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24848
  static const char *NodeId ();
 
24849
  /** Get the name of the node. Can be compared with NodeId(). */
 
24850
  const char *NodeName () const { return NodeId (); }
 
24851
  /** Get the number of sons. */
 
24852
  int Sons () const { return 3; }
 
24853
  /** Get the n-th son.
 
24854
   *  \param n The index of the son.
 
24855
   *  \return The n-th son or NULL. */
 
24856
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
24857
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
24858
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
24859
  /** Replace a son.
 
24860
   *  \param old_son The son to replace.
 
24861
   *  \param new_son The new son. */
 
24862
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24863
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
24864
  }
 
24865
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
24866
};
 
24867
 
 
24868
 
 
24869
#line 24870 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24870
} // closed Puma
 
24871
class CCExprResolve;
 
24872
class CExprResolve;
 
24873
class WinIfExists;
 
24874
class WinImportHandler;
 
24875
class WinMacros;
 
24876
class WinAsm;
 
24877
class WinDeclSpecs;
 
24878
class WinMemberExplSpec;
 
24879
class WinTypeKeywords;
 
24880
class WinFriend;
 
24881
class ExtAC;
 
24882
class ExtACBuilderCoupling;
 
24883
class ExtACSyntaxCoupling;
 
24884
class ExtACTree;
 
24885
class ExtACKeywords;
 
24886
class ExtGnu;
 
24887
class PragmaOnceUnitState;
 
24888
class PragmaOnce;
 
24889
class CMatchSyntax;
 
24890
namespace Puma {
 
24891
 
 
24892
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24893
class CT_LinkageSpec : public CT_Decl {
 
24894
#line 24895 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24895
  friend class ::CCExprResolve;
 
24896
  friend class ::CExprResolve;
 
24897
  friend class ::WinIfExists;
 
24898
  friend class ::WinImportHandler;
 
24899
  friend class ::WinMacros;
 
24900
  friend class ::WinAsm;
 
24901
  friend class ::WinDeclSpecs;
 
24902
  friend class ::WinMemberExplSpec;
 
24903
  friend class ::WinTypeKeywords;
 
24904
  friend class ::WinFriend;
 
24905
  friend class ::ExtAC;
 
24906
  friend class ::ExtACBuilderCoupling;
 
24907
  friend class ::ExtACSyntaxCoupling;
 
24908
  friend class ::ExtACTree;
 
24909
  friend class ::ExtACKeywords;
 
24910
  friend class ::ExtGnu;
 
24911
  friend class ::PragmaOnceUnitState;
 
24912
  friend class ::PragmaOnce;
 
24913
  friend class ::CMatchSyntax;
 
24914
 
 
24915
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24916
 
 
24917
  CTree *sons[5]; // extern, str, open, decls, close
 
24918
 
 
24919
public:
 
24920
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
 
24921
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
24922
    AddSon (sons[3], d); AddSon (sons[4], c);
 
24923
    if (isList ())
 
24924
      ((CT_DeclList*)Decls ())->Linkage (this);
 
24925
    else
 
24926
      ((CT_Decl*)Decls ())->Linkage (this);
 
24927
  }
 
24928
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24929
  static const char *NodeId ();
 
24930
  /** Get the name of the node. Can be compared with NodeId(). */
 
24931
  const char *NodeName () const { return NodeId (); }
 
24932
  /** Get the number of sons. */
 
24933
  int Sons () const { return CTree::Sons (sons, 5); }
 
24934
  /** Get the n-th son.
 
24935
   *  \param n The index of the son.
 
24936
   *  \return The n-th son or NULL. */
 
24937
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
24938
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
 
24939
  CTree *Decls () const { return sons[3]; }
 
24940
  bool isList () const {
 
24941
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
 
24942
  }
 
24943
  /** Replace a son.
 
24944
   *  \param old_son The son to replace.
 
24945
   *  \param new_son The new son. */
 
24946
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24947
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
24948
  }
 
24949
};
 
24950
 
 
24951
 
 
24952
#line 24953 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24953
} // closed Puma
 
24954
class CCExprResolve;
 
24955
class CExprResolve;
 
24956
class WinIfExists;
 
24957
class WinImportHandler;
 
24958
class WinMacros;
 
24959
class WinAsm;
 
24960
class WinDeclSpecs;
 
24961
class WinMemberExplSpec;
 
24962
class WinTypeKeywords;
 
24963
class WinFriend;
 
24964
class ExtAC;
 
24965
class ExtACBuilderCoupling;
 
24966
class ExtACSyntaxCoupling;
 
24967
class ExtACTree;
 
24968
class ExtACKeywords;
 
24969
class ExtGnu;
 
24970
class PragmaOnceUnitState;
 
24971
class PragmaOnce;
 
24972
class CMatchSyntax;
 
24973
namespace Puma {
 
24974
 
 
24975
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24976
class CT_ArgDecl : public CT_Decl, public CSemObject {
 
24977
#line 24978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
24978
  friend class ::CCExprResolve;
 
24979
  friend class ::CExprResolve;
 
24980
  friend class ::WinIfExists;
 
24981
  friend class ::WinImportHandler;
 
24982
  friend class ::WinMacros;
 
24983
  friend class ::WinAsm;
 
24984
  friend class ::WinDeclSpecs;
 
24985
  friend class ::WinMemberExplSpec;
 
24986
  friend class ::WinTypeKeywords;
 
24987
  friend class ::WinFriend;
 
24988
  friend class ::ExtAC;
 
24989
  friend class ::ExtACBuilderCoupling;
 
24990
  friend class ::ExtACSyntaxCoupling;
 
24991
  friend class ::ExtACTree;
 
24992
  friend class ::ExtACKeywords;
 
24993
  friend class ::ExtGnu;
 
24994
  friend class ::PragmaOnceUnitState;
 
24995
  friend class ::PragmaOnce;
 
24996
  friend class ::CMatchSyntax;
 
24997
 
 
24998
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24999
 
 
25000
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
 
25001
 
 
25002
public:
 
25003
  CT_ArgDecl (CTree *dsl, CTree *d) {
 
25004
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
25005
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
 
25006
  }
 
25007
  CT_ArgDecl (CTree *ellipsis) {
 
25008
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
25009
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
 
25010
  }
 
25011
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25012
  static const char *NodeId ();
 
25013
  /** Get the name of the node. Can be compared with NodeId(). */
 
25014
  const char *NodeName () const { return NodeId (); }
 
25015
  /** Get the number of sons. */
 
25016
  int Sons () const { return CTree::Sons (sons, 4); }
 
25017
  /** Get the n-th son.
 
25018
   *  \param n The index of the son.
 
25019
   *  \return The n-th son or NULL. */
 
25020
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
25021
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
25022
  CTree *Declarator () const { return sons[1]; }
 
25023
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
25024
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
 
25025
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
25026
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
25027
  /** Replace a son.
 
25028
   *  \param old_son The son to replace.
 
25029
   *  \param new_son The new son. */
 
25030
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25031
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
25032
  }
 
25033
};
 
25034
 
 
25035
 
 
25036
#line 25037 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25037
} // closed Puma
 
25038
class CCExprResolve;
 
25039
class CExprResolve;
 
25040
class WinIfExists;
 
25041
class WinImportHandler;
 
25042
class WinMacros;
 
25043
class WinAsm;
 
25044
class WinDeclSpecs;
 
25045
class WinMemberExplSpec;
 
25046
class WinTypeKeywords;
 
25047
class WinFriend;
 
25048
class ExtAC;
 
25049
class ExtACBuilderCoupling;
 
25050
class ExtACSyntaxCoupling;
 
25051
class ExtACTree;
 
25052
class ExtACKeywords;
 
25053
class ExtGnu;
 
25054
class PragmaOnceUnitState;
 
25055
class PragmaOnce;
 
25056
class CMatchSyntax;
 
25057
namespace Puma {
 
25058
 
 
25059
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25060
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
 
25061
#line 25062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25062
  friend class ::CCExprResolve;
 
25063
  friend class ::CExprResolve;
 
25064
  friend class ::WinIfExists;
 
25065
  friend class ::WinImportHandler;
 
25066
  friend class ::WinMacros;
 
25067
  friend class ::WinAsm;
 
25068
  friend class ::WinDeclSpecs;
 
25069
  friend class ::WinMemberExplSpec;
 
25070
  friend class ::WinTypeKeywords;
 
25071
  friend class ::WinFriend;
 
25072
  friend class ::ExtAC;
 
25073
  friend class ::ExtACBuilderCoupling;
 
25074
  friend class ::ExtACSyntaxCoupling;
 
25075
  friend class ::ExtACTree;
 
25076
  friend class ::ExtACKeywords;
 
25077
  friend class ::ExtGnu;
 
25078
  friend class ::PragmaOnceUnitState;
 
25079
  friend class ::PragmaOnce;
 
25080
  friend class ::CMatchSyntax;
 
25081
 
 
25082
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25083
 
 
25084
public:
 
25085
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
 
25086
   CT_DeclList (size, 2) { AddProperties (props); }
 
25087
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25088
  static const char *NodeId ();
 
25089
  /** Get the name of the node. Can be compared with NodeId(). */
 
25090
  const char *NodeName () const { return NodeId (); }
 
25091
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
25092
};
 
25093
 
 
25094
 
 
25095
#line 25096 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25096
} // closed Puma
 
25097
class CCExprResolve;
 
25098
class CExprResolve;
 
25099
class WinIfExists;
 
25100
class WinImportHandler;
 
25101
class WinMacros;
 
25102
class WinAsm;
 
25103
class WinDeclSpecs;
 
25104
class WinMemberExplSpec;
 
25105
class WinTypeKeywords;
 
25106
class WinFriend;
 
25107
class ExtAC;
 
25108
class ExtACBuilderCoupling;
 
25109
class ExtACSyntaxCoupling;
 
25110
class ExtACTree;
 
25111
class ExtACKeywords;
 
25112
class ExtGnu;
 
25113
class PragmaOnceUnitState;
 
25114
class PragmaOnce;
 
25115
class CMatchSyntax;
 
25116
namespace Puma {
 
25117
 
 
25118
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25119
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
 
25120
#line 25121 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25121
  friend class ::CCExprResolve;
 
25122
  friend class ::CExprResolve;
 
25123
  friend class ::WinIfExists;
 
25124
  friend class ::WinImportHandler;
 
25125
  friend class ::WinMacros;
 
25126
  friend class ::WinAsm;
 
25127
  friend class ::WinDeclSpecs;
 
25128
  friend class ::WinMemberExplSpec;
 
25129
  friend class ::WinTypeKeywords;
 
25130
  friend class ::WinFriend;
 
25131
  friend class ::ExtAC;
 
25132
  friend class ::ExtACBuilderCoupling;
 
25133
  friend class ::ExtACSyntaxCoupling;
 
25134
  friend class ::ExtACTree;
 
25135
  friend class ::ExtACKeywords;
 
25136
  friend class ::ExtGnu;
 
25137
  friend class ::PragmaOnceUnitState;
 
25138
  friend class ::PragmaOnce;
 
25139
  friend class ::CMatchSyntax;
 
25140
 
 
25141
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25142
 
 
25143
public:
 
25144
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
25145
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25146
  static const char *NodeId ();
 
25147
  /** Get the name of the node. Can be compared with NodeId(). */
 
25148
  const char *NodeName () const { return NodeId (); }
 
25149
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
25150
};
 
25151
 
 
25152
 
 
25153
#line 25154 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25154
} // closed Puma
 
25155
class CCExprResolve;
 
25156
class CExprResolve;
 
25157
class WinIfExists;
 
25158
class WinImportHandler;
 
25159
class WinMacros;
 
25160
class WinAsm;
 
25161
class WinDeclSpecs;
 
25162
class WinMemberExplSpec;
 
25163
class WinTypeKeywords;
 
25164
class WinFriend;
 
25165
class ExtAC;
 
25166
class ExtACBuilderCoupling;
 
25167
class ExtACSyntaxCoupling;
 
25168
class ExtACTree;
 
25169
class ExtACKeywords;
 
25170
class ExtGnu;
 
25171
class PragmaOnceUnitState;
 
25172
class PragmaOnce;
 
25173
class CMatchSyntax;
 
25174
namespace Puma {
 
25175
 
 
25176
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25177
class CT_ArgNameList : public CT_ArgDeclList {
 
25178
#line 25179 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25179
  friend class ::CCExprResolve;
 
25180
  friend class ::CExprResolve;
 
25181
  friend class ::WinIfExists;
 
25182
  friend class ::WinImportHandler;
 
25183
  friend class ::WinMacros;
 
25184
  friend class ::WinAsm;
 
25185
  friend class ::WinDeclSpecs;
 
25186
  friend class ::WinMemberExplSpec;
 
25187
  friend class ::WinTypeKeywords;
 
25188
  friend class ::WinFriend;
 
25189
  friend class ::ExtAC;
 
25190
  friend class ::ExtACBuilderCoupling;
 
25191
  friend class ::ExtACSyntaxCoupling;
 
25192
  friend class ::ExtACTree;
 
25193
  friend class ::ExtACKeywords;
 
25194
  friend class ::ExtGnu;
 
25195
  friend class ::PragmaOnceUnitState;
 
25196
  friend class ::PragmaOnce;
 
25197
  friend class ::CMatchSyntax;
 
25198
 
 
25199
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25200
 
 
25201
public:
 
25202
  CT_ArgNameList () : CT_ArgDeclList () {}
 
25203
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25204
  static const char *NodeId ();
 
25205
  /** Get the name of the node. Can be compared with NodeId(). */
 
25206
  const char *NodeName () const { return NodeId (); }
 
25207
};
 
25208
 
 
25209
 
 
25210
#line 25211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25211
} // closed Puma
 
25212
class CCExprResolve;
 
25213
class CExprResolve;
 
25214
class WinIfExists;
 
25215
class WinImportHandler;
 
25216
class WinMacros;
 
25217
class WinAsm;
 
25218
class WinDeclSpecs;
 
25219
class WinMemberExplSpec;
 
25220
class WinTypeKeywords;
 
25221
class WinFriend;
 
25222
class ExtAC;
 
25223
class ExtACBuilderCoupling;
 
25224
class ExtACSyntaxCoupling;
 
25225
class ExtACTree;
 
25226
class ExtACKeywords;
 
25227
class ExtGnu;
 
25228
class PragmaOnceUnitState;
 
25229
class PragmaOnce;
 
25230
class CMatchSyntax;
 
25231
namespace Puma {
 
25232
 
 
25233
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25234
class CT_NamespaceDef : public CT_Decl, public CSemObject {
 
25235
#line 25236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25236
  friend class ::CCExprResolve;
 
25237
  friend class ::CExprResolve;
 
25238
  friend class ::WinIfExists;
 
25239
  friend class ::WinImportHandler;
 
25240
  friend class ::WinMacros;
 
25241
  friend class ::WinAsm;
 
25242
  friend class ::WinDeclSpecs;
 
25243
  friend class ::WinMemberExplSpec;
 
25244
  friend class ::WinTypeKeywords;
 
25245
  friend class ::WinFriend;
 
25246
  friend class ::ExtAC;
 
25247
  friend class ::ExtACBuilderCoupling;
 
25248
  friend class ::ExtACSyntaxCoupling;
 
25249
  friend class ::ExtACTree;
 
25250
  friend class ::ExtACKeywords;
 
25251
  friend class ::ExtGnu;
 
25252
  friend class ::PragmaOnceUnitState;
 
25253
  friend class ::PragmaOnce;
 
25254
  friend class ::CMatchSyntax;
 
25255
 
 
25256
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25257
 
 
25258
  CTree *sons[3]; // ns, name, members
 
25259
 
 
25260
public:
 
25261
  CT_NamespaceDef (CTree *n, CTree *nm) {
 
25262
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
 
25263
  }
 
25264
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
 
25265
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
 
25266
  }
 
25267
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25268
  static const char *NodeId ();
 
25269
  /** Get the name of the node. Can be compared with NodeId(). */
 
25270
  const char *NodeName () const { return NodeId (); }
 
25271
  /** Get the number of sons. */
 
25272
  int Sons () const { return CTree::Sons (sons, 3); }
 
25273
  /** Get the n-th son.
 
25274
   *  \param n The index of the son.
 
25275
   *  \return The n-th son or NULL. */
 
25276
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
25277
  void Members (CTree *m) { AddSon (sons[2], m); }
 
25278
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
 
25279
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
25280
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
25281
  /** Replace a son.
 
25282
   *  \param old_son The son to replace.
 
25283
   *  \param new_son The new son. */
 
25284
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25285
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
25286
  }
 
25287
};
 
25288
 
 
25289
 
 
25290
#line 25291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25291
} // closed Puma
 
25292
class CCExprResolve;
 
25293
class CExprResolve;
 
25294
class WinIfExists;
 
25295
class WinImportHandler;
 
25296
class WinMacros;
 
25297
class WinAsm;
 
25298
class WinDeclSpecs;
 
25299
class WinMemberExplSpec;
 
25300
class WinTypeKeywords;
 
25301
class WinFriend;
 
25302
class ExtAC;
 
25303
class ExtACBuilderCoupling;
 
25304
class ExtACSyntaxCoupling;
 
25305
class ExtACTree;
 
25306
class ExtACKeywords;
 
25307
class ExtGnu;
 
25308
class PragmaOnceUnitState;
 
25309
class PragmaOnce;
 
25310
class CMatchSyntax;
 
25311
namespace Puma {
 
25312
 
 
25313
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25314
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
 
25315
#line 25316 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25316
  friend class ::CCExprResolve;
 
25317
  friend class ::CExprResolve;
 
25318
  friend class ::WinIfExists;
 
25319
  friend class ::WinImportHandler;
 
25320
  friend class ::WinMacros;
 
25321
  friend class ::WinAsm;
 
25322
  friend class ::WinDeclSpecs;
 
25323
  friend class ::WinMemberExplSpec;
 
25324
  friend class ::WinTypeKeywords;
 
25325
  friend class ::WinFriend;
 
25326
  friend class ::ExtAC;
 
25327
  friend class ::ExtACBuilderCoupling;
 
25328
  friend class ::ExtACSyntaxCoupling;
 
25329
  friend class ::ExtACTree;
 
25330
  friend class ::ExtACKeywords;
 
25331
  friend class ::ExtGnu;
 
25332
  friend class ::PragmaOnceUnitState;
 
25333
  friend class ::PragmaOnce;
 
25334
  friend class ::CMatchSyntax;
 
25335
 
 
25336
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25337
 
 
25338
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
 
25339
 
 
25340
public:
 
25341
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
 
25342
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
25343
    AddSon (sons[3], nm); AddSon (sons[4], s); 
 
25344
  }
 
25345
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25346
  static const char *NodeId ();
 
25347
  /** Get the name of the node. Can be compared with NodeId(). */
 
25348
  const char *NodeName () const { return NodeId (); }
 
25349
  /** Get the number of sons. */
 
25350
  int Sons () const { return 5; }
 
25351
  /** Get the n-th son.
 
25352
   *  \param n The index of the son.
 
25353
   *  \return The n-th son or NULL. */
 
25354
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
25355
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
 
25356
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
 
25357
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
25358
  /** Replace a son.
 
25359
   *  \param old_son The son to replace.
 
25360
   *  \param new_son The new son. */
 
25361
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25362
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
25363
  }
 
25364
};
 
25365
 
 
25366
 
 
25367
#line 25368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25368
} // closed Puma
 
25369
class CCExprResolve;
 
25370
class CExprResolve;
 
25371
class WinIfExists;
 
25372
class WinImportHandler;
 
25373
class WinMacros;
 
25374
class WinAsm;
 
25375
class WinDeclSpecs;
 
25376
class WinMemberExplSpec;
 
25377
class WinTypeKeywords;
 
25378
class WinFriend;
 
25379
class ExtAC;
 
25380
class ExtACBuilderCoupling;
 
25381
class ExtACSyntaxCoupling;
 
25382
class ExtACTree;
 
25383
class ExtACKeywords;
 
25384
class ExtGnu;
 
25385
class PragmaOnceUnitState;
 
25386
class PragmaOnce;
 
25387
class CMatchSyntax;
 
25388
namespace Puma {
 
25389
 
 
25390
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25391
class CT_UsingDirective : public CT_Decl {
 
25392
#line 25393 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25393
  friend class ::CCExprResolve;
 
25394
  friend class ::CExprResolve;
 
25395
  friend class ::WinIfExists;
 
25396
  friend class ::WinImportHandler;
 
25397
  friend class ::WinMacros;
 
25398
  friend class ::WinAsm;
 
25399
  friend class ::WinDeclSpecs;
 
25400
  friend class ::WinMemberExplSpec;
 
25401
  friend class ::WinTypeKeywords;
 
25402
  friend class ::WinFriend;
 
25403
  friend class ::ExtAC;
 
25404
  friend class ::ExtACBuilderCoupling;
 
25405
  friend class ::ExtACSyntaxCoupling;
 
25406
  friend class ::ExtACTree;
 
25407
  friend class ::ExtACKeywords;
 
25408
  friend class ::ExtGnu;
 
25409
  friend class ::PragmaOnceUnitState;
 
25410
  friend class ::PragmaOnce;
 
25411
  friend class ::CMatchSyntax;
 
25412
 
 
25413
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25414
 
 
25415
  CTree *sons[4]; // using, ns, name, semi_colon
 
25416
 
 
25417
public:
 
25418
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
 
25419
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
25420
    AddSon (sons[3], s); 
 
25421
  }
 
25422
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25423
  static const char *NodeId ();
 
25424
  /** Get the name of the node. Can be compared with NodeId(). */
 
25425
  const char *NodeName () const { return NodeId (); }
 
25426
  /** Get the number of sons. */
 
25427
  int Sons () const { return 4; }
 
25428
  /** Get the n-th son.
 
25429
   *  \param n The index of the son.
 
25430
   *  \return The n-th son or NULL. */
 
25431
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
25432
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
25433
  /** Replace a son.
 
25434
   *  \param old_son The son to replace.
 
25435
   *  \param new_son The new son. */
 
25436
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25437
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
25438
  }
 
25439
};
 
25440
 
 
25441
/*****************************************************************************/
 
25442
/*                                                                           */
 
25443
/*                              Declarators                                  */
 
25444
/*                                                                           */
 
25445
/*****************************************************************************/
 
25446
 
 
25447
 
 
25448
#line 25449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25449
} // closed Puma
 
25450
class CCExprResolve;
 
25451
class CExprResolve;
 
25452
class WinIfExists;
 
25453
class WinImportHandler;
 
25454
class WinMacros;
 
25455
class WinAsm;
 
25456
class WinDeclSpecs;
 
25457
class WinMemberExplSpec;
 
25458
class WinTypeKeywords;
 
25459
class WinFriend;
 
25460
class ExtAC;
 
25461
class ExtACBuilderCoupling;
 
25462
class ExtACSyntaxCoupling;
 
25463
class ExtACTree;
 
25464
class ExtACKeywords;
 
25465
class ExtGnu;
 
25466
class PragmaOnceUnitState;
 
25467
class PragmaOnce;
 
25468
class CMatchSyntax;
 
25469
namespace Puma {
 
25470
 
 
25471
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25472
class CT_Declarator : public CTree {
 
25473
#line 25474 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25474
  friend class ::CCExprResolve;
 
25475
  friend class ::CExprResolve;
 
25476
  friend class ::WinIfExists;
 
25477
  friend class ::WinImportHandler;
 
25478
  friend class ::WinMacros;
 
25479
  friend class ::WinAsm;
 
25480
  friend class ::WinDeclSpecs;
 
25481
  friend class ::WinMemberExplSpec;
 
25482
  friend class ::WinTypeKeywords;
 
25483
  friend class ::WinFriend;
 
25484
  friend class ::ExtAC;
 
25485
  friend class ::ExtACBuilderCoupling;
 
25486
  friend class ::ExtACSyntaxCoupling;
 
25487
  friend class ::ExtACTree;
 
25488
  friend class ::ExtACKeywords;
 
25489
  friend class ::ExtGnu;
 
25490
  friend class ::PragmaOnceUnitState;
 
25491
  friend class ::PragmaOnce;
 
25492
  friend class ::CMatchSyntax;
 
25493
 
 
25494
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25495
 
 
25496
protected:
 
25497
  CT_Declarator () {}
 
25498
 
 
25499
public:
 
25500
  virtual CTree *Declarator () const = 0;
 
25501
  //classification function
 
25502
  virtual CT_Declarator *IsDeclarator () { return this; }
 
25503
  // locate the name node
 
25504
  CT_SimpleName *Name ();
 
25505
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
 
25506
};
 
25507
 
 
25508
 
 
25509
#line 25510 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25510
} // closed Puma
 
25511
class CCExprResolve;
 
25512
class CExprResolve;
 
25513
class WinIfExists;
 
25514
class WinImportHandler;
 
25515
class WinMacros;
 
25516
class WinAsm;
 
25517
class WinDeclSpecs;
 
25518
class WinMemberExplSpec;
 
25519
class WinTypeKeywords;
 
25520
class WinFriend;
 
25521
class ExtAC;
 
25522
class ExtACBuilderCoupling;
 
25523
class ExtACSyntaxCoupling;
 
25524
class ExtACTree;
 
25525
class ExtACKeywords;
 
25526
class ExtGnu;
 
25527
class PragmaOnceUnitState;
 
25528
class PragmaOnce;
 
25529
class CMatchSyntax;
 
25530
namespace Puma {
 
25531
 
 
25532
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25533
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
 
25534
#line 25535 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25535
  friend class ::CCExprResolve;
 
25536
  friend class ::CExprResolve;
 
25537
  friend class ::WinIfExists;
 
25538
  friend class ::WinImportHandler;
 
25539
  friend class ::WinMacros;
 
25540
  friend class ::WinAsm;
 
25541
  friend class ::WinDeclSpecs;
 
25542
  friend class ::WinMemberExplSpec;
 
25543
  friend class ::WinTypeKeywords;
 
25544
  friend class ::WinFriend;
 
25545
  friend class ::ExtAC;
 
25546
  friend class ::ExtACBuilderCoupling;
 
25547
  friend class ::ExtACSyntaxCoupling;
 
25548
  friend class ::ExtACTree;
 
25549
  friend class ::ExtACKeywords;
 
25550
  friend class ::ExtGnu;
 
25551
  friend class ::PragmaOnceUnitState;
 
25552
  friend class ::PragmaOnce;
 
25553
  friend class ::CMatchSyntax;
 
25554
 
 
25555
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25556
 
 
25557
  CTree *sons[3]; // declarator, ext, init
 
25558
  CTree *obj_decl;
 
25559
 
 
25560
public:
 
25561
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
25562
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
25563
    AddSon (obj_decl, 0); 
 
25564
  }
 
25565
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25566
  static const char *NodeId ();
 
25567
  /** Get the name of the node. Can be compared with NodeId(). */
 
25568
  const char *NodeName () const { return NodeId (); }
 
25569
  /** Get the number of sons. */
 
25570
  int Sons () const { return CTree::Sons (sons, 3); }
 
25571
  /** Get the n-th son.
 
25572
   *  \param n The index of the son.
 
25573
   *  \return The n-th son or NULL. */
 
25574
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
25575
  CTree *Declarator () const { return sons[0]; }
 
25576
  CTree *Extension () const { return sons[1]; }
 
25577
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
25578
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
25579
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
25580
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
25581
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
25582
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
25583
  /** Replace a son.
 
25584
   *  \param old_son The son to replace.
 
25585
   *  \param new_son The new son. */
 
25586
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25587
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
25588
  }
 
25589
};
 
25590
 
 
25591
 
 
25592
#line 25593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25593
} // closed Puma
 
25594
class CCExprResolve;
 
25595
class CExprResolve;
 
25596
class WinIfExists;
 
25597
class WinImportHandler;
 
25598
class WinMacros;
 
25599
class WinAsm;
 
25600
class WinDeclSpecs;
 
25601
class WinMemberExplSpec;
 
25602
class WinTypeKeywords;
 
25603
class WinFriend;
 
25604
class ExtAC;
 
25605
class ExtACBuilderCoupling;
 
25606
class ExtACSyntaxCoupling;
 
25607
class ExtACTree;
 
25608
class ExtACKeywords;
 
25609
class ExtGnu;
 
25610
class PragmaOnceUnitState;
 
25611
class PragmaOnce;
 
25612
class CMatchSyntax;
 
25613
namespace Puma {
 
25614
 
 
25615
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25616
class CT_BracedDeclarator : public CT_Declarator {
 
25617
#line 25618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25618
  friend class ::CCExprResolve;
 
25619
  friend class ::CExprResolve;
 
25620
  friend class ::WinIfExists;
 
25621
  friend class ::WinImportHandler;
 
25622
  friend class ::WinMacros;
 
25623
  friend class ::WinAsm;
 
25624
  friend class ::WinDeclSpecs;
 
25625
  friend class ::WinMemberExplSpec;
 
25626
  friend class ::WinTypeKeywords;
 
25627
  friend class ::WinFriend;
 
25628
  friend class ::ExtAC;
 
25629
  friend class ::ExtACBuilderCoupling;
 
25630
  friend class ::ExtACSyntaxCoupling;
 
25631
  friend class ::ExtACTree;
 
25632
  friend class ::ExtACKeywords;
 
25633
  friend class ::ExtGnu;
 
25634
  friend class ::PragmaOnceUnitState;
 
25635
  friend class ::PragmaOnce;
 
25636
  friend class ::CMatchSyntax;
 
25637
 
 
25638
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25639
 
 
25640
  CTree *sons[4]; // open, win_specs, declarator, close
 
25641
 
 
25642
public:
 
25643
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
 
25644
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
25645
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
25646
  }
 
25647
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
 
25648
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
25649
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
25650
  }
 
25651
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25652
  static const char *NodeId ();
 
25653
  /** Get the name of the node. Can be compared with NodeId(). */
 
25654
  const char *NodeName () const { return NodeId (); }
 
25655
  /** Get the number of sons. */
 
25656
  int Sons () const { return CTree::Sons (sons, 4); }
 
25657
  /** Get the n-th son.
 
25658
   *  \param n The index of the son.
 
25659
   *  \return The n-th son or NULL. */
 
25660
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
25661
  CTree *Declarator () const { return sons[2]; }
 
25662
  /** Replace a son.
 
25663
   *  \param old_son The son to replace.
 
25664
   *  \param new_son The new son. */
 
25665
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25666
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
25667
  }
 
25668
};
 
25669
 
 
25670
 
 
25671
#line 25672 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25672
} // closed Puma
 
25673
class CCExprResolve;
 
25674
class CExprResolve;
 
25675
class WinIfExists;
 
25676
class WinImportHandler;
 
25677
class WinMacros;
 
25678
class WinAsm;
 
25679
class WinDeclSpecs;
 
25680
class WinMemberExplSpec;
 
25681
class WinTypeKeywords;
 
25682
class WinFriend;
 
25683
class ExtAC;
 
25684
class ExtACBuilderCoupling;
 
25685
class ExtACSyntaxCoupling;
 
25686
class ExtACTree;
 
25687
class ExtACKeywords;
 
25688
class ExtGnu;
 
25689
class PragmaOnceUnitState;
 
25690
class PragmaOnce;
 
25691
class CMatchSyntax;
 
25692
namespace Puma {
 
25693
 
 
25694
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25695
class CT_ArrayDelimiter : public CTree {
 
25696
#line 25697 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25697
  friend class ::CCExprResolve;
 
25698
  friend class ::CExprResolve;
 
25699
  friend class ::WinIfExists;
 
25700
  friend class ::WinImportHandler;
 
25701
  friend class ::WinMacros;
 
25702
  friend class ::WinAsm;
 
25703
  friend class ::WinDeclSpecs;
 
25704
  friend class ::WinMemberExplSpec;
 
25705
  friend class ::WinTypeKeywords;
 
25706
  friend class ::WinFriend;
 
25707
  friend class ::ExtAC;
 
25708
  friend class ::ExtACBuilderCoupling;
 
25709
  friend class ::ExtACSyntaxCoupling;
 
25710
  friend class ::ExtACTree;
 
25711
  friend class ::ExtACKeywords;
 
25712
  friend class ::ExtGnu;
 
25713
  friend class ::PragmaOnceUnitState;
 
25714
  friend class ::PragmaOnce;
 
25715
  friend class ::CMatchSyntax;
 
25716
 
 
25717
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25718
 
 
25719
  CTree *sons[4]; // star, static, quals, expr
 
25720
  bool pos0;
 
25721
 
 
25722
public:
 
25723
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
 
25724
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
25725
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
 
25726
  }
 
25727
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25728
  static const char *NodeId ();
 
25729
  /** Get the name of the node. Can be compared with NodeId(). */
 
25730
  const char *NodeName () const { return NodeId (); }
 
25731
  /** Get the number of sons. */
 
25732
  int Sons () const { return CTree::Sons (sons, 4); }
 
25733
  /** Get the n-th son.
 
25734
   *  \param n The index of the son.
 
25735
   *  \return The n-th son or NULL. */
 
25736
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
25737
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
 
25738
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
 
25739
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
 
25740
  CTree *Expr () const { return sons[3]; }
 
25741
  /** Replace a son.
 
25742
   *  \param old_son The son to replace.
 
25743
   *  \param new_son The new son. */
 
25744
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25745
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
25746
  }
 
25747
};
 
25748
 
 
25749
 
 
25750
#line 25751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25751
} // closed Puma
 
25752
class CCExprResolve;
 
25753
class CExprResolve;
 
25754
class WinIfExists;
 
25755
class WinImportHandler;
 
25756
class WinMacros;
 
25757
class WinAsm;
 
25758
class WinDeclSpecs;
 
25759
class WinMemberExplSpec;
 
25760
class WinTypeKeywords;
 
25761
class WinFriend;
 
25762
class ExtAC;
 
25763
class ExtACBuilderCoupling;
 
25764
class ExtACSyntaxCoupling;
 
25765
class ExtACTree;
 
25766
class ExtACKeywords;
 
25767
class ExtGnu;
 
25768
class PragmaOnceUnitState;
 
25769
class PragmaOnce;
 
25770
class CMatchSyntax;
 
25771
namespace Puma {
 
25772
 
 
25773
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25774
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
 
25775
#line 25776 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25776
  friend class ::CCExprResolve;
 
25777
  friend class ::CExprResolve;
 
25778
  friend class ::WinIfExists;
 
25779
  friend class ::WinImportHandler;
 
25780
  friend class ::WinMacros;
 
25781
  friend class ::WinAsm;
 
25782
  friend class ::WinDeclSpecs;
 
25783
  friend class ::WinMemberExplSpec;
 
25784
  friend class ::WinTypeKeywords;
 
25785
  friend class ::WinFriend;
 
25786
  friend class ::ExtAC;
 
25787
  friend class ::ExtACBuilderCoupling;
 
25788
  friend class ::ExtACSyntaxCoupling;
 
25789
  friend class ::ExtACTree;
 
25790
  friend class ::ExtACKeywords;
 
25791
  friend class ::ExtGnu;
 
25792
  friend class ::PragmaOnceUnitState;
 
25793
  friend class ::PragmaOnce;
 
25794
  friend class ::CMatchSyntax;
 
25795
 
 
25796
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25797
 
 
25798
  CTree *sons[4]; // declarator, open, delim, close
 
25799
 
 
25800
public:
 
25801
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
 
25802
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
25803
    AddSon (sons[2], ad); AddSon (sons[3], c); 
 
25804
  }
 
25805
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25806
  static const char *NodeId ();
 
25807
  /** Get the name of the node. Can be compared with NodeId(). */
 
25808
  const char *NodeName () const { return NodeId (); }
 
25809
  /** Get the number of sons. */
 
25810
  int Sons () const { return 4; }
 
25811
  /** Get the n-th son.
 
25812
   *  \param n The index of the son.
 
25813
   *  \return The n-th son or NULL. */
 
25814
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
25815
  CTree *Declarator () const { return sons[0]; }
 
25816
  CT_ArrayDelimiter *Delimiter () const 
 
25817
   { return (CT_ArrayDelimiter*)sons[2]; }
 
25818
  /** Replace a son.
 
25819
   *  \param old_son The son to replace.
 
25820
   *  \param new_son The new son. */
 
25821
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25822
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
25823
  }
 
25824
  CTypeInfo *Type () const { return type; }
 
25825
  CExprValue *Value () const { return value; }
 
25826
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
25827
};
 
25828
 
 
25829
 
 
25830
#line 25831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25831
} // closed Puma
 
25832
class CCExprResolve;
 
25833
class CExprResolve;
 
25834
class WinIfExists;
 
25835
class WinImportHandler;
 
25836
class WinMacros;
 
25837
class WinAsm;
 
25838
class WinDeclSpecs;
 
25839
class WinMemberExplSpec;
 
25840
class WinTypeKeywords;
 
25841
class WinFriend;
 
25842
class ExtAC;
 
25843
class ExtACBuilderCoupling;
 
25844
class ExtACSyntaxCoupling;
 
25845
class ExtACTree;
 
25846
class ExtACKeywords;
 
25847
class ExtGnu;
 
25848
class PragmaOnceUnitState;
 
25849
class PragmaOnce;
 
25850
class CMatchSyntax;
 
25851
namespace Puma {
 
25852
 
 
25853
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25854
class CT_FctDeclarator : public CT_Declarator {
 
25855
#line 25856 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25856
  friend class ::CCExprResolve;
 
25857
  friend class ::CExprResolve;
 
25858
  friend class ::WinIfExists;
 
25859
  friend class ::WinImportHandler;
 
25860
  friend class ::WinMacros;
 
25861
  friend class ::WinAsm;
 
25862
  friend class ::WinDeclSpecs;
 
25863
  friend class ::WinMemberExplSpec;
 
25864
  friend class ::WinTypeKeywords;
 
25865
  friend class ::WinFriend;
 
25866
  friend class ::ExtAC;
 
25867
  friend class ::ExtACBuilderCoupling;
 
25868
  friend class ::ExtACSyntaxCoupling;
 
25869
  friend class ::ExtACTree;
 
25870
  friend class ::ExtACKeywords;
 
25871
  friend class ::ExtGnu;
 
25872
  friend class ::PragmaOnceUnitState;
 
25873
  friend class ::PragmaOnce;
 
25874
  friend class ::CMatchSyntax;
 
25875
 
 
25876
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25877
 
 
25878
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
 
25879
 
 
25880
public:
 
25881
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
 
25882
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
25883
    AddSon (sons[2], cv); AddSon (sons[3], es); 
 
25884
  }
 
25885
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25886
  static const char *NodeId ();
 
25887
  /** Get the name of the node. Can be compared with NodeId(). */
 
25888
  const char *NodeName () const { return NodeId (); }
 
25889
  /** Get the number of sons. */
 
25890
  int Sons () const { return CTree::Sons (sons, 4); }
 
25891
  /** Get the n-th son.
 
25892
   *  \param n The index of the son.
 
25893
   *  \return The n-th son or NULL. */
 
25894
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
25895
  CTree *Declarator () const { return sons[0]; }
 
25896
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
25897
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
 
25898
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
25899
  /** Replace a son.
 
25900
   *  \param old_son The son to replace.
 
25901
   *  \param new_son The new son. */
 
25902
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25903
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
25904
  }
 
25905
};
 
25906
 
 
25907
 
 
25908
#line 25909 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25909
} // closed Puma
 
25910
class CCExprResolve;
 
25911
class CExprResolve;
 
25912
class WinIfExists;
 
25913
class WinImportHandler;
 
25914
class WinMacros;
 
25915
class WinAsm;
 
25916
class WinDeclSpecs;
 
25917
class WinMemberExplSpec;
 
25918
class WinTypeKeywords;
 
25919
class WinFriend;
 
25920
class ExtAC;
 
25921
class ExtACBuilderCoupling;
 
25922
class ExtACSyntaxCoupling;
 
25923
class ExtACTree;
 
25924
class ExtACKeywords;
 
25925
class ExtGnu;
 
25926
class PragmaOnceUnitState;
 
25927
class PragmaOnce;
 
25928
class CMatchSyntax;
 
25929
namespace Puma {
 
25930
 
 
25931
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25932
class CT_RefDeclarator : public CT_Declarator {
 
25933
#line 25934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25934
  friend class ::CCExprResolve;
 
25935
  friend class ::CExprResolve;
 
25936
  friend class ::WinIfExists;
 
25937
  friend class ::WinImportHandler;
 
25938
  friend class ::WinMacros;
 
25939
  friend class ::WinAsm;
 
25940
  friend class ::WinDeclSpecs;
 
25941
  friend class ::WinMemberExplSpec;
 
25942
  friend class ::WinTypeKeywords;
 
25943
  friend class ::WinFriend;
 
25944
  friend class ::ExtAC;
 
25945
  friend class ::ExtACBuilderCoupling;
 
25946
  friend class ::ExtACSyntaxCoupling;
 
25947
  friend class ::ExtACTree;
 
25948
  friend class ::ExtACKeywords;
 
25949
  friend class ::ExtGnu;
 
25950
  friend class ::PragmaOnceUnitState;
 
25951
  friend class ::PragmaOnce;
 
25952
  friend class ::CMatchSyntax;
 
25953
 
 
25954
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25955
 
 
25956
  CTree *sons[2]; // ref, declarator
 
25957
 
 
25958
public:
 
25959
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
25960
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25961
  static const char *NodeId ();
 
25962
  /** Get the name of the node. Can be compared with NodeId(). */
 
25963
  const char *NodeName () const { return NodeId (); }
 
25964
  /** Get the number of sons. */
 
25965
  int Sons () const { return 2; }
 
25966
  /** Get the n-th son.
 
25967
   *  \param n The index of the son.
 
25968
   *  \return The n-th son or NULL. */
 
25969
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
25970
  CTree *Declarator () const { return sons[1]; }
 
25971
  /** Replace a son.
 
25972
   *  \param old_son The son to replace.
 
25973
   *  \param new_son The new son. */
 
25974
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
25975
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
25976
  }
 
25977
};
 
25978
 
 
25979
 
 
25980
#line 25981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
25981
} // closed Puma
 
25982
class CCExprResolve;
 
25983
class CExprResolve;
 
25984
class WinIfExists;
 
25985
class WinImportHandler;
 
25986
class WinMacros;
 
25987
class WinAsm;
 
25988
class WinDeclSpecs;
 
25989
class WinMemberExplSpec;
 
25990
class WinTypeKeywords;
 
25991
class WinFriend;
 
25992
class ExtAC;
 
25993
class ExtACBuilderCoupling;
 
25994
class ExtACSyntaxCoupling;
 
25995
class ExtACTree;
 
25996
class ExtACKeywords;
 
25997
class ExtGnu;
 
25998
class PragmaOnceUnitState;
 
25999
class PragmaOnce;
 
26000
class CMatchSyntax;
 
26001
namespace Puma {
 
26002
 
 
26003
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26004
class CT_PtrDeclarator : public CT_Declarator {
 
26005
#line 26006 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26006
  friend class ::CCExprResolve;
 
26007
  friend class ::CExprResolve;
 
26008
  friend class ::WinIfExists;
 
26009
  friend class ::WinImportHandler;
 
26010
  friend class ::WinMacros;
 
26011
  friend class ::WinAsm;
 
26012
  friend class ::WinDeclSpecs;
 
26013
  friend class ::WinMemberExplSpec;
 
26014
  friend class ::WinTypeKeywords;
 
26015
  friend class ::WinFriend;
 
26016
  friend class ::ExtAC;
 
26017
  friend class ::ExtACBuilderCoupling;
 
26018
  friend class ::ExtACSyntaxCoupling;
 
26019
  friend class ::ExtACTree;
 
26020
  friend class ::ExtACKeywords;
 
26021
  friend class ::ExtGnu;
 
26022
  friend class ::PragmaOnceUnitState;
 
26023
  friend class ::PragmaOnce;
 
26024
  friend class ::CMatchSyntax;
 
26025
 
 
26026
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26027
 
 
26028
  CTree *sons[3]; // ptr, cv_quals, declarator
 
26029
 
 
26030
public:
 
26031
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
 
26032
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
 
26033
  }
 
26034
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26035
  static const char *NodeId ();
 
26036
  /** Get the name of the node. Can be compared with NodeId(). */
 
26037
  const char *NodeName () const { return NodeId (); }
 
26038
  /** Get the number of sons. */
 
26039
  int Sons () const { return CTree::Sons (sons, 3); }
 
26040
  /** Get the n-th son.
 
26041
   *  \param n The index of the son.
 
26042
   *  \return The n-th son or NULL. */
 
26043
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
26044
  CTree *Declarator () const { return sons[2]; }
 
26045
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
26046
  /** Replace a son.
 
26047
   *  \param old_son The son to replace.
 
26048
   *  \param new_son The new son. */
 
26049
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26050
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
26051
  }
 
26052
};
 
26053
 
 
26054
 
 
26055
#line 26056 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26056
} // closed Puma
 
26057
class CCExprResolve;
 
26058
class CExprResolve;
 
26059
class WinIfExists;
 
26060
class WinImportHandler;
 
26061
class WinMacros;
 
26062
class WinAsm;
 
26063
class WinDeclSpecs;
 
26064
class WinMemberExplSpec;
 
26065
class WinTypeKeywords;
 
26066
class WinFriend;
 
26067
class ExtAC;
 
26068
class ExtACBuilderCoupling;
 
26069
class ExtACSyntaxCoupling;
 
26070
class ExtACTree;
 
26071
class ExtACKeywords;
 
26072
class ExtGnu;
 
26073
class PragmaOnceUnitState;
 
26074
class PragmaOnce;
 
26075
class CMatchSyntax;
 
26076
namespace Puma {
 
26077
 
 
26078
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26079
class CT_MembPtrDeclarator : public CT_Declarator {
 
26080
#line 26081 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26081
  friend class ::CCExprResolve;
 
26082
  friend class ::CExprResolve;
 
26083
  friend class ::WinIfExists;
 
26084
  friend class ::WinImportHandler;
 
26085
  friend class ::WinMacros;
 
26086
  friend class ::WinAsm;
 
26087
  friend class ::WinDeclSpecs;
 
26088
  friend class ::WinMemberExplSpec;
 
26089
  friend class ::WinTypeKeywords;
 
26090
  friend class ::WinFriend;
 
26091
  friend class ::ExtAC;
 
26092
  friend class ::ExtACBuilderCoupling;
 
26093
  friend class ::ExtACSyntaxCoupling;
 
26094
  friend class ::ExtACTree;
 
26095
  friend class ::ExtACKeywords;
 
26096
  friend class ::ExtGnu;
 
26097
  friend class ::PragmaOnceUnitState;
 
26098
  friend class ::PragmaOnce;
 
26099
  friend class ::CMatchSyntax;
 
26100
 
 
26101
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26102
 
 
26103
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
 
26104
 
 
26105
public:
 
26106
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
 
26107
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
26108
    AddSon (sons[3], q); AddSon (sons[4], d); 
 
26109
  }
 
26110
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26111
  static const char *NodeId ();
 
26112
  /** Get the name of the node. Can be compared with NodeId(). */
 
26113
  const char *NodeName () const { return NodeId (); }
 
26114
  /** Get the number of sons. */
 
26115
  int Sons () const { return CTree::Sons (sons, 5); }
 
26116
  /** Get the n-th son.
 
26117
   *  \param n The index of the son.
 
26118
   *  \return The n-th son or NULL. */
 
26119
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
26120
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
26121
  CTree *Declarator () const { return sons[4]; }
 
26122
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
26123
  /** Replace a son.
 
26124
   *  \param old_son The son to replace.
 
26125
   *  \param new_son The new son. */
 
26126
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26127
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
26128
  }
 
26129
};
 
26130
 
 
26131
 
 
26132
#line 26133 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26133
} // closed Puma
 
26134
class CCExprResolve;
 
26135
class CExprResolve;
 
26136
class WinIfExists;
 
26137
class WinImportHandler;
 
26138
class WinMacros;
 
26139
class WinAsm;
 
26140
class WinDeclSpecs;
 
26141
class WinMemberExplSpec;
 
26142
class WinTypeKeywords;
 
26143
class WinFriend;
 
26144
class ExtAC;
 
26145
class ExtACBuilderCoupling;
 
26146
class ExtACSyntaxCoupling;
 
26147
class ExtACTree;
 
26148
class ExtACKeywords;
 
26149
class ExtGnu;
 
26150
class PragmaOnceUnitState;
 
26151
class PragmaOnce;
 
26152
class CMatchSyntax;
 
26153
namespace Puma {
 
26154
 
 
26155
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26156
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
 
26157
#line 26158 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26158
  friend class ::CCExprResolve;
 
26159
  friend class ::CExprResolve;
 
26160
  friend class ::WinIfExists;
 
26161
  friend class ::WinImportHandler;
 
26162
  friend class ::WinMacros;
 
26163
  friend class ::WinAsm;
 
26164
  friend class ::WinDeclSpecs;
 
26165
  friend class ::WinMemberExplSpec;
 
26166
  friend class ::WinTypeKeywords;
 
26167
  friend class ::WinFriend;
 
26168
  friend class ::ExtAC;
 
26169
  friend class ::ExtACBuilderCoupling;
 
26170
  friend class ::ExtACSyntaxCoupling;
 
26171
  friend class ::ExtACTree;
 
26172
  friend class ::ExtACKeywords;
 
26173
  friend class ::ExtGnu;
 
26174
  friend class ::PragmaOnceUnitState;
 
26175
  friend class ::PragmaOnce;
 
26176
  friend class ::CMatchSyntax;
 
26177
 
 
26178
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26179
 
 
26180
  CTree *sons[3]; // declarator, colon, expr
 
26181
 
 
26182
public:
 
26183
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
 
26184
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
 
26185
  }
 
26186
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26187
  static const char *NodeId ();
 
26188
  /** Get the name of the node. Can be compared with NodeId(). */
 
26189
  const char *NodeName () const { return NodeId (); }
 
26190
  /** Get the number of sons. */
 
26191
  int Sons () const { return CTree::Sons (sons, 3); }
 
26192
  /** Get the n-th son.
 
26193
   *  \param n The index of the son.
 
26194
   *  \return The n-th son or NULL. */
 
26195
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
26196
  CTree *Declarator () const { return sons[0]; }
 
26197
  CTree *Expr () const { return sons[2]; }
 
26198
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
 
26199
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
26200
  /** Replace a son.
 
26201
   *  \param old_son The son to replace.
 
26202
   *  \param new_son The new son. */
 
26203
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26204
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
26205
  }
 
26206
};
 
26207
 
 
26208
/*****************************************************************************/
 
26209
/*                                                                           */
 
26210
/*                              Statements                                   */
 
26211
/*                                                                           */
 
26212
/*****************************************************************************/
 
26213
 
 
26214
 
 
26215
#line 26216 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26216
} // closed Puma
 
26217
class CCExprResolve;
 
26218
class CExprResolve;
 
26219
class WinIfExists;
 
26220
class WinImportHandler;
 
26221
class WinMacros;
 
26222
class WinAsm;
 
26223
class WinDeclSpecs;
 
26224
class WinMemberExplSpec;
 
26225
class WinTypeKeywords;
 
26226
class WinFriend;
 
26227
class ExtAC;
 
26228
class ExtACBuilderCoupling;
 
26229
class ExtACSyntaxCoupling;
 
26230
class ExtACTree;
 
26231
class ExtACKeywords;
 
26232
class ExtGnu;
 
26233
class PragmaOnceUnitState;
 
26234
class PragmaOnce;
 
26235
class CMatchSyntax;
 
26236
namespace Puma {
 
26237
 
 
26238
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26239
class CT_Statement : public CTree {
 
26240
#line 26241 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26241
  friend class ::CCExprResolve;
 
26242
  friend class ::CExprResolve;
 
26243
  friend class ::WinIfExists;
 
26244
  friend class ::WinImportHandler;
 
26245
  friend class ::WinMacros;
 
26246
  friend class ::WinAsm;
 
26247
  friend class ::WinDeclSpecs;
 
26248
  friend class ::WinMemberExplSpec;
 
26249
  friend class ::WinTypeKeywords;
 
26250
  friend class ::WinFriend;
 
26251
  friend class ::ExtAC;
 
26252
  friend class ::ExtACBuilderCoupling;
 
26253
  friend class ::ExtACSyntaxCoupling;
 
26254
  friend class ::ExtACTree;
 
26255
  friend class ::ExtACKeywords;
 
26256
  friend class ::ExtGnu;
 
26257
  friend class ::PragmaOnceUnitState;
 
26258
  friend class ::PragmaOnce;
 
26259
  friend class ::CMatchSyntax;
 
26260
 
 
26261
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26262
 
 
26263
protected:
 
26264
  CT_Statement () {}
 
26265
  virtual CT_Statement *IsStatement () { return this; }
 
26266
};
 
26267
 
 
26268
 
 
26269
#line 26270 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26270
} // closed Puma
 
26271
class CCExprResolve;
 
26272
class CExprResolve;
 
26273
class WinIfExists;
 
26274
class WinImportHandler;
 
26275
class WinMacros;
 
26276
class WinAsm;
 
26277
class WinDeclSpecs;
 
26278
class WinMemberExplSpec;
 
26279
class WinTypeKeywords;
 
26280
class WinFriend;
 
26281
class ExtAC;
 
26282
class ExtACBuilderCoupling;
 
26283
class ExtACSyntaxCoupling;
 
26284
class ExtACTree;
 
26285
class ExtACKeywords;
 
26286
class ExtGnu;
 
26287
class PragmaOnceUnitState;
 
26288
class PragmaOnce;
 
26289
class CMatchSyntax;
 
26290
namespace Puma {
 
26291
 
 
26292
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26293
class CT_LabelStmt : public CT_Statement {
 
26294
#line 26295 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26295
  friend class ::CCExprResolve;
 
26296
  friend class ::CExprResolve;
 
26297
  friend class ::WinIfExists;
 
26298
  friend class ::WinImportHandler;
 
26299
  friend class ::WinMacros;
 
26300
  friend class ::WinAsm;
 
26301
  friend class ::WinDeclSpecs;
 
26302
  friend class ::WinMemberExplSpec;
 
26303
  friend class ::WinTypeKeywords;
 
26304
  friend class ::WinFriend;
 
26305
  friend class ::ExtAC;
 
26306
  friend class ::ExtACBuilderCoupling;
 
26307
  friend class ::ExtACSyntaxCoupling;
 
26308
  friend class ::ExtACTree;
 
26309
  friend class ::ExtACKeywords;
 
26310
  friend class ::ExtGnu;
 
26311
  friend class ::PragmaOnceUnitState;
 
26312
  friend class ::PragmaOnce;
 
26313
  friend class ::CMatchSyntax;
 
26314
 
 
26315
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26316
 
 
26317
  CTree *sons[3]; // id, colon, stmt
 
26318
 
 
26319
public:
 
26320
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
 
26321
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
26322
  }
 
26323
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26324
  static const char *NodeId ();
 
26325
  /** Get the name of the node. Can be compared with NodeId(). */
 
26326
  const char *NodeName () const { return NodeId (); }
 
26327
  /** Get the number of sons. */
 
26328
  int Sons () const { return 3; }
 
26329
  /** Get the n-th son.
 
26330
   *  \param n The index of the son.
 
26331
   *  \return The n-th son or NULL. */
 
26332
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
26333
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
26334
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
26335
  /** Replace a son.
 
26336
   *  \param old_son The son to replace.
 
26337
   *  \param new_son The new son. */
 
26338
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26339
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
26340
  }
 
26341
};
 
26342
 
 
26343
 
 
26344
#line 26345 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26345
} // closed Puma
 
26346
class CCExprResolve;
 
26347
class CExprResolve;
 
26348
class WinIfExists;
 
26349
class WinImportHandler;
 
26350
class WinMacros;
 
26351
class WinAsm;
 
26352
class WinDeclSpecs;
 
26353
class WinMemberExplSpec;
 
26354
class WinTypeKeywords;
 
26355
class WinFriend;
 
26356
class ExtAC;
 
26357
class ExtACBuilderCoupling;
 
26358
class ExtACSyntaxCoupling;
 
26359
class ExtACTree;
 
26360
class ExtACKeywords;
 
26361
class ExtGnu;
 
26362
class PragmaOnceUnitState;
 
26363
class PragmaOnce;
 
26364
class CMatchSyntax;
 
26365
namespace Puma {
 
26366
 
 
26367
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26368
class CT_DefaultStmt : public CT_Statement {
 
26369
#line 26370 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26370
  friend class ::CCExprResolve;
 
26371
  friend class ::CExprResolve;
 
26372
  friend class ::WinIfExists;
 
26373
  friend class ::WinImportHandler;
 
26374
  friend class ::WinMacros;
 
26375
  friend class ::WinAsm;
 
26376
  friend class ::WinDeclSpecs;
 
26377
  friend class ::WinMemberExplSpec;
 
26378
  friend class ::WinTypeKeywords;
 
26379
  friend class ::WinFriend;
 
26380
  friend class ::ExtAC;
 
26381
  friend class ::ExtACBuilderCoupling;
 
26382
  friend class ::ExtACSyntaxCoupling;
 
26383
  friend class ::ExtACTree;
 
26384
  friend class ::ExtACKeywords;
 
26385
  friend class ::ExtGnu;
 
26386
  friend class ::PragmaOnceUnitState;
 
26387
  friend class ::PragmaOnce;
 
26388
  friend class ::CMatchSyntax;
 
26389
 
 
26390
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26391
 
 
26392
  CTree *sons[3]; // keyword, colon, stmt
 
26393
 
 
26394
public:
 
26395
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
 
26396
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
26397
  }
 
26398
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26399
  static const char *NodeId ();
 
26400
  /** Get the name of the node. Can be compared with NodeId(). */
 
26401
  const char *NodeName () const { return NodeId (); }
 
26402
  /** Get the number of sons. */
 
26403
  int Sons () const { return 3; }
 
26404
  /** Get the n-th son.
 
26405
   *  \param n The index of the son.
 
26406
   *  \return The n-th son or NULL. */
 
26407
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
26408
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
26409
  /** Replace a son.
 
26410
   *  \param old_son The son to replace.
 
26411
   *  \param new_son The new son. */
 
26412
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26413
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
26414
  }
 
26415
};
 
26416
 
 
26417
 
 
26418
#line 26419 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26419
} // closed Puma
 
26420
class CCExprResolve;
 
26421
class CExprResolve;
 
26422
class WinIfExists;
 
26423
class WinImportHandler;
 
26424
class WinMacros;
 
26425
class WinAsm;
 
26426
class WinDeclSpecs;
 
26427
class WinMemberExplSpec;
 
26428
class WinTypeKeywords;
 
26429
class WinFriend;
 
26430
class ExtAC;
 
26431
class ExtACBuilderCoupling;
 
26432
class ExtACSyntaxCoupling;
 
26433
class ExtACTree;
 
26434
class ExtACKeywords;
 
26435
class ExtGnu;
 
26436
class PragmaOnceUnitState;
 
26437
class PragmaOnce;
 
26438
class CMatchSyntax;
 
26439
namespace Puma {
 
26440
 
 
26441
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26442
class CT_TryStmt : public CT_Statement {
 
26443
#line 26444 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26444
  friend class ::CCExprResolve;
 
26445
  friend class ::CExprResolve;
 
26446
  friend class ::WinIfExists;
 
26447
  friend class ::WinImportHandler;
 
26448
  friend class ::WinMacros;
 
26449
  friend class ::WinAsm;
 
26450
  friend class ::WinDeclSpecs;
 
26451
  friend class ::WinMemberExplSpec;
 
26452
  friend class ::WinTypeKeywords;
 
26453
  friend class ::WinFriend;
 
26454
  friend class ::ExtAC;
 
26455
  friend class ::ExtACBuilderCoupling;
 
26456
  friend class ::ExtACSyntaxCoupling;
 
26457
  friend class ::ExtACTree;
 
26458
  friend class ::ExtACKeywords;
 
26459
  friend class ::ExtGnu;
 
26460
  friend class ::PragmaOnceUnitState;
 
26461
  friend class ::PragmaOnce;
 
26462
  friend class ::CMatchSyntax;
 
26463
 
 
26464
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26465
 
 
26466
  CTree *sons[3]; // try, stmt, handlers
 
26467
 
 
26468
public:
 
26469
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
 
26470
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
 
26471
  }
 
26472
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26473
  static const char *NodeId ();
 
26474
  /** Get the name of the node. Can be compared with NodeId(). */
 
26475
  const char *NodeName () const { return NodeId (); }
 
26476
  /** Get the number of sons. */
 
26477
  int Sons () const { return 3; }
 
26478
  /** Get the n-th son.
 
26479
   *  \param n The index of the son.
 
26480
   *  \return The n-th son or NULL. */
 
26481
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
26482
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
26483
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
26484
  /** Replace a son.
 
26485
   *  \param old_son The son to replace.
 
26486
   *  \param new_son The new son. */
 
26487
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26488
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
26489
  }
 
26490
};
 
26491
 
 
26492
 
 
26493
#line 26494 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26494
} // closed Puma
 
26495
class CCExprResolve;
 
26496
class CExprResolve;
 
26497
class WinIfExists;
 
26498
class WinImportHandler;
 
26499
class WinMacros;
 
26500
class WinAsm;
 
26501
class WinDeclSpecs;
 
26502
class WinMemberExplSpec;
 
26503
class WinTypeKeywords;
 
26504
class WinFriend;
 
26505
class ExtAC;
 
26506
class ExtACBuilderCoupling;
 
26507
class ExtACSyntaxCoupling;
 
26508
class ExtACTree;
 
26509
class ExtACKeywords;
 
26510
class ExtGnu;
 
26511
class PragmaOnceUnitState;
 
26512
class PragmaOnce;
 
26513
class CMatchSyntax;
 
26514
namespace Puma {
 
26515
 
 
26516
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26517
class CT_CaseStmt : public CT_Statement {
 
26518
#line 26519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26519
  friend class ::CCExprResolve;
 
26520
  friend class ::CExprResolve;
 
26521
  friend class ::WinIfExists;
 
26522
  friend class ::WinImportHandler;
 
26523
  friend class ::WinMacros;
 
26524
  friend class ::WinAsm;
 
26525
  friend class ::WinDeclSpecs;
 
26526
  friend class ::WinMemberExplSpec;
 
26527
  friend class ::WinTypeKeywords;
 
26528
  friend class ::WinFriend;
 
26529
  friend class ::ExtAC;
 
26530
  friend class ::ExtACBuilderCoupling;
 
26531
  friend class ::ExtACSyntaxCoupling;
 
26532
  friend class ::ExtACTree;
 
26533
  friend class ::ExtACKeywords;
 
26534
  friend class ::ExtGnu;
 
26535
  friend class ::PragmaOnceUnitState;
 
26536
  friend class ::PragmaOnce;
 
26537
  friend class ::CMatchSyntax;
 
26538
 
 
26539
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26540
 
 
26541
  CTree *sons[4]; // keyword, expr, colon, stmt
 
26542
 
 
26543
public:
 
26544
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
 
26545
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
26546
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
 
26547
  }
 
26548
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26549
  static const char *NodeId ();
 
26550
  /** Get the name of the node. Can be compared with NodeId(). */
 
26551
  const char *NodeName () const { return NodeId (); }
 
26552
  /** Get the number of sons. */
 
26553
  int Sons () const { return 4; }
 
26554
  /** Get the n-th son.
 
26555
   *  \param n The index of the son.
 
26556
   *  \return The n-th son or NULL. */
 
26557
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
26558
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
 
26559
  CTree *Expr () const { return sons[1]; }
 
26560
  /** Replace a son.
 
26561
   *  \param old_son The son to replace.
 
26562
   *  \param new_son The new son. */
 
26563
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26564
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
26565
  }
 
26566
};
 
26567
 
 
26568
 
 
26569
#line 26570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26570
} // closed Puma
 
26571
class CCExprResolve;
 
26572
class CExprResolve;
 
26573
class WinIfExists;
 
26574
class WinImportHandler;
 
26575
class WinMacros;
 
26576
class WinAsm;
 
26577
class WinDeclSpecs;
 
26578
class WinMemberExplSpec;
 
26579
class WinTypeKeywords;
 
26580
class WinFriend;
 
26581
class ExtAC;
 
26582
class ExtACBuilderCoupling;
 
26583
class ExtACSyntaxCoupling;
 
26584
class ExtACTree;
 
26585
class ExtACKeywords;
 
26586
class ExtGnu;
 
26587
class PragmaOnceUnitState;
 
26588
class PragmaOnce;
 
26589
class CMatchSyntax;
 
26590
namespace Puma {
 
26591
 
 
26592
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26593
class CT_ExprStmt : public CT_Statement {
 
26594
#line 26595 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26595
  friend class ::CCExprResolve;
 
26596
  friend class ::CExprResolve;
 
26597
  friend class ::WinIfExists;
 
26598
  friend class ::WinImportHandler;
 
26599
  friend class ::WinMacros;
 
26600
  friend class ::WinAsm;
 
26601
  friend class ::WinDeclSpecs;
 
26602
  friend class ::WinMemberExplSpec;
 
26603
  friend class ::WinTypeKeywords;
 
26604
  friend class ::WinFriend;
 
26605
  friend class ::ExtAC;
 
26606
  friend class ::ExtACBuilderCoupling;
 
26607
  friend class ::ExtACSyntaxCoupling;
 
26608
  friend class ::ExtACTree;
 
26609
  friend class ::ExtACKeywords;
 
26610
  friend class ::ExtGnu;
 
26611
  friend class ::PragmaOnceUnitState;
 
26612
  friend class ::PragmaOnce;
 
26613
  friend class ::CMatchSyntax;
 
26614
 
 
26615
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26616
 
 
26617
  CTree *sons[2]; // expr, semi_colon
 
26618
 
 
26619
public:
 
26620
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
26621
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26622
  static const char *NodeId ();
 
26623
  /** Get the name of the node. Can be compared with NodeId(). */
 
26624
  const char *NodeName () const { return NodeId (); }
 
26625
  /** Get the number of sons. */
 
26626
  int Sons () const { return CTree::Sons (sons, 2); }
 
26627
  /** Get the n-th son.
 
26628
   *  \param n The index of the son.
 
26629
   *  \return The n-th son or NULL. */
 
26630
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
26631
  CTree *Expr () const { return sons[0]; }
 
26632
  /** Replace a son.
 
26633
   *  \param old_son The son to replace.
 
26634
   *  \param new_son The new son. */
 
26635
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26636
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
26637
  }
 
26638
};
 
26639
 
 
26640
 
 
26641
#line 26642 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26642
} // closed Puma
 
26643
class CCExprResolve;
 
26644
class CExprResolve;
 
26645
class WinIfExists;
 
26646
class WinImportHandler;
 
26647
class WinMacros;
 
26648
class WinAsm;
 
26649
class WinDeclSpecs;
 
26650
class WinMemberExplSpec;
 
26651
class WinTypeKeywords;
 
26652
class WinFriend;
 
26653
class ExtAC;
 
26654
class ExtACBuilderCoupling;
 
26655
class ExtACSyntaxCoupling;
 
26656
class ExtACTree;
 
26657
class ExtACKeywords;
 
26658
class ExtGnu;
 
26659
class PragmaOnceUnitState;
 
26660
class PragmaOnce;
 
26661
class CMatchSyntax;
 
26662
namespace Puma {
 
26663
 
 
26664
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26665
class CT_DeclStmt : public CT_Statement {
 
26666
#line 26667 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26667
  friend class ::CCExprResolve;
 
26668
  friend class ::CExprResolve;
 
26669
  friend class ::WinIfExists;
 
26670
  friend class ::WinImportHandler;
 
26671
  friend class ::WinMacros;
 
26672
  friend class ::WinAsm;
 
26673
  friend class ::WinDeclSpecs;
 
26674
  friend class ::WinMemberExplSpec;
 
26675
  friend class ::WinTypeKeywords;
 
26676
  friend class ::WinFriend;
 
26677
  friend class ::ExtAC;
 
26678
  friend class ::ExtACBuilderCoupling;
 
26679
  friend class ::ExtACSyntaxCoupling;
 
26680
  friend class ::ExtACTree;
 
26681
  friend class ::ExtACKeywords;
 
26682
  friend class ::ExtGnu;
 
26683
  friend class ::PragmaOnceUnitState;
 
26684
  friend class ::PragmaOnce;
 
26685
  friend class ::CMatchSyntax;
 
26686
 
 
26687
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26688
 
 
26689
  CTree *_decl;
 
26690
 
 
26691
public:
 
26692
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
26693
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26694
  static const char *NodeId ();
 
26695
  /** Get the name of the node. Can be compared with NodeId(). */
 
26696
  const char *NodeName () const { return NodeId (); }
 
26697
  /** Get the number of sons. */
 
26698
  int Sons () const { return 1; }
 
26699
  /** Get the n-th son.
 
26700
   *  \param n The index of the son.
 
26701
   *  \return The n-th son or NULL. */
 
26702
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
26703
  /** Replace a son.
 
26704
   *  \param old_son The son to replace.
 
26705
   *  \param new_son The new son. */
 
26706
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
26707
   { CTree::ReplaceSon (_decl, old_son, new_son); }
 
26708
};
 
26709
 
 
26710
 
 
26711
#line 26712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26712
} // closed Puma
 
26713
class CCExprResolve;
 
26714
class CExprResolve;
 
26715
class WinIfExists;
 
26716
class WinImportHandler;
 
26717
class WinMacros;
 
26718
class WinAsm;
 
26719
class WinDeclSpecs;
 
26720
class WinMemberExplSpec;
 
26721
class WinTypeKeywords;
 
26722
class WinFriend;
 
26723
class ExtAC;
 
26724
class ExtACBuilderCoupling;
 
26725
class ExtACSyntaxCoupling;
 
26726
class ExtACTree;
 
26727
class ExtACKeywords;
 
26728
class ExtGnu;
 
26729
class PragmaOnceUnitState;
 
26730
class PragmaOnce;
 
26731
class CMatchSyntax;
 
26732
namespace Puma {
 
26733
 
 
26734
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26735
class CT_SwitchStmt : public CT_Statement, public CSemScope {
 
26736
#line 26737 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26737
  friend class ::CCExprResolve;
 
26738
  friend class ::CExprResolve;
 
26739
  friend class ::WinIfExists;
 
26740
  friend class ::WinImportHandler;
 
26741
  friend class ::WinMacros;
 
26742
  friend class ::WinAsm;
 
26743
  friend class ::WinDeclSpecs;
 
26744
  friend class ::WinMemberExplSpec;
 
26745
  friend class ::WinTypeKeywords;
 
26746
  friend class ::WinFriend;
 
26747
  friend class ::ExtAC;
 
26748
  friend class ::ExtACBuilderCoupling;
 
26749
  friend class ::ExtACSyntaxCoupling;
 
26750
  friend class ::ExtACTree;
 
26751
  friend class ::ExtACKeywords;
 
26752
  friend class ::ExtGnu;
 
26753
  friend class ::PragmaOnceUnitState;
 
26754
  friend class ::PragmaOnce;
 
26755
  friend class ::CMatchSyntax;
 
26756
 
 
26757
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26758
 
 
26759
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
26760
 
 
26761
public:
 
26762
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
26763
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
26764
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
26765
  }
 
26766
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26767
  static const char *NodeId ();
 
26768
  /** Get the name of the node. Can be compared with NodeId(). */
 
26769
  const char *NodeName () const { return NodeId (); }
 
26770
  /** Get the number of sons. */
 
26771
  int Sons () const { return 5; }
 
26772
  /** Get the n-th son.
 
26773
   *  \param n The index of the son.
 
26774
   *  \return The n-th son or NULL. */
 
26775
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
26776
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
26777
  CTree *Condition () const { return sons[2]; }
 
26778
  /** Replace a son.
 
26779
   *  \param old_son The son to replace.
 
26780
   *  \param new_son The new son. */
 
26781
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26782
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
26783
  }
 
26784
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
26785
};
 
26786
 
 
26787
 
 
26788
#line 26789 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26789
} // closed Puma
 
26790
class CCExprResolve;
 
26791
class CExprResolve;
 
26792
class WinIfExists;
 
26793
class WinImportHandler;
 
26794
class WinMacros;
 
26795
class WinAsm;
 
26796
class WinDeclSpecs;
 
26797
class WinMemberExplSpec;
 
26798
class WinTypeKeywords;
 
26799
class WinFriend;
 
26800
class ExtAC;
 
26801
class ExtACBuilderCoupling;
 
26802
class ExtACSyntaxCoupling;
 
26803
class ExtACTree;
 
26804
class ExtACKeywords;
 
26805
class ExtGnu;
 
26806
class PragmaOnceUnitState;
 
26807
class PragmaOnce;
 
26808
class CMatchSyntax;
 
26809
namespace Puma {
 
26810
 
 
26811
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26812
class CT_IfStmt : public CT_Statement, public CSemScope {
 
26813
#line 26814 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26814
  friend class ::CCExprResolve;
 
26815
  friend class ::CExprResolve;
 
26816
  friend class ::WinIfExists;
 
26817
  friend class ::WinImportHandler;
 
26818
  friend class ::WinMacros;
 
26819
  friend class ::WinAsm;
 
26820
  friend class ::WinDeclSpecs;
 
26821
  friend class ::WinMemberExplSpec;
 
26822
  friend class ::WinTypeKeywords;
 
26823
  friend class ::WinFriend;
 
26824
  friend class ::ExtAC;
 
26825
  friend class ::ExtACBuilderCoupling;
 
26826
  friend class ::ExtACSyntaxCoupling;
 
26827
  friend class ::ExtACTree;
 
26828
  friend class ::ExtACKeywords;
 
26829
  friend class ::ExtGnu;
 
26830
  friend class ::PragmaOnceUnitState;
 
26831
  friend class ::PragmaOnce;
 
26832
  friend class ::CMatchSyntax;
 
26833
 
 
26834
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26835
 
 
26836
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
26837
 
 
26838
public:
 
26839
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
26840
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
26841
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
26842
  }
 
26843
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26844
  static const char *NodeId ();
 
26845
  /** Get the name of the node. Can be compared with NodeId(). */
 
26846
  const char *NodeName () const { return NodeId (); }
 
26847
  /** Get the number of sons. */
 
26848
  int Sons () const { return 5; }
 
26849
  /** Get the n-th son.
 
26850
   *  \param n The index of the son.
 
26851
   *  \return The n-th son or NULL. */
 
26852
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
26853
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
26854
  CTree *Condition () const { return sons[2]; }
 
26855
  /** Replace a son.
 
26856
   *  \param old_son The son to replace.
 
26857
   *  \param new_son The new son. */
 
26858
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26859
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
26860
  }
 
26861
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
26862
};
 
26863
 
 
26864
 
 
26865
#line 26866 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26866
} // closed Puma
 
26867
class CCExprResolve;
 
26868
class CExprResolve;
 
26869
class WinIfExists;
 
26870
class WinImportHandler;
 
26871
class WinMacros;
 
26872
class WinAsm;
 
26873
class WinDeclSpecs;
 
26874
class WinMemberExplSpec;
 
26875
class WinTypeKeywords;
 
26876
class WinFriend;
 
26877
class ExtAC;
 
26878
class ExtACBuilderCoupling;
 
26879
class ExtACSyntaxCoupling;
 
26880
class ExtACTree;
 
26881
class ExtACKeywords;
 
26882
class ExtGnu;
 
26883
class PragmaOnceUnitState;
 
26884
class PragmaOnce;
 
26885
class CMatchSyntax;
 
26886
namespace Puma {
 
26887
 
 
26888
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26889
class CT_IfElseStmt : public CT_Statement, public CSemScope {
 
26890
#line 26891 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26891
  friend class ::CCExprResolve;
 
26892
  friend class ::CExprResolve;
 
26893
  friend class ::WinIfExists;
 
26894
  friend class ::WinImportHandler;
 
26895
  friend class ::WinMacros;
 
26896
  friend class ::WinAsm;
 
26897
  friend class ::WinDeclSpecs;
 
26898
  friend class ::WinMemberExplSpec;
 
26899
  friend class ::WinTypeKeywords;
 
26900
  friend class ::WinFriend;
 
26901
  friend class ::ExtAC;
 
26902
  friend class ::ExtACBuilderCoupling;
 
26903
  friend class ::ExtACSyntaxCoupling;
 
26904
  friend class ::ExtACTree;
 
26905
  friend class ::ExtACKeywords;
 
26906
  friend class ::ExtGnu;
 
26907
  friend class ::PragmaOnceUnitState;
 
26908
  friend class ::PragmaOnce;
 
26909
  friend class ::CMatchSyntax;
 
26910
 
 
26911
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26912
 
 
26913
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
 
26914
 
 
26915
public:
 
26916
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
 
26917
                 CTree *is, CTree *e, CTree *es) {
 
26918
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
26919
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
26920
    AddSon (sons[6], es); 
 
26921
  }
 
26922
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26923
  static const char *NodeId ();
 
26924
  /** Get the name of the node. Can be compared with NodeId(). */
 
26925
  const char *NodeName () const { return NodeId (); }
 
26926
  /** Get the number of sons. */
 
26927
  int Sons () const { return 7; }
 
26928
  /** Get the n-th son.
 
26929
   *  \param n The index of the son.
 
26930
   *  \return The n-th son or NULL. */
 
26931
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
26932
  CTree *Condition () const { return sons[2]; }
 
26933
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
 
26934
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
26935
  /** Replace a son.
 
26936
   *  \param old_son The son to replace.
 
26937
   *  \param new_son The new son. */
 
26938
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26939
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
26940
  }
 
26941
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
26942
};
 
26943
 
 
26944
 
 
26945
#line 26946 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26946
} // closed Puma
 
26947
class CCExprResolve;
 
26948
class CExprResolve;
 
26949
class WinIfExists;
 
26950
class WinImportHandler;
 
26951
class WinMacros;
 
26952
class WinAsm;
 
26953
class WinDeclSpecs;
 
26954
class WinMemberExplSpec;
 
26955
class WinTypeKeywords;
 
26956
class WinFriend;
 
26957
class ExtAC;
 
26958
class ExtACBuilderCoupling;
 
26959
class ExtACSyntaxCoupling;
 
26960
class ExtACTree;
 
26961
class ExtACKeywords;
 
26962
class ExtGnu;
 
26963
class PragmaOnceUnitState;
 
26964
class PragmaOnce;
 
26965
class CMatchSyntax;
 
26966
namespace Puma {
 
26967
 
 
26968
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26969
class CT_BreakStmt : public CT_Statement {
 
26970
#line 26971 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
26971
  friend class ::CCExprResolve;
 
26972
  friend class ::CExprResolve;
 
26973
  friend class ::WinIfExists;
 
26974
  friend class ::WinImportHandler;
 
26975
  friend class ::WinMacros;
 
26976
  friend class ::WinAsm;
 
26977
  friend class ::WinDeclSpecs;
 
26978
  friend class ::WinMemberExplSpec;
 
26979
  friend class ::WinTypeKeywords;
 
26980
  friend class ::WinFriend;
 
26981
  friend class ::ExtAC;
 
26982
  friend class ::ExtACBuilderCoupling;
 
26983
  friend class ::ExtACSyntaxCoupling;
 
26984
  friend class ::ExtACTree;
 
26985
  friend class ::ExtACKeywords;
 
26986
  friend class ::ExtGnu;
 
26987
  friend class ::PragmaOnceUnitState;
 
26988
  friend class ::PragmaOnce;
 
26989
  friend class ::CMatchSyntax;
 
26990
 
 
26991
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26992
 
 
26993
  CTree *sons[2]; // key, semi_colon
 
26994
 
 
26995
public:
 
26996
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
26997
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26998
  static const char *NodeId ();
 
26999
  /** Get the name of the node. Can be compared with NodeId(). */
 
27000
  const char *NodeName () const { return NodeId (); }
 
27001
  /** Get the number of sons. */
 
27002
  int Sons () const { return 2; }
 
27003
  /** Get the n-th son.
 
27004
   *  \param n The index of the son.
 
27005
   *  \return The n-th son or NULL. */
 
27006
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
27007
  /** Replace a son.
 
27008
   *  \param old_son The son to replace.
 
27009
   *  \param new_son The new son. */
 
27010
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27011
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
27012
  }
 
27013
};
 
27014
 
 
27015
 
 
27016
#line 27017 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27017
} // closed Puma
 
27018
class CCExprResolve;
 
27019
class CExprResolve;
 
27020
class WinIfExists;
 
27021
class WinImportHandler;
 
27022
class WinMacros;
 
27023
class WinAsm;
 
27024
class WinDeclSpecs;
 
27025
class WinMemberExplSpec;
 
27026
class WinTypeKeywords;
 
27027
class WinFriend;
 
27028
class ExtAC;
 
27029
class ExtACBuilderCoupling;
 
27030
class ExtACSyntaxCoupling;
 
27031
class ExtACTree;
 
27032
class ExtACKeywords;
 
27033
class ExtGnu;
 
27034
class PragmaOnceUnitState;
 
27035
class PragmaOnce;
 
27036
class CMatchSyntax;
 
27037
namespace Puma {
 
27038
 
 
27039
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27040
class CT_ContinueStmt : public CT_Statement {
 
27041
#line 27042 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27042
  friend class ::CCExprResolve;
 
27043
  friend class ::CExprResolve;
 
27044
  friend class ::WinIfExists;
 
27045
  friend class ::WinImportHandler;
 
27046
  friend class ::WinMacros;
 
27047
  friend class ::WinAsm;
 
27048
  friend class ::WinDeclSpecs;
 
27049
  friend class ::WinMemberExplSpec;
 
27050
  friend class ::WinTypeKeywords;
 
27051
  friend class ::WinFriend;
 
27052
  friend class ::ExtAC;
 
27053
  friend class ::ExtACBuilderCoupling;
 
27054
  friend class ::ExtACSyntaxCoupling;
 
27055
  friend class ::ExtACTree;
 
27056
  friend class ::ExtACKeywords;
 
27057
  friend class ::ExtGnu;
 
27058
  friend class ::PragmaOnceUnitState;
 
27059
  friend class ::PragmaOnce;
 
27060
  friend class ::CMatchSyntax;
 
27061
 
 
27062
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27063
 
 
27064
  CTree *sons[2]; // key, semi_colon
 
27065
 
 
27066
public:
 
27067
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
27068
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27069
  static const char *NodeId ();
 
27070
  /** Get the name of the node. Can be compared with NodeId(). */
 
27071
  const char *NodeName () const { return NodeId (); }
 
27072
  /** Get the number of sons. */
 
27073
  int Sons () const { return 2; }
 
27074
  /** Get the n-th son.
 
27075
   *  \param n The index of the son.
 
27076
   *  \return The n-th son or NULL. */
 
27077
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
27078
  /** Replace a son.
 
27079
   *  \param old_son The son to replace.
 
27080
   *  \param new_son The new son. */
 
27081
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27082
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
27083
  }
 
27084
};
 
27085
 
 
27086
 
 
27087
#line 27088 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27088
} // closed Puma
 
27089
class CCExprResolve;
 
27090
class CExprResolve;
 
27091
class WinIfExists;
 
27092
class WinImportHandler;
 
27093
class WinMacros;
 
27094
class WinAsm;
 
27095
class WinDeclSpecs;
 
27096
class WinMemberExplSpec;
 
27097
class WinTypeKeywords;
 
27098
class WinFriend;
 
27099
class ExtAC;
 
27100
class ExtACBuilderCoupling;
 
27101
class ExtACSyntaxCoupling;
 
27102
class ExtACTree;
 
27103
class ExtACKeywords;
 
27104
class ExtGnu;
 
27105
class PragmaOnceUnitState;
 
27106
class PragmaOnce;
 
27107
class CMatchSyntax;
 
27108
namespace Puma {
 
27109
 
 
27110
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27111
class CT_GotoStmt : public CT_Statement {
 
27112
#line 27113 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27113
  friend class ::CCExprResolve;
 
27114
  friend class ::CExprResolve;
 
27115
  friend class ::WinIfExists;
 
27116
  friend class ::WinImportHandler;
 
27117
  friend class ::WinMacros;
 
27118
  friend class ::WinAsm;
 
27119
  friend class ::WinDeclSpecs;
 
27120
  friend class ::WinMemberExplSpec;
 
27121
  friend class ::WinTypeKeywords;
 
27122
  friend class ::WinFriend;
 
27123
  friend class ::ExtAC;
 
27124
  friend class ::ExtACBuilderCoupling;
 
27125
  friend class ::ExtACSyntaxCoupling;
 
27126
  friend class ::ExtACTree;
 
27127
  friend class ::ExtACKeywords;
 
27128
  friend class ::ExtGnu;
 
27129
  friend class ::PragmaOnceUnitState;
 
27130
  friend class ::PragmaOnce;
 
27131
  friend class ::CMatchSyntax;
 
27132
 
 
27133
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27134
 
 
27135
  CTree *sons[3]; // key, label, semi_colon
 
27136
 
 
27137
public:
 
27138
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
 
27139
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
 
27140
  }
 
27141
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27142
  static const char *NodeId ();
 
27143
  /** Get the name of the node. Can be compared with NodeId(). */
 
27144
  const char *NodeName () const { return NodeId (); }
 
27145
  /** Get the number of sons. */
 
27146
  int Sons () const { return 3; }
 
27147
  /** Get the n-th son.
 
27148
   *  \param n The index of the son.
 
27149
   *  \return The n-th son or NULL. */
 
27150
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
27151
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
27152
  /** Replace a son.
 
27153
   *  \param old_son The son to replace.
 
27154
   *  \param new_son The new son. */
 
27155
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27156
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
27157
  }
 
27158
};
 
27159
 
 
27160
 
 
27161
#line 27162 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27162
} // closed Puma
 
27163
class CCExprResolve;
 
27164
class CExprResolve;
 
27165
class WinIfExists;
 
27166
class WinImportHandler;
 
27167
class WinMacros;
 
27168
class WinAsm;
 
27169
class WinDeclSpecs;
 
27170
class WinMemberExplSpec;
 
27171
class WinTypeKeywords;
 
27172
class WinFriend;
 
27173
class ExtAC;
 
27174
class ExtACBuilderCoupling;
 
27175
class ExtACSyntaxCoupling;
 
27176
class ExtACTree;
 
27177
class ExtACKeywords;
 
27178
class ExtGnu;
 
27179
class PragmaOnceUnitState;
 
27180
class PragmaOnce;
 
27181
class CMatchSyntax;
 
27182
namespace Puma {
 
27183
 
 
27184
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27185
class CT_ReturnStmt : public CT_Statement {
 
27186
#line 27187 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27187
  friend class ::CCExprResolve;
 
27188
  friend class ::CExprResolve;
 
27189
  friend class ::WinIfExists;
 
27190
  friend class ::WinImportHandler;
 
27191
  friend class ::WinMacros;
 
27192
  friend class ::WinAsm;
 
27193
  friend class ::WinDeclSpecs;
 
27194
  friend class ::WinMemberExplSpec;
 
27195
  friend class ::WinTypeKeywords;
 
27196
  friend class ::WinFriend;
 
27197
  friend class ::ExtAC;
 
27198
  friend class ::ExtACBuilderCoupling;
 
27199
  friend class ::ExtACSyntaxCoupling;
 
27200
  friend class ::ExtACTree;
 
27201
  friend class ::ExtACKeywords;
 
27202
  friend class ::ExtGnu;
 
27203
  friend class ::PragmaOnceUnitState;
 
27204
  friend class ::PragmaOnce;
 
27205
  friend class ::CMatchSyntax;
 
27206
 
 
27207
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27208
 
 
27209
  CTree *sons[3]; // key, expr, semi_colon
 
27210
 
 
27211
public:
 
27212
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
 
27213
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
 
27214
  }
 
27215
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27216
  static const char *NodeId ();
 
27217
  /** Get the name of the node. Can be compared with NodeId(). */
 
27218
  const char *NodeName () const { return NodeId (); }
 
27219
  /** Get the number of sons. */
 
27220
  int Sons () const { return CTree::Sons (sons, 3); }
 
27221
  /** Get the n-th son.
 
27222
   *  \param n The index of the son.
 
27223
   *  \return The n-th son or NULL. */
 
27224
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
27225
  CTree *Expr () const { return sons[1]; }
 
27226
  /** Replace a son.
 
27227
   *  \param old_son The son to replace.
 
27228
   *  \param new_son The new son. */
 
27229
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27230
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
27231
  }
 
27232
};
 
27233
 
 
27234
 
 
27235
#line 27236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27236
} // closed Puma
 
27237
class CCExprResolve;
 
27238
class CExprResolve;
 
27239
class WinIfExists;
 
27240
class WinImportHandler;
 
27241
class WinMacros;
 
27242
class WinAsm;
 
27243
class WinDeclSpecs;
 
27244
class WinMemberExplSpec;
 
27245
class WinTypeKeywords;
 
27246
class WinFriend;
 
27247
class ExtAC;
 
27248
class ExtACBuilderCoupling;
 
27249
class ExtACSyntaxCoupling;
 
27250
class ExtACTree;
 
27251
class ExtACKeywords;
 
27252
class ExtGnu;
 
27253
class PragmaOnceUnitState;
 
27254
class PragmaOnce;
 
27255
class CMatchSyntax;
 
27256
namespace Puma {
 
27257
 
 
27258
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27259
class CT_WhileStmt : public CT_Statement, public CSemScope {
 
27260
#line 27261 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27261
  friend class ::CCExprResolve;
 
27262
  friend class ::CExprResolve;
 
27263
  friend class ::WinIfExists;
 
27264
  friend class ::WinImportHandler;
 
27265
  friend class ::WinMacros;
 
27266
  friend class ::WinAsm;
 
27267
  friend class ::WinDeclSpecs;
 
27268
  friend class ::WinMemberExplSpec;
 
27269
  friend class ::WinTypeKeywords;
 
27270
  friend class ::WinFriend;
 
27271
  friend class ::ExtAC;
 
27272
  friend class ::ExtACBuilderCoupling;
 
27273
  friend class ::ExtACSyntaxCoupling;
 
27274
  friend class ::ExtACTree;
 
27275
  friend class ::ExtACKeywords;
 
27276
  friend class ::ExtGnu;
 
27277
  friend class ::PragmaOnceUnitState;
 
27278
  friend class ::PragmaOnce;
 
27279
  friend class ::CMatchSyntax;
 
27280
 
 
27281
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27282
 
 
27283
  CTree *sons[5]; // key, open, cond, close, stmt
 
27284
 
 
27285
public:
 
27286
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
27287
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
27288
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
27289
  }
 
27290
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27291
  static const char *NodeId ();
 
27292
  /** Get the name of the node. Can be compared with NodeId(). */
 
27293
  const char *NodeName () const { return NodeId (); }
 
27294
  /** Get the number of sons. */
 
27295
  int Sons () const { return 5; }
 
27296
  /** Get the n-th son.
 
27297
   *  \param n The index of the son.
 
27298
   *  \return The n-th son or NULL. */
 
27299
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
27300
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
27301
  CTree *Condition () const { return sons[2]; }
 
27302
  /** Replace a son.
 
27303
   *  \param old_son The son to replace.
 
27304
   *  \param new_son The new son. */
 
27305
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27306
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
27307
  }
 
27308
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
27309
};
 
27310
 
 
27311
 
 
27312
#line 27313 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27313
} // closed Puma
 
27314
class CCExprResolve;
 
27315
class CExprResolve;
 
27316
class WinIfExists;
 
27317
class WinImportHandler;
 
27318
class WinMacros;
 
27319
class WinAsm;
 
27320
class WinDeclSpecs;
 
27321
class WinMemberExplSpec;
 
27322
class WinTypeKeywords;
 
27323
class WinFriend;
 
27324
class ExtAC;
 
27325
class ExtACBuilderCoupling;
 
27326
class ExtACSyntaxCoupling;
 
27327
class ExtACTree;
 
27328
class ExtACKeywords;
 
27329
class ExtGnu;
 
27330
class PragmaOnceUnitState;
 
27331
class PragmaOnce;
 
27332
class CMatchSyntax;
 
27333
namespace Puma {
 
27334
 
 
27335
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27336
class CT_DoStmt : public CT_Statement {
 
27337
#line 27338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27338
  friend class ::CCExprResolve;
 
27339
  friend class ::CExprResolve;
 
27340
  friend class ::WinIfExists;
 
27341
  friend class ::WinImportHandler;
 
27342
  friend class ::WinMacros;
 
27343
  friend class ::WinAsm;
 
27344
  friend class ::WinDeclSpecs;
 
27345
  friend class ::WinMemberExplSpec;
 
27346
  friend class ::WinTypeKeywords;
 
27347
  friend class ::WinFriend;
 
27348
  friend class ::ExtAC;
 
27349
  friend class ::ExtACBuilderCoupling;
 
27350
  friend class ::ExtACSyntaxCoupling;
 
27351
  friend class ::ExtACTree;
 
27352
  friend class ::ExtACKeywords;
 
27353
  friend class ::ExtGnu;
 
27354
  friend class ::PragmaOnceUnitState;
 
27355
  friend class ::PragmaOnce;
 
27356
  friend class ::CMatchSyntax;
 
27357
 
 
27358
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27359
 
 
27360
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
 
27361
 
 
27362
public:
 
27363
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
 
27364
             CTree *c, CTree *sc) {
 
27365
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
27366
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
27367
    AddSon (sons[6], sc); 
 
27368
  }
 
27369
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27370
  static const char *NodeId ();
 
27371
  /** Get the name of the node. Can be compared with NodeId(). */
 
27372
  const char *NodeName () const { return NodeId (); }
 
27373
  /** Get the number of sons. */
 
27374
  int Sons () const { return 7; }
 
27375
  /** Get the n-th son.
 
27376
   *  \param n The index of the son.
 
27377
   *  \return The n-th son or NULL. */
 
27378
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
27379
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
27380
  CTree *Expr () const { return sons[4]; }
 
27381
  /** Replace a son.
 
27382
   *  \param old_son The son to replace.
 
27383
   *  \param new_son The new son. */
 
27384
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27385
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
27386
  }
 
27387
};
 
27388
 
 
27389
 
 
27390
#line 27391 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27391
} // closed Puma
 
27392
class CCExprResolve;
 
27393
class CExprResolve;
 
27394
class WinIfExists;
 
27395
class WinImportHandler;
 
27396
class WinMacros;
 
27397
class WinAsm;
 
27398
class WinDeclSpecs;
 
27399
class WinMemberExplSpec;
 
27400
class WinTypeKeywords;
 
27401
class WinFriend;
 
27402
class ExtAC;
 
27403
class ExtACBuilderCoupling;
 
27404
class ExtACSyntaxCoupling;
 
27405
class ExtACTree;
 
27406
class ExtACKeywords;
 
27407
class ExtGnu;
 
27408
class PragmaOnceUnitState;
 
27409
class PragmaOnce;
 
27410
class CMatchSyntax;
 
27411
namespace Puma {
 
27412
 
 
27413
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27414
class CT_ForStmt : public CT_Statement, public CSemScope {
 
27415
#line 27416 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27416
  friend class ::CCExprResolve;
 
27417
  friend class ::CExprResolve;
 
27418
  friend class ::WinIfExists;
 
27419
  friend class ::WinImportHandler;
 
27420
  friend class ::WinMacros;
 
27421
  friend class ::WinAsm;
 
27422
  friend class ::WinDeclSpecs;
 
27423
  friend class ::WinMemberExplSpec;
 
27424
  friend class ::WinTypeKeywords;
 
27425
  friend class ::WinFriend;
 
27426
  friend class ::ExtAC;
 
27427
  friend class ::ExtACBuilderCoupling;
 
27428
  friend class ::ExtACSyntaxCoupling;
 
27429
  friend class ::ExtACTree;
 
27430
  friend class ::ExtACKeywords;
 
27431
  friend class ::ExtGnu;
 
27432
  friend class ::PragmaOnceUnitState;
 
27433
  friend class ::PragmaOnce;
 
27434
  friend class ::CMatchSyntax;
 
27435
 
 
27436
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27437
 
 
27438
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
 
27439
 
 
27440
public:
 
27441
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
 
27442
              CTree *e, CTree *c, CTree *stmt) {
 
27443
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
27444
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
27445
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
 
27446
  }
 
27447
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27448
  static const char *NodeId ();
 
27449
  /** Get the name of the node. Can be compared with NodeId(). */
 
27450
  const char *NodeName () const { return NodeId (); }
 
27451
  /** Get the number of sons. */
 
27452
  int Sons () const { return CTree::Sons (sons, 8); }
 
27453
  /** Get the n-th son.
 
27454
   *  \param n The index of the son.
 
27455
   *  \return The n-th son or NULL. */
 
27456
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
 
27457
  CTree *InitStmt () const { return sons[2]; }
 
27458
  CTree *Condition () const { return sons[3]; }
 
27459
  CTree *Expr () const { return sons[5]; }
 
27460
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
27461
  /** Replace a son.
 
27462
   *  \param old_son The son to replace.
 
27463
   *  \param new_son The new son. */
 
27464
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27465
    CTree::ReplaceSon (sons, 8, old_son, new_son);
 
27466
  }
 
27467
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
27468
};
 
27469
 
 
27470
 
 
27471
#line 27472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27472
} // closed Puma
 
27473
class CCExprResolve;
 
27474
class CExprResolve;
 
27475
class WinIfExists;
 
27476
class WinImportHandler;
 
27477
class WinMacros;
 
27478
class WinAsm;
 
27479
class WinDeclSpecs;
 
27480
class WinMemberExplSpec;
 
27481
class WinTypeKeywords;
 
27482
class WinFriend;
 
27483
class ExtAC;
 
27484
class ExtACBuilderCoupling;
 
27485
class ExtACSyntaxCoupling;
 
27486
class ExtACTree;
 
27487
class ExtACKeywords;
 
27488
class ExtGnu;
 
27489
class PragmaOnceUnitState;
 
27490
class PragmaOnce;
 
27491
class CMatchSyntax;
 
27492
namespace Puma {
 
27493
 
 
27494
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27495
class CT_Condition : public CT_Decl, public CSemObject {
 
27496
#line 27497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27497
  friend class ::CCExprResolve;
 
27498
  friend class ::CExprResolve;
 
27499
  friend class ::WinIfExists;
 
27500
  friend class ::WinImportHandler;
 
27501
  friend class ::WinMacros;
 
27502
  friend class ::WinAsm;
 
27503
  friend class ::WinDeclSpecs;
 
27504
  friend class ::WinMemberExplSpec;
 
27505
  friend class ::WinTypeKeywords;
 
27506
  friend class ::WinFriend;
 
27507
  friend class ::ExtAC;
 
27508
  friend class ::ExtACBuilderCoupling;
 
27509
  friend class ::ExtACSyntaxCoupling;
 
27510
  friend class ::ExtACTree;
 
27511
  friend class ::ExtACKeywords;
 
27512
  friend class ::ExtGnu;
 
27513
  friend class ::PragmaOnceUnitState;
 
27514
  friend class ::PragmaOnce;
 
27515
  friend class ::CMatchSyntax;
 
27516
 
 
27517
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27518
 
 
27519
  CTree *sons[3]; // declspecs, declarator, init
 
27520
 
 
27521
public:
 
27522
  CT_Condition (CTree *dsl, CTree *d) {
 
27523
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
 
27524
  }
 
27525
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27526
  static const char *NodeId ();
 
27527
  /** Get the name of the node. Can be compared with NodeId(). */
 
27528
  const char *NodeName () const { return NodeId (); }
 
27529
  /** Get the number of sons. */
 
27530
  int Sons () const { return CTree::Sons (sons, 3); }
 
27531
  /** Get the n-th son.
 
27532
   *  \param n The index of the son.
 
27533
   *  \return The n-th son or NULL. */
 
27534
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
27535
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
27536
  CTree *Declarator () const { return sons[1]; }
 
27537
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
27538
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
27539
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
27540
  /** Replace a son.
 
27541
   *  \param old_son The son to replace.
 
27542
   *  \param new_son The new son. */
 
27543
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27544
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
27545
  }
 
27546
};
 
27547
 
 
27548
/*****************************************************************************/
 
27549
/*                                                                           */
 
27550
/*                              Classes                                      */
 
27551
/*                                                                           */
 
27552
/*****************************************************************************/
 
27553
 
 
27554
 
 
27555
#line 27556 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27556
} // closed Puma
 
27557
class CCExprResolve;
 
27558
class CExprResolve;
 
27559
class WinIfExists;
 
27560
class WinImportHandler;
 
27561
class WinMacros;
 
27562
class WinAsm;
 
27563
class WinDeclSpecs;
 
27564
class WinMemberExplSpec;
 
27565
class WinTypeKeywords;
 
27566
class WinFriend;
 
27567
class ExtAC;
 
27568
class ExtACBuilderCoupling;
 
27569
class ExtACSyntaxCoupling;
 
27570
class ExtACTree;
 
27571
class ExtACKeywords;
 
27572
class ExtGnu;
 
27573
class PragmaOnceUnitState;
 
27574
class PragmaOnce;
 
27575
class CMatchSyntax;
 
27576
namespace Puma {
 
27577
 
 
27578
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27579
 
 
27580
#line 27581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27581
} // closed Puma
 
27582
 
 
27583
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
27584
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
27585
#include "ExtACTree.ah"
 
27586
#endif
 
27587
namespace Puma {
 
27588
 
 
27589
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27590
class CT_ClassDef : public CT_Decl, public CSemObject {
 
27591
#line 27592 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27592
  friend class ::CCExprResolve;
 
27593
  friend class ::CExprResolve;
 
27594
  friend class ::WinIfExists;
 
27595
  friend class ::WinImportHandler;
 
27596
  friend class ::WinMacros;
 
27597
  friend class ::WinAsm;
 
27598
  friend class ::WinDeclSpecs;
 
27599
  friend class ::WinMemberExplSpec;
 
27600
  friend class ::WinTypeKeywords;
 
27601
  friend class ::WinFriend;
 
27602
  friend class ::ExtAC;
 
27603
  friend class ::ExtACBuilderCoupling;
 
27604
  friend class ::ExtACSyntaxCoupling;
 
27605
  friend class ::ExtACTree;
 
27606
  friend class ::ExtACKeywords;
 
27607
  friend class ::ExtGnu;
 
27608
  friend class ::PragmaOnceUnitState;
 
27609
  friend class ::PragmaOnce;
 
27610
  friend class ::CMatchSyntax;
 
27611
 
 
27612
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27613
 
 
27614
   
 
27615
#line 27616 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27616
 
 
27617
  struct __ac_wrapper_sons {
 
27618
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
 
27619
    operator A& () { return _data; }
 
27620
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
 
27621
    operator const A& () { return _data; }
 
27622
    operator const A& () const { return _data; }
 
27623
    operator void* () { return _data; }
 
27624
    operator void* () const { return (void*)_data; }
 
27625
    operator const void* () { return _data; }
 
27626
    operator const void* () const { return _data; }
 
27627
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
 
27628
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
 
27629
  } sons
 
27630
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27631
 
 
27632
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27633
; // key, name, bases, members
 
27634
  CTree *obj_decl;
 
27635
 
 
27636
public:
 
27637
  
 
27638
#line 27639 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27639
 
 
27640
 
 
27641
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
27642
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
27643
  typedef TResult Result;
 
27644
  typedef TThat   That;
 
27645
  typedef TTarget Target;
 
27646
  enum { ARGS = TArgs::ARGS };
 
27647
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
27648
  static const int JPID = 55;
 
27649
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
27650
  struct Res {
 
27651
    typedef void Type;
 
27652
    typedef void ReferredType;
 
27653
  };
 
27654
 
 
27655
  That *_that;
 
27656
 
 
27657
  inline That *that() {return (That*)_that;}
 
27658
 
 
27659
};
 
27660
 
 
27661
 
 
27662
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27663
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
 
27664
#line 27665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27665
{
 
27666
  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;
 
27667
    __TJP tjp;
 
27668
  tjp._that =  (__TJP::That*)this;
 
27669
    this->__exec_old_C1(arg0, arg1, arg2);
 
27670
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
27671
  
 
27672
}
 
27673
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
27674
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27675
{
 
27676
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
27677
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
 
27678
  }
 
27679
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27680
  static const char *NodeId ();
 
27681
  /** Get the name of the node. Can be compared with NodeId(). */
 
27682
  const char *NodeName () const { return NodeId (); }
 
27683
  /** Get the number of sons. */
 
27684
  int Sons () const { return CTree::Sons (sons, 4); }
 
27685
  /** Get the n-th son.
 
27686
   *  \param n The index of the son.
 
27687
   *  \return The n-th son or NULL. */
 
27688
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
27689
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
27690
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
 
27691
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
 
27692
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
27693
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
27694
  void Members (CTree *m) { AddSon (sons[3], m); }
 
27695
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
27696
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
27697
  /** Replace a son.
 
27698
   *  \param old_son The son to replace.
 
27699
   *  \param new_son The new son. */
 
27700
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
27701
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
27702
  }
 
27703
   private:
 
27704
 
 
27705
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
27706
 Puma :: CTree * _intro_members ;
 
27707
Puma :: CTree * _base_intros ;
 
27708
public :
 
27709
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
27710
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
27711
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
27712
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
27713
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27714
 
 
27715
#line 27716 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27716
 
 
27717
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
27718
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
27719
  typedef TResult Result;
 
27720
  typedef TThat   That;
 
27721
  typedef TTarget Target;
 
27722
  enum { ARGS = TArgs::ARGS };
 
27723
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
27724
  static const int JPID = 6191;
 
27725
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
27726
  struct Res {
 
27727
    typedef void Type;
 
27728
    typedef void ReferredType;
 
27729
  };
 
27730
 
 
27731
  That *_that;
 
27732
 
 
27733
  inline That *that() {return (That*)_that;}
 
27734
 
 
27735
};
 
27736
 
 
27737
 
 
27738
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27739
 
 
27740
#line 27741 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27741
 
 
27742
public:
 
27743
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) {
 
27744
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
27745
  __TJP tjp;
 
27746
  tjp._that =  (__TJP::That*)this;
 
27747
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
27748
 
 
27749
}
 
27750
 
 
27751
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27752
 
 
27753
#line 27754 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27754
 
 
27755
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
27756
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
27757
  typedef TResult Result;
 
27758
  typedef TThat   That;
 
27759
  typedef TTarget Target;
 
27760
  enum { ARGS = TArgs::ARGS };
 
27761
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
27762
  static const int JPID = 6189;
 
27763
  static const AC::JPType JPTYPE = (AC::JPType)32;
 
27764
  struct Res {
 
27765
    typedef void Type;
 
27766
    typedef void ReferredType;
 
27767
  };
 
27768
 
 
27769
  That *_that;
 
27770
 
 
27771
  inline That *that() {return (That*)_that;}
 
27772
 
 
27773
};
 
27774
 
 
27775
 
 
27776
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27777
 
 
27778
#line 27779 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27779
 
 
27780
public:
 
27781
inline ~CT_ClassDef () {
 
27782
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
27783
  __TJP tjp;
 
27784
  tjp._that =  (__TJP::That*)this;
 
27785
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
 
27786
 
 
27787
}
 
27788
 
 
27789
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27790
};
 
27791
      
 
27792
 
 
27793
#line 27794 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27794
} // closed Puma
 
27795
class CCExprResolve;
 
27796
class CExprResolve;
 
27797
class WinIfExists;
 
27798
class WinImportHandler;
 
27799
class WinMacros;
 
27800
class WinAsm;
 
27801
class WinDeclSpecs;
 
27802
class WinMemberExplSpec;
 
27803
class WinTypeKeywords;
 
27804
class WinFriend;
 
27805
class ExtAC;
 
27806
class ExtACBuilderCoupling;
 
27807
class ExtACSyntaxCoupling;
 
27808
class ExtACTree;
 
27809
class ExtACKeywords;
 
27810
class ExtGnu;
 
27811
class PragmaOnceUnitState;
 
27812
class PragmaOnce;
 
27813
class CMatchSyntax;
 
27814
namespace Puma {
 
27815
 
 
27816
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27817
class CT_UnionDef : public CT_ClassDef {
 
27818
#line 27819 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27819
  friend class ::CCExprResolve;
 
27820
  friend class ::CExprResolve;
 
27821
  friend class ::WinIfExists;
 
27822
  friend class ::WinImportHandler;
 
27823
  friend class ::WinMacros;
 
27824
  friend class ::WinAsm;
 
27825
  friend class ::WinDeclSpecs;
 
27826
  friend class ::WinMemberExplSpec;
 
27827
  friend class ::WinTypeKeywords;
 
27828
  friend class ::WinFriend;
 
27829
  friend class ::ExtAC;
 
27830
  friend class ::ExtACBuilderCoupling;
 
27831
  friend class ::ExtACSyntaxCoupling;
 
27832
  friend class ::ExtACTree;
 
27833
  friend class ::ExtACKeywords;
 
27834
  friend class ::ExtGnu;
 
27835
  friend class ::PragmaOnceUnitState;
 
27836
  friend class ::PragmaOnce;
 
27837
  friend class ::CMatchSyntax;
 
27838
 
 
27839
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27840
 
 
27841
public:
 
27842
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
 
27843
  static const char *NodeId ();
 
27844
  /** Get the name of the node. Can be compared with NodeId(). */
 
27845
  const char *NodeName () const { return NodeId (); }
 
27846
};
 
27847
      
 
27848
 
 
27849
#line 27850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27850
} // closed Puma
 
27851
class CCExprResolve;
 
27852
class CExprResolve;
 
27853
class WinIfExists;
 
27854
class WinImportHandler;
 
27855
class WinMacros;
 
27856
class WinAsm;
 
27857
class WinDeclSpecs;
 
27858
class WinMemberExplSpec;
 
27859
class WinTypeKeywords;
 
27860
class WinFriend;
 
27861
class ExtAC;
 
27862
class ExtACBuilderCoupling;
 
27863
class ExtACSyntaxCoupling;
 
27864
class ExtACTree;
 
27865
class ExtACKeywords;
 
27866
class ExtGnu;
 
27867
class PragmaOnceUnitState;
 
27868
class PragmaOnce;
 
27869
class CMatchSyntax;
 
27870
namespace Puma {
 
27871
 
 
27872
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27873
class CT_MembList : public CT_DeclList, public CSemScope {
 
27874
#line 27875 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27875
  friend class ::CCExprResolve;
 
27876
  friend class ::CExprResolve;
 
27877
  friend class ::WinIfExists;
 
27878
  friend class ::WinImportHandler;
 
27879
  friend class ::WinMacros;
 
27880
  friend class ::WinAsm;
 
27881
  friend class ::WinDeclSpecs;
 
27882
  friend class ::WinMemberExplSpec;
 
27883
  friend class ::WinTypeKeywords;
 
27884
  friend class ::WinFriend;
 
27885
  friend class ::ExtAC;
 
27886
  friend class ::ExtACBuilderCoupling;
 
27887
  friend class ::ExtACSyntaxCoupling;
 
27888
  friend class ::ExtACTree;
 
27889
  friend class ::ExtACKeywords;
 
27890
  friend class ::ExtGnu;
 
27891
  friend class ::PragmaOnceUnitState;
 
27892
  friend class ::PragmaOnce;
 
27893
  friend class ::CMatchSyntax;
 
27894
 
 
27895
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27896
 
 
27897
public:
 
27898
  CT_MembList (int size = 10, int incr = 10) : 
 
27899
    CT_DeclList (size, incr) {}
 
27900
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27901
  static const char *NodeId ();
 
27902
  /** Get the name of the node. Can be compared with NodeId(). */
 
27903
  const char *NodeName () const { return NodeId (); }
 
27904
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
27905
};
 
27906
 
 
27907
 
 
27908
#line 27909 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27909
} // closed Puma
 
27910
class CCExprResolve;
 
27911
class CExprResolve;
 
27912
class WinIfExists;
 
27913
class WinImportHandler;
 
27914
class WinMacros;
 
27915
class WinAsm;
 
27916
class WinDeclSpecs;
 
27917
class WinMemberExplSpec;
 
27918
class WinTypeKeywords;
 
27919
class WinFriend;
 
27920
class ExtAC;
 
27921
class ExtACBuilderCoupling;
 
27922
class ExtACSyntaxCoupling;
 
27923
class ExtACTree;
 
27924
class ExtACKeywords;
 
27925
class ExtGnu;
 
27926
class PragmaOnceUnitState;
 
27927
class PragmaOnce;
 
27928
class CMatchSyntax;
 
27929
namespace Puma {
 
27930
 
 
27931
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27932
class CT_MembInitList : public CT_List, public CSemScope {
 
27933
#line 27934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27934
  friend class ::CCExprResolve;
 
27935
  friend class ::CExprResolve;
 
27936
  friend class ::WinIfExists;
 
27937
  friend class ::WinImportHandler;
 
27938
  friend class ::WinMacros;
 
27939
  friend class ::WinAsm;
 
27940
  friend class ::WinDeclSpecs;
 
27941
  friend class ::WinMemberExplSpec;
 
27942
  friend class ::WinTypeKeywords;
 
27943
  friend class ::WinFriend;
 
27944
  friend class ::ExtAC;
 
27945
  friend class ::ExtACBuilderCoupling;
 
27946
  friend class ::ExtACSyntaxCoupling;
 
27947
  friend class ::ExtACTree;
 
27948
  friend class ::ExtACKeywords;
 
27949
  friend class ::ExtGnu;
 
27950
  friend class ::PragmaOnceUnitState;
 
27951
  friend class ::PragmaOnce;
 
27952
  friend class ::CMatchSyntax;
 
27953
 
 
27954
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27955
 
 
27956
public:
 
27957
  CT_MembInitList (int size = 2) : 
 
27958
    CT_List (size, 2, CT_List::OPEN) {}
 
27959
  static const char *NodeId ();
 
27960
  /** Get the name of the node. Can be compared with NodeId(). */
 
27961
  const char *NodeName () const { return NodeId (); }
 
27962
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
27963
};
 
27964
 
 
27965
 
 
27966
#line 27967 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27967
} // closed Puma
 
27968
class CCExprResolve;
 
27969
class CExprResolve;
 
27970
class WinIfExists;
 
27971
class WinImportHandler;
 
27972
class WinMacros;
 
27973
class WinAsm;
 
27974
class WinDeclSpecs;
 
27975
class WinMemberExplSpec;
 
27976
class WinTypeKeywords;
 
27977
class WinFriend;
 
27978
class ExtAC;
 
27979
class ExtACBuilderCoupling;
 
27980
class ExtACSyntaxCoupling;
 
27981
class ExtACTree;
 
27982
class ExtACKeywords;
 
27983
class ExtGnu;
 
27984
class PragmaOnceUnitState;
 
27985
class PragmaOnce;
 
27986
class CMatchSyntax;
 
27987
namespace Puma {
 
27988
 
 
27989
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27990
 
 
27991
#line 27992 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
27992
} // closed Puma
 
27993
 
 
27994
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27995
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27996
#include "CCExprResolveH.ah"
 
27997
#endif
 
27998
namespace Puma {
 
27999
 
 
28000
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28001
 
 
28002
#line 28003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28003
} // closed Puma
 
28004
 
 
28005
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28006
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28007
#include "CExprResolveH.ah"
 
28008
#endif
 
28009
namespace Puma {
 
28010
 
 
28011
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28012
class CT_MembInit : public CT_Expression, public CSemObject {
 
28013
#line 28014 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28014
  friend class ::CCExprResolve;
 
28015
  friend class ::CExprResolve;
 
28016
  friend class ::WinIfExists;
 
28017
  friend class ::WinImportHandler;
 
28018
  friend class ::WinMacros;
 
28019
  friend class ::WinAsm;
 
28020
  friend class ::WinDeclSpecs;
 
28021
  friend class ::WinMemberExplSpec;
 
28022
  friend class ::WinTypeKeywords;
 
28023
  friend class ::WinFriend;
 
28024
  friend class ::ExtAC;
 
28025
  friend class ::ExtACBuilderCoupling;
 
28026
  friend class ::ExtACSyntaxCoupling;
 
28027
  friend class ::ExtACTree;
 
28028
  friend class ::ExtACKeywords;
 
28029
  friend class ::ExtGnu;
 
28030
  friend class ::PragmaOnceUnitState;
 
28031
  friend class ::PragmaOnce;
 
28032
  friend class ::CMatchSyntax;
 
28033
 
 
28034
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28035
 
 
28036
  CTree *sons[2]; // name, init
 
28037
 
 
28038
public:
 
28039
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
28040
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28041
  static const char *NodeId ();
 
28042
  /** Get the name of the node. Can be compared with NodeId(). */
 
28043
  const char *NodeName () const { return NodeId (); }
 
28044
  /** Get the number of sons. */
 
28045
  int Sons () const { return 2; }
 
28046
  /** Get the n-th son.
 
28047
   *  \param n The index of the son.
 
28048
   *  \return The n-th son or NULL. */
 
28049
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
28050
  /** Replace a son.
 
28051
   *  \param old_son The son to replace.
 
28052
   *  \param new_son The new son. */
 
28053
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28054
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
28055
  }
 
28056
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
28057
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
28058
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
28059
   private:
 
28060
  typedef CT_MembInit CCExprResolveExpr;
 
28061
 
 
28062
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28063
 public :
 
28064
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
28065
  typedef CT_MembInit CExprResolveExpr;
 
28066
 
 
28067
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28068
 public :
 
28069
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28070
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28071
};
 
28072
 
 
28073
 
 
28074
#line 28075 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28075
} // closed Puma
 
28076
class CCExprResolve;
 
28077
class CExprResolve;
 
28078
class WinIfExists;
 
28079
class WinImportHandler;
 
28080
class WinMacros;
 
28081
class WinAsm;
 
28082
class WinDeclSpecs;
 
28083
class WinMemberExplSpec;
 
28084
class WinTypeKeywords;
 
28085
class WinFriend;
 
28086
class ExtAC;
 
28087
class ExtACBuilderCoupling;
 
28088
class ExtACSyntaxCoupling;
 
28089
class ExtACTree;
 
28090
class ExtACKeywords;
 
28091
class ExtGnu;
 
28092
class PragmaOnceUnitState;
 
28093
class PragmaOnce;
 
28094
class CMatchSyntax;
 
28095
namespace Puma {
 
28096
 
 
28097
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28098
class CT_BaseSpecList : public CT_List {
 
28099
#line 28100 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28100
  friend class ::CCExprResolve;
 
28101
  friend class ::CExprResolve;
 
28102
  friend class ::WinIfExists;
 
28103
  friend class ::WinImportHandler;
 
28104
  friend class ::WinMacros;
 
28105
  friend class ::WinAsm;
 
28106
  friend class ::WinDeclSpecs;
 
28107
  friend class ::WinMemberExplSpec;
 
28108
  friend class ::WinTypeKeywords;
 
28109
  friend class ::WinFriend;
 
28110
  friend class ::ExtAC;
 
28111
  friend class ::ExtACBuilderCoupling;
 
28112
  friend class ::ExtACSyntaxCoupling;
 
28113
  friend class ::ExtACTree;
 
28114
  friend class ::ExtACKeywords;
 
28115
  friend class ::ExtGnu;
 
28116
  friend class ::PragmaOnceUnitState;
 
28117
  friend class ::PragmaOnce;
 
28118
  friend class ::CMatchSyntax;
 
28119
 
 
28120
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28121
 
 
28122
public:
 
28123
  CT_BaseSpecList (int size = 2) : 
 
28124
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
28125
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28126
  static const char *NodeId ();
 
28127
  /** Get the name of the node. Can be compared with NodeId(). */
 
28128
  const char *NodeName () const { return NodeId (); }
 
28129
};
 
28130
 
 
28131
 
 
28132
#line 28133 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28133
} // closed Puma
 
28134
class CCExprResolve;
 
28135
class CExprResolve;
 
28136
class WinIfExists;
 
28137
class WinImportHandler;
 
28138
class WinMacros;
 
28139
class WinAsm;
 
28140
class WinDeclSpecs;
 
28141
class WinMemberExplSpec;
 
28142
class WinTypeKeywords;
 
28143
class WinFriend;
 
28144
class ExtAC;
 
28145
class ExtACBuilderCoupling;
 
28146
class ExtACSyntaxCoupling;
 
28147
class ExtACTree;
 
28148
class ExtACKeywords;
 
28149
class ExtGnu;
 
28150
class PragmaOnceUnitState;
 
28151
class PragmaOnce;
 
28152
class CMatchSyntax;
 
28153
namespace Puma {
 
28154
 
 
28155
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28156
class CT_AccessSpec : public CTree {
 
28157
#line 28158 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28158
  friend class ::CCExprResolve;
 
28159
  friend class ::CExprResolve;
 
28160
  friend class ::WinIfExists;
 
28161
  friend class ::WinImportHandler;
 
28162
  friend class ::WinMacros;
 
28163
  friend class ::WinAsm;
 
28164
  friend class ::WinDeclSpecs;
 
28165
  friend class ::WinMemberExplSpec;
 
28166
  friend class ::WinTypeKeywords;
 
28167
  friend class ::WinFriend;
 
28168
  friend class ::ExtAC;
 
28169
  friend class ::ExtACBuilderCoupling;
 
28170
  friend class ::ExtACSyntaxCoupling;
 
28171
  friend class ::ExtACTree;
 
28172
  friend class ::ExtACKeywords;
 
28173
  friend class ::ExtGnu;
 
28174
  friend class ::PragmaOnceUnitState;
 
28175
  friend class ::PragmaOnce;
 
28176
  friend class ::CMatchSyntax;
 
28177
 
 
28178
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28179
 
 
28180
  CTree *sons[2]; // access, colon
 
28181
 
 
28182
public:
 
28183
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
28184
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28185
  static const char *NodeId ();
 
28186
  /** Get the name of the node. Can be compared with NodeId(). */
 
28187
  const char *NodeName () const { return NodeId (); }
 
28188
  /** Get the number of sons. */
 
28189
  int Sons () const { return 2; }
 
28190
  /** Get the n-th son.
 
28191
   *  \param n The index of the son.
 
28192
   *  \return The n-th son or NULL. */
 
28193
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
28194
  int Access () const { return sons[0]->token ()->type (); }
 
28195
  /** Replace a son.
 
28196
   *  \param old_son The son to replace.
 
28197
   *  \param new_son The new son. */
 
28198
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28199
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
28200
  }
 
28201
};
 
28202
 
 
28203
 
 
28204
#line 28205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28205
} // closed Puma
 
28206
class CCExprResolve;
 
28207
class CExprResolve;
 
28208
class WinIfExists;
 
28209
class WinImportHandler;
 
28210
class WinMacros;
 
28211
class WinAsm;
 
28212
class WinDeclSpecs;
 
28213
class WinMemberExplSpec;
 
28214
class WinTypeKeywords;
 
28215
class WinFriend;
 
28216
class ExtAC;
 
28217
class ExtACBuilderCoupling;
 
28218
class ExtACSyntaxCoupling;
 
28219
class ExtACTree;
 
28220
class ExtACKeywords;
 
28221
class ExtGnu;
 
28222
class PragmaOnceUnitState;
 
28223
class PragmaOnce;
 
28224
class CMatchSyntax;
 
28225
namespace Puma {
 
28226
 
 
28227
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28228
class CT_BaseSpec : public CTree {
 
28229
#line 28230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28230
  friend class ::CCExprResolve;
 
28231
  friend class ::CExprResolve;
 
28232
  friend class ::WinIfExists;
 
28233
  friend class ::WinImportHandler;
 
28234
  friend class ::WinMacros;
 
28235
  friend class ::WinAsm;
 
28236
  friend class ::WinDeclSpecs;
 
28237
  friend class ::WinMemberExplSpec;
 
28238
  friend class ::WinTypeKeywords;
 
28239
  friend class ::WinFriend;
 
28240
  friend class ::ExtAC;
 
28241
  friend class ::ExtACBuilderCoupling;
 
28242
  friend class ::ExtACSyntaxCoupling;
 
28243
  friend class ::ExtACTree;
 
28244
  friend class ::ExtACKeywords;
 
28245
  friend class ::ExtGnu;
 
28246
  friend class ::PragmaOnceUnitState;
 
28247
  friend class ::PragmaOnce;
 
28248
  friend class ::CMatchSyntax;
 
28249
 
 
28250
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28251
 
 
28252
  CTree *sons[3]; // virtual, access, name
 
28253
 
 
28254
public:
 
28255
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
 
28256
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
 
28257
  }
 
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
  /** Get the number of sons. */
 
28263
  int Sons () const { return CTree::Sons (sons, 3); }
 
28264
  /** Get the n-th son.
 
28265
   *  \param n The index of the son.
 
28266
   *  \return The n-th son or NULL. */
 
28267
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
28268
  int Access () const { return sons[1]->token ()->type (); }
 
28269
  CTree *AccessSpec () const { return sons[1]; }
 
28270
  CTree *Virtual () const { return sons[0]; }
 
28271
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
28272
  /** Replace a son.
 
28273
   *  \param old_son The son to replace.
 
28274
   *  \param new_son The new son. */
 
28275
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28276
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
28277
  }
 
28278
};
 
28279
 
 
28280
 
 
28281
#line 28282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28282
} // closed Puma
 
28283
class CCExprResolve;
 
28284
class CExprResolve;
 
28285
class WinIfExists;
 
28286
class WinImportHandler;
 
28287
class WinMacros;
 
28288
class WinAsm;
 
28289
class WinDeclSpecs;
 
28290
class WinMemberExplSpec;
 
28291
class WinTypeKeywords;
 
28292
class WinFriend;
 
28293
class ExtAC;
 
28294
class ExtACBuilderCoupling;
 
28295
class ExtACSyntaxCoupling;
 
28296
class ExtACTree;
 
28297
class ExtACKeywords;
 
28298
class ExtGnu;
 
28299
class PragmaOnceUnitState;
 
28300
class PragmaOnce;
 
28301
class CMatchSyntax;
 
28302
namespace Puma {
 
28303
 
 
28304
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28305
class CT_AccessDecl : public CT_Decl {
 
28306
#line 28307 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28307
  friend class ::CCExprResolve;
 
28308
  friend class ::CExprResolve;
 
28309
  friend class ::WinIfExists;
 
28310
  friend class ::WinImportHandler;
 
28311
  friend class ::WinMacros;
 
28312
  friend class ::WinAsm;
 
28313
  friend class ::WinDeclSpecs;
 
28314
  friend class ::WinMemberExplSpec;
 
28315
  friend class ::WinTypeKeywords;
 
28316
  friend class ::WinFriend;
 
28317
  friend class ::ExtAC;
 
28318
  friend class ::ExtACBuilderCoupling;
 
28319
  friend class ::ExtACSyntaxCoupling;
 
28320
  friend class ::ExtACTree;
 
28321
  friend class ::ExtACKeywords;
 
28322
  friend class ::ExtGnu;
 
28323
  friend class ::PragmaOnceUnitState;
 
28324
  friend class ::PragmaOnce;
 
28325
  friend class ::CMatchSyntax;
 
28326
 
 
28327
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28328
 
 
28329
  CTree *sons[2]; // name, semi_colon
 
28330
 
 
28331
public:
 
28332
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
28333
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28334
  static const char *NodeId ();
 
28335
  /** Get the name of the node. Can be compared with NodeId(). */
 
28336
  const char *NodeName () const { return NodeId (); }
 
28337
  /** Get the number of sons. */
 
28338
  int Sons () const { return 2; }
 
28339
  /** Get the n-th son.
 
28340
   *  \param n The index of the son.
 
28341
   *  \return The n-th son or NULL. */
 
28342
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
28343
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
28344
  /** Replace a son.
 
28345
   *  \param old_son The son to replace.
 
28346
   *  \param new_son The new son. */
 
28347
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28348
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
28349
  }
 
28350
};
 
28351
 
 
28352
 
 
28353
#line 28354 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28354
} // closed Puma
 
28355
class CCExprResolve;
 
28356
class CExprResolve;
 
28357
class WinIfExists;
 
28358
class WinImportHandler;
 
28359
class WinMacros;
 
28360
class WinAsm;
 
28361
class WinDeclSpecs;
 
28362
class WinMemberExplSpec;
 
28363
class WinTypeKeywords;
 
28364
class WinFriend;
 
28365
class ExtAC;
 
28366
class ExtACBuilderCoupling;
 
28367
class ExtACSyntaxCoupling;
 
28368
class ExtACTree;
 
28369
class ExtACKeywords;
 
28370
class ExtGnu;
 
28371
class PragmaOnceUnitState;
 
28372
class PragmaOnce;
 
28373
class CMatchSyntax;
 
28374
namespace Puma {
 
28375
 
 
28376
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28377
class CT_UsingDecl : public CT_AccessDecl {
 
28378
#line 28379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28379
  friend class ::CCExprResolve;
 
28380
  friend class ::CExprResolve;
 
28381
  friend class ::WinIfExists;
 
28382
  friend class ::WinImportHandler;
 
28383
  friend class ::WinMacros;
 
28384
  friend class ::WinAsm;
 
28385
  friend class ::WinDeclSpecs;
 
28386
  friend class ::WinMemberExplSpec;
 
28387
  friend class ::WinTypeKeywords;
 
28388
  friend class ::WinFriend;
 
28389
  friend class ::ExtAC;
 
28390
  friend class ::ExtACBuilderCoupling;
 
28391
  friend class ::ExtACSyntaxCoupling;
 
28392
  friend class ::ExtACTree;
 
28393
  friend class ::ExtACKeywords;
 
28394
  friend class ::ExtGnu;
 
28395
  friend class ::PragmaOnceUnitState;
 
28396
  friend class ::PragmaOnce;
 
28397
  friend class ::CMatchSyntax;
 
28398
 
 
28399
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28400
 
 
28401
  CTree *sons[2]; // using, typename
 
28402
 
 
28403
public:
 
28404
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
28405
    AddSon (sons[0], u); AddSon (sons[1], 0); 
 
28406
  }
 
28407
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
28408
    AddSon (sons[0], u); AddSon (sons[1], t); 
 
28409
  }
 
28410
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28411
  static const char *NodeId ();
 
28412
  /** Get the name of the node. Can be compared with NodeId(). */
 
28413
  const char *NodeName () const { return NodeId (); }
 
28414
  /** Get the number of sons. */
 
28415
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
28416
  /** Get the n-th son.
 
28417
   *  \param n The index of the son.
 
28418
   *  \return The n-th son or NULL. */
 
28419
  CTree *Son (int n) const {
 
28420
    int num = CTree::Sons (sons, 2);
 
28421
    CTree *result = CTree::Son (sons, 2, n);
 
28422
    return result ? result : CT_AccessDecl::Son (n-num);
 
28423
  }
 
28424
  CTree *Typename () const { return sons[1]; }
 
28425
  /** Replace a son.
 
28426
   *  \param old_son The son to replace.
 
28427
   *  \param new_son The new son. */
 
28428
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28429
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
28430
    CT_AccessDecl::ReplaceSon (old_son, new_son);
 
28431
  }
 
28432
};
 
28433
 
 
28434
/*****************************************************************************/
 
28435
/*                                                                           */
 
28436
/*                              Wildcards                                    */
 
28437
/*                                                                           */
 
28438
/*****************************************************************************/
 
28439
 
 
28440
 
 
28441
#line 28442 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28442
} // closed Puma
 
28443
class CCExprResolve;
 
28444
class CExprResolve;
 
28445
class WinIfExists;
 
28446
class WinImportHandler;
 
28447
class WinMacros;
 
28448
class WinAsm;
 
28449
class WinDeclSpecs;
 
28450
class WinMemberExplSpec;
 
28451
class WinTypeKeywords;
 
28452
class WinFriend;
 
28453
class ExtAC;
 
28454
class ExtACBuilderCoupling;
 
28455
class ExtACSyntaxCoupling;
 
28456
class ExtACTree;
 
28457
class ExtACKeywords;
 
28458
class ExtGnu;
 
28459
class PragmaOnceUnitState;
 
28460
class PragmaOnce;
 
28461
class CMatchSyntax;
 
28462
namespace Puma {
 
28463
 
 
28464
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28465
class CT_Any : public CTree {
 
28466
#line 28467 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28467
  friend class ::CCExprResolve;
 
28468
  friend class ::CExprResolve;
 
28469
  friend class ::WinIfExists;
 
28470
  friend class ::WinImportHandler;
 
28471
  friend class ::WinMacros;
 
28472
  friend class ::WinAsm;
 
28473
  friend class ::WinDeclSpecs;
 
28474
  friend class ::WinMemberExplSpec;
 
28475
  friend class ::WinTypeKeywords;
 
28476
  friend class ::WinFriend;
 
28477
  friend class ::ExtAC;
 
28478
  friend class ::ExtACBuilderCoupling;
 
28479
  friend class ::ExtACSyntaxCoupling;
 
28480
  friend class ::ExtACTree;
 
28481
  friend class ::ExtACKeywords;
 
28482
  friend class ::ExtGnu;
 
28483
  friend class ::PragmaOnceUnitState;
 
28484
  friend class ::PragmaOnce;
 
28485
  friend class ::CMatchSyntax;
 
28486
 
 
28487
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28488
 
 
28489
  CTree *sons[2]; // keyword, extension
 
28490
 
 
28491
public:
 
28492
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
28493
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28494
  static const char *NodeId ();
 
28495
  /** Get the name of the node. Can be compared with NodeId(). */
 
28496
  const char *NodeName () const { return NodeId (); }
 
28497
  /** Get the number of sons. */
 
28498
  int Sons () const { return CTree::Sons (sons, 2); }
 
28499
  /** Get the n-th son.
 
28500
   *  \param n The index of the son.
 
28501
   *  \return The n-th son or NULL. */
 
28502
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
28503
  /** Replace a son.
 
28504
   *  \param old_son The son to replace.
 
28505
   *  \param new_son The new son. */
 
28506
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28507
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
28508
  }
 
28509
  int AnyType () const { return sons[0]->token ()->type (); }
 
28510
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
 
28511
};
 
28512
 
 
28513
 
 
28514
#line 28515 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28515
} // closed Puma
 
28516
class CCExprResolve;
 
28517
class CExprResolve;
 
28518
class WinIfExists;
 
28519
class WinImportHandler;
 
28520
class WinMacros;
 
28521
class WinAsm;
 
28522
class WinDeclSpecs;
 
28523
class WinMemberExplSpec;
 
28524
class WinTypeKeywords;
 
28525
class WinFriend;
 
28526
class ExtAC;
 
28527
class ExtACBuilderCoupling;
 
28528
class ExtACSyntaxCoupling;
 
28529
class ExtACTree;
 
28530
class ExtACKeywords;
 
28531
class ExtGnu;
 
28532
class PragmaOnceUnitState;
 
28533
class PragmaOnce;
 
28534
class CMatchSyntax;
 
28535
namespace Puma {
 
28536
 
 
28537
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28538
class CT_AnyList : public CT_Any {
 
28539
#line 28540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28540
  friend class ::CCExprResolve;
 
28541
  friend class ::CExprResolve;
 
28542
  friend class ::WinIfExists;
 
28543
  friend class ::WinImportHandler;
 
28544
  friend class ::WinMacros;
 
28545
  friend class ::WinAsm;
 
28546
  friend class ::WinDeclSpecs;
 
28547
  friend class ::WinMemberExplSpec;
 
28548
  friend class ::WinTypeKeywords;
 
28549
  friend class ::WinFriend;
 
28550
  friend class ::ExtAC;
 
28551
  friend class ::ExtACBuilderCoupling;
 
28552
  friend class ::ExtACSyntaxCoupling;
 
28553
  friend class ::ExtACTree;
 
28554
  friend class ::ExtACKeywords;
 
28555
  friend class ::ExtGnu;
 
28556
  friend class ::PragmaOnceUnitState;
 
28557
  friend class ::PragmaOnce;
 
28558
  friend class ::CMatchSyntax;
 
28559
 
 
28560
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28561
 
 
28562
public:
 
28563
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
28564
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28565
  static const char *NodeId ();
 
28566
  /** Get the name of the node. Can be compared with NodeId(). */
 
28567
  const char *NodeName () const { return NodeId (); }
 
28568
};
 
28569
 
 
28570
 
 
28571
#line 28572 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28572
} // closed Puma
 
28573
class CCExprResolve;
 
28574
class CExprResolve;
 
28575
class WinIfExists;
 
28576
class WinImportHandler;
 
28577
class WinMacros;
 
28578
class WinAsm;
 
28579
class WinDeclSpecs;
 
28580
class WinMemberExplSpec;
 
28581
class WinTypeKeywords;
 
28582
class WinFriend;
 
28583
class ExtAC;
 
28584
class ExtACBuilderCoupling;
 
28585
class ExtACSyntaxCoupling;
 
28586
class ExtACTree;
 
28587
class ExtACKeywords;
 
28588
class ExtGnu;
 
28589
class PragmaOnceUnitState;
 
28590
class PragmaOnce;
 
28591
class CMatchSyntax;
 
28592
namespace Puma {
 
28593
 
 
28594
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28595
class CT_AnyExtension : public CTree, public CSemValue {
 
28596
#line 28597 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28597
  friend class ::CCExprResolve;
 
28598
  friend class ::CExprResolve;
 
28599
  friend class ::WinIfExists;
 
28600
  friend class ::WinImportHandler;
 
28601
  friend class ::WinMacros;
 
28602
  friend class ::WinAsm;
 
28603
  friend class ::WinDeclSpecs;
 
28604
  friend class ::WinMemberExplSpec;
 
28605
  friend class ::WinTypeKeywords;
 
28606
  friend class ::WinFriend;
 
28607
  friend class ::ExtAC;
 
28608
  friend class ::ExtACBuilderCoupling;
 
28609
  friend class ::ExtACSyntaxCoupling;
 
28610
  friend class ::ExtACTree;
 
28611
  friend class ::ExtACKeywords;
 
28612
  friend class ::ExtGnu;
 
28613
  friend class ::PragmaOnceUnitState;
 
28614
  friend class ::PragmaOnce;
 
28615
  friend class ::CMatchSyntax;
 
28616
 
 
28617
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28618
 
 
28619
  CTree *sons[5]; // open, string, comma, cond, close
 
28620
 
 
28621
public:
 
28622
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
 
28623
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
28624
    AddSon (sons[3], c); AddSon (sons[4], cr); 
 
28625
  }
 
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, 5); }
 
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, 5, 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, 5, old_son, new_son);
 
28641
  }
 
28642
  CTree *Condition () const { return sons[3]; }
 
28643
  CT_Token *String () const { return (CT_Token*)sons[1]; }
 
28644
  const char *Name () const { 
 
28645
    return value ? value->StrLiteral ()->String () : (const char*)0; }
 
28646
 
 
28647
  CExprValue *Value () const { return value; }
 
28648
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
28649
};
 
28650
 
 
28651
 
 
28652
#line 28653 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28653
} // closed Puma
 
28654
class CCExprResolve;
 
28655
class CExprResolve;
 
28656
class WinIfExists;
 
28657
class WinImportHandler;
 
28658
class WinMacros;
 
28659
class WinAsm;
 
28660
class WinDeclSpecs;
 
28661
class WinMemberExplSpec;
 
28662
class WinTypeKeywords;
 
28663
class WinFriend;
 
28664
class ExtAC;
 
28665
class ExtACBuilderCoupling;
 
28666
class ExtACSyntaxCoupling;
 
28667
class ExtACTree;
 
28668
class ExtACKeywords;
 
28669
class ExtGnu;
 
28670
class PragmaOnceUnitState;
 
28671
class PragmaOnce;
 
28672
class CMatchSyntax;
 
28673
namespace Puma {
 
28674
 
 
28675
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28676
class CT_AnyCondition : public CTree {
 
28677
#line 28678 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28678
  friend class ::CCExprResolve;
 
28679
  friend class ::CExprResolve;
 
28680
  friend class ::WinIfExists;
 
28681
  friend class ::WinImportHandler;
 
28682
  friend class ::WinMacros;
 
28683
  friend class ::WinAsm;
 
28684
  friend class ::WinDeclSpecs;
 
28685
  friend class ::WinMemberExplSpec;
 
28686
  friend class ::WinTypeKeywords;
 
28687
  friend class ::WinFriend;
 
28688
  friend class ::ExtAC;
 
28689
  friend class ::ExtACBuilderCoupling;
 
28690
  friend class ::ExtACSyntaxCoupling;
 
28691
  friend class ::ExtACTree;
 
28692
  friend class ::ExtACKeywords;
 
28693
  friend class ::ExtGnu;
 
28694
  friend class ::PragmaOnceUnitState;
 
28695
  friend class ::PragmaOnce;
 
28696
  friend class ::CMatchSyntax;
 
28697
 
 
28698
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28699
 
 
28700
  CTree *sons[3]; // arg1, arg2, arg3
 
28701
 
 
28702
public:
 
28703
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
 
28704
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
 
28705
  }
 
28706
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28707
  static const char *NodeId ();
 
28708
  /** Get the name of the node. Can be compared with NodeId(). */
 
28709
  const char *NodeName () const { return NodeId (); }
 
28710
  /** Get the number of sons. */
 
28711
  int Sons () const { return CTree::Sons (sons, 3); }
 
28712
  /** Get the n-th son.
 
28713
   *  \param n The index of the son.
 
28714
   *  \return The n-th son or NULL. */
 
28715
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
28716
  /** Replace a son.
 
28717
   *  \param old_son The son to replace.
 
28718
   *  \param new_son The new son. */
 
28719
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28720
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
28721
  }
 
28722
};
 
28723
 
 
28724
 
 
28725
} // namespace Puma
 
28726
 
 
28727
#endif /* __CTree_h__ */
 
28728
 
 
28729
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
28730
namespace Puma {
 
28731
 
 
28732
 
 
28733
 
 
28734
#line 28735 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28735
} // closed Puma
 
28736
class CCExprResolve;
 
28737
class CExprResolve;
 
28738
class WinIfExists;
 
28739
class WinImportHandler;
 
28740
class WinMacros;
 
28741
class WinAsm;
 
28742
class WinDeclSpecs;
 
28743
class WinMemberExplSpec;
 
28744
class WinTypeKeywords;
 
28745
class WinFriend;
 
28746
class ExtAC;
 
28747
class ExtACBuilderCoupling;
 
28748
class ExtACSyntaxCoupling;
 
28749
class ExtACTree;
 
28750
class ExtACKeywords;
 
28751
class ExtGnu;
 
28752
class PragmaOnceUnitState;
 
28753
class PragmaOnce;
 
28754
class CMatchSyntax;
 
28755
namespace Puma {
 
28756
 
 
28757
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
28758
class CT_GnuAsmSpec : public CTree {
 
28759
#line 28760 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28760
  friend class ::CCExprResolve;
 
28761
  friend class ::CExprResolve;
 
28762
  friend class ::WinIfExists;
 
28763
  friend class ::WinImportHandler;
 
28764
  friend class ::WinMacros;
 
28765
  friend class ::WinAsm;
 
28766
  friend class ::WinDeclSpecs;
 
28767
  friend class ::WinMemberExplSpec;
 
28768
  friend class ::WinTypeKeywords;
 
28769
  friend class ::WinFriend;
 
28770
  friend class ::ExtAC;
 
28771
  friend class ::ExtACBuilderCoupling;
 
28772
  friend class ::ExtACSyntaxCoupling;
 
28773
  friend class ::ExtACTree;
 
28774
  friend class ::ExtACKeywords;
 
28775
  friend class ::ExtGnu;
 
28776
  friend class ::PragmaOnceUnitState;
 
28777
  friend class ::PragmaOnce;
 
28778
  friend class ::CMatchSyntax;
 
28779
 
 
28780
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
28781
 
 
28782
  CTree *_key_asm;    // CT_Token
 
28783
  CTree *_open;   // CT_Token
 
28784
  CTree *_expr;
 
28785
  CTree *_close;  // CT_Token
 
28786
 
 
28787
public:
 
28788
  CT_GnuAsmSpec (CTree *a, CTree *o, CTree *e, CTree *c) :
 
28789
    _key_asm (a), _open (o), _expr (e), _close (c) {}
 
28790
  static const char *NodeId ();
 
28791
  const char *NodeName () const { return NodeId (); } 
 
28792
  int Sons () const { return 4; }
 
28793
  CTree *Son (int n) const {
 
28794
    switch (n) {
 
28795
      case 0: return _key_asm;
 
28796
      case 1: return _open;
 
28797
      case 2: return _expr;
 
28798
      case 3: return _close;
 
28799
      default: return (CTree*)0;
 
28800
    }
 
28801
  }
 
28802
  CT_Expression *Expr () const { return (CT_Expression*)_expr; }
 
28803
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
28804
    if (old_son == _expr) _expr = new_son;
 
28805
    else if (old_son == _key_asm) _key_asm = new_son;
 
28806
    else if (old_son == _open) _open = new_son;
 
28807
    else if (old_son == _close) _close = new_son;
 
28808
  }
 
28809
};
 
28810
 
 
28811
 
 
28812
#line 28813 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28813
} // closed Puma
 
28814
class CCExprResolve;
 
28815
class CExprResolve;
 
28816
class WinIfExists;
 
28817
class WinImportHandler;
 
28818
class WinMacros;
 
28819
class WinAsm;
 
28820
class WinDeclSpecs;
 
28821
class WinMemberExplSpec;
 
28822
class WinTypeKeywords;
 
28823
class WinFriend;
 
28824
class ExtAC;
 
28825
class ExtACBuilderCoupling;
 
28826
class ExtACSyntaxCoupling;
 
28827
class ExtACTree;
 
28828
class ExtACKeywords;
 
28829
class ExtGnu;
 
28830
class PragmaOnceUnitState;
 
28831
class PragmaOnce;
 
28832
class CMatchSyntax;
 
28833
namespace Puma {
 
28834
 
 
28835
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14255
28836
class CT_GnuAsmDef : public CT_AsmDef {
14256
 
#line 14257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
28837
#line 28838 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28838
  friend class ::CCExprResolve;
 
28839
  friend class ::CExprResolve;
14257
28840
  friend class ::WinIfExists;
14258
28841
  friend class ::WinImportHandler;
14259
28842
  friend class ::WinMacros;
14260
 
  friend class ::CMatchSyntax;
14261
 
  friend class ::ExtGnu;
 
28843
  friend class ::WinAsm;
 
28844
  friend class ::WinDeclSpecs;
 
28845
  friend class ::WinMemberExplSpec;
 
28846
  friend class ::WinTypeKeywords;
 
28847
  friend class ::WinFriend;
14262
28848
  friend class ::ExtAC;
14263
28849
  friend class ::ExtACBuilderCoupling;
14264
28850
  friend class ::ExtACSyntaxCoupling;
14265
28851
  friend class ::ExtACTree;
14266
28852
  friend class ::ExtACKeywords;
14267
 
  friend class ::WinAsm;
14268
 
  friend class ::WinDeclSpecs;
14269
 
  friend class ::WinMemberExplSpec;
14270
 
  friend class ::WinTypeKeywords;
 
28853
  friend class ::ExtGnu;
14271
28854
  friend class ::PragmaOnceUnitState;
14272
28855
  friend class ::PragmaOnce;
14273
 
  friend class ::CCExprResolve;
14274
 
  friend class ::CExprResolve;
 
28856
  friend class ::CMatchSyntax;
14275
28857
 
14276
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
28858
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14277
28859
 
14278
28860
  CTree *_cvqual;
14279
28861
  CTree *_operands0;
14329
28911
};
14330
28912
 
14331
28913
 
14332
 
#line 14333 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
28914
#line 28915 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
14333
28915
} // closed Puma
 
28916
class CCExprResolve;
 
28917
class CExprResolve;
14334
28918
class WinIfExists;
14335
28919
class WinImportHandler;
14336
28920
class WinMacros;
14337
 
class CMatchSyntax;
14338
 
class ExtGnu;
 
28921
class WinAsm;
 
28922
class WinDeclSpecs;
 
28923
class WinMemberExplSpec;
 
28924
class WinTypeKeywords;
 
28925
class WinFriend;
14339
28926
class ExtAC;
14340
28927
class ExtACBuilderCoupling;
14341
28928
class ExtACSyntaxCoupling;
14342
28929
class ExtACTree;
14343
28930
class ExtACKeywords;
14344
 
class WinAsm;
14345
 
class WinDeclSpecs;
14346
 
class WinMemberExplSpec;
14347
 
class WinTypeKeywords;
 
28931
class ExtGnu;
14348
28932
class PragmaOnceUnitState;
14349
28933
class PragmaOnce;
14350
 
class CCExprResolve;
14351
 
class CExprResolve;
 
28934
class CMatchSyntax;
14352
28935
namespace Puma {
14353
28936
 
14354
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
28937
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14355
28938
class CT_GnuAsmOperand : public CTree {
14356
 
#line 14357 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
28939
#line 28940 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
28940
  friend class ::CCExprResolve;
 
28941
  friend class ::CExprResolve;
14357
28942
  friend class ::WinIfExists;
14358
28943
  friend class ::WinImportHandler;
14359
28944
  friend class ::WinMacros;
14360
 
  friend class ::CMatchSyntax;
14361
 
  friend class ::ExtGnu;
 
28945
  friend class ::WinAsm;
 
28946
  friend class ::WinDeclSpecs;
 
28947
  friend class ::WinMemberExplSpec;
 
28948
  friend class ::WinTypeKeywords;
 
28949
  friend class ::WinFriend;
14362
28950
  friend class ::ExtAC;
14363
28951
  friend class ::ExtACBuilderCoupling;
14364
28952
  friend class ::ExtACSyntaxCoupling;
14365
28953
  friend class ::ExtACTree;
14366
28954
  friend class ::ExtACKeywords;
14367
 
  friend class ::WinAsm;
14368
 
  friend class ::WinDeclSpecs;
14369
 
  friend class ::WinMemberExplSpec;
14370
 
  friend class ::WinTypeKeywords;
 
28955
  friend class ::ExtGnu;
14371
28956
  friend class ::PragmaOnceUnitState;
14372
28957
  friend class ::PragmaOnce;
14373
 
  friend class ::CCExprResolve;
14374
 
  friend class ::CExprResolve;
 
28958
  friend class ::CMatchSyntax;
14375
28959
 
14376
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
28960
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14377
28961
 
14378
28962
  CTree *_string;
14379
28963
  CTree *_open;   // CT_Token
14406
28990
};
14407
28991
 
14408
28992
 
14409
 
#line 14410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
28993
#line 28994 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
14410
28994
} // closed Puma
 
28995
class CCExprResolve;
 
28996
class CExprResolve;
14411
28997
class WinIfExists;
14412
28998
class WinImportHandler;
14413
28999
class WinMacros;
14414
 
class CMatchSyntax;
14415
 
class ExtGnu;
 
29000
class WinAsm;
 
29001
class WinDeclSpecs;
 
29002
class WinMemberExplSpec;
 
29003
class WinTypeKeywords;
 
29004
class WinFriend;
14416
29005
class ExtAC;
14417
29006
class ExtACBuilderCoupling;
14418
29007
class ExtACSyntaxCoupling;
14419
29008
class ExtACTree;
14420
29009
class ExtACKeywords;
14421
 
class WinAsm;
14422
 
class WinDeclSpecs;
14423
 
class WinMemberExplSpec;
14424
 
class WinTypeKeywords;
 
29010
class ExtGnu;
14425
29011
class PragmaOnceUnitState;
14426
29012
class PragmaOnce;
14427
 
class CCExprResolve;
14428
 
class CExprResolve;
 
29013
class CMatchSyntax;
14429
29014
namespace Puma {
14430
29015
 
14431
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29016
#line 154 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14432
29017
class CT_GnuAsmOperands : public CT_List {
14433
 
#line 14434 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
29018
#line 29019 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
29019
  friend class ::CCExprResolve;
 
29020
  friend class ::CExprResolve;
14434
29021
  friend class ::WinIfExists;
14435
29022
  friend class ::WinImportHandler;
14436
29023
  friend class ::WinMacros;
14437
 
  friend class ::CMatchSyntax;
14438
 
  friend class ::ExtGnu;
 
29024
  friend class ::WinAsm;
 
29025
  friend class ::WinDeclSpecs;
 
29026
  friend class ::WinMemberExplSpec;
 
29027
  friend class ::WinTypeKeywords;
 
29028
  friend class ::WinFriend;
14439
29029
  friend class ::ExtAC;
14440
29030
  friend class ::ExtACBuilderCoupling;
14441
29031
  friend class ::ExtACSyntaxCoupling;
14442
29032
  friend class ::ExtACTree;
14443
29033
  friend class ::ExtACKeywords;
14444
 
  friend class ::WinAsm;
14445
 
  friend class ::WinDeclSpecs;
14446
 
  friend class ::WinMemberExplSpec;
14447
 
  friend class ::WinTypeKeywords;
 
29034
  friend class ::ExtGnu;
14448
29035
  friend class ::PragmaOnceUnitState;
14449
29036
  friend class ::PragmaOnce;
14450
 
  friend class ::CCExprResolve;
14451
 
  friend class ::CExprResolve;
 
29037
  friend class ::CMatchSyntax;
14452
29038
 
14453
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29039
#line 154 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14454
29040
 
14455
29041
public:
14456
29042
  CT_GnuAsmOperands () { AddProperties (OPEN | SEPARATORS); }
14459
29045
};
14460
29046
 
14461
29047
 
14462
 
#line 14463 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
29048
#line 29049 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
14463
29049
} // closed Puma
 
29050
class CCExprResolve;
 
29051
class CExprResolve;
14464
29052
class WinIfExists;
14465
29053
class WinImportHandler;
14466
29054
class WinMacros;
14467
 
class CMatchSyntax;
14468
 
class ExtGnu;
 
29055
class WinAsm;
 
29056
class WinDeclSpecs;
 
29057
class WinMemberExplSpec;
 
29058
class WinTypeKeywords;
 
29059
class WinFriend;
14469
29060
class ExtAC;
14470
29061
class ExtACBuilderCoupling;
14471
29062
class ExtACSyntaxCoupling;
14472
29063
class ExtACTree;
14473
29064
class ExtACKeywords;
14474
 
class WinAsm;
14475
 
class WinDeclSpecs;
14476
 
class WinMemberExplSpec;
14477
 
class WinTypeKeywords;
 
29065
class ExtGnu;
14478
29066
class PragmaOnceUnitState;
14479
29067
class PragmaOnce;
14480
 
class CCExprResolve;
14481
 
class CExprResolve;
 
29068
class CMatchSyntax;
14482
29069
namespace Puma {
14483
29070
 
14484
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29071
#line 161 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14485
29072
class CT_GnuAsmClobbers : public CT_List {
14486
 
#line 14487 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
29073
#line 29074 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
29074
  friend class ::CCExprResolve;
 
29075
  friend class ::CExprResolve;
14487
29076
  friend class ::WinIfExists;
14488
29077
  friend class ::WinImportHandler;
14489
29078
  friend class ::WinMacros;
14490
 
  friend class ::CMatchSyntax;
14491
 
  friend class ::ExtGnu;
 
29079
  friend class ::WinAsm;
 
29080
  friend class ::WinDeclSpecs;
 
29081
  friend class ::WinMemberExplSpec;
 
29082
  friend class ::WinTypeKeywords;
 
29083
  friend class ::WinFriend;
14492
29084
  friend class ::ExtAC;
14493
29085
  friend class ::ExtACBuilderCoupling;
14494
29086
  friend class ::ExtACSyntaxCoupling;
14495
29087
  friend class ::ExtACTree;
14496
29088
  friend class ::ExtACKeywords;
14497
 
  friend class ::WinAsm;
14498
 
  friend class ::WinDeclSpecs;
14499
 
  friend class ::WinMemberExplSpec;
14500
 
  friend class ::WinTypeKeywords;
 
29089
  friend class ::ExtGnu;
14501
29090
  friend class ::PragmaOnceUnitState;
14502
29091
  friend class ::PragmaOnce;
14503
 
  friend class ::CCExprResolve;
14504
 
  friend class ::CExprResolve;
 
29092
  friend class ::CMatchSyntax;
14505
29093
 
14506
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29094
#line 161 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14507
29095
 
14508
29096
public:
14509
29097
  CT_GnuAsmClobbers () { AddProperties (OPEN | SEPARATORS); }
14518
29106
/*****************************************************************************/
14519
29107
 
14520
29108
 
14521
 
#line 14522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
29109
#line 29110 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
14522
29110
} // closed Puma
 
29111
class CCExprResolve;
 
29112
class CExprResolve;
14523
29113
class WinIfExists;
14524
29114
class WinImportHandler;
14525
29115
class WinMacros;
14526
 
class CMatchSyntax;
14527
 
class ExtGnu;
 
29116
class WinAsm;
 
29117
class WinDeclSpecs;
 
29118
class WinMemberExplSpec;
 
29119
class WinTypeKeywords;
 
29120
class WinFriend;
14528
29121
class ExtAC;
14529
29122
class ExtACBuilderCoupling;
14530
29123
class ExtACSyntaxCoupling;
14531
29124
class ExtACTree;
14532
29125
class ExtACKeywords;
14533
 
class WinAsm;
14534
 
class WinDeclSpecs;
14535
 
class WinMemberExplSpec;
14536
 
class WinTypeKeywords;
 
29126
class ExtGnu;
14537
29127
class PragmaOnceUnitState;
14538
29128
class PragmaOnce;
14539
 
class CCExprResolve;
14540
 
class CExprResolve;
14541
 
namespace Puma {
14542
 
 
14543
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29129
class CMatchSyntax;
 
29130
namespace Puma {
 
29131
 
 
29132
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29133
 
 
29134
#line 29135 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
29135
} // closed Puma
 
29136
 
 
29137
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29138
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29139
#include "CCExprResolveH.ah"
 
29140
#endif
 
29141
namespace Puma {
 
29142
 
 
29143
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29144
 
 
29145
#line 29146 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
29146
} // closed Puma
 
29147
 
 
29148
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29149
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29150
#include "CExprResolveH.ah"
 
29151
#endif
 
29152
namespace Puma {
 
29153
 
 
29154
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14544
29155
class CT_GnuStatementExpr : public CT_Expression {
14545
 
#line 14546 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
29156
#line 29157 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
29157
  friend class ::CCExprResolve;
 
29158
  friend class ::CExprResolve;
14546
29159
  friend class ::WinIfExists;
14547
29160
  friend class ::WinImportHandler;
14548
29161
  friend class ::WinMacros;
14549
 
  friend class ::CMatchSyntax;
14550
 
  friend class ::ExtGnu;
 
29162
  friend class ::WinAsm;
 
29163
  friend class ::WinDeclSpecs;
 
29164
  friend class ::WinMemberExplSpec;
 
29165
  friend class ::WinTypeKeywords;
 
29166
  friend class ::WinFriend;
14551
29167
  friend class ::ExtAC;
14552
29168
  friend class ::ExtACBuilderCoupling;
14553
29169
  friend class ::ExtACSyntaxCoupling;
14554
29170
  friend class ::ExtACTree;
14555
29171
  friend class ::ExtACKeywords;
14556
 
  friend class ::WinAsm;
14557
 
  friend class ::WinDeclSpecs;
14558
 
  friend class ::WinMemberExplSpec;
14559
 
  friend class ::WinTypeKeywords;
 
29172
  friend class ::ExtGnu;
14560
29173
  friend class ::PragmaOnceUnitState;
14561
29174
  friend class ::PragmaOnce;
14562
 
  friend class ::CCExprResolve;
14563
 
  friend class ::CExprResolve;
 
29175
  friend class ::CMatchSyntax;
14564
29176
 
14565
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29177
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14566
29178
 
14567
29179
  CTree *_open;
14568
29180
  CTree *_stmt;
14585
29197
   private:
14586
29198
  typedef CT_GnuStatementExpr CCExprResolveExpr;
14587
29199
 
14588
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29200
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
14589
29201
 public :
14590
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
29202
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
14591
29203
  typedef CT_GnuStatementExpr CExprResolveExpr;
14592
29204
 
14593
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29205
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
14594
29206
 public :
14595
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
14596
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29207
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29208
#line 193 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14597
29209
};
14598
29210
 
14599
29211
/*****************************************************************************/
14604
29216
 
14605
29217
// typeof(expr) or typeof(named type) feature
14606
29218
 
14607
 
#line 14608 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
29219
#line 29220 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
14608
29220
} // closed Puma
 
29221
class CCExprResolve;
 
29222
class CExprResolve;
14609
29223
class WinIfExists;
14610
29224
class WinImportHandler;
14611
29225
class WinMacros;
14612
 
class CMatchSyntax;
14613
 
class ExtGnu;
 
29226
class WinAsm;
 
29227
class WinDeclSpecs;
 
29228
class WinMemberExplSpec;
 
29229
class WinTypeKeywords;
 
29230
class WinFriend;
14614
29231
class ExtAC;
14615
29232
class ExtACBuilderCoupling;
14616
29233
class ExtACSyntaxCoupling;
14617
29234
class ExtACTree;
14618
29235
class ExtACKeywords;
14619
 
class WinAsm;
14620
 
class WinDeclSpecs;
14621
 
class WinMemberExplSpec;
14622
 
class WinTypeKeywords;
 
29236
class ExtGnu;
14623
29237
class PragmaOnceUnitState;
14624
29238
class PragmaOnce;
14625
 
class CCExprResolve;
14626
 
class CExprResolve;
 
29239
class CMatchSyntax;
14627
29240
namespace Puma {
14628
29241
 
14629
 
#line 171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29242
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14630
29243
class CT_GnuTypeof : public CT_DeclSpec, public CSemValue {
14631
 
#line 14632 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
29244
#line 29245 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
29245
  friend class ::CCExprResolve;
 
29246
  friend class ::CExprResolve;
14632
29247
  friend class ::WinIfExists;
14633
29248
  friend class ::WinImportHandler;
14634
29249
  friend class ::WinMacros;
14635
 
  friend class ::CMatchSyntax;
14636
 
  friend class ::ExtGnu;
 
29250
  friend class ::WinAsm;
 
29251
  friend class ::WinDeclSpecs;
 
29252
  friend class ::WinMemberExplSpec;
 
29253
  friend class ::WinTypeKeywords;
 
29254
  friend class ::WinFriend;
14637
29255
  friend class ::ExtAC;
14638
29256
  friend class ::ExtACBuilderCoupling;
14639
29257
  friend class ::ExtACSyntaxCoupling;
14640
29258
  friend class ::ExtACTree;
14641
29259
  friend class ::ExtACKeywords;
14642
 
  friend class ::WinAsm;
14643
 
  friend class ::WinDeclSpecs;
14644
 
  friend class ::WinMemberExplSpec;
14645
 
  friend class ::WinTypeKeywords;
 
29260
  friend class ::ExtGnu;
14646
29261
  friend class ::PragmaOnceUnitState;
14647
29262
  friend class ::PragmaOnce;
14648
 
  friend class ::CCExprResolve;
14649
 
  friend class ::CExprResolve;
 
29263
  friend class ::CMatchSyntax;
14650
29264
 
14651
 
#line 171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29265
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14652
29266
 
14653
29267
  CTree *sons[5]; // key, open, type, close, expr
14654
29268
 
14676
29290
 
14677
29291
#endif /* __gnu_c_tree_h__ */
14678
29292
 
14679
 
#line 14680 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
14680
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
14681
 
 
14682
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14683
 
 
14684
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
14685
 
// This file is part of PUMA.
14686
 
// Copyright (C) 1999-2003  The PUMA developer team.
14687
 
//                                                                
14688
 
// This program is free software;  you can redistribute it and/or 
14689
 
// modify it under the terms of the GNU General Public License as 
14690
 
// published by the Free Software Foundation; either version 2 of 
14691
 
// the License, or (at your option) any later version.            
14692
 
//                                                                
14693
 
// This program is distributed in the hope that it will be useful,
14694
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
14695
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
14696
 
// GNU General Public License for more details.                   
14697
 
//                                                                
14698
 
// You should have received a copy of the GNU General Public      
14699
 
// License along with this program; if not, write to the Free     
14700
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
14701
 
// MA  02111-1307  USA                                            
14702
 
 
14703
 
#ifndef __CStructure_h__
14704
 
#define __CStructure_h__
14705
 
 
14706
 
// base class of everything that also is a scope
14707
 
// (function, class, union, namespace...)
14708
 
// stores semantic info objects for variables, 
14709
 
// enumerators, function and template parameters,
14710
 
// typedefs, classes, unions, enumerations, 
14711
 
// namespaces, using-directives, friend function 
14712
 
// declarations, functions, class methods, class 
14713
 
// data members, function and class templates,
14714
 
// function and class template instances, member 
14715
 
// aliases
14716
 
 
14717
 
 
14718
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
14719
 
// This file is part of PUMA.
14720
 
// Copyright (C) 1999-2003  The PUMA developer team.
14721
 
//                                                                
14722
 
// This program is free software;  you can redistribute it and/or 
14723
 
// modify it under the terms of the GNU General Public License as 
14724
 
// published by the Free Software Foundation; either version 2 of 
14725
 
// the License, or (at your option) any later version.            
14726
 
//                                                                
14727
 
// This program is distributed in the hope that it will be useful,
14728
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
14729
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
14730
 
// GNU General Public License for more details.                   
14731
 
//                                                                
14732
 
// You should have received a copy of the GNU General Public      
14733
 
// License along with this program; if not, write to the Free     
14734
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
14735
 
// MA  02111-1307  USA                                            
14736
 
 
14737
 
#ifndef __CScopeInfo_h__
14738
 
#define __CScopeInfo_h__
14739
 
 
14740
 
// scope info
14741
 
 
14742
 
 
14743
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
29293
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/WinCTree.h"
 
29294
// This file is part of PUMA.
 
29295
// Copyright (C) 1999-2003  The PUMA developer team.
 
29296
//                                                                
 
29297
// This program is free software;  you can redistribute it and/or 
 
29298
// modify it under the terms of the GNU General Public License as 
 
29299
// published by the Free Software Foundation; either version 2 of 
 
29300
// the License, or (at your option) any later version.            
 
29301
//                                                                
 
29302
// This program is distributed in the hope that it will be useful,
 
29303
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
29304
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
29305
// GNU General Public License for more details.                   
 
29306
//                                                                
 
29307
// You should have received a copy of the GNU General Public      
 
29308
// License along with this program; if not, write to the Free     
 
29309
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
29310
// MA  02111-1307  USA                                            
 
29311
 
 
29312
#ifndef __win_c_tree_h__
 
29313
#define __win_c_tree_h__
 
29314
 
 
29315
namespace Puma {
 
29316
 
 
29317
 
 
29318
// Syntax tree node hierarchy:
 
29319
class CTree;
 
29320
class   CT_Statement;
 
29321
class     CT_AsmBlock;
 
29322
 
 
29323
 
 
29324
} // namespace Puma
 
29325
 
 
29326
 
 
29327
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29328
 
 
29329
#line 29330 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
29330
 
 
29331
#ifndef __ac_fwd_ExtACTree__
 
29332
#define __ac_fwd_ExtACTree__
 
29333
class ExtACTree;
 
29334
namespace AC {
 
29335
  template <class JoinPoint>
 
29336
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
29337
  template <class JoinPoint>
 
29338
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
29339
}
 
29340
#endif
 
29341
 
 
29342
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
29343
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
29344
#endif
 
29345
 
 
29346
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29347
// This file is part of PUMA.
 
29348
// Copyright (C) 1999-2003  The PUMA developer team.
 
29349
//                                                                
 
29350
// This program is free software;  you can redistribute it and/or 
 
29351
// modify it under the terms of the GNU General Public License as 
 
29352
// published by the Free Software Foundation; either version 2 of 
 
29353
// the License, or (at your option) any later version.            
 
29354
//                                                                
 
29355
// This program is distributed in the hope that it will be useful,
 
29356
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
29357
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
29358
// GNU General Public License for more details.                   
 
29359
//                                                                
 
29360
// You should have received a copy of the GNU General Public      
 
29361
// License along with this program; if not, write to the Free     
 
29362
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
29363
// MA  02111-1307  USA                                            
 
29364
 
 
29365
#ifndef __CTree_h__
 
29366
#define __CTree_h__
 
29367
 
 
29368
namespace Puma {
 
29369
 
 
29370
 
 
29371
// Syntax tree node hierarchy:
 
29372
class CTree;
 
29373
class   CT_Statement;          
 
29374
class     CT_LabelStmt;
 
29375
class     CT_IfStmt;
 
29376
class     CT_IfElseStmt;
 
29377
class     CT_SwitchStmt;
 
29378
class     CT_BreakStmt;
 
29379
class     CT_ExprStmt;
 
29380
class     CT_WhileStmt;
 
29381
class     CT_DoStmt;
 
29382
class     CT_ForStmt;
 
29383
class     CT_ContinueStmt;
 
29384
class     CT_ReturnStmt;
 
29385
class     CT_GotoStmt;
 
29386
class     CT_DeclStmt;
 
29387
class     CT_CaseStmt;
 
29388
class     CT_DefaultStmt;
 
29389
class     CT_TryStmt;
 
29390
class   CT_Expression;
 
29391
class     CT_Call;
 
29392
class       CT_CallExpr;
 
29393
class       CT_ImplicitCall;
 
29394
class     CT_ThrowExpr;
 
29395
class     CT_NewExpr;
 
29396
class     CT_DeleteExpr;
 
29397
class     CT_ConstructExpr;
 
29398
class     CT_Integer;
 
29399
class     CT_Character;
 
29400
class       CT_WideCharacter;
 
29401
class     CT_Float;
 
29402
class     CT_Bool;
 
29403
class     CT_BracedExpr;
 
29404
class     CT_BinaryExpr;
 
29405
class       CT_MembPtrExpr;
 
29406
class         CT_MembRefExpr;
 
29407
class     CT_UnaryExpr;
 
29408
class       CT_PostfixExpr;
 
29409
class       CT_AddrExpr;
 
29410
class       CT_DerefExpr;
 
29411
class     CT_IfThenExpr;
 
29412
class     CT_CmpdLiteral;
 
29413
class     CT_IndexExpr;
 
29414
class     CT_CastExpr;
 
29415
class     CT_StaticCast;
 
29416
class       CT_ConstCast;
 
29417
class       CT_ReintCast;
 
29418
class       CT_DynamicCast;
 
29419
class     CT_TypeidExpr;
 
29420
class     CT_SizeofExpr;
 
29421
class     CT_MembDesignator;
 
29422
class     CT_IndexDesignator;
 
29423
class     CT_ImplicitCast;
 
29424
class   CT_DeclSpec;
 
29425
class     CT_PrimDeclSpec;
 
29426
class     CT_NamedType;
 
29427
class     CT_ClassSpec;
 
29428
class       CT_UnionSpec;
 
29429
class       CT_EnumSpec;
 
29430
class     CT_ExceptionSpec;
 
29431
class   CT_Declarator;
 
29432
class     CT_InitDeclarator;
 
29433
class     CT_BracedDeclarator;
 
29434
class     CT_ArrayDeclarator;
 
29435
class     CT_FctDeclarator;
 
29436
class     CT_RefDeclarator;
 
29437
class     CT_PtrDeclarator;
 
29438
class     CT_MembPtrDeclarator;
 
29439
class     CT_BitFieldDeclarator;
 
29440
class   CT_Decl;
 
29441
class     CT_ObjDecl;
 
29442
class     CT_ArgDecl;
 
29443
class     CT_AccessDecl;
 
29444
class       CT_UsingDecl;
 
29445
class     CT_FctDef;
 
29446
class     CT_AsmDef;
 
29447
class     CT_EnumDef;
 
29448
class     CT_ClassDef;
 
29449
class       CT_UnionDef;
 
29450
class     CT_Enumerator;
 
29451
class     CT_LinkageSpec;
 
29452
class     CT_Handler;
 
29453
class     CT_TemplateDecl;
 
29454
class     CT_TemplateParamDecl;
 
29455
class       CT_TypeParamDecl;
 
29456
class       CT_NonTypeParamDecl;
 
29457
class     CT_NamespaceDef;
 
29458
class     CT_NamespaceAliasDef;
 
29459
class     CT_UsingDirective;
 
29460
class     CT_Condition;
 
29461
class   CT_List;
 
29462
class     CT_CmpdStmt;
 
29463
class     CT_DeclSpecSeq;
 
29464
class     CT_HandlerSeq;
 
29465
class     CT_DesignatorSeq;
 
29466
class     CT_DeclList;
 
29467
class       CT_Program;
 
29468
class       CT_ArgDeclList;
 
29469
class         CT_ArgNameList;
 
29470
class       CT_ArgDeclSeq;
 
29471
class       CT_MembList;
 
29472
class     CT_ExprList;
 
29473
class     CT_DeclaratorList;
 
29474
class     CT_BaseSpecList;
 
29475
class     CT_MembInitList;
 
29476
class     CT_SimpleName;
 
29477
class       CT_SpecialName;
 
29478
class         CT_PrivateName;
 
29479
class         CT_OperatorName;
 
29480
class         CT_DestructorName;
 
29481
class         CT_ConversionName;
 
29482
class         CT_TemplateName;
 
29483
class       CT_QualName;
 
29484
class         CT_RootQualName;
 
29485
class     CT_String;
 
29486
class       CT_WideString;
 
29487
class     CT_TemplateParamList;
 
29488
class     CT_TemplateArgList;
 
29489
class   CT_Token;
 
29490
class   CT_Error;
 
29491
class   CT_BaseSpec;
 
29492
class   CT_AccessSpec;
 
29493
class   CT_ArrayDelimiter;
 
29494
class   CT_Any;
 
29495
class   CT_AnyList;
 
29496
class   CT_AnyExtension;
 
29497
class   CT_AnyCondition;
 
29498
 
 
29499
 
 
29500
} // namespace Puma
 
29501
 
 
29502
#include "Puma/ErrorSeverity.h"
 
29503
#include "Puma/CSemObject.h"
 
29504
#include "Puma/CSemScope.h"
 
29505
#include "Puma/CSemValue.h"
 
29506
#include "Puma/CExprValue.h"
 
29507
#include "Puma/CStrLiteral.h"
 
29508
#include "Puma/CTypeInfo.h"
 
29509
#include "Puma/Printable.h"
 
29510
#include "Puma/CTokens.h"
 
29511
#include "Puma/Token.h"
 
29512
 
 
29513
#include <iostream>
 
29514
#include <string.h>
 
29515
using namespace std;
 
29516
 
 
29517
namespace Puma {
 
29518
 
 
29519
 
 
29520
class ErrorStream;
 
29521
class CObjectInfo;
 
29522
class CStructure;
 
29523
 
 
29524
/*****************************************************************************/
 
29525
/*                                                                           */
 
29526
/*                    S y n t a x  t r e e  n o d e s                        */
 
29527
/*                                                                           */
 
29528
/*****************************************************************************/
 
29529
 
 
29530
/** \file
 
29531
 *  C/C++ syntax tree classes.
 
29532
 *  \see Puma::CTree */
 
29533
 
 
29534
/** \class CTree CTree.h Puma/CTree.h
 
29535
 *  Base class for all C/C++ syntax tree classes. */
 
29536
 
 
29537
#line 29538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
29538
} // closed Puma
 
29539
class CCExprResolve;
 
29540
class CExprResolve;
 
29541
class WinIfExists;
 
29542
class WinImportHandler;
 
29543
class WinMacros;
 
29544
class WinAsm;
 
29545
class WinDeclSpecs;
 
29546
class WinMemberExplSpec;
 
29547
class WinTypeKeywords;
 
29548
class WinFriend;
 
29549
class ExtAC;
 
29550
class ExtACBuilderCoupling;
 
29551
class ExtACSyntaxCoupling;
 
29552
class ExtACTree;
 
29553
class ExtACKeywords;
 
29554
class ExtGnu;
 
29555
class PragmaOnceUnitState;
 
29556
class PragmaOnce;
 
29557
class CMatchSyntax;
 
29558
namespace Puma {
 
29559
 
 
29560
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29561
 
 
29562
#line 29563 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
29563
} // closed Puma
 
29564
 
 
29565
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29566
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29567
#include "CCExprResolveH.ah"
 
29568
#endif
 
29569
namespace Puma {
 
29570
 
 
29571
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29572
 
 
29573
#line 29574 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
29574
} // closed Puma
 
29575
 
 
29576
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29577
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29578
#include "CExprResolveH.ah"
 
29579
#endif
 
29580
namespace Puma {
 
29581
 
 
29582
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29583
class CTree {
 
29584
#line 29585 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
29585
  friend class ::CCExprResolve;
 
29586
  friend class ::CExprResolve;
 
29587
  friend class ::WinIfExists;
 
29588
  friend class ::WinImportHandler;
 
29589
  friend class ::WinMacros;
 
29590
  friend class ::WinAsm;
 
29591
  friend class ::WinDeclSpecs;
 
29592
  friend class ::WinMemberExplSpec;
 
29593
  friend class ::WinTypeKeywords;
 
29594
  friend class ::WinFriend;
 
29595
  friend class ::ExtAC;
 
29596
  friend class ::ExtACBuilderCoupling;
 
29597
  friend class ::ExtACSyntaxCoupling;
 
29598
  friend class ::ExtACTree;
 
29599
  friend class ::ExtACKeywords;
 
29600
  friend class ::ExtGnu;
 
29601
  friend class ::PragmaOnceUnitState;
 
29602
  friend class ::PragmaOnce;
 
29603
  friend class ::CMatchSyntax;
 
29604
 
 
29605
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29606
 
 
29607
  CTree * _parent;
 
29608
 
 
29609
public:
 
29610
  /*DEBUG*/static int alloc;
 
29611
  /*DEBUG*/static int release;
 
29612
 
 
29613
protected:
 
29614
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
29615
   *  \param sons The sons array.
 
29616
   *  \param len Length of the sons array.
 
29617
   *  \param n Index of the son.
 
29618
   *  \return The n-th son or NULL. */
 
29619
  CTree *Son (CTree * const *sons, int len, int n) const;
 
29620
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
29621
   *  \param sons The sons array.
 
29622
   *  \param len Length of the sons array. */
 
29623
  int Sons (CTree * const *sons, int len) const;
 
29624
  /** Replace a son.
 
29625
   *  \param sons The sons array.
 
29626
   *  \param len Length of the sons array.
 
29627
   *  \param old_son The son to replace.
 
29628
   *  \param new_son The new son. */
 
29629
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
29630
  /** Replace a son if it equals the given son.
 
29631
   *  \param son The actual son.
 
29632
   *  \param old_son The son to replace, must match the actual son.
 
29633
   *  \param new_son The new son, overwrites the actual son. */
 
29634
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
29635
  /** Add a new son.
 
29636
   *  \param son The actual son.
 
29637
   *  \param new_son The new son, overwrites the actual son. */
 
29638
  void AddSon (CTree *&son, CTree *new_son);
 
29639
  /** Set the parent tree node.
 
29640
   *  \param parent The new parent tree node. */
 
29641
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
29642
  /** Set the parent tree node of the given tree node.
 
29643
   *  \param node The tree node.
 
29644
   *  \param parent The new parent. */
 
29645
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
 
29646
  
 
29647
protected:
 
29648
  /** Default constructor. */
 
29649
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
 
29650
 
 
29651
public:
 
29652
  /** Destructor. */
 
29653
  virtual ~CTree () { /*DEBUG*/release++; }
 
29654
  /** Get the number of sons. */
 
29655
  virtual int Sons () const = 0;
 
29656
  /** Get the n-th son.
 
29657
   *  \param n The index of the son.
 
29658
   *  \return The n-th son or NULL. */
 
29659
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
29660
  /** Get the node name (node identifier). */
 
29661
  virtual const char *NodeName () const = 0;
 
29662
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
29663
   *  \return The token or NULL. */
 
29664
  virtual Token *token () const;
 
29665
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
29666
   *  \return The token or NULL. */
 
29667
  virtual Token *end_token () const;
 
29668
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
29669
   *  \return The token node or NULL. */
 
29670
  virtual CT_Token *token_node () const;
 
29671
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
29672
   *  \return The token node or NULL. */
 
29673
  virtual CT_Token *end_token_node () const;
 
29674
  /** Replace a son.
 
29675
   *  \param old_son The son to replace.
 
29676
   *  \param new_son The son with which to replace. */
 
29677
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
29678
  /** Get the parent node.
 
29679
   *  \return The parent node or NULL. */
 
29680
  virtual CTree *Parent () const { return (CTree*)_parent; }
 
29681
 
 
29682
public: // semantic information
 
29683
  /** Get the semantic type of the node.
 
29684
   *  \return The type object or NULL. */
 
29685
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
29686
  /** Get the calculated value of the expression.
 
29687
   *  \return The value object or NULL. */
 
29688
  virtual CExprValue *Value () const { return (CExprValue*)0; }
 
29689
  
 
29690
  /** Get the semantic scope of the node.
 
29691
   *  \return The scope object or NULL. */
 
29692
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
29693
  /** Get the semantic value of the node.
 
29694
   *  \return The value object or NULL. */
 
29695
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
29696
  /** Get the semantic object of the node.
 
29697
   *  \return The semantic object or NULL. */
 
29698
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
 
29699
  
 
29700
public: // node classification function
 
29701
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
29702
   *  \return The CT_SimpleName node or NULL. */
 
29703
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
29704
  /** Get a pointer to CT_String if the current node represents a string.
 
29705
   *  \return The CT_String node or NULL. */
 
29706
  virtual CT_String *IsString () { return 0; }
 
29707
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
29708
   *  \return The CT_Declarator pointer or NULL. */
 
29709
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
29710
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
29711
   *  \return The CT_Statement pointer or NULL. */
 
29712
  virtual CT_Statement *IsStatement () { return 0; }
 
29713
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
29714
   *  \return The CT_Expression pointer or NULL. */
 
29715
  virtual CT_Expression *IsExpression () { return 0; }
 
29716
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
29717
   *  \return The CT_Decl pointer or NULL. */
 
29718
  virtual CT_Decl *IsDeclaration () { return 0; }
 
29719
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
29720
   *  \return The CT_Call pointer or NULL. */
 
29721
  virtual CT_Call *IsCall () { return 0; }
 
29722
   private:
 
29723
  typedef CTree CCExprResolveCTree;
 
29724
 
 
29725
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29726
 public :
 
29727
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
29728
  typedef CTree CExprResolveCTree;
 
29729
 
 
29730
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29731
 public :
 
29732
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29733
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29734
};
 
29735
 
 
29736
/** \class CT_Error CTree.h Puma/CTree.h
 
29737
 *  Error tree node that is inserted into the tree for syntactic constructs
 
29738
 *  that could not be parsed. */
 
29739
 
 
29740
#line 29741 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
29741
} // closed Puma
 
29742
class CCExprResolve;
 
29743
class CExprResolve;
 
29744
class WinIfExists;
 
29745
class WinImportHandler;
 
29746
class WinMacros;
 
29747
class WinAsm;
 
29748
class WinDeclSpecs;
 
29749
class WinMemberExplSpec;
 
29750
class WinTypeKeywords;
 
29751
class WinFriend;
 
29752
class ExtAC;
 
29753
class ExtACBuilderCoupling;
 
29754
class ExtACSyntaxCoupling;
 
29755
class ExtACTree;
 
29756
class ExtACKeywords;
 
29757
class ExtGnu;
 
29758
class PragmaOnceUnitState;
 
29759
class PragmaOnce;
 
29760
class CMatchSyntax;
 
29761
namespace Puma {
 
29762
 
 
29763
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29764
class CT_Error : public CTree {
 
29765
#line 29766 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
29766
  friend class ::CCExprResolve;
 
29767
  friend class ::CExprResolve;
 
29768
  friend class ::WinIfExists;
 
29769
  friend class ::WinImportHandler;
 
29770
  friend class ::WinMacros;
 
29771
  friend class ::WinAsm;
 
29772
  friend class ::WinDeclSpecs;
 
29773
  friend class ::WinMemberExplSpec;
 
29774
  friend class ::WinTypeKeywords;
 
29775
  friend class ::WinFriend;
 
29776
  friend class ::ExtAC;
 
29777
  friend class ::ExtACBuilderCoupling;
 
29778
  friend class ::ExtACSyntaxCoupling;
 
29779
  friend class ::ExtACTree;
 
29780
  friend class ::ExtACKeywords;
 
29781
  friend class ::ExtGnu;
 
29782
  friend class ::PragmaOnceUnitState;
 
29783
  friend class ::PragmaOnce;
 
29784
  friend class ::CMatchSyntax;
 
29785
 
 
29786
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29787
 
 
29788
public:
 
29789
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
29790
  static const char *NodeId ();
 
29791
  /** Get the name of the node. Can be compared with NodeId(). */
 
29792
  const char *NodeName () const { return NodeId (); }
 
29793
  /** Get the number of sons. */
 
29794
  int Sons () const { return 0; }
 
29795
};
 
29796
 
 
29797
/** \class CT_Token CTree.h Puma/CTree.h
 
29798
 *  Tree node representing a single token in the source code. */
 
29799
 
 
29800
#line 29801 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
29801
} // closed Puma
 
29802
class CCExprResolve;
 
29803
class CExprResolve;
 
29804
class WinIfExists;
 
29805
class WinImportHandler;
 
29806
class WinMacros;
 
29807
class WinAsm;
 
29808
class WinDeclSpecs;
 
29809
class WinMemberExplSpec;
 
29810
class WinTypeKeywords;
 
29811
class WinFriend;
 
29812
class ExtAC;
 
29813
class ExtACBuilderCoupling;
 
29814
class ExtACSyntaxCoupling;
 
29815
class ExtACTree;
 
29816
class ExtACKeywords;
 
29817
class ExtGnu;
 
29818
class PragmaOnceUnitState;
 
29819
class PragmaOnce;
 
29820
class CMatchSyntax;
 
29821
namespace Puma {
 
29822
 
 
29823
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29824
class CT_Token : public CTree {
 
29825
#line 29826 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
29826
  friend class ::CCExprResolve;
 
29827
  friend class ::CExprResolve;
 
29828
  friend class ::WinIfExists;
 
29829
  friend class ::WinImportHandler;
 
29830
  friend class ::WinMacros;
 
29831
  friend class ::WinAsm;
 
29832
  friend class ::WinDeclSpecs;
 
29833
  friend class ::WinMemberExplSpec;
 
29834
  friend class ::WinTypeKeywords;
 
29835
  friend class ::WinFriend;
 
29836
  friend class ::ExtAC;
 
29837
  friend class ::ExtACBuilderCoupling;
 
29838
  friend class ::ExtACSyntaxCoupling;
 
29839
  friend class ::ExtACTree;
 
29840
  friend class ::ExtACKeywords;
 
29841
  friend class ::ExtGnu;
 
29842
  friend class ::PragmaOnceUnitState;
 
29843
  friend class ::PragmaOnce;
 
29844
  friend class ::CMatchSyntax;
 
29845
 
 
29846
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29847
 
 
29848
  Token *_token;
 
29849
  unsigned long int _number;
 
29850
  
 
29851
public:
 
29852
  /** Constructor. 
 
29853
   *  \param token The represented token.
 
29854
   *  \param number The token number (a consecutive number). */
 
29855
  CT_Token (Token *token, unsigned long int number = 0) : 
 
29856
    _token (token), _number (number) {}
 
29857
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
29858
  static const char *NodeId ();
 
29859
  /** Get the name of the node. Can be compared with NodeId(). */
 
29860
  const char *NodeName () const { return NodeId (); }
 
29861
  /** Get the number of sons. */
 
29862
  int Sons () const { return 0; }
 
29863
  /** Get the represented token. */
 
29864
  Token *token () const { return _token; }
 
29865
  /** Get the represented token. */
 
29866
  Token *end_token () const { return _token; }
 
29867
  /** Get this. */
 
29868
  CT_Token *token_node () const { return (CT_Token*)this; }
 
29869
  /** Get this. */
 
29870
  CT_Token *end_token_node () const { return (CT_Token*)this; }
 
29871
  /** Set the token number. 
 
29872
   *  \param number The token number. */ 
 
29873
  void Number (unsigned long int number) { _number = number; }
 
29874
  /** Get the token number. Can be used to indentify this token. */
 
29875
  unsigned long int Number () const { return _number; }
 
29876
  
 
29877
public:
 
29878
  /** Own new operator reusing memory. */
 
29879
  void *operator new (size_t);
 
29880
  /** Own delete operator. */
 
29881
  void operator delete (void *);
 
29882
};
 
29883
 
 
29884
/*****************************************************************************/
 
29885
/*                                                                           */
 
29886
/*                              List nodes                                   */
 
29887
/*                                                                           */
 
29888
/*****************************************************************************/
 
29889
 
 
29890
/** \class CT_List CTree.h Puma/CTree.h
 
29891
 *  Base class for tree nodes representing lists. */
 
29892
 
 
29893
#line 29894 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
29894
} // closed Puma
 
29895
class CCExprResolve;
 
29896
class CExprResolve;
 
29897
class WinIfExists;
 
29898
class WinImportHandler;
 
29899
class WinMacros;
 
29900
class WinAsm;
 
29901
class WinDeclSpecs;
 
29902
class WinMemberExplSpec;
 
29903
class WinTypeKeywords;
 
29904
class WinFriend;
 
29905
class ExtAC;
 
29906
class ExtACBuilderCoupling;
 
29907
class ExtACSyntaxCoupling;
 
29908
class ExtACTree;
 
29909
class ExtACKeywords;
 
29910
class ExtGnu;
 
29911
class PragmaOnceUnitState;
 
29912
class PragmaOnce;
 
29913
class CMatchSyntax;
 
29914
namespace Puma {
 
29915
 
 
29916
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29917
class CT_List : public CTree {
 
29918
#line 29919 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
29919
  friend class ::CCExprResolve;
 
29920
  friend class ::CExprResolve;
 
29921
  friend class ::WinIfExists;
 
29922
  friend class ::WinImportHandler;
 
29923
  friend class ::WinMacros;
 
29924
  friend class ::WinAsm;
 
29925
  friend class ::WinDeclSpecs;
 
29926
  friend class ::WinMemberExplSpec;
 
29927
  friend class ::WinTypeKeywords;
 
29928
  friend class ::WinFriend;
 
29929
  friend class ::ExtAC;
 
29930
  friend class ::ExtACBuilderCoupling;
 
29931
  friend class ::ExtACSyntaxCoupling;
 
29932
  friend class ::ExtACTree;
 
29933
  friend class ::ExtACKeywords;
 
29934
  friend class ::ExtGnu;
 
29935
  friend class ::PragmaOnceUnitState;
 
29936
  friend class ::PragmaOnce;
 
29937
  friend class ::CMatchSyntax;
 
29938
 
 
29939
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29940
 
 
29941
  Array<CTree*> _sons;
 
29942
  int _properties;
 
29943
 
 
29944
protected:
 
29945
  /** Constructor.
 
29946
   *  \param size The initial list size.
 
29947
   *  \param incr The initial increment count. 
 
29948
   *  \param props The list properties (bit array). */
 
29949
  CT_List(int size = 5, int incr = 5, int props = 0) : 
 
29950
    _sons (size, incr), _properties (props) {}
 
29951
 
 
29952
public:
 
29953
  /** List properties. */
 
29954
  enum {
 
29955
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
29956
    CLOSE = 2,        /** List has an end token */
 
29957
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
29958
    SEPARATORS = 4,   /** List has separators, like ',' */
 
29959
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
29960
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
29961
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
29962
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
 
29963
  };
 
29964
 
 
29965
  /** Get the number of list entries. */
 
29966
  int Entries () const;
 
29967
  /** Get the n-th list entry.
 
29968
   *  \param n The index of the entry. 
 
29969
   *  \return The list entry or NULL. */
 
29970
  CTree *Entry (int n) const;
 
29971
  /** Get the number of sons. */
 
29972
  int Sons () const { return _sons.length (); }
 
29973
  /** Get the n-th son.
 
29974
   *  \param n The index of the son. 
 
29975
   *  \return The n-th son or NULL. */
 
29976
  CTree *Son (int n) const { return _sons.lookup (n); }
 
29977
  /** Get the list properties. */
 
29978
  int GetProperties () const { return _properties; }
 
29979
  /** Add a list property.
 
29980
   *  \param p The property to add. */
 
29981
  void AddProperties (int p) { _properties |= p; }
 
29982
  /** Add a son.
 
29983
   *  \param s The son to add. */
 
29984
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
29985
  /** Prepend a son.
 
29986
   *  \param s The son to prepend. */
 
29987
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
29988
  /** Insert a son before another son.
 
29989
   *  \param before The son to insert the new son before.
 
29990
   *  \param son The son to insert. */
 
29991
  void InsertSon (CTree *before, CTree *son); 
 
29992
  /** Replace a son.
 
29993
   *  \param old_son The son to replace.
 
29994
   *  \param new_son The new son. */
 
29995
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
29996
  /** Remove a son.
 
29997
   *  \param son The son to remove. */
 
29998
  void RemoveSon (CTree *son);
 
29999
  /** Insert a son at the given index. 
 
30000
   *  \param idx The index at which to insert.
 
30001
   *  \param s The son to insert. */
 
30002
  void InsertSon (int idx, CTree *s)
 
30003
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
30004
  /** Replace the son at the given index.
 
30005
   *  \param idx The index of the son to replace.
 
30006
   *  \param s The new son. */
 
30007
  void ReplaceSon (int idx, CTree *s) 
 
30008
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
30009
  /** Remove the son at the given index. 
 
30010
   *  \param idx The index of the son to remove. */
 
30011
  void RemoveSon (int idx) 
 
30012
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
 
30013
};
 
30014
 
 
30015
/** \class CT_ExprList CTree.h Puma/CTree.h
 
30016
 *  Tree node representing an expression list. */
 
30017
 
 
30018
#line 30019 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30019
} // closed Puma
 
30020
class CCExprResolve;
 
30021
class CExprResolve;
 
30022
class WinIfExists;
 
30023
class WinImportHandler;
 
30024
class WinMacros;
 
30025
class WinAsm;
 
30026
class WinDeclSpecs;
 
30027
class WinMemberExplSpec;
 
30028
class WinTypeKeywords;
 
30029
class WinFriend;
 
30030
class ExtAC;
 
30031
class ExtACBuilderCoupling;
 
30032
class ExtACSyntaxCoupling;
 
30033
class ExtACTree;
 
30034
class ExtACKeywords;
 
30035
class ExtGnu;
 
30036
class PragmaOnceUnitState;
 
30037
class PragmaOnce;
 
30038
class CMatchSyntax;
 
30039
namespace Puma {
 
30040
 
 
30041
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30042
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
 
30043
#line 30044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30044
  friend class ::CCExprResolve;
 
30045
  friend class ::CExprResolve;
 
30046
  friend class ::WinIfExists;
 
30047
  friend class ::WinImportHandler;
 
30048
  friend class ::WinMacros;
 
30049
  friend class ::WinAsm;
 
30050
  friend class ::WinDeclSpecs;
 
30051
  friend class ::WinMemberExplSpec;
 
30052
  friend class ::WinTypeKeywords;
 
30053
  friend class ::WinFriend;
 
30054
  friend class ::ExtAC;
 
30055
  friend class ::ExtACBuilderCoupling;
 
30056
  friend class ::ExtACSyntaxCoupling;
 
30057
  friend class ::ExtACTree;
 
30058
  friend class ::ExtACKeywords;
 
30059
  friend class ::ExtGnu;
 
30060
  friend class ::PragmaOnceUnitState;
 
30061
  friend class ::PragmaOnce;
 
30062
  friend class ::CMatchSyntax;
 
30063
 
 
30064
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30065
 
 
30066
public:
 
30067
  /** Constructor. */
 
30068
  CT_ExprList () { AddProperties (SEPARATORS); }
 
30069
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30070
  static const char *NodeId ();
 
30071
  /** Get the name of the node. Can be compared with NodeId(). */
 
30072
  const char *NodeName () const { return NodeId (); }
 
30073
 
 
30074
  /** Get the type of the last expression in the expression list.
 
30075
   *  \return The type or NULL. */
 
30076
  CTypeInfo *Type () const { return type; }
 
30077
  /** Get the value of the last expression in the expression list.
 
30078
   *  \return The value of NULL. */
 
30079
  CExprValue *Value () const { return value; }
 
30080
  /** Get the semantic value of the node. */
 
30081
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
30082
  /** Get the semantic object of the node. */
 
30083
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
30084
};
 
30085
 
 
30086
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
30087
 *  Tree node representing a list of declarators. */
 
30088
 
 
30089
#line 30090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30090
} // closed Puma
 
30091
class CCExprResolve;
 
30092
class CExprResolve;
 
30093
class WinIfExists;
 
30094
class WinImportHandler;
 
30095
class WinMacros;
 
30096
class WinAsm;
 
30097
class WinDeclSpecs;
 
30098
class WinMemberExplSpec;
 
30099
class WinTypeKeywords;
 
30100
class WinFriend;
 
30101
class ExtAC;
 
30102
class ExtACBuilderCoupling;
 
30103
class ExtACSyntaxCoupling;
 
30104
class ExtACTree;
 
30105
class ExtACKeywords;
 
30106
class ExtGnu;
 
30107
class PragmaOnceUnitState;
 
30108
class PragmaOnce;
 
30109
class CMatchSyntax;
 
30110
namespace Puma {
 
30111
 
 
30112
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30113
class CT_DeclaratorList : public CT_List {
 
30114
#line 30115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30115
  friend class ::CCExprResolve;
 
30116
  friend class ::CExprResolve;
 
30117
  friend class ::WinIfExists;
 
30118
  friend class ::WinImportHandler;
 
30119
  friend class ::WinMacros;
 
30120
  friend class ::WinAsm;
 
30121
  friend class ::WinDeclSpecs;
 
30122
  friend class ::WinMemberExplSpec;
 
30123
  friend class ::WinTypeKeywords;
 
30124
  friend class ::WinFriend;
 
30125
  friend class ::ExtAC;
 
30126
  friend class ::ExtACBuilderCoupling;
 
30127
  friend class ::ExtACSyntaxCoupling;
 
30128
  friend class ::ExtACTree;
 
30129
  friend class ::ExtACKeywords;
 
30130
  friend class ::ExtGnu;
 
30131
  friend class ::PragmaOnceUnitState;
 
30132
  friend class ::PragmaOnce;
 
30133
  friend class ::CMatchSyntax;
 
30134
 
 
30135
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30136
 
 
30137
public:
 
30138
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30139
  static const char *NodeId ();
 
30140
  /** Get the name of the node. Can be compared with NodeId(). */
 
30141
  const char *NodeName () const { return NodeId (); }
 
30142
};
 
30143
 
 
30144
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
30145
 *  Tree node representing a list of enumerator constants. */
 
30146
 
 
30147
#line 30148 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30148
} // closed Puma
 
30149
class CCExprResolve;
 
30150
class CExprResolve;
 
30151
class WinIfExists;
 
30152
class WinImportHandler;
 
30153
class WinMacros;
 
30154
class WinAsm;
 
30155
class WinDeclSpecs;
 
30156
class WinMemberExplSpec;
 
30157
class WinTypeKeywords;
 
30158
class WinFriend;
 
30159
class ExtAC;
 
30160
class ExtACBuilderCoupling;
 
30161
class ExtACSyntaxCoupling;
 
30162
class ExtACTree;
 
30163
class ExtACKeywords;
 
30164
class ExtGnu;
 
30165
class PragmaOnceUnitState;
 
30166
class PragmaOnce;
 
30167
class CMatchSyntax;
 
30168
namespace Puma {
 
30169
 
 
30170
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30171
class CT_EnumeratorList : public CT_List {
 
30172
#line 30173 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30173
  friend class ::CCExprResolve;
 
30174
  friend class ::CExprResolve;
 
30175
  friend class ::WinIfExists;
 
30176
  friend class ::WinImportHandler;
 
30177
  friend class ::WinMacros;
 
30178
  friend class ::WinAsm;
 
30179
  friend class ::WinDeclSpecs;
 
30180
  friend class ::WinMemberExplSpec;
 
30181
  friend class ::WinTypeKeywords;
 
30182
  friend class ::WinFriend;
 
30183
  friend class ::ExtAC;
 
30184
  friend class ::ExtACBuilderCoupling;
 
30185
  friend class ::ExtACSyntaxCoupling;
 
30186
  friend class ::ExtACTree;
 
30187
  friend class ::ExtACKeywords;
 
30188
  friend class ::ExtGnu;
 
30189
  friend class ::PragmaOnceUnitState;
 
30190
  friend class ::PragmaOnce;
 
30191
  friend class ::CMatchSyntax;
 
30192
 
 
30193
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30194
 
 
30195
public:
 
30196
  /** Constructor. */
 
30197
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
30198
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30199
  static const char *NodeId ();
 
30200
  /** Get the name of the node. Can be compared with NodeId(). */
 
30201
  const char *NodeName () const { return NodeId (); }
 
30202
};
 
30203
   
 
30204
/** \class CT_DeclList CTree.h Puma/CTree.h
 
30205
 *  Tree node representing a list of declarations. */
 
30206
 
 
30207
#line 30208 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30208
} // closed Puma
 
30209
class CCExprResolve;
 
30210
class CExprResolve;
 
30211
class WinIfExists;
 
30212
class WinImportHandler;
 
30213
class WinMacros;
 
30214
class WinAsm;
 
30215
class WinDeclSpecs;
 
30216
class WinMemberExplSpec;
 
30217
class WinTypeKeywords;
 
30218
class WinFriend;
 
30219
class ExtAC;
 
30220
class ExtACBuilderCoupling;
 
30221
class ExtACSyntaxCoupling;
 
30222
class ExtACTree;
 
30223
class ExtACKeywords;
 
30224
class ExtGnu;
 
30225
class PragmaOnceUnitState;
 
30226
class PragmaOnce;
 
30227
class CMatchSyntax;
 
30228
namespace Puma {
 
30229
 
 
30230
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30231
class CT_DeclList : public CT_List {
 
30232
#line 30233 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30233
  friend class ::CCExprResolve;
 
30234
  friend class ::CExprResolve;
 
30235
  friend class ::WinIfExists;
 
30236
  friend class ::WinImportHandler;
 
30237
  friend class ::WinMacros;
 
30238
  friend class ::WinAsm;
 
30239
  friend class ::WinDeclSpecs;
 
30240
  friend class ::WinMemberExplSpec;
 
30241
  friend class ::WinTypeKeywords;
 
30242
  friend class ::WinFriend;
 
30243
  friend class ::ExtAC;
 
30244
  friend class ::ExtACBuilderCoupling;
 
30245
  friend class ::ExtACSyntaxCoupling;
 
30246
  friend class ::ExtACTree;
 
30247
  friend class ::ExtACKeywords;
 
30248
  friend class ::ExtGnu;
 
30249
  friend class ::PragmaOnceUnitState;
 
30250
  friend class ::PragmaOnce;
 
30251
  friend class ::CMatchSyntax;
 
30252
 
 
30253
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30254
 
 
30255
public:
 
30256
  /** Constructor. 
 
30257
   *  \param size The initial size of the list.
 
30258
   *  \param incr The initial increment count of the list. */
 
30259
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
30260
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30261
  static const char *NodeId ();
 
30262
  /** Get the name of the node. Can be compared with NodeId(). */
 
30263
  const char *NodeName () const { return NodeId (); }
 
30264
  /** Set the linkage specifiers to each declaration in the list.
 
30265
   *  \param l The linkage specifiers node. */
 
30266
  void Linkage (CT_LinkageSpec *l);
 
30267
};
 
30268
 
 
30269
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
30270
 *  Tree node representing a sequence of declaration specifiers. */
 
30271
 
 
30272
#line 30273 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30273
} // closed Puma
 
30274
class CCExprResolve;
 
30275
class CExprResolve;
 
30276
class WinIfExists;
 
30277
class WinImportHandler;
 
30278
class WinMacros;
 
30279
class WinAsm;
 
30280
class WinDeclSpecs;
 
30281
class WinMemberExplSpec;
 
30282
class WinTypeKeywords;
 
30283
class WinFriend;
 
30284
class ExtAC;
 
30285
class ExtACBuilderCoupling;
 
30286
class ExtACSyntaxCoupling;
 
30287
class ExtACTree;
 
30288
class ExtACKeywords;
 
30289
class ExtGnu;
 
30290
class PragmaOnceUnitState;
 
30291
class PragmaOnce;
 
30292
class CMatchSyntax;
 
30293
namespace Puma {
 
30294
 
 
30295
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30296
class CT_DeclSpecSeq : public CT_List {
 
30297
#line 30298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30298
  friend class ::CCExprResolve;
 
30299
  friend class ::CExprResolve;
 
30300
  friend class ::WinIfExists;
 
30301
  friend class ::WinImportHandler;
 
30302
  friend class ::WinMacros;
 
30303
  friend class ::WinAsm;
 
30304
  friend class ::WinDeclSpecs;
 
30305
  friend class ::WinMemberExplSpec;
 
30306
  friend class ::WinTypeKeywords;
 
30307
  friend class ::WinFriend;
 
30308
  friend class ::ExtAC;
 
30309
  friend class ::ExtACBuilderCoupling;
 
30310
  friend class ::ExtACSyntaxCoupling;
 
30311
  friend class ::ExtACTree;
 
30312
  friend class ::ExtACKeywords;
 
30313
  friend class ::ExtGnu;
 
30314
  friend class ::PragmaOnceUnitState;
 
30315
  friend class ::PragmaOnce;
 
30316
  friend class ::CMatchSyntax;
 
30317
 
 
30318
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30319
 
 
30320
public:
 
30321
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30322
  static const char *NodeId ();
 
30323
  /** Get the name of the node. Can be compared with NodeId(). */
 
30324
  const char *NodeName () const { return NodeId (); }
 
30325
};
 
30326
 
 
30327
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
30328
 *  Tree node representing a compound statement. */
 
30329
 
 
30330
#line 30331 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30331
} // closed Puma
 
30332
class CCExprResolve;
 
30333
class CExprResolve;
 
30334
class WinIfExists;
 
30335
class WinImportHandler;
 
30336
class WinMacros;
 
30337
class WinAsm;
 
30338
class WinDeclSpecs;
 
30339
class WinMemberExplSpec;
 
30340
class WinTypeKeywords;
 
30341
class WinFriend;
 
30342
class ExtAC;
 
30343
class ExtACBuilderCoupling;
 
30344
class ExtACSyntaxCoupling;
 
30345
class ExtACTree;
 
30346
class ExtACKeywords;
 
30347
class ExtGnu;
 
30348
class PragmaOnceUnitState;
 
30349
class PragmaOnce;
 
30350
class CMatchSyntax;
 
30351
namespace Puma {
 
30352
 
 
30353
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30354
class CT_CmpdStmt : public CT_List, public CSemScope {
 
30355
#line 30356 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30356
  friend class ::CCExprResolve;
 
30357
  friend class ::CExprResolve;
 
30358
  friend class ::WinIfExists;
 
30359
  friend class ::WinImportHandler;
 
30360
  friend class ::WinMacros;
 
30361
  friend class ::WinAsm;
 
30362
  friend class ::WinDeclSpecs;
 
30363
  friend class ::WinMemberExplSpec;
 
30364
  friend class ::WinTypeKeywords;
 
30365
  friend class ::WinFriend;
 
30366
  friend class ::ExtAC;
 
30367
  friend class ::ExtACBuilderCoupling;
 
30368
  friend class ::ExtACSyntaxCoupling;
 
30369
  friend class ::ExtACTree;
 
30370
  friend class ::ExtACKeywords;
 
30371
  friend class ::ExtGnu;
 
30372
  friend class ::PragmaOnceUnitState;
 
30373
  friend class ::PragmaOnce;
 
30374
  friend class ::CMatchSyntax;
 
30375
 
 
30376
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30377
 
 
30378
public:
 
30379
  /* Constructor. */
 
30380
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
30381
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30382
  static const char *NodeId ();
 
30383
  /** Get the name of the node. Can be compared with NodeId(). */
 
30384
  const char *NodeName () const { return NodeId (); }
 
30385
  /** Get the local scope of the compound statement. */
 
30386
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
30387
};
 
30388
 
 
30389
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
30390
 *  Tree node representing an exception handler sequence. */
 
30391
 
 
30392
#line 30393 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30393
} // closed Puma
 
30394
class CCExprResolve;
 
30395
class CExprResolve;
 
30396
class WinIfExists;
 
30397
class WinImportHandler;
 
30398
class WinMacros;
 
30399
class WinAsm;
 
30400
class WinDeclSpecs;
 
30401
class WinMemberExplSpec;
 
30402
class WinTypeKeywords;
 
30403
class WinFriend;
 
30404
class ExtAC;
 
30405
class ExtACBuilderCoupling;
 
30406
class ExtACSyntaxCoupling;
 
30407
class ExtACTree;
 
30408
class ExtACKeywords;
 
30409
class ExtGnu;
 
30410
class PragmaOnceUnitState;
 
30411
class PragmaOnce;
 
30412
class CMatchSyntax;
 
30413
namespace Puma {
 
30414
 
 
30415
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30416
class CT_HandlerSeq : public CT_List {
 
30417
#line 30418 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30418
  friend class ::CCExprResolve;
 
30419
  friend class ::CExprResolve;
 
30420
  friend class ::WinIfExists;
 
30421
  friend class ::WinImportHandler;
 
30422
  friend class ::WinMacros;
 
30423
  friend class ::WinAsm;
 
30424
  friend class ::WinDeclSpecs;
 
30425
  friend class ::WinMemberExplSpec;
 
30426
  friend class ::WinTypeKeywords;
 
30427
  friend class ::WinFriend;
 
30428
  friend class ::ExtAC;
 
30429
  friend class ::ExtACBuilderCoupling;
 
30430
  friend class ::ExtACSyntaxCoupling;
 
30431
  friend class ::ExtACTree;
 
30432
  friend class ::ExtACKeywords;
 
30433
  friend class ::ExtGnu;
 
30434
  friend class ::PragmaOnceUnitState;
 
30435
  friend class ::PragmaOnce;
 
30436
  friend class ::CMatchSyntax;
 
30437
 
 
30438
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30439
 
 
30440
public:
 
30441
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30442
  static const char *NodeId ();
 
30443
  /** Get the name of the node. Can be compared with NodeId(). */
 
30444
  const char *NodeName () const { return NodeId (); }
 
30445
};
 
30446
 
 
30447
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
30448
 *  Tree node representing a template parameter list. */
 
30449
 
 
30450
#line 30451 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30451
} // closed Puma
 
30452
class CCExprResolve;
 
30453
class CExprResolve;
 
30454
class WinIfExists;
 
30455
class WinImportHandler;
 
30456
class WinMacros;
 
30457
class WinAsm;
 
30458
class WinDeclSpecs;
 
30459
class WinMemberExplSpec;
 
30460
class WinTypeKeywords;
 
30461
class WinFriend;
 
30462
class ExtAC;
 
30463
class ExtACBuilderCoupling;
 
30464
class ExtACSyntaxCoupling;
 
30465
class ExtACTree;
 
30466
class ExtACKeywords;
 
30467
class ExtGnu;
 
30468
class PragmaOnceUnitState;
 
30469
class PragmaOnce;
 
30470
class CMatchSyntax;
 
30471
namespace Puma {
 
30472
 
 
30473
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30474
class CT_TemplateParamList : public CT_List, public CSemScope {
 
30475
#line 30476 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30476
  friend class ::CCExprResolve;
 
30477
  friend class ::CExprResolve;
 
30478
  friend class ::WinIfExists;
 
30479
  friend class ::WinImportHandler;
 
30480
  friend class ::WinMacros;
 
30481
  friend class ::WinAsm;
 
30482
  friend class ::WinDeclSpecs;
 
30483
  friend class ::WinMemberExplSpec;
 
30484
  friend class ::WinTypeKeywords;
 
30485
  friend class ::WinFriend;
 
30486
  friend class ::ExtAC;
 
30487
  friend class ::ExtACBuilderCoupling;
 
30488
  friend class ::ExtACSyntaxCoupling;
 
30489
  friend class ::ExtACTree;
 
30490
  friend class ::ExtACKeywords;
 
30491
  friend class ::ExtGnu;
 
30492
  friend class ::PragmaOnceUnitState;
 
30493
  friend class ::PragmaOnce;
 
30494
  friend class ::CMatchSyntax;
 
30495
 
 
30496
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30497
 
 
30498
public:
 
30499
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
30500
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30501
  static const char *NodeId ();
 
30502
  /** Get the name of the node. Can be compared with NodeId(). */
 
30503
  const char *NodeName () const { return NodeId (); }
 
30504
  /** Get the scope of the template parameter list. */
 
30505
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
30506
};
 
30507
 
 
30508
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
30509
 *  Tree node representing a template argument list. */
 
30510
 
 
30511
#line 30512 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30512
} // closed Puma
 
30513
class CCExprResolve;
 
30514
class CExprResolve;
 
30515
class WinIfExists;
 
30516
class WinImportHandler;
 
30517
class WinMacros;
 
30518
class WinAsm;
 
30519
class WinDeclSpecs;
 
30520
class WinMemberExplSpec;
 
30521
class WinTypeKeywords;
 
30522
class WinFriend;
 
30523
class ExtAC;
 
30524
class ExtACBuilderCoupling;
 
30525
class ExtACSyntaxCoupling;
 
30526
class ExtACTree;
 
30527
class ExtACKeywords;
 
30528
class ExtGnu;
 
30529
class PragmaOnceUnitState;
 
30530
class PragmaOnce;
 
30531
class CMatchSyntax;
 
30532
namespace Puma {
 
30533
 
 
30534
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30535
class CT_TemplateArgList : public CT_List {
 
30536
#line 30537 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30537
  friend class ::CCExprResolve;
 
30538
  friend class ::CExprResolve;
 
30539
  friend class ::WinIfExists;
 
30540
  friend class ::WinImportHandler;
 
30541
  friend class ::WinMacros;
 
30542
  friend class ::WinAsm;
 
30543
  friend class ::WinDeclSpecs;
 
30544
  friend class ::WinMemberExplSpec;
 
30545
  friend class ::WinTypeKeywords;
 
30546
  friend class ::WinFriend;
 
30547
  friend class ::ExtAC;
 
30548
  friend class ::ExtACBuilderCoupling;
 
30549
  friend class ::ExtACSyntaxCoupling;
 
30550
  friend class ::ExtACTree;
 
30551
  friend class ::ExtACKeywords;
 
30552
  friend class ::ExtGnu;
 
30553
  friend class ::PragmaOnceUnitState;
 
30554
  friend class ::PragmaOnce;
 
30555
  friend class ::CMatchSyntax;
 
30556
 
 
30557
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30558
 
 
30559
public:
 
30560
  /** Constructor. */
 
30561
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
30562
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30563
  static const char *NodeId ();
 
30564
  /** Get the name of the node. Can be compared with NodeId(). */
 
30565
  const char *NodeName () const { return NodeId (); }
 
30566
};
 
30567
 
 
30568
/*****************************************************************************/
 
30569
/*                                                                           */
 
30570
/*                              Expressions                                  */
 
30571
/*                                                                           */
 
30572
/*****************************************************************************/
 
30573
 
 
30574
/** \class CT_Expression CTree.h Puma/CTree.h
 
30575
 *  Base class for all expression tree nodes. */
 
30576
 
 
30577
#line 30578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30578
} // closed Puma
 
30579
class CCExprResolve;
 
30580
class CExprResolve;
 
30581
class WinIfExists;
 
30582
class WinImportHandler;
 
30583
class WinMacros;
 
30584
class WinAsm;
 
30585
class WinDeclSpecs;
 
30586
class WinMemberExplSpec;
 
30587
class WinTypeKeywords;
 
30588
class WinFriend;
 
30589
class ExtAC;
 
30590
class ExtACBuilderCoupling;
 
30591
class ExtACSyntaxCoupling;
 
30592
class ExtACTree;
 
30593
class ExtACKeywords;
 
30594
class ExtGnu;
 
30595
class PragmaOnceUnitState;
 
30596
class PragmaOnce;
 
30597
class CMatchSyntax;
 
30598
namespace Puma {
 
30599
 
 
30600
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30601
 
 
30602
#line 30603 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30603
} // closed Puma
 
30604
 
 
30605
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30606
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30607
#include "CCExprResolveH.ah"
 
30608
#endif
 
30609
namespace Puma {
 
30610
 
 
30611
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30612
 
 
30613
#line 30614 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30614
} // closed Puma
 
30615
 
 
30616
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30617
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30618
#include "CExprResolveH.ah"
 
30619
#endif
 
30620
namespace Puma {
 
30621
 
 
30622
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30623
class CT_Expression : public CTree, public CSemValue {
 
30624
#line 30625 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30625
  friend class ::CCExprResolve;
 
30626
  friend class ::CExprResolve;
 
30627
  friend class ::WinIfExists;
 
30628
  friend class ::WinImportHandler;
 
30629
  friend class ::WinMacros;
 
30630
  friend class ::WinAsm;
 
30631
  friend class ::WinDeclSpecs;
 
30632
  friend class ::WinMemberExplSpec;
 
30633
  friend class ::WinTypeKeywords;
 
30634
  friend class ::WinFriend;
 
30635
  friend class ::ExtAC;
 
30636
  friend class ::ExtACBuilderCoupling;
 
30637
  friend class ::ExtACSyntaxCoupling;
 
30638
  friend class ::ExtACTree;
 
30639
  friend class ::ExtACKeywords;
 
30640
  friend class ::ExtGnu;
 
30641
  friend class ::PragmaOnceUnitState;
 
30642
  friend class ::PragmaOnce;
 
30643
  friend class ::CMatchSyntax;
 
30644
 
 
30645
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30646
 
 
30647
protected:
 
30648
  /** Constructor. */
 
30649
  CT_Expression () {}
 
30650
 
 
30651
public:
 
30652
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30653
  static const char *NodeId ();
 
30654
  /** Get the name of the node. Can be compared with NodeId(). */
 
30655
  const char *NodeName () const { return NodeId (); }
 
30656
  /** Get the type of the expression.
 
30657
   *  \return The type information object or NULL. */
 
30658
  CTypeInfo *Type () const { return type; }
 
30659
  /** Get the value of the expression.
 
30660
   *  \return The value object or NULL. */
 
30661
  CExprValue *Value () const { return value; }
 
30662
  /** Get the semantic value information of the expression.
 
30663
   *  \return The value object or NULL. */
 
30664
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
30665
  /** Get this. */
 
30666
  virtual CT_Expression *IsExpression () { return this; }
 
30667
   private:
 
30668
  typedef CT_Expression CCExprResolveExpr;
 
30669
 
 
30670
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
30671
 public :
 
30672
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
30673
  typedef CT_Expression CExprResolveExpr;
 
30674
 
 
30675
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
30676
 public :
 
30677
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
30678
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30679
};
 
30680
 
 
30681
/** \class CT_Call CTree.h Puma/CTree.h
 
30682
 *  Tree node representing explicit or implicit function calls 
 
30683
 *  including built-in or user-defined functions and overloaded
 
30684
 *  operators. */
 
30685
 
 
30686
#line 30687 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30687
} // closed Puma
 
30688
class CCExprResolve;
 
30689
class CExprResolve;
 
30690
class WinIfExists;
 
30691
class WinImportHandler;
 
30692
class WinMacros;
 
30693
class WinAsm;
 
30694
class WinDeclSpecs;
 
30695
class WinMemberExplSpec;
 
30696
class WinTypeKeywords;
 
30697
class WinFriend;
 
30698
class ExtAC;
 
30699
class ExtACBuilderCoupling;
 
30700
class ExtACSyntaxCoupling;
 
30701
class ExtACTree;
 
30702
class ExtACKeywords;
 
30703
class ExtGnu;
 
30704
class PragmaOnceUnitState;
 
30705
class PragmaOnce;
 
30706
class CMatchSyntax;
 
30707
namespace Puma {
 
30708
 
 
30709
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30710
 
 
30711
#line 30712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30712
} // closed Puma
 
30713
 
 
30714
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30715
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30716
#include "CCExprResolveH.ah"
 
30717
#endif
 
30718
namespace Puma {
 
30719
 
 
30720
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30721
 
 
30722
#line 30723 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30723
} // closed Puma
 
30724
 
 
30725
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30726
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30727
#include "CExprResolveH.ah"
 
30728
#endif
 
30729
namespace Puma {
 
30730
 
 
30731
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30732
class CT_Call : public CT_Expression, public CSemObject {
 
30733
#line 30734 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30734
  friend class ::CCExprResolve;
 
30735
  friend class ::CExprResolve;
 
30736
  friend class ::WinIfExists;
 
30737
  friend class ::WinImportHandler;
 
30738
  friend class ::WinMacros;
 
30739
  friend class ::WinAsm;
 
30740
  friend class ::WinDeclSpecs;
 
30741
  friend class ::WinMemberExplSpec;
 
30742
  friend class ::WinTypeKeywords;
 
30743
  friend class ::WinFriend;
 
30744
  friend class ::ExtAC;
 
30745
  friend class ::ExtACBuilderCoupling;
 
30746
  friend class ::ExtACSyntaxCoupling;
 
30747
  friend class ::ExtACTree;
 
30748
  friend class ::ExtACKeywords;
 
30749
  friend class ::ExtGnu;
 
30750
  friend class ::PragmaOnceUnitState;
 
30751
  friend class ::PragmaOnce;
 
30752
  friend class ::CMatchSyntax;
 
30753
 
 
30754
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30755
 
 
30756
protected:
 
30757
  /** Constructor. */
 
30758
  CT_Call () {}
 
30759
  
 
30760
public:
 
30761
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30762
  static const char *NodeId ();
 
30763
  /** Get the name of the node. Can be compared with NodeId(). */
 
30764
  const char *NodeName () const { return NodeId (); }
 
30765
  /** Get the semantic information of the call.
 
30766
   *  \return The semantic information or NULL. */
 
30767
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
30768
  /** Get this. */
 
30769
  CT_Call *IsCall () { return this; }
 
30770
   private:
 
30771
  typedef CT_Call CCExprResolveExpr;
 
30772
 
 
30773
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
30774
 public :
 
30775
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
30776
  typedef CT_Call CExprResolveExpr;
 
30777
 
 
30778
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
30779
 public :
 
30780
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
30781
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30782
};
 
30783
 
 
30784
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
30785
 *  Tree node representing implicit function calls detected by
 
30786
 *  the semantic analysis. */
 
30787
 
 
30788
#line 30789 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30789
} // closed Puma
 
30790
class CCExprResolve;
 
30791
class CExprResolve;
 
30792
class WinIfExists;
 
30793
class WinImportHandler;
 
30794
class WinMacros;
 
30795
class WinAsm;
 
30796
class WinDeclSpecs;
 
30797
class WinMemberExplSpec;
 
30798
class WinTypeKeywords;
 
30799
class WinFriend;
 
30800
class ExtAC;
 
30801
class ExtACBuilderCoupling;
 
30802
class ExtACSyntaxCoupling;
 
30803
class ExtACTree;
 
30804
class ExtACKeywords;
 
30805
class ExtGnu;
 
30806
class PragmaOnceUnitState;
 
30807
class PragmaOnce;
 
30808
class CMatchSyntax;
 
30809
namespace Puma {
 
30810
 
 
30811
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30812
 
 
30813
#line 30814 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30814
} // closed Puma
 
30815
 
 
30816
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30817
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30818
#include "CCExprResolveH.ah"
 
30819
#endif
 
30820
namespace Puma {
 
30821
 
 
30822
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30823
 
 
30824
#line 30825 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30825
} // closed Puma
 
30826
 
 
30827
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30828
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30829
#include "CExprResolveH.ah"
 
30830
#endif
 
30831
namespace Puma {
 
30832
 
 
30833
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30834
class CT_ImplicitCall : public CT_Call {
 
30835
#line 30836 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30836
  friend class ::CCExprResolve;
 
30837
  friend class ::CExprResolve;
 
30838
  friend class ::WinIfExists;
 
30839
  friend class ::WinImportHandler;
 
30840
  friend class ::WinMacros;
 
30841
  friend class ::WinAsm;
 
30842
  friend class ::WinDeclSpecs;
 
30843
  friend class ::WinMemberExplSpec;
 
30844
  friend class ::WinTypeKeywords;
 
30845
  friend class ::WinFriend;
 
30846
  friend class ::ExtAC;
 
30847
  friend class ::ExtACBuilderCoupling;
 
30848
  friend class ::ExtACSyntaxCoupling;
 
30849
  friend class ::ExtACTree;
 
30850
  friend class ::ExtACKeywords;
 
30851
  friend class ::ExtGnu;
 
30852
  friend class ::PragmaOnceUnitState;
 
30853
  friend class ::PragmaOnce;
 
30854
  friend class ::CMatchSyntax;
 
30855
 
 
30856
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30857
 
 
30858
  CTree *_arg;
 
30859
 
 
30860
public:
 
30861
  /** Constructor.
 
30862
   *  \param arg The call argument. */
 
30863
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
30864
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30865
  static const char *NodeId ();
 
30866
  /** Get the name of the node. Can be compared with NodeId(). */
 
30867
  const char *NodeName () const { return NodeId (); }
 
30868
  /** Get the number of sons. */
 
30869
  int Sons () const { return 1; }
 
30870
  /** Get the n-th son.
 
30871
   *  \param n The index of the son.
 
30872
   *  \return The n-th son or NULL. */
 
30873
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
30874
  /** Replace a son.
 
30875
   *  \param old_son The son to replace.
 
30876
   *  \param new_son The new son. */
 
30877
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
30878
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
30879
   private:
 
30880
  typedef CT_ImplicitCall CCExprResolveExpr;
 
30881
 
 
30882
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
30883
 public :
 
30884
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
30885
  typedef CT_ImplicitCall CExprResolveExpr;
 
30886
 
 
30887
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
30888
 public :
 
30889
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
30890
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30891
};
 
30892
 
 
30893
/** \class CT_String CTree.h Puma/CTree.h
 
30894
 *  Tree node representing a string literal. */
 
30895
 
 
30896
#line 30897 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30897
} // closed Puma
 
30898
class CCExprResolve;
 
30899
class CExprResolve;
 
30900
class WinIfExists;
 
30901
class WinImportHandler;
 
30902
class WinMacros;
 
30903
class WinAsm;
 
30904
class WinDeclSpecs;
 
30905
class WinMemberExplSpec;
 
30906
class WinTypeKeywords;
 
30907
class WinFriend;
 
30908
class ExtAC;
 
30909
class ExtACBuilderCoupling;
 
30910
class ExtACSyntaxCoupling;
 
30911
class ExtACTree;
 
30912
class ExtACKeywords;
 
30913
class ExtGnu;
 
30914
class PragmaOnceUnitState;
 
30915
class PragmaOnce;
 
30916
class CMatchSyntax;
 
30917
namespace Puma {
 
30918
 
 
30919
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30920
 
 
30921
#line 30922 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30922
} // closed Puma
 
30923
 
 
30924
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30925
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30926
#include "CCExprResolveH.ah"
 
30927
#endif
 
30928
namespace Puma {
 
30929
 
 
30930
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30931
 
 
30932
#line 30933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30933
} // closed Puma
 
30934
 
 
30935
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30936
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30937
#include "CExprResolveH.ah"
 
30938
#endif
 
30939
namespace Puma {
 
30940
 
 
30941
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30942
class CT_String : public CT_List, public CSemValue {
 
30943
#line 30944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
30944
  friend class ::CCExprResolve;
 
30945
  friend class ::CExprResolve;
 
30946
  friend class ::WinIfExists;
 
30947
  friend class ::WinImportHandler;
 
30948
  friend class ::WinMacros;
 
30949
  friend class ::WinAsm;
 
30950
  friend class ::WinDeclSpecs;
 
30951
  friend class ::WinMemberExplSpec;
 
30952
  friend class ::WinTypeKeywords;
 
30953
  friend class ::WinFriend;
 
30954
  friend class ::ExtAC;
 
30955
  friend class ::ExtACBuilderCoupling;
 
30956
  friend class ::ExtACSyntaxCoupling;
 
30957
  friend class ::ExtACTree;
 
30958
  friend class ::ExtACKeywords;
 
30959
  friend class ::ExtGnu;
 
30960
  friend class ::PragmaOnceUnitState;
 
30961
  friend class ::PragmaOnce;
 
30962
  friend class ::CMatchSyntax;
 
30963
 
 
30964
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30965
 
 
30966
public:
 
30967
  /** Constructor. 
 
30968
   *  \param size The number of sub-strings. */
 
30969
  CT_String (int size) : CT_List (size, 1) {}
 
30970
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30971
  static const char *NodeId ();
 
30972
  /** Get the name of the node. Can be compared with NodeId(). */
 
30973
  const char *NodeName () const { return NodeId (); }
 
30974
 
 
30975
  /** Get the type of the string. 
 
30976
   *  \return The type or NULL. */
 
30977
  CTypeInfo *Type () const { return type; }
 
30978
  /** Get the string value.
 
30979
   *  \return The value or NULL. */
 
30980
  CExprValue *Value () const { return value; }
 
30981
  /** Get the semantic value info object.
 
30982
   *  \return The semantic value object or NULL. */
 
30983
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
30984
  /** Get this. */
 
30985
  virtual CT_String *IsString () { return this; }
 
30986
   private:
 
30987
  typedef CT_String CCExprResolveExpr;
 
30988
 
 
30989
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
30990
 public :
 
30991
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
30992
  typedef CT_String CExprResolveExpr;
 
30993
 
 
30994
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
30995
 public :
 
30996
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
30997
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30998
};
 
30999
 
 
31000
/** \class CT_WideString CTree.h Puma/CTree.h
 
31001
 *  Tree node representing a wide string literal. */
 
31002
 
 
31003
#line 31004 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31004
} // closed Puma
 
31005
class CCExprResolve;
 
31006
class CExprResolve;
 
31007
class WinIfExists;
 
31008
class WinImportHandler;
 
31009
class WinMacros;
 
31010
class WinAsm;
 
31011
class WinDeclSpecs;
 
31012
class WinMemberExplSpec;
 
31013
class WinTypeKeywords;
 
31014
class WinFriend;
 
31015
class ExtAC;
 
31016
class ExtACBuilderCoupling;
 
31017
class ExtACSyntaxCoupling;
 
31018
class ExtACTree;
 
31019
class ExtACKeywords;
 
31020
class ExtGnu;
 
31021
class PragmaOnceUnitState;
 
31022
class PragmaOnce;
 
31023
class CMatchSyntax;
 
31024
namespace Puma {
 
31025
 
 
31026
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31027
 
 
31028
#line 31029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31029
} // closed Puma
 
31030
 
 
31031
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31032
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31033
#include "CCExprResolveH.ah"
 
31034
#endif
 
31035
namespace Puma {
 
31036
 
 
31037
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31038
 
 
31039
#line 31040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31040
} // closed Puma
 
31041
 
 
31042
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31043
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31044
#include "CExprResolveH.ah"
 
31045
#endif
 
31046
namespace Puma {
 
31047
 
 
31048
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31049
class CT_WideString : public CT_String {
 
31050
#line 31051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31051
  friend class ::CCExprResolve;
 
31052
  friend class ::CExprResolve;
 
31053
  friend class ::WinIfExists;
 
31054
  friend class ::WinImportHandler;
 
31055
  friend class ::WinMacros;
 
31056
  friend class ::WinAsm;
 
31057
  friend class ::WinDeclSpecs;
 
31058
  friend class ::WinMemberExplSpec;
 
31059
  friend class ::WinTypeKeywords;
 
31060
  friend class ::WinFriend;
 
31061
  friend class ::ExtAC;
 
31062
  friend class ::ExtACBuilderCoupling;
 
31063
  friend class ::ExtACSyntaxCoupling;
 
31064
  friend class ::ExtACTree;
 
31065
  friend class ::ExtACKeywords;
 
31066
  friend class ::ExtGnu;
 
31067
  friend class ::PragmaOnceUnitState;
 
31068
  friend class ::PragmaOnce;
 
31069
  friend class ::CMatchSyntax;
 
31070
 
 
31071
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31072
 
 
31073
public:
 
31074
  /** Constructor.
 
31075
   *  \param size The number of sub-strings. */
 
31076
  CT_WideString (int size) : CT_String (size) {}
 
31077
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31078
  static const char *NodeId ();
 
31079
  /** Get the name of the node. Can be compared with NodeId(). */
 
31080
  const char *NodeName () const { return NodeId (); }
 
31081
   private:
 
31082
  typedef CT_WideString CCExprResolveExpr;
 
31083
 
 
31084
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31085
 public :
 
31086
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
31087
  typedef CT_WideString CExprResolveExpr;
 
31088
 
 
31089
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31090
 public :
 
31091
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31092
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31093
};
 
31094
 
 
31095
/** \class CT_Integer CTree.h Puma/CTree.h
 
31096
 *  Tree node representing an integer constant. */
 
31097
 
 
31098
#line 31099 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31099
} // closed Puma
 
31100
class CCExprResolve;
 
31101
class CExprResolve;
 
31102
class WinIfExists;
 
31103
class WinImportHandler;
 
31104
class WinMacros;
 
31105
class WinAsm;
 
31106
class WinDeclSpecs;
 
31107
class WinMemberExplSpec;
 
31108
class WinTypeKeywords;
 
31109
class WinFriend;
 
31110
class ExtAC;
 
31111
class ExtACBuilderCoupling;
 
31112
class ExtACSyntaxCoupling;
 
31113
class ExtACTree;
 
31114
class ExtACKeywords;
 
31115
class ExtGnu;
 
31116
class PragmaOnceUnitState;
 
31117
class PragmaOnce;
 
31118
class CMatchSyntax;
 
31119
namespace Puma {
 
31120
 
 
31121
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31122
 
 
31123
#line 31124 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31124
} // closed Puma
 
31125
 
 
31126
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31127
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31128
#include "CCExprResolveH.ah"
 
31129
#endif
 
31130
namespace Puma {
 
31131
 
 
31132
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31133
 
 
31134
#line 31135 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31135
} // closed Puma
 
31136
 
 
31137
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31138
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31139
#include "CExprResolveH.ah"
 
31140
#endif
 
31141
namespace Puma {
 
31142
 
 
31143
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31144
class CT_Integer : public CT_Expression {
 
31145
#line 31146 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31146
  friend class ::CCExprResolve;
 
31147
  friend class ::CExprResolve;
 
31148
  friend class ::WinIfExists;
 
31149
  friend class ::WinImportHandler;
 
31150
  friend class ::WinMacros;
 
31151
  friend class ::WinAsm;
 
31152
  friend class ::WinDeclSpecs;
 
31153
  friend class ::WinMemberExplSpec;
 
31154
  friend class ::WinTypeKeywords;
 
31155
  friend class ::WinFriend;
 
31156
  friend class ::ExtAC;
 
31157
  friend class ::ExtACBuilderCoupling;
 
31158
  friend class ::ExtACSyntaxCoupling;
 
31159
  friend class ::ExtACTree;
 
31160
  friend class ::ExtACKeywords;
 
31161
  friend class ::ExtGnu;
 
31162
  friend class ::PragmaOnceUnitState;
 
31163
  friend class ::PragmaOnce;
 
31164
  friend class ::CMatchSyntax;
 
31165
 
 
31166
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31167
 
 
31168
  CTree *_value;  // CT_Token
 
31169
 
 
31170
public:
 
31171
  /** Constructor.
 
31172
   *  \param token The token containing the integer value. */
 
31173
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
31174
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31175
  static const char *NodeId ();
 
31176
  /** Get the name of the node. Can be compared with NodeId(). */
 
31177
  const char *NodeName () const { return NodeId (); }
 
31178
  /** Get the number of sons. */
 
31179
  int Sons () const { return _value ? 1 : 0; }
 
31180
  /** Get the n-th son.
 
31181
   *  \param n The index of the son.
 
31182
   *  \return The n-th son or NULL. */
 
31183
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
31184
  /** Replace a son.
 
31185
   *  \param old_son The son to replace.
 
31186
   *  \param new_son The new son. */
 
31187
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
31188
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
31189
   private:
 
31190
  typedef CT_Integer CCExprResolveExpr;
 
31191
 
 
31192
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31193
 public :
 
31194
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
31195
  typedef CT_Integer CExprResolveExpr;
 
31196
 
 
31197
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31198
 public :
 
31199
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31200
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31201
};
 
31202
 
 
31203
/** \class CT_Character CTree.h Puma/CTree.h
 
31204
 *  Tree node representing a single character constant. */
 
31205
 
 
31206
#line 31207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31207
} // closed Puma
 
31208
class CCExprResolve;
 
31209
class CExprResolve;
 
31210
class WinIfExists;
 
31211
class WinImportHandler;
 
31212
class WinMacros;
 
31213
class WinAsm;
 
31214
class WinDeclSpecs;
 
31215
class WinMemberExplSpec;
 
31216
class WinTypeKeywords;
 
31217
class WinFriend;
 
31218
class ExtAC;
 
31219
class ExtACBuilderCoupling;
 
31220
class ExtACSyntaxCoupling;
 
31221
class ExtACTree;
 
31222
class ExtACKeywords;
 
31223
class ExtGnu;
 
31224
class PragmaOnceUnitState;
 
31225
class PragmaOnce;
 
31226
class CMatchSyntax;
 
31227
namespace Puma {
 
31228
 
 
31229
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31230
 
 
31231
#line 31232 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31232
} // closed Puma
 
31233
 
 
31234
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31235
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31236
#include "CCExprResolveH.ah"
 
31237
#endif
 
31238
namespace Puma {
 
31239
 
 
31240
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31241
 
 
31242
#line 31243 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31243
} // closed Puma
 
31244
 
 
31245
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31246
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31247
#include "CExprResolveH.ah"
 
31248
#endif
 
31249
namespace Puma {
 
31250
 
 
31251
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31252
class CT_Character : public CT_Expression {
 
31253
#line 31254 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31254
  friend class ::CCExprResolve;
 
31255
  friend class ::CExprResolve;
 
31256
  friend class ::WinIfExists;
 
31257
  friend class ::WinImportHandler;
 
31258
  friend class ::WinMacros;
 
31259
  friend class ::WinAsm;
 
31260
  friend class ::WinDeclSpecs;
 
31261
  friend class ::WinMemberExplSpec;
 
31262
  friend class ::WinTypeKeywords;
 
31263
  friend class ::WinFriend;
 
31264
  friend class ::ExtAC;
 
31265
  friend class ::ExtACBuilderCoupling;
 
31266
  friend class ::ExtACSyntaxCoupling;
 
31267
  friend class ::ExtACTree;
 
31268
  friend class ::ExtACKeywords;
 
31269
  friend class ::ExtGnu;
 
31270
  friend class ::PragmaOnceUnitState;
 
31271
  friend class ::PragmaOnce;
 
31272
  friend class ::CMatchSyntax;
 
31273
 
 
31274
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31275
 
 
31276
  CTree *_value;  // CT_Token
 
31277
 
 
31278
public:
 
31279
  /** Constructor.
 
31280
   *  \param token The token containing the character value. */
 
31281
  CT_Character (CTree *token) { AddSon (_value, token); }
 
31282
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31283
  static const char *NodeId ();
 
31284
  /** Get the name of the node. Can be compared with NodeId(). */
 
31285
  const char *NodeName () const { return NodeId (); }
 
31286
  /** Get the number of sons. */
 
31287
  int Sons () const { return 1; }
 
31288
  /** Get the n-th son.
 
31289
   *  \param n The index of the son.
 
31290
   *  \return The n-th son or NULL. */
 
31291
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
31292
  /** Replace a son.
 
31293
   *  \param old_son The son to replace.
 
31294
   *  \param new_son The new son. */
 
31295
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
31296
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
31297
   private:
 
31298
  typedef CT_Character CCExprResolveExpr;
 
31299
 
 
31300
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31301
 public :
 
31302
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
31303
  typedef CT_Character CExprResolveExpr;
 
31304
 
 
31305
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31306
 public :
 
31307
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31308
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31309
};
 
31310
 
 
31311
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
31312
 *  Tree node representing a wide character constant. */
 
31313
 
 
31314
#line 31315 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31315
} // closed Puma
 
31316
class CCExprResolve;
 
31317
class CExprResolve;
 
31318
class WinIfExists;
 
31319
class WinImportHandler;
 
31320
class WinMacros;
 
31321
class WinAsm;
 
31322
class WinDeclSpecs;
 
31323
class WinMemberExplSpec;
 
31324
class WinTypeKeywords;
 
31325
class WinFriend;
 
31326
class ExtAC;
 
31327
class ExtACBuilderCoupling;
 
31328
class ExtACSyntaxCoupling;
 
31329
class ExtACTree;
 
31330
class ExtACKeywords;
 
31331
class ExtGnu;
 
31332
class PragmaOnceUnitState;
 
31333
class PragmaOnce;
 
31334
class CMatchSyntax;
 
31335
namespace Puma {
 
31336
 
 
31337
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31338
 
 
31339
#line 31340 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31340
} // closed Puma
 
31341
 
 
31342
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31343
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31344
#include "CCExprResolveH.ah"
 
31345
#endif
 
31346
namespace Puma {
 
31347
 
 
31348
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31349
 
 
31350
#line 31351 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31351
} // closed Puma
 
31352
 
 
31353
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31354
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31355
#include "CExprResolveH.ah"
 
31356
#endif
 
31357
namespace Puma {
 
31358
 
 
31359
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31360
class CT_WideCharacter : public CT_Character {
 
31361
#line 31362 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31362
  friend class ::CCExprResolve;
 
31363
  friend class ::CExprResolve;
 
31364
  friend class ::WinIfExists;
 
31365
  friend class ::WinImportHandler;
 
31366
  friend class ::WinMacros;
 
31367
  friend class ::WinAsm;
 
31368
  friend class ::WinDeclSpecs;
 
31369
  friend class ::WinMemberExplSpec;
 
31370
  friend class ::WinTypeKeywords;
 
31371
  friend class ::WinFriend;
 
31372
  friend class ::ExtAC;
 
31373
  friend class ::ExtACBuilderCoupling;
 
31374
  friend class ::ExtACSyntaxCoupling;
 
31375
  friend class ::ExtACTree;
 
31376
  friend class ::ExtACKeywords;
 
31377
  friend class ::ExtGnu;
 
31378
  friend class ::PragmaOnceUnitState;
 
31379
  friend class ::PragmaOnce;
 
31380
  friend class ::CMatchSyntax;
 
31381
 
 
31382
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31383
 
 
31384
public:
 
31385
  /** Constructor.
 
31386
   *  \param token The token containing the wide character value. */
 
31387
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
31388
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31389
  static const char *NodeId ();
 
31390
  /** Get the name of the node. Can be compared with NodeId(). */
 
31391
  const char *NodeName () const { return NodeId (); }
 
31392
   private:
 
31393
  typedef CT_WideCharacter CCExprResolveExpr;
 
31394
 
 
31395
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31396
 public :
 
31397
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
31398
  typedef CT_WideCharacter CExprResolveExpr;
 
31399
 
 
31400
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31401
 public :
 
31402
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31403
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31404
};
 
31405
 
 
31406
/** \class CT_Float CTree.h Puma/CTree.h
 
31407
 *  Tree node representing a floating point constant. */
 
31408
 
 
31409
#line 31410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31410
} // closed Puma
 
31411
class CCExprResolve;
 
31412
class CExprResolve;
 
31413
class WinIfExists;
 
31414
class WinImportHandler;
 
31415
class WinMacros;
 
31416
class WinAsm;
 
31417
class WinDeclSpecs;
 
31418
class WinMemberExplSpec;
 
31419
class WinTypeKeywords;
 
31420
class WinFriend;
 
31421
class ExtAC;
 
31422
class ExtACBuilderCoupling;
 
31423
class ExtACSyntaxCoupling;
 
31424
class ExtACTree;
 
31425
class ExtACKeywords;
 
31426
class ExtGnu;
 
31427
class PragmaOnceUnitState;
 
31428
class PragmaOnce;
 
31429
class CMatchSyntax;
 
31430
namespace Puma {
 
31431
 
 
31432
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31433
 
 
31434
#line 31435 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31435
} // closed Puma
 
31436
 
 
31437
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31438
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31439
#include "CCExprResolveH.ah"
 
31440
#endif
 
31441
namespace Puma {
 
31442
 
 
31443
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31444
 
 
31445
#line 31446 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31446
} // closed Puma
 
31447
 
 
31448
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31449
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31450
#include "CExprResolveH.ah"
 
31451
#endif
 
31452
namespace Puma {
 
31453
 
 
31454
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31455
class CT_Float : public CT_Expression {
 
31456
#line 31457 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31457
  friend class ::CCExprResolve;
 
31458
  friend class ::CExprResolve;
 
31459
  friend class ::WinIfExists;
 
31460
  friend class ::WinImportHandler;
 
31461
  friend class ::WinMacros;
 
31462
  friend class ::WinAsm;
 
31463
  friend class ::WinDeclSpecs;
 
31464
  friend class ::WinMemberExplSpec;
 
31465
  friend class ::WinTypeKeywords;
 
31466
  friend class ::WinFriend;
 
31467
  friend class ::ExtAC;
 
31468
  friend class ::ExtACBuilderCoupling;
 
31469
  friend class ::ExtACSyntaxCoupling;
 
31470
  friend class ::ExtACTree;
 
31471
  friend class ::ExtACKeywords;
 
31472
  friend class ::ExtGnu;
 
31473
  friend class ::PragmaOnceUnitState;
 
31474
  friend class ::PragmaOnce;
 
31475
  friend class ::CMatchSyntax;
 
31476
 
 
31477
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31478
 
 
31479
  CTree *_value;  // CT_Token
 
31480
 
 
31481
public:
 
31482
  /** Constructor.
 
31483
   *  \param token The token containing the floating point value. */
 
31484
  CT_Float (CTree *token) { AddSon (_value, token); }
 
31485
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31486
  static const char *NodeId ();
 
31487
  /** Get the name of the node. Can be compared with NodeId(). */
 
31488
  const char *NodeName () const { return NodeId (); }
 
31489
  /** Get the number of sons. */
 
31490
  int Sons () const { return 1; }
 
31491
  /** Get the n-th son.
 
31492
   *  \param n The index of the son.
 
31493
   *  \return The n-th son or NULL. */
 
31494
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
31495
  /** Replace a son.
 
31496
   *  \param old_son The son to replace.
 
31497
   *  \param new_son The new son. */
 
31498
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
31499
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
31500
   private:
 
31501
  typedef CT_Float CCExprResolveExpr;
 
31502
 
 
31503
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31504
 public :
 
31505
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
31506
  typedef CT_Float CExprResolveExpr;
 
31507
 
 
31508
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31509
 public :
 
31510
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31511
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31512
};
 
31513
 
 
31514
/** \class CT_Bool CTree.h Puma/CTree.h
 
31515
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
 
31516
 
 
31517
#line 31518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31518
} // closed Puma
 
31519
class CCExprResolve;
 
31520
class CExprResolve;
 
31521
class WinIfExists;
 
31522
class WinImportHandler;
 
31523
class WinMacros;
 
31524
class WinAsm;
 
31525
class WinDeclSpecs;
 
31526
class WinMemberExplSpec;
 
31527
class WinTypeKeywords;
 
31528
class WinFriend;
 
31529
class ExtAC;
 
31530
class ExtACBuilderCoupling;
 
31531
class ExtACSyntaxCoupling;
 
31532
class ExtACTree;
 
31533
class ExtACKeywords;
 
31534
class ExtGnu;
 
31535
class PragmaOnceUnitState;
 
31536
class PragmaOnce;
 
31537
class CMatchSyntax;
 
31538
namespace Puma {
 
31539
 
 
31540
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31541
 
 
31542
#line 31543 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31543
} // closed Puma
 
31544
 
 
31545
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31546
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31547
#include "CCExprResolveH.ah"
 
31548
#endif
 
31549
namespace Puma {
 
31550
 
 
31551
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31552
 
 
31553
#line 31554 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31554
} // closed Puma
 
31555
 
 
31556
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31557
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31558
#include "CExprResolveH.ah"
 
31559
#endif
 
31560
namespace Puma {
 
31561
 
 
31562
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31563
class CT_Bool : public CT_Expression {
 
31564
#line 31565 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31565
  friend class ::CCExprResolve;
 
31566
  friend class ::CExprResolve;
 
31567
  friend class ::WinIfExists;
 
31568
  friend class ::WinImportHandler;
 
31569
  friend class ::WinMacros;
 
31570
  friend class ::WinAsm;
 
31571
  friend class ::WinDeclSpecs;
 
31572
  friend class ::WinMemberExplSpec;
 
31573
  friend class ::WinTypeKeywords;
 
31574
  friend class ::WinFriend;
 
31575
  friend class ::ExtAC;
 
31576
  friend class ::ExtACBuilderCoupling;
 
31577
  friend class ::ExtACSyntaxCoupling;
 
31578
  friend class ::ExtACTree;
 
31579
  friend class ::ExtACKeywords;
 
31580
  friend class ::ExtGnu;
 
31581
  friend class ::PragmaOnceUnitState;
 
31582
  friend class ::PragmaOnce;
 
31583
  friend class ::CMatchSyntax;
 
31584
 
 
31585
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31586
 
 
31587
  CTree *_value;  // CT_Token
 
31588
 
 
31589
public:
 
31590
  /** Constructor.
 
31591
   *  \param token The token containing the boolean value. */
 
31592
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
31593
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31594
  static const char *NodeId ();
 
31595
  /** Get the name of the node. Can be compared with NodeId(). */
 
31596
  const char *NodeName () const { return NodeId (); }
 
31597
  /** Get the number of sons. */
 
31598
  int Sons () const { return 1; }
 
31599
  /** Get the n-th son.
 
31600
   *  \param n The index of the son.
 
31601
   *  \return The n-th son or NULL. */
 
31602
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
31603
  /** Replace a son.
 
31604
   *  \param old_son The son to replace.
 
31605
   *  \param new_son The new son. */
 
31606
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
31607
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
31608
   private:
 
31609
  typedef CT_Bool CCExprResolveExpr;
 
31610
 
 
31611
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31612
 public :
 
31613
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
31614
  typedef CT_Bool CExprResolveExpr;
 
31615
 
 
31616
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31617
 public :
 
31618
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31619
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31620
};
 
31621
 
 
31622
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
31623
 *  Tree node representing a braced expression, e.g. (a+b). */
 
31624
 
 
31625
#line 31626 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31626
} // closed Puma
 
31627
class CCExprResolve;
 
31628
class CExprResolve;
 
31629
class WinIfExists;
 
31630
class WinImportHandler;
 
31631
class WinMacros;
 
31632
class WinAsm;
 
31633
class WinDeclSpecs;
 
31634
class WinMemberExplSpec;
 
31635
class WinTypeKeywords;
 
31636
class WinFriend;
 
31637
class ExtAC;
 
31638
class ExtACBuilderCoupling;
 
31639
class ExtACSyntaxCoupling;
 
31640
class ExtACTree;
 
31641
class ExtACKeywords;
 
31642
class ExtGnu;
 
31643
class PragmaOnceUnitState;
 
31644
class PragmaOnce;
 
31645
class CMatchSyntax;
 
31646
namespace Puma {
 
31647
 
 
31648
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31649
 
 
31650
#line 31651 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31651
} // closed Puma
 
31652
 
 
31653
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31654
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31655
#include "CCExprResolveH.ah"
 
31656
#endif
 
31657
namespace Puma {
 
31658
 
 
31659
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31660
 
 
31661
#line 31662 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31662
} // closed Puma
 
31663
 
 
31664
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31665
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31666
#include "CExprResolveH.ah"
 
31667
#endif
 
31668
namespace Puma {
 
31669
 
 
31670
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31671
class CT_BracedExpr : public CT_Expression {
 
31672
#line 31673 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31673
  friend class ::CCExprResolve;
 
31674
  friend class ::CExprResolve;
 
31675
  friend class ::WinIfExists;
 
31676
  friend class ::WinImportHandler;
 
31677
  friend class ::WinMacros;
 
31678
  friend class ::WinAsm;
 
31679
  friend class ::WinDeclSpecs;
 
31680
  friend class ::WinMemberExplSpec;
 
31681
  friend class ::WinTypeKeywords;
 
31682
  friend class ::WinFriend;
 
31683
  friend class ::ExtAC;
 
31684
  friend class ::ExtACBuilderCoupling;
 
31685
  friend class ::ExtACSyntaxCoupling;
 
31686
  friend class ::ExtACTree;
 
31687
  friend class ::ExtACKeywords;
 
31688
  friend class ::ExtGnu;
 
31689
  friend class ::PragmaOnceUnitState;
 
31690
  friend class ::PragmaOnce;
 
31691
  friend class ::CMatchSyntax;
 
31692
 
 
31693
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31694
 
 
31695
  CTree *sons[3]; // open, expr, close
 
31696
 
 
31697
public:
 
31698
  /** Constructor.
 
31699
   *  \param o The opening brace.
 
31700
   *  \param e The enclosed expression.
 
31701
   *  \param c The closing brace. */
 
31702
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
 
31703
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
 
31704
  }
 
31705
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31706
  static const char *NodeId ();
 
31707
  /** Get the name of the node. Can be compared with NodeId(). */
 
31708
  const char *NodeName () const { return NodeId (); }
 
31709
  /** Get the number of sons. */
 
31710
  int Sons () const { return 3; }
 
31711
  /** Get the n-th son.
 
31712
   *  \param n The index of the son.
 
31713
   *  \return The n-th son or NULL. */
 
31714
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
31715
  /** Get the enclosed expression. */
 
31716
  CTree *Expr () const { return sons[1]; }
 
31717
  /** Get the type of the enclosed expression. */
 
31718
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
31719
  /** Get the value of the enclosed expression. */
 
31720
  CExprValue *Value () const { return Expr ()->Value (); }
 
31721
  /** Get the semantic value object. */
 
31722
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
31723
  /** Replace a son.
 
31724
   *  \param old_son The son to replace.
 
31725
   *  \param new_son The new son. */
 
31726
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
31727
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
31728
  }
 
31729
   private:
 
31730
  typedef CT_BracedExpr CCExprResolveExpr;
 
31731
 
 
31732
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31733
 public :
 
31734
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
31735
  typedef CT_BracedExpr CExprResolveExpr;
 
31736
 
 
31737
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31738
 public :
 
31739
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31740
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31741
};
 
31742
 
 
31743
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
31744
 *  Base class for all tree nodes representing a name. */
 
31745
 
 
31746
#line 31747 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31747
} // closed Puma
 
31748
class CCExprResolve;
 
31749
class CExprResolve;
 
31750
class WinIfExists;
 
31751
class WinImportHandler;
 
31752
class WinMacros;
 
31753
class WinAsm;
 
31754
class WinDeclSpecs;
 
31755
class WinMemberExplSpec;
 
31756
class WinTypeKeywords;
 
31757
class WinFriend;
 
31758
class ExtAC;
 
31759
class ExtACBuilderCoupling;
 
31760
class ExtACSyntaxCoupling;
 
31761
class ExtACTree;
 
31762
class ExtACKeywords;
 
31763
class ExtGnu;
 
31764
class PragmaOnceUnitState;
 
31765
class PragmaOnce;
 
31766
class CMatchSyntax;
 
31767
namespace Puma {
 
31768
 
 
31769
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31770
 
 
31771
#line 31772 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31772
} // closed Puma
 
31773
 
 
31774
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31775
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31776
#include "CCExprResolveH.ah"
 
31777
#endif
 
31778
namespace Puma {
 
31779
 
 
31780
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31781
 
 
31782
#line 31783 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31783
} // closed Puma
 
31784
 
 
31785
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31786
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31787
#include "CExprResolveH.ah"
 
31788
#endif
 
31789
namespace Puma {
 
31790
 
 
31791
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31792
class CT_SimpleName : public CT_List, public Printable, 
 
31793
                      public CSemValue, public CSemObject {
 
31794
#line 31795 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31795
  friend class ::CCExprResolve;
 
31796
  friend class ::CExprResolve;
 
31797
  friend class ::WinIfExists;
 
31798
  friend class ::WinImportHandler;
 
31799
  friend class ::WinMacros;
 
31800
  friend class ::WinAsm;
 
31801
  friend class ::WinDeclSpecs;
 
31802
  friend class ::WinMemberExplSpec;
 
31803
  friend class ::WinTypeKeywords;
 
31804
  friend class ::WinFriend;
 
31805
  friend class ::ExtAC;
 
31806
  friend class ::ExtACBuilderCoupling;
 
31807
  friend class ::ExtACSyntaxCoupling;
 
31808
  friend class ::ExtACTree;
 
31809
  friend class ::ExtACKeywords;
 
31810
  friend class ::ExtGnu;
 
31811
  friend class ::PragmaOnceUnitState;
 
31812
  friend class ::PragmaOnce;
 
31813
  friend class ::CMatchSyntax;
 
31814
 
 
31815
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31816
 
 
31817
protected:
 
31818
  /** Constructor.
 
31819
   *  \param size The number of sub-names (for qualified names). */
 
31820
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
31821
  /** Constructor.
 
31822
   *  \param size The number of sub-names (for qualified names). 
 
31823
   *  \param properties Additional name list properties (for root qualified names). */
 
31824
  CT_SimpleName (int size, int properties) : 
 
31825
    CT_List (size, 2, properties) {}
 
31826
  
 
31827
public:
 
31828
  /** Constructor.
 
31829
   *  \param n The sub-tree containing the name. */
 
31830
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
31831
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31832
  static const char *NodeId ();
 
31833
  /** Get the name of the node. Can be compared with NodeId(). */
 
31834
  const char *NodeName () const { return NodeId (); }
 
31835
  /** Get the string containing the name. */
 
31836
  virtual const char *Text () const 
 
31837
   { return Son (Sons ()-1)->token ()->text (); }
 
31838
  /** Print the name on the given stream. 
 
31839
   *  \param os The output stream. */
 
31840
  virtual void print (ostream &os) const { os << Text (); }
 
31841
  /** Get this. */
 
31842
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
31843
  /** Get the type of the entity represented by the name. */
 
31844
  CTypeInfo *Type () const { return type; }
 
31845
  /** Get the value of the entity represented by the name. */ 
 
31846
  CExprValue *Value () const { return value; }
 
31847
  /** Get the sematic value information object. */
 
31848
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
31849
  /** Get the sematic information object. */
 
31850
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
31851
  /** Get this. */
 
31852
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
31853
 
 
31854
public:
 
31855
  /** Own new operator reusing memory. */
 
31856
  void *operator new (size_t);
 
31857
  /** Own delete operator. */
 
31858
  void operator delete (void *);
 
31859
   private:
 
31860
  typedef CT_SimpleName CCExprResolveExpr;
 
31861
 
 
31862
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31863
 public :
 
31864
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
31865
  typedef CT_SimpleName CExprResolveExpr;
 
31866
 
 
31867
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31868
 public :
 
31869
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31870
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31871
};
 
31872
 
 
31873
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
31874
 *  Base class for tree nodes representing a special name, like destructor names. */
 
31875
 
 
31876
#line 31877 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31877
} // closed Puma
 
31878
class CCExprResolve;
 
31879
class CExprResolve;
 
31880
class WinIfExists;
 
31881
class WinImportHandler;
 
31882
class WinMacros;
 
31883
class WinAsm;
 
31884
class WinDeclSpecs;
 
31885
class WinMemberExplSpec;
 
31886
class WinTypeKeywords;
 
31887
class WinFriend;
 
31888
class ExtAC;
 
31889
class ExtACBuilderCoupling;
 
31890
class ExtACSyntaxCoupling;
 
31891
class ExtACTree;
 
31892
class ExtACKeywords;
 
31893
class ExtGnu;
 
31894
class PragmaOnceUnitState;
 
31895
class PragmaOnce;
 
31896
class CMatchSyntax;
 
31897
namespace Puma {
 
31898
 
 
31899
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31900
 
 
31901
#line 31902 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31902
} // closed Puma
 
31903
 
 
31904
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31905
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31906
#include "CCExprResolveH.ah"
 
31907
#endif
 
31908
namespace Puma {
 
31909
 
 
31910
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31911
 
 
31912
#line 31913 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31913
} // closed Puma
 
31914
 
 
31915
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31916
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31917
#include "CExprResolveH.ah"
 
31918
#endif
 
31919
namespace Puma {
 
31920
 
 
31921
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31922
class CT_SpecialName : public CT_SimpleName {
 
31923
#line 31924 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31924
  friend class ::CCExprResolve;
 
31925
  friend class ::CExprResolve;
 
31926
  friend class ::WinIfExists;
 
31927
  friend class ::WinImportHandler;
 
31928
  friend class ::WinMacros;
 
31929
  friend class ::WinAsm;
 
31930
  friend class ::WinDeclSpecs;
 
31931
  friend class ::WinMemberExplSpec;
 
31932
  friend class ::WinTypeKeywords;
 
31933
  friend class ::WinFriend;
 
31934
  friend class ::ExtAC;
 
31935
  friend class ::ExtACBuilderCoupling;
 
31936
  friend class ::ExtACSyntaxCoupling;
 
31937
  friend class ::ExtACTree;
 
31938
  friend class ::ExtACKeywords;
 
31939
  friend class ::ExtGnu;
 
31940
  friend class ::PragmaOnceUnitState;
 
31941
  friend class ::PragmaOnce;
 
31942
  friend class ::CMatchSyntax;
 
31943
 
 
31944
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31945
 
 
31946
  char *_name;
 
31947
  
 
31948
protected:
 
31949
  /** Constructor.
 
31950
   *  \param size The number of sub-names (for qualified names). */
 
31951
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
 
31952
  
 
31953
public:
 
31954
  /** Destructor. Deletes the name string. */
 
31955
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
31956
  /** Get the string containing the name. */
 
31957
  const char *Text () const { return _name; }
 
31958
  /** Set the name. The name is copied.
 
31959
   *  \param n The name. */
 
31960
  void Name (const char *n) { 
 
31961
    if (n) { 
 
31962
      _name = new char[strlen(n) + 1];
 
31963
      strcpy (_name,n);
 
31964
    }
 
31965
  }
 
31966
 
 
31967
public:
 
31968
  /** Own new operator reusing memory. */
 
31969
  void *operator new (size_t);
 
31970
  /** Own delete operator. */
 
31971
  void operator delete (void *);
 
31972
   private:
 
31973
  typedef CT_SpecialName CCExprResolveExpr;
 
31974
 
 
31975
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31976
 public :
 
31977
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
31978
  typedef CT_SpecialName CExprResolveExpr;
 
31979
 
 
31980
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31981
 public :
 
31982
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31983
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31984
};
 
31985
 
 
31986
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
31987
 *  Tree node representing a private name. Private names 
 
31988
 *  are generated names for abstract declarators etc. */
 
31989
 
 
31990
#line 31991 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
31991
} // closed Puma
 
31992
class CCExprResolve;
 
31993
class CExprResolve;
 
31994
class WinIfExists;
 
31995
class WinImportHandler;
 
31996
class WinMacros;
 
31997
class WinAsm;
 
31998
class WinDeclSpecs;
 
31999
class WinMemberExplSpec;
 
32000
class WinTypeKeywords;
 
32001
class WinFriend;
 
32002
class ExtAC;
 
32003
class ExtACBuilderCoupling;
 
32004
class ExtACSyntaxCoupling;
 
32005
class ExtACTree;
 
32006
class ExtACKeywords;
 
32007
class ExtGnu;
 
32008
class PragmaOnceUnitState;
 
32009
class PragmaOnce;
 
32010
class CMatchSyntax;
 
32011
namespace Puma {
 
32012
 
 
32013
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32014
 
 
32015
#line 32016 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32016
} // closed Puma
 
32017
 
 
32018
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32019
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32020
#include "CCExprResolveH.ah"
 
32021
#endif
 
32022
namespace Puma {
 
32023
 
 
32024
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32025
 
 
32026
#line 32027 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32027
} // closed Puma
 
32028
 
 
32029
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32030
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32031
#include "CExprResolveH.ah"
 
32032
#endif
 
32033
namespace Puma {
 
32034
 
 
32035
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32036
class CT_PrivateName : public CT_SpecialName {
 
32037
#line 32038 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32038
  friend class ::CCExprResolve;
 
32039
  friend class ::CExprResolve;
 
32040
  friend class ::WinIfExists;
 
32041
  friend class ::WinImportHandler;
 
32042
  friend class ::WinMacros;
 
32043
  friend class ::WinAsm;
 
32044
  friend class ::WinDeclSpecs;
 
32045
  friend class ::WinMemberExplSpec;
 
32046
  friend class ::WinTypeKeywords;
 
32047
  friend class ::WinFriend;
 
32048
  friend class ::ExtAC;
 
32049
  friend class ::ExtACBuilderCoupling;
 
32050
  friend class ::ExtACSyntaxCoupling;
 
32051
  friend class ::ExtACTree;
 
32052
  friend class ::ExtACKeywords;
 
32053
  friend class ::ExtGnu;
 
32054
  friend class ::PragmaOnceUnitState;
 
32055
  friend class ::PragmaOnce;
 
32056
  friend class ::CMatchSyntax;
 
32057
 
 
32058
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32059
 
 
32060
public:
 
32061
  /** Constructor.
 
32062
   *  \param n The private (generated) name. */
 
32063
  CT_PrivateName (const char *n) { Name (n); }
 
32064
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32065
  static const char *NodeId ();
 
32066
  /** Get the name of the node. Can be compared with NodeId(). */
 
32067
  const char *NodeName () const { return NodeId (); }
 
32068
  /** Get the number of sons. */
 
32069
  int Sons () const { return 0; }
 
32070
  /** Get the n-th son.
 
32071
   *  \param n The index of the son.
 
32072
   *  \return The n-th son or NULL. */
 
32073
  CTree *Son (int n) const { return (CTree*)0; }
 
32074
 
 
32075
public:
 
32076
  /** Own new operator reusing memory. */
 
32077
  void *operator new (size_t);
 
32078
  /** Own delete operator. */
 
32079
  void operator delete (void *);
 
32080
   private:
 
32081
  typedef CT_PrivateName CCExprResolveExpr;
 
32082
 
 
32083
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
32084
 public :
 
32085
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
32086
  typedef CT_PrivateName CExprResolveExpr;
 
32087
 
 
32088
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
32089
 public :
 
32090
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
32091
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32092
};
 
32093
 
 
32094
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
32095
 *  Tree node representing a destructor name. */
 
32096
 
 
32097
#line 32098 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32098
} // closed Puma
 
32099
class CCExprResolve;
 
32100
class CExprResolve;
 
32101
class WinIfExists;
 
32102
class WinImportHandler;
 
32103
class WinMacros;
 
32104
class WinAsm;
 
32105
class WinDeclSpecs;
 
32106
class WinMemberExplSpec;
 
32107
class WinTypeKeywords;
 
32108
class WinFriend;
 
32109
class ExtAC;
 
32110
class ExtACBuilderCoupling;
 
32111
class ExtACSyntaxCoupling;
 
32112
class ExtACTree;
 
32113
class ExtACKeywords;
 
32114
class ExtGnu;
 
32115
class PragmaOnceUnitState;
 
32116
class PragmaOnce;
 
32117
class CMatchSyntax;
 
32118
namespace Puma {
 
32119
 
 
32120
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32121
 
 
32122
#line 32123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32123
} // closed Puma
 
32124
 
 
32125
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32126
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32127
#include "CCExprResolveH.ah"
 
32128
#endif
 
32129
namespace Puma {
 
32130
 
 
32131
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32132
 
 
32133
#line 32134 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32134
} // closed Puma
 
32135
 
 
32136
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32137
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32138
#include "CExprResolveH.ah"
 
32139
#endif
 
32140
namespace Puma {
 
32141
 
 
32142
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32143
class CT_DestructorName : public CT_SpecialName {
 
32144
#line 32145 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32145
  friend class ::CCExprResolve;
 
32146
  friend class ::CExprResolve;
 
32147
  friend class ::WinIfExists;
 
32148
  friend class ::WinImportHandler;
 
32149
  friend class ::WinMacros;
 
32150
  friend class ::WinAsm;
 
32151
  friend class ::WinDeclSpecs;
 
32152
  friend class ::WinMemberExplSpec;
 
32153
  friend class ::WinTypeKeywords;
 
32154
  friend class ::WinFriend;
 
32155
  friend class ::ExtAC;
 
32156
  friend class ::ExtACBuilderCoupling;
 
32157
  friend class ::ExtACSyntaxCoupling;
 
32158
  friend class ::ExtACTree;
 
32159
  friend class ::ExtACKeywords;
 
32160
  friend class ::ExtGnu;
 
32161
  friend class ::PragmaOnceUnitState;
 
32162
  friend class ::PragmaOnce;
 
32163
  friend class ::CMatchSyntax;
 
32164
 
 
32165
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32166
 
 
32167
public:
 
32168
  /** Constructor.
 
32169
   *  \param t The tilde operator.
 
32170
   *  \param n The class name. */
 
32171
  CT_DestructorName (CTree *t, CTree *n);
 
32172
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32173
  static const char *NodeId ();
 
32174
  /** Get the name of the node. Can be compared with NodeId(). */
 
32175
  const char *NodeName () const { return NodeId (); }
 
32176
 
 
32177
public:
 
32178
  /** Own new operator reusing memory. */
 
32179
  void *operator new (size_t);
 
32180
  /** Own delete operator. */
 
32181
  void operator delete (void *);
 
32182
   private:
 
32183
  typedef CT_DestructorName CCExprResolveExpr;
 
32184
 
 
32185
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
32186
 public :
 
32187
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
32188
  typedef CT_DestructorName CExprResolveExpr;
 
32189
 
 
32190
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
32191
 public :
 
32192
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
32193
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32194
};
 
32195
 
 
32196
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
32197
 *  Tree node representing a template name. */
 
32198
 
 
32199
#line 32200 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32200
} // closed Puma
 
32201
class CCExprResolve;
 
32202
class CExprResolve;
 
32203
class WinIfExists;
 
32204
class WinImportHandler;
 
32205
class WinMacros;
 
32206
class WinAsm;
 
32207
class WinDeclSpecs;
 
32208
class WinMemberExplSpec;
 
32209
class WinTypeKeywords;
 
32210
class WinFriend;
 
32211
class ExtAC;
 
32212
class ExtACBuilderCoupling;
 
32213
class ExtACSyntaxCoupling;
 
32214
class ExtACTree;
 
32215
class ExtACKeywords;
 
32216
class ExtGnu;
 
32217
class PragmaOnceUnitState;
 
32218
class PragmaOnce;
 
32219
class CMatchSyntax;
 
32220
namespace Puma {
 
32221
 
 
32222
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32223
 
 
32224
#line 32225 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32225
} // closed Puma
 
32226
 
 
32227
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32228
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32229
#include "CCExprResolveH.ah"
 
32230
#endif
 
32231
namespace Puma {
 
32232
 
 
32233
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32234
 
 
32235
#line 32236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32236
} // closed Puma
 
32237
 
 
32238
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32239
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32240
#include "CExprResolveH.ah"
 
32241
#endif
 
32242
namespace Puma {
 
32243
 
 
32244
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32245
class CT_TemplateName : public CT_SpecialName {
 
32246
#line 32247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32247
  friend class ::CCExprResolve;
 
32248
  friend class ::CExprResolve;
 
32249
  friend class ::WinIfExists;
 
32250
  friend class ::WinImportHandler;
 
32251
  friend class ::WinMacros;
 
32252
  friend class ::WinAsm;
 
32253
  friend class ::WinDeclSpecs;
 
32254
  friend class ::WinMemberExplSpec;
 
32255
  friend class ::WinTypeKeywords;
 
32256
  friend class ::WinFriend;
 
32257
  friend class ::ExtAC;
 
32258
  friend class ::ExtACBuilderCoupling;
 
32259
  friend class ::ExtACSyntaxCoupling;
 
32260
  friend class ::ExtACTree;
 
32261
  friend class ::ExtACKeywords;
 
32262
  friend class ::ExtGnu;
 
32263
  friend class ::PragmaOnceUnitState;
 
32264
  friend class ::PragmaOnce;
 
32265
  friend class ::CMatchSyntax;
 
32266
 
 
32267
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32268
 
 
32269
public:
 
32270
  /** Constructor.
 
32271
   *  \param n The template class or function name.
 
32272
   *  \param a The template argument list. */
 
32273
  CT_TemplateName (CTree *n, CTree *a) 
 
32274
   { AddSon (n); AddSon (a); }
 
32275
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32276
  static const char *NodeId ();
 
32277
  /** Get the name of the node. Can be compared with NodeId(). */
 
32278
  const char *NodeName () const { return NodeId (); }
 
32279
  /** Get the template argument list. */
 
32280
  CT_TemplateArgList *Arguments () const 
 
32281
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
32282
  /** Get the template class or function name. */
 
32283
  CT_SimpleName *TemplateName () const 
 
32284
   { return (CT_SimpleName*)Son (Sons ()-2); }
 
32285
  // may change in the future
 
32286
  const char *Text () const { return TemplateName ()->Text (); }
 
32287
 
 
32288
public:
 
32289
  /** Own new operator reusing memory. */
 
32290
  void *operator new (size_t);
 
32291
  /** Own delete operator. */
 
32292
  void operator delete (void *);
 
32293
   private:
 
32294
  typedef CT_TemplateName CCExprResolveExpr;
 
32295
 
 
32296
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
32297
 public :
 
32298
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
32299
  typedef CT_TemplateName CExprResolveExpr;
 
32300
 
 
32301
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
32302
 public :
 
32303
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
32304
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32305
};
 
32306
 
 
32307
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
32308
 *  Tree node representing the name of an overloaded operator. */
 
32309
 
 
32310
#line 32311 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32311
} // closed Puma
 
32312
class CCExprResolve;
 
32313
class CExprResolve;
 
32314
class WinIfExists;
 
32315
class WinImportHandler;
 
32316
class WinMacros;
 
32317
class WinAsm;
 
32318
class WinDeclSpecs;
 
32319
class WinMemberExplSpec;
 
32320
class WinTypeKeywords;
 
32321
class WinFriend;
 
32322
class ExtAC;
 
32323
class ExtACBuilderCoupling;
 
32324
class ExtACSyntaxCoupling;
 
32325
class ExtACTree;
 
32326
class ExtACKeywords;
 
32327
class ExtGnu;
 
32328
class PragmaOnceUnitState;
 
32329
class PragmaOnce;
 
32330
class CMatchSyntax;
 
32331
namespace Puma {
 
32332
 
 
32333
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32334
 
 
32335
#line 32336 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32336
} // closed Puma
 
32337
 
 
32338
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32339
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32340
#include "CCExprResolveH.ah"
 
32341
#endif
 
32342
namespace Puma {
 
32343
 
 
32344
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32345
 
 
32346
#line 32347 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32347
} // closed Puma
 
32348
 
 
32349
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32350
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32351
#include "CExprResolveH.ah"
 
32352
#endif
 
32353
namespace Puma {
 
32354
 
 
32355
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32356
class CT_OperatorName : public CT_SpecialName {
 
32357
#line 32358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32358
  friend class ::CCExprResolve;
 
32359
  friend class ::CExprResolve;
 
32360
  friend class ::WinIfExists;
 
32361
  friend class ::WinImportHandler;
 
32362
  friend class ::WinMacros;
 
32363
  friend class ::WinAsm;
 
32364
  friend class ::WinDeclSpecs;
 
32365
  friend class ::WinMemberExplSpec;
 
32366
  friend class ::WinTypeKeywords;
 
32367
  friend class ::WinFriend;
 
32368
  friend class ::ExtAC;
 
32369
  friend class ::ExtACBuilderCoupling;
 
32370
  friend class ::ExtACSyntaxCoupling;
 
32371
  friend class ::ExtACTree;
 
32372
  friend class ::ExtACKeywords;
 
32373
  friend class ::ExtGnu;
 
32374
  friend class ::PragmaOnceUnitState;
 
32375
  friend class ::PragmaOnce;
 
32376
  friend class ::CMatchSyntax;
 
32377
 
 
32378
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32379
 
 
32380
  int _oper;
 
32381
 
 
32382
public:
 
32383
  /** Complex operator types. */
 
32384
  enum { 
 
32385
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
32386
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
32387
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
32388
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
 
32389
  };
 
32390
 
 
32391
public:
 
32392
  /** Constructor.
 
32393
   *  \param op The token containing the operator. */
 
32394
  CT_OperatorName (CTree *op);
 
32395
  /** Constructor.
 
32396
   *  \param f The operator function keyword 'operator'.
 
32397
   *  \param op The token containing the operator. 
 
32398
   *  \param o The token of '[' or '('.
 
32399
   *  \param c The token of ']' or ')'. */
 
32400
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
32401
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32402
  static const char *NodeId ();
 
32403
  /** Get the name of the node. Can be compared with NodeId(). */
 
32404
  const char *NodeName () const { return NodeId (); }
 
32405
  /** Get the operator type (either the token type or one of 
 
32406
   *  the complex operator types). */
 
32407
  int Operator () const { return _oper; }
 
32408
 
 
32409
public:
 
32410
  /** Own new operator reusing memory. */
 
32411
  void *operator new (size_t);
 
32412
  /** Own delete operator. */
 
32413
  void operator delete (void *);
 
32414
   private:
 
32415
  typedef CT_OperatorName CCExprResolveExpr;
 
32416
 
 
32417
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
32418
 public :
 
32419
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
32420
  typedef CT_OperatorName CExprResolveExpr;
 
32421
 
 
32422
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
32423
 public :
 
32424
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
32425
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32426
};
 
32427
 
 
32428
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
32429
 *  Tree node representing the name of a conversion function. */
 
32430
 
 
32431
#line 32432 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32432
} // closed Puma
 
32433
class CCExprResolve;
 
32434
class CExprResolve;
 
32435
class WinIfExists;
 
32436
class WinImportHandler;
 
32437
class WinMacros;
 
32438
class WinAsm;
 
32439
class WinDeclSpecs;
 
32440
class WinMemberExplSpec;
 
32441
class WinTypeKeywords;
 
32442
class WinFriend;
 
32443
class ExtAC;
 
32444
class ExtACBuilderCoupling;
 
32445
class ExtACSyntaxCoupling;
 
32446
class ExtACTree;
 
32447
class ExtACKeywords;
 
32448
class ExtGnu;
 
32449
class PragmaOnceUnitState;
 
32450
class PragmaOnce;
 
32451
class CMatchSyntax;
 
32452
namespace Puma {
 
32453
 
 
32454
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32455
 
 
32456
#line 32457 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32457
} // closed Puma
 
32458
 
 
32459
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32460
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32461
#include "CCExprResolveH.ah"
 
32462
#endif
 
32463
namespace Puma {
 
32464
 
 
32465
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32466
 
 
32467
#line 32468 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32468
} // closed Puma
 
32469
 
 
32470
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32471
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32472
#include "CExprResolveH.ah"
 
32473
#endif
 
32474
namespace Puma {
 
32475
 
 
32476
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32477
class CT_ConversionName : public CT_SpecialName {
 
32478
#line 32479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32479
  friend class ::CCExprResolve;
 
32480
  friend class ::CExprResolve;
 
32481
  friend class ::WinIfExists;
 
32482
  friend class ::WinImportHandler;
 
32483
  friend class ::WinMacros;
 
32484
  friend class ::WinAsm;
 
32485
  friend class ::WinDeclSpecs;
 
32486
  friend class ::WinMemberExplSpec;
 
32487
  friend class ::WinTypeKeywords;
 
32488
  friend class ::WinFriend;
 
32489
  friend class ::ExtAC;
 
32490
  friend class ::ExtACBuilderCoupling;
 
32491
  friend class ::ExtACSyntaxCoupling;
 
32492
  friend class ::ExtACTree;
 
32493
  friend class ::ExtACKeywords;
 
32494
  friend class ::ExtGnu;
 
32495
  friend class ::PragmaOnceUnitState;
 
32496
  friend class ::PragmaOnce;
 
32497
  friend class ::CMatchSyntax;
 
32498
 
 
32499
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32500
 
 
32501
public:
 
32502
  /** Constructor.
 
32503
   *  \param f The operator function keyword 'operator'.
 
32504
   *  \param t The sub-tree containing the conversion type. */
 
32505
  CT_ConversionName (CTree *f, CTree *t);
 
32506
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32507
  static const char *NodeId ();
 
32508
  /** Get the name of the node. Can be compared with NodeId(). */
 
32509
  const char *NodeName () const { return NodeId (); }
 
32510
  /** Get the conversion type. */
 
32511
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
 
32512
 
 
32513
public:
 
32514
  /** Own new operator reusing memory. */
 
32515
  void *operator new (size_t);
 
32516
  /** Own delete operator. */
 
32517
  void operator delete (void *);
 
32518
   private:
 
32519
  typedef CT_ConversionName CCExprResolveExpr;
 
32520
 
 
32521
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
32522
 public :
 
32523
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
32524
  typedef CT_ConversionName CExprResolveExpr;
 
32525
 
 
32526
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
32527
 public :
 
32528
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
32529
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32530
};
 
32531
 
 
32532
/** \class CT_QualName CTree.h Puma/CTree.h
 
32533
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
 
32534
 
 
32535
#line 32536 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32536
} // closed Puma
 
32537
class CCExprResolve;
 
32538
class CExprResolve;
 
32539
class WinIfExists;
 
32540
class WinImportHandler;
 
32541
class WinMacros;
 
32542
class WinAsm;
 
32543
class WinDeclSpecs;
 
32544
class WinMemberExplSpec;
 
32545
class WinTypeKeywords;
 
32546
class WinFriend;
 
32547
class ExtAC;
 
32548
class ExtACBuilderCoupling;
 
32549
class ExtACSyntaxCoupling;
 
32550
class ExtACTree;
 
32551
class ExtACKeywords;
 
32552
class ExtGnu;
 
32553
class PragmaOnceUnitState;
 
32554
class PragmaOnce;
 
32555
class CMatchSyntax;
 
32556
namespace Puma {
 
32557
 
 
32558
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32559
 
 
32560
#line 32561 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32561
} // closed Puma
 
32562
 
 
32563
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32564
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32565
#include "CCExprResolveH.ah"
 
32566
#endif
 
32567
namespace Puma {
 
32568
 
 
32569
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32570
 
 
32571
#line 32572 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32572
} // closed Puma
 
32573
 
 
32574
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32575
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32576
#include "CExprResolveH.ah"
 
32577
#endif
 
32578
namespace Puma {
 
32579
 
 
32580
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32581
class CT_QualName : public CT_SimpleName {
 
32582
#line 32583 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32583
  friend class ::CCExprResolve;
 
32584
  friend class ::CExprResolve;
 
32585
  friend class ::WinIfExists;
 
32586
  friend class ::WinImportHandler;
 
32587
  friend class ::WinMacros;
 
32588
  friend class ::WinAsm;
 
32589
  friend class ::WinDeclSpecs;
 
32590
  friend class ::WinMemberExplSpec;
 
32591
  friend class ::WinTypeKeywords;
 
32592
  friend class ::WinFriend;
 
32593
  friend class ::ExtAC;
 
32594
  friend class ::ExtACBuilderCoupling;
 
32595
  friend class ::ExtACSyntaxCoupling;
 
32596
  friend class ::ExtACTree;
 
32597
  friend class ::ExtACKeywords;
 
32598
  friend class ::ExtGnu;
 
32599
  friend class ::PragmaOnceUnitState;
 
32600
  friend class ::PragmaOnce;
 
32601
  friend class ::CMatchSyntax;
 
32602
 
 
32603
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32604
 
 
32605
public:
 
32606
  /** Constructor.
 
32607
   *  \param size The initial number sub-names plus separators. */
 
32608
  CT_QualName (int size = 3) : 
 
32609
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
32610
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32611
  static const char *NodeId ();
 
32612
  /** Get the name of the node. Can be compared with NodeId(). */
 
32613
  const char *NodeName () const { return NodeId (); }
 
32614
  /** Print the qualified name on the given stream. 
 
32615
   *  \param os The output stream. */
 
32616
  void print (ostream &os) const;
 
32617
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
 
32618
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
32619
  /** Get the string containing the last name of the qualified name. */
 
32620
  const char *Text () const { return Name ()->Text (); }
 
32621
  /** Get the type of the last name. */
 
32622
  CTypeInfo *Type () const { return Name ()->Type (); }
 
32623
  /** Get the value of the last name. */
 
32624
  CExprValue *Value () const { return Name ()->Value (); }
 
32625
  /** Get the semantic value object of the last name. */
 
32626
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
32627
  /** Get the semantic information object of the last name. */
 
32628
  CSemObject *SemObject () const { return Name ()->SemObject (); }
 
32629
 
 
32630
public:
 
32631
  /** Own new operator reusing memory. */
 
32632
  void *operator new (size_t);
 
32633
  /** Own delete operator. */
 
32634
  void operator delete (void *);
 
32635
   private:
 
32636
  typedef CT_QualName CCExprResolveExpr;
 
32637
 
 
32638
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
32639
 public :
 
32640
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
32641
  typedef CT_QualName CExprResolveExpr;
 
32642
 
 
32643
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
32644
 public :
 
32645
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
32646
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32647
};
 
32648
 
 
32649
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
32650
 *  Tree node representing a qualified name with introducing name separator,
 
32651
 *  e.g. ::X::Y::Z. */
 
32652
 
 
32653
#line 32654 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32654
} // closed Puma
 
32655
class CCExprResolve;
 
32656
class CExprResolve;
 
32657
class WinIfExists;
 
32658
class WinImportHandler;
 
32659
class WinMacros;
 
32660
class WinAsm;
 
32661
class WinDeclSpecs;
 
32662
class WinMemberExplSpec;
 
32663
class WinTypeKeywords;
 
32664
class WinFriend;
 
32665
class ExtAC;
 
32666
class ExtACBuilderCoupling;
 
32667
class ExtACSyntaxCoupling;
 
32668
class ExtACTree;
 
32669
class ExtACKeywords;
 
32670
class ExtGnu;
 
32671
class PragmaOnceUnitState;
 
32672
class PragmaOnce;
 
32673
class CMatchSyntax;
 
32674
namespace Puma {
 
32675
 
 
32676
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32677
 
 
32678
#line 32679 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32679
} // closed Puma
 
32680
 
 
32681
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32682
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32683
#include "CCExprResolveH.ah"
 
32684
#endif
 
32685
namespace Puma {
 
32686
 
 
32687
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32688
 
 
32689
#line 32690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32690
} // closed Puma
 
32691
 
 
32692
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32693
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32694
#include "CExprResolveH.ah"
 
32695
#endif
 
32696
namespace Puma {
 
32697
 
 
32698
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32699
class CT_RootQualName : public CT_QualName {
 
32700
#line 32701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32701
  friend class ::CCExprResolve;
 
32702
  friend class ::CExprResolve;
 
32703
  friend class ::WinIfExists;
 
32704
  friend class ::WinImportHandler;
 
32705
  friend class ::WinMacros;
 
32706
  friend class ::WinAsm;
 
32707
  friend class ::WinDeclSpecs;
 
32708
  friend class ::WinMemberExplSpec;
 
32709
  friend class ::WinTypeKeywords;
 
32710
  friend class ::WinFriend;
 
32711
  friend class ::ExtAC;
 
32712
  friend class ::ExtACBuilderCoupling;
 
32713
  friend class ::ExtACSyntaxCoupling;
 
32714
  friend class ::ExtACTree;
 
32715
  friend class ::ExtACKeywords;
 
32716
  friend class ::ExtGnu;
 
32717
  friend class ::PragmaOnceUnitState;
 
32718
  friend class ::PragmaOnce;
 
32719
  friend class ::CMatchSyntax;
 
32720
 
 
32721
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32722
 
 
32723
public:
 
32724
  /** Constructor.
 
32725
   *  \param size Initial number of sub-name plus separator. */
 
32726
  CT_RootQualName (int size = 2) : 
 
32727
    CT_QualName (size) { AddProperties (INTRO); }
 
32728
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32729
  static const char *NodeId ();
 
32730
  /** Get the name of the node. Can be compared with NodeId(). */
 
32731
  const char *NodeName () const { return NodeId (); }
 
32732
 
 
32733
public:
 
32734
  /** Own new operator reusing memory. */
 
32735
  void *operator new (size_t);
 
32736
  /** Own delete operator. */
 
32737
  void operator delete (void *);
 
32738
   private:
 
32739
  typedef CT_RootQualName CCExprResolveExpr;
 
32740
 
 
32741
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
32742
 public :
 
32743
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
32744
  typedef CT_RootQualName CExprResolveExpr;
 
32745
 
 
32746
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
32747
 public :
 
32748
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
32749
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32750
};
 
32751
 
 
32752
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
32753
 *  Tree node representing a binary expression, e.g. a+b. */
 
32754
 
 
32755
#line 32756 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32756
} // closed Puma
 
32757
class CCExprResolve;
 
32758
class CExprResolve;
 
32759
class WinIfExists;
 
32760
class WinImportHandler;
 
32761
class WinMacros;
 
32762
class WinAsm;
 
32763
class WinDeclSpecs;
 
32764
class WinMemberExplSpec;
 
32765
class WinTypeKeywords;
 
32766
class WinFriend;
 
32767
class ExtAC;
 
32768
class ExtACBuilderCoupling;
 
32769
class ExtACSyntaxCoupling;
 
32770
class ExtACTree;
 
32771
class ExtACKeywords;
 
32772
class ExtGnu;
 
32773
class PragmaOnceUnitState;
 
32774
class PragmaOnce;
 
32775
class CMatchSyntax;
 
32776
namespace Puma {
 
32777
 
 
32778
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32779
 
 
32780
#line 32781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32781
} // closed Puma
 
32782
 
 
32783
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32784
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32785
#include "CCExprResolveH.ah"
 
32786
#endif
 
32787
namespace Puma {
 
32788
 
 
32789
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32790
 
 
32791
#line 32792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32792
} // closed Puma
 
32793
 
 
32794
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32795
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32796
#include "CExprResolveH.ah"
 
32797
#endif
 
32798
namespace Puma {
 
32799
 
 
32800
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32801
class CT_BinaryExpr : public CT_Call {
 
32802
#line 32803 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32803
  friend class ::CCExprResolve;
 
32804
  friend class ::CExprResolve;
 
32805
  friend class ::WinIfExists;
 
32806
  friend class ::WinImportHandler;
 
32807
  friend class ::WinMacros;
 
32808
  friend class ::WinAsm;
 
32809
  friend class ::WinDeclSpecs;
 
32810
  friend class ::WinMemberExplSpec;
 
32811
  friend class ::WinTypeKeywords;
 
32812
  friend class ::WinFriend;
 
32813
  friend class ::ExtAC;
 
32814
  friend class ::ExtACBuilderCoupling;
 
32815
  friend class ::ExtACSyntaxCoupling;
 
32816
  friend class ::ExtACTree;
 
32817
  friend class ::ExtACKeywords;
 
32818
  friend class ::ExtGnu;
 
32819
  friend class ::PragmaOnceUnitState;
 
32820
  friend class ::PragmaOnce;
 
32821
  friend class ::CMatchSyntax;
 
32822
 
 
32823
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32824
 
 
32825
  CTree *sons[3]; // expr, oper, expr
 
32826
 
 
32827
public:
 
32828
  /** Constructor. 
 
32829
   *  \param l Left hand side of the expression. 
 
32830
   *  \param o The operator token. 
 
32831
   *  \param r Right hand side of the expression. */
 
32832
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
 
32833
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
 
32834
  }
 
32835
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32836
  static const char *NodeId ();
 
32837
  /** Get the name of the node. Can be compared with NodeId(). */
 
32838
  const char *NodeName () const { return NodeId (); }
 
32839
  /** Get the number of sons. */
 
32840
  int Sons () const { return 3; }
 
32841
  /** Get the n-th son.
 
32842
   *  \param n The index of the son.
 
32843
   *  \return The n-th son or NULL. */
 
32844
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
32845
  /** Replace a son.
 
32846
   *  \param old_son The son to replace.
 
32847
   *  \param new_son The new son. */
 
32848
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
32849
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
32850
  }
 
32851
   private:
 
32852
  typedef CT_BinaryExpr CCExprResolveExpr;
 
32853
 
 
32854
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
32855
 public :
 
32856
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
32857
  typedef CT_BinaryExpr CExprResolveExpr;
 
32858
 
 
32859
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
32860
 public :
 
32861
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
32862
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32863
};
 
32864
 
 
32865
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
32866
 *  Tree node representing a member pointer expression, e.g. a->b. */
 
32867
 
 
32868
#line 32869 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32869
} // closed Puma
 
32870
class CCExprResolve;
 
32871
class CExprResolve;
 
32872
class WinIfExists;
 
32873
class WinImportHandler;
 
32874
class WinMacros;
 
32875
class WinAsm;
 
32876
class WinDeclSpecs;
 
32877
class WinMemberExplSpec;
 
32878
class WinTypeKeywords;
 
32879
class WinFriend;
 
32880
class ExtAC;
 
32881
class ExtACBuilderCoupling;
 
32882
class ExtACSyntaxCoupling;
 
32883
class ExtACTree;
 
32884
class ExtACKeywords;
 
32885
class ExtGnu;
 
32886
class PragmaOnceUnitState;
 
32887
class PragmaOnce;
 
32888
class CMatchSyntax;
 
32889
namespace Puma {
 
32890
 
 
32891
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32892
 
 
32893
#line 32894 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32894
} // closed Puma
 
32895
 
 
32896
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32897
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32898
#include "CCExprResolveH.ah"
 
32899
#endif
 
32900
namespace Puma {
 
32901
 
 
32902
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32903
 
 
32904
#line 32905 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32905
} // closed Puma
 
32906
 
 
32907
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32908
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32909
#include "CExprResolveH.ah"
 
32910
#endif
 
32911
namespace Puma {
 
32912
 
 
32913
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32914
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
32915
#line 32916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32916
  friend class ::CCExprResolve;
 
32917
  friend class ::CExprResolve;
 
32918
  friend class ::WinIfExists;
 
32919
  friend class ::WinImportHandler;
 
32920
  friend class ::WinMacros;
 
32921
  friend class ::WinAsm;
 
32922
  friend class ::WinDeclSpecs;
 
32923
  friend class ::WinMemberExplSpec;
 
32924
  friend class ::WinTypeKeywords;
 
32925
  friend class ::WinFriend;
 
32926
  friend class ::ExtAC;
 
32927
  friend class ::ExtACBuilderCoupling;
 
32928
  friend class ::ExtACSyntaxCoupling;
 
32929
  friend class ::ExtACTree;
 
32930
  friend class ::ExtACKeywords;
 
32931
  friend class ::ExtGnu;
 
32932
  friend class ::PragmaOnceUnitState;
 
32933
  friend class ::PragmaOnce;
 
32934
  friend class ::CMatchSyntax;
 
32935
 
 
32936
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32937
 
 
32938
  CTree *sons[3]; // expr, oper, expr
 
32939
  
 
32940
public:
 
32941
  /** Constructor.
 
32942
   *  \param e Expression on which to call the member.
 
32943
   *  \param o The arrow operator token.
 
32944
   *  \param i The member name. */
 
32945
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
32946
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
32947
  }
 
32948
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32949
  static const char *NodeId ();
 
32950
  /** Get the name of the node. Can be compared with NodeId(). */
 
32951
  const char *NodeName () const { return NodeId (); }
 
32952
  /** Get the number of sons. */
 
32953
  int Sons () const { return 3; }
 
32954
  /** Get the n-th son.
 
32955
   *  \param n The index of the son.
 
32956
   *  \return The n-th son or NULL. */
 
32957
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
32958
  /** Replace a son.
 
32959
   *  \param old_son The son to replace.
 
32960
   *  \param new_son The new son. */
 
32961
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
32962
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
32963
  }
 
32964
   private:
 
32965
  typedef CT_MembPtrExpr CCExprResolveExpr;
 
32966
 
 
32967
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
32968
 public :
 
32969
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
32970
  typedef CT_MembPtrExpr CExprResolveExpr;
 
32971
 
 
32972
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
32973
 public :
 
32974
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
32975
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32976
};
 
32977
 
 
32978
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
32979
 *  Tree node representing a member reference expression, e.g. a.b. */
 
32980
 
 
32981
#line 32982 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
32982
} // closed Puma
 
32983
class CCExprResolve;
 
32984
class CExprResolve;
 
32985
class WinIfExists;
 
32986
class WinImportHandler;
 
32987
class WinMacros;
 
32988
class WinAsm;
 
32989
class WinDeclSpecs;
 
32990
class WinMemberExplSpec;
 
32991
class WinTypeKeywords;
 
32992
class WinFriend;
 
32993
class ExtAC;
 
32994
class ExtACBuilderCoupling;
 
32995
class ExtACSyntaxCoupling;
 
32996
class ExtACTree;
 
32997
class ExtACKeywords;
 
32998
class ExtGnu;
 
32999
class PragmaOnceUnitState;
 
33000
class PragmaOnce;
 
33001
class CMatchSyntax;
 
33002
namespace Puma {
 
33003
 
 
33004
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33005
 
 
33006
#line 33007 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33007
} // closed Puma
 
33008
 
 
33009
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33010
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33011
#include "CCExprResolveH.ah"
 
33012
#endif
 
33013
namespace Puma {
 
33014
 
 
33015
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33016
 
 
33017
#line 33018 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33018
} // closed Puma
 
33019
 
 
33020
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33021
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33022
#include "CExprResolveH.ah"
 
33023
#endif
 
33024
namespace Puma {
 
33025
 
 
33026
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33027
class CT_MembRefExpr : public CT_MembPtrExpr {
 
33028
#line 33029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33029
  friend class ::CCExprResolve;
 
33030
  friend class ::CExprResolve;
 
33031
  friend class ::WinIfExists;
 
33032
  friend class ::WinImportHandler;
 
33033
  friend class ::WinMacros;
 
33034
  friend class ::WinAsm;
 
33035
  friend class ::WinDeclSpecs;
 
33036
  friend class ::WinMemberExplSpec;
 
33037
  friend class ::WinTypeKeywords;
 
33038
  friend class ::WinFriend;
 
33039
  friend class ::ExtAC;
 
33040
  friend class ::ExtACBuilderCoupling;
 
33041
  friend class ::ExtACSyntaxCoupling;
 
33042
  friend class ::ExtACTree;
 
33043
  friend class ::ExtACKeywords;
 
33044
  friend class ::ExtGnu;
 
33045
  friend class ::PragmaOnceUnitState;
 
33046
  friend class ::PragmaOnce;
 
33047
  friend class ::CMatchSyntax;
 
33048
 
 
33049
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33050
 
 
33051
public:
 
33052
  /** Constructor.
 
33053
   *  \param e Expression on which to call the member.
 
33054
   *  \param o The dot operator.
 
33055
   *  \param i The member name. */
 
33056
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
 
33057
    CT_MembPtrExpr (e, o, i) {}
 
33058
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33059
  static const char *NodeId ();
 
33060
  /** Get the name of the node. Can be compared with NodeId(). */
 
33061
  const char *NodeName () const { return NodeId (); }
 
33062
   private:
 
33063
  typedef CT_MembRefExpr CCExprResolveExpr;
 
33064
 
 
33065
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
33066
 public :
 
33067
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
33068
  typedef CT_MembRefExpr CExprResolveExpr;
 
33069
 
 
33070
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
33071
 public :
 
33072
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
33073
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33074
};
 
33075
 
 
33076
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
33077
 *  Base class for tree nodes representing unary expressions. */
 
33078
 
 
33079
#line 33080 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33080
} // closed Puma
 
33081
class CCExprResolve;
 
33082
class CExprResolve;
 
33083
class WinIfExists;
 
33084
class WinImportHandler;
 
33085
class WinMacros;
 
33086
class WinAsm;
 
33087
class WinDeclSpecs;
 
33088
class WinMemberExplSpec;
 
33089
class WinTypeKeywords;
 
33090
class WinFriend;
 
33091
class ExtAC;
 
33092
class ExtACBuilderCoupling;
 
33093
class ExtACSyntaxCoupling;
 
33094
class ExtACTree;
 
33095
class ExtACKeywords;
 
33096
class ExtGnu;
 
33097
class PragmaOnceUnitState;
 
33098
class PragmaOnce;
 
33099
class CMatchSyntax;
 
33100
namespace Puma {
 
33101
 
 
33102
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33103
 
 
33104
#line 33105 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33105
} // closed Puma
 
33106
 
 
33107
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33108
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33109
#include "CCExprResolveH.ah"
 
33110
#endif
 
33111
namespace Puma {
 
33112
 
 
33113
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33114
 
 
33115
#line 33116 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33116
} // closed Puma
 
33117
 
 
33118
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33119
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33120
#include "CExprResolveH.ah"
 
33121
#endif
 
33122
namespace Puma {
 
33123
 
 
33124
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33125
class CT_UnaryExpr : public CT_Call {
 
33126
#line 33127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33127
  friend class ::CCExprResolve;
 
33128
  friend class ::CExprResolve;
 
33129
  friend class ::WinIfExists;
 
33130
  friend class ::WinImportHandler;
 
33131
  friend class ::WinMacros;
 
33132
  friend class ::WinAsm;
 
33133
  friend class ::WinDeclSpecs;
 
33134
  friend class ::WinMemberExplSpec;
 
33135
  friend class ::WinTypeKeywords;
 
33136
  friend class ::WinFriend;
 
33137
  friend class ::ExtAC;
 
33138
  friend class ::ExtACBuilderCoupling;
 
33139
  friend class ::ExtACSyntaxCoupling;
 
33140
  friend class ::ExtACTree;
 
33141
  friend class ::ExtACKeywords;
 
33142
  friend class ::ExtGnu;
 
33143
  friend class ::PragmaOnceUnitState;
 
33144
  friend class ::PragmaOnce;
 
33145
  friend class ::CMatchSyntax;
 
33146
 
 
33147
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33148
 
 
33149
  CTree *sons[2]; // oper, expr
 
33150
 
 
33151
public:
 
33152
  /** Constructor.
 
33153
   *  \param o The unary operator.
 
33154
   *  \param e The expression on which the operator is invoked. */
 
33155
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
33156
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33157
  static const char *NodeId ();
 
33158
  /** Get the name of the node. Can be compared with NodeId(). */
 
33159
  const char *NodeName () const { return NodeId (); }
 
33160
  /** Get the number of sons. */
 
33161
  int Sons () const { return 2; }
 
33162
  /** Get the n-th son.
 
33163
   *  \param n The index of the son.
 
33164
   *  \return The n-th son or NULL. */
 
33165
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
33166
  /** Replace a son.
 
33167
   *  \param old_son The son to replace.
 
33168
   *  \param new_son The new son. */
 
33169
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
33170
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
33171
  }
 
33172
  /** Get the expression node. */
 
33173
  CTree *Expr () const { return sons[1]; }
 
33174
   private:
 
33175
  typedef CT_UnaryExpr CCExprResolveExpr;
 
33176
 
 
33177
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
33178
 public :
 
33179
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
33180
  typedef CT_UnaryExpr CExprResolveExpr;
 
33181
 
 
33182
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
33183
 public :
 
33184
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
33185
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33186
};
 
33187
 
 
33188
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
33189
 *  Tree node representing a postfix expression, e.g. a++. */
 
33190
 
 
33191
#line 33192 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33192
} // closed Puma
 
33193
class CCExprResolve;
 
33194
class CExprResolve;
 
33195
class WinIfExists;
 
33196
class WinImportHandler;
 
33197
class WinMacros;
 
33198
class WinAsm;
 
33199
class WinDeclSpecs;
 
33200
class WinMemberExplSpec;
 
33201
class WinTypeKeywords;
 
33202
class WinFriend;
 
33203
class ExtAC;
 
33204
class ExtACBuilderCoupling;
 
33205
class ExtACSyntaxCoupling;
 
33206
class ExtACTree;
 
33207
class ExtACKeywords;
 
33208
class ExtGnu;
 
33209
class PragmaOnceUnitState;
 
33210
class PragmaOnce;
 
33211
class CMatchSyntax;
 
33212
namespace Puma {
 
33213
 
 
33214
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33215
 
 
33216
#line 33217 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33217
} // closed Puma
 
33218
 
 
33219
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33220
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33221
#include "CCExprResolveH.ah"
 
33222
#endif
 
33223
namespace Puma {
 
33224
 
 
33225
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33226
 
 
33227
#line 33228 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33228
} // closed Puma
 
33229
 
 
33230
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33231
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33232
#include "CExprResolveH.ah"
 
33233
#endif
 
33234
namespace Puma {
 
33235
 
 
33236
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33237
class CT_PostfixExpr : public CT_UnaryExpr {
 
33238
#line 33239 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33239
  friend class ::CCExprResolve;
 
33240
  friend class ::CExprResolve;
 
33241
  friend class ::WinIfExists;
 
33242
  friend class ::WinImportHandler;
 
33243
  friend class ::WinMacros;
 
33244
  friend class ::WinAsm;
 
33245
  friend class ::WinDeclSpecs;
 
33246
  friend class ::WinMemberExplSpec;
 
33247
  friend class ::WinTypeKeywords;
 
33248
  friend class ::WinFriend;
 
33249
  friend class ::ExtAC;
 
33250
  friend class ::ExtACBuilderCoupling;
 
33251
  friend class ::ExtACSyntaxCoupling;
 
33252
  friend class ::ExtACTree;
 
33253
  friend class ::ExtACKeywords;
 
33254
  friend class ::ExtGnu;
 
33255
  friend class ::PragmaOnceUnitState;
 
33256
  friend class ::PragmaOnce;
 
33257
  friend class ::CMatchSyntax;
 
33258
 
 
33259
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33260
 
 
33261
public:
 
33262
  /** Constructor.
 
33263
   *  \param e The expression on which to invoke the operator. 
 
33264
   *  \param o The postfix operator. */
 
33265
  CT_PostfixExpr (CTree *e, CTree *o) :
 
33266
    CT_UnaryExpr (e, o) {}
 
33267
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33268
  static const char *NodeId ();
 
33269
  /** Get the name of the node. Can be compared with NodeId(). */
 
33270
  const char *NodeName () const { return NodeId (); }
 
33271
   private:
 
33272
  typedef CT_PostfixExpr CCExprResolveExpr;
 
33273
 
 
33274
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
33275
 public :
 
33276
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
33277
  typedef CT_PostfixExpr CExprResolveExpr;
 
33278
 
 
33279
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
33280
 public :
 
33281
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
33282
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33283
};
 
33284
 
 
33285
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
33286
 *  Tree node representing an address expression, e.g. &a. */
 
33287
 
 
33288
#line 33289 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33289
} // closed Puma
 
33290
class CCExprResolve;
 
33291
class CExprResolve;
 
33292
class WinIfExists;
 
33293
class WinImportHandler;
 
33294
class WinMacros;
 
33295
class WinAsm;
 
33296
class WinDeclSpecs;
 
33297
class WinMemberExplSpec;
 
33298
class WinTypeKeywords;
 
33299
class WinFriend;
 
33300
class ExtAC;
 
33301
class ExtACBuilderCoupling;
 
33302
class ExtACSyntaxCoupling;
 
33303
class ExtACTree;
 
33304
class ExtACKeywords;
 
33305
class ExtGnu;
 
33306
class PragmaOnceUnitState;
 
33307
class PragmaOnce;
 
33308
class CMatchSyntax;
 
33309
namespace Puma {
 
33310
 
 
33311
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33312
 
 
33313
#line 33314 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33314
} // closed Puma
 
33315
 
 
33316
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33317
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33318
#include "CCExprResolveH.ah"
 
33319
#endif
 
33320
namespace Puma {
 
33321
 
 
33322
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33323
 
 
33324
#line 33325 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33325
} // closed Puma
 
33326
 
 
33327
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33328
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33329
#include "CExprResolveH.ah"
 
33330
#endif
 
33331
namespace Puma {
 
33332
 
 
33333
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33334
class CT_AddrExpr : public CT_UnaryExpr {
 
33335
#line 33336 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33336
  friend class ::CCExprResolve;
 
33337
  friend class ::CExprResolve;
 
33338
  friend class ::WinIfExists;
 
33339
  friend class ::WinImportHandler;
 
33340
  friend class ::WinMacros;
 
33341
  friend class ::WinAsm;
 
33342
  friend class ::WinDeclSpecs;
 
33343
  friend class ::WinMemberExplSpec;
 
33344
  friend class ::WinTypeKeywords;
 
33345
  friend class ::WinFriend;
 
33346
  friend class ::ExtAC;
 
33347
  friend class ::ExtACBuilderCoupling;
 
33348
  friend class ::ExtACSyntaxCoupling;
 
33349
  friend class ::ExtACTree;
 
33350
  friend class ::ExtACKeywords;
 
33351
  friend class ::ExtGnu;
 
33352
  friend class ::PragmaOnceUnitState;
 
33353
  friend class ::PragmaOnce;
 
33354
  friend class ::CMatchSyntax;
 
33355
 
 
33356
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33357
 
 
33358
public:
 
33359
  /** Constructor.
 
33360
   *  \param o The address operator, i.e. '&'.
 
33361
   *  \param e The expression from which to take the address. */
 
33362
  CT_AddrExpr (CTree *o, CTree *e) :
 
33363
    CT_UnaryExpr (o, e) {}
 
33364
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33365
  static const char *NodeId ();
 
33366
  /** Get the name of the node. Can be compared with NodeId(). */
 
33367
  const char *NodeName () const { return NodeId (); }
 
33368
   private:
 
33369
  typedef CT_AddrExpr CCExprResolveExpr;
 
33370
 
 
33371
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
33372
 public :
 
33373
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
33374
  typedef CT_AddrExpr CExprResolveExpr;
 
33375
 
 
33376
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
33377
 public :
 
33378
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
33379
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33380
};
 
33381
 
 
33382
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
33383
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
 
33384
 
 
33385
#line 33386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33386
} // closed Puma
 
33387
class CCExprResolve;
 
33388
class CExprResolve;
 
33389
class WinIfExists;
 
33390
class WinImportHandler;
 
33391
class WinMacros;
 
33392
class WinAsm;
 
33393
class WinDeclSpecs;
 
33394
class WinMemberExplSpec;
 
33395
class WinTypeKeywords;
 
33396
class WinFriend;
 
33397
class ExtAC;
 
33398
class ExtACBuilderCoupling;
 
33399
class ExtACSyntaxCoupling;
 
33400
class ExtACTree;
 
33401
class ExtACKeywords;
 
33402
class ExtGnu;
 
33403
class PragmaOnceUnitState;
 
33404
class PragmaOnce;
 
33405
class CMatchSyntax;
 
33406
namespace Puma {
 
33407
 
 
33408
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33409
 
 
33410
#line 33411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33411
} // closed Puma
 
33412
 
 
33413
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33414
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33415
#include "CCExprResolveH.ah"
 
33416
#endif
 
33417
namespace Puma {
 
33418
 
 
33419
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33420
 
 
33421
#line 33422 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33422
} // closed Puma
 
33423
 
 
33424
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33425
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33426
#include "CExprResolveH.ah"
 
33427
#endif
 
33428
namespace Puma {
 
33429
 
 
33430
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33431
class CT_DerefExpr : public CT_UnaryExpr {
 
33432
#line 33433 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33433
  friend class ::CCExprResolve;
 
33434
  friend class ::CExprResolve;
 
33435
  friend class ::WinIfExists;
 
33436
  friend class ::WinImportHandler;
 
33437
  friend class ::WinMacros;
 
33438
  friend class ::WinAsm;
 
33439
  friend class ::WinDeclSpecs;
 
33440
  friend class ::WinMemberExplSpec;
 
33441
  friend class ::WinTypeKeywords;
 
33442
  friend class ::WinFriend;
 
33443
  friend class ::ExtAC;
 
33444
  friend class ::ExtACBuilderCoupling;
 
33445
  friend class ::ExtACSyntaxCoupling;
 
33446
  friend class ::ExtACTree;
 
33447
  friend class ::ExtACKeywords;
 
33448
  friend class ::ExtGnu;
 
33449
  friend class ::PragmaOnceUnitState;
 
33450
  friend class ::PragmaOnce;
 
33451
  friend class ::CMatchSyntax;
 
33452
 
 
33453
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33454
 
 
33455
public:
 
33456
  /** Constructor.
 
33457
   *  \param o The dereferencing operator, i.e. '*'.
 
33458
   *  \param e The expression to dereference. */
 
33459
  CT_DerefExpr (CTree *o, CTree *e) :
 
33460
    CT_UnaryExpr (o, e) {}
 
33461
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33462
  static const char *NodeId ();
 
33463
  /** Get the name of the node. Can be compared with NodeId(). */
 
33464
  const char *NodeName () const { return NodeId (); }
 
33465
   private:
 
33466
  typedef CT_DerefExpr CCExprResolveExpr;
 
33467
 
 
33468
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
33469
 public :
 
33470
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
33471
  typedef CT_DerefExpr CExprResolveExpr;
 
33472
 
 
33473
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
33474
 public :
 
33475
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
33476
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33477
};
 
33478
 
 
33479
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
33480
 *  Tree node representing a delete expression, e.g. delete a. */
 
33481
 
 
33482
#line 33483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33483
} // closed Puma
 
33484
class CCExprResolve;
 
33485
class CExprResolve;
 
33486
class WinIfExists;
 
33487
class WinImportHandler;
 
33488
class WinMacros;
 
33489
class WinAsm;
 
33490
class WinDeclSpecs;
 
33491
class WinMemberExplSpec;
 
33492
class WinTypeKeywords;
 
33493
class WinFriend;
 
33494
class ExtAC;
 
33495
class ExtACBuilderCoupling;
 
33496
class ExtACSyntaxCoupling;
 
33497
class ExtACTree;
 
33498
class ExtACKeywords;
 
33499
class ExtGnu;
 
33500
class PragmaOnceUnitState;
 
33501
class PragmaOnce;
 
33502
class CMatchSyntax;
 
33503
namespace Puma {
 
33504
 
 
33505
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33506
 
 
33507
#line 33508 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33508
} // closed Puma
 
33509
 
 
33510
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33511
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33512
#include "CCExprResolveH.ah"
 
33513
#endif
 
33514
namespace Puma {
 
33515
 
 
33516
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33517
 
 
33518
#line 33519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33519
} // closed Puma
 
33520
 
 
33521
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33522
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33523
#include "CExprResolveH.ah"
 
33524
#endif
 
33525
namespace Puma {
 
33526
 
 
33527
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33528
class CT_DeleteExpr : public CT_Expression, public CSemObject {
 
33529
#line 33530 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33530
  friend class ::CCExprResolve;
 
33531
  friend class ::CExprResolve;
 
33532
  friend class ::WinIfExists;
 
33533
  friend class ::WinImportHandler;
 
33534
  friend class ::WinMacros;
 
33535
  friend class ::WinAsm;
 
33536
  friend class ::WinDeclSpecs;
 
33537
  friend class ::WinMemberExplSpec;
 
33538
  friend class ::WinTypeKeywords;
 
33539
  friend class ::WinFriend;
 
33540
  friend class ::ExtAC;
 
33541
  friend class ::ExtACBuilderCoupling;
 
33542
  friend class ::ExtACSyntaxCoupling;
 
33543
  friend class ::ExtACTree;
 
33544
  friend class ::ExtACKeywords;
 
33545
  friend class ::ExtGnu;
 
33546
  friend class ::PragmaOnceUnitState;
 
33547
  friend class ::PragmaOnce;
 
33548
  friend class ::CMatchSyntax;
 
33549
 
 
33550
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33551
 
 
33552
  CTree *sons[2]; // oper, expr
 
33553
 
 
33554
public:
 
33555
  /** Constructor.
 
33556
   *  \param op The delete operator.
 
33557
   *  \param e The expression representing the object to delete. */
 
33558
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
33559
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33560
  static const char *NodeId ();
 
33561
  /** Get the name of the node. Can be compared with NodeId(). */
 
33562
  const char *NodeName () const { return NodeId (); }
 
33563
  /** Get the number of sons. */
 
33564
  int Sons () const { return 2; }
 
33565
  /** Get the n-th son.
 
33566
   *  \param n The index of the son.
 
33567
   *  \return The n-th son or NULL. */
 
33568
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
33569
  /** Replace a son.
 
33570
   *  \param old_son The son to replace.
 
33571
   *  \param new_son The new son. */
 
33572
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
33573
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
33574
  }
 
33575
  /** Get the expression. */
 
33576
  CTree *Expr () const { return sons[1]; }
 
33577
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
 
33578
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
33579
  /** Get the semantic information object. */
 
33580
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
33581
   private:
 
33582
  typedef CT_DeleteExpr CCExprResolveExpr;
 
33583
 
 
33584
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
33585
 public :
 
33586
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
33587
  typedef CT_DeleteExpr CExprResolveExpr;
 
33588
 
 
33589
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
33590
 public :
 
33591
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
33592
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33593
};
 
33594
 
 
33595
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
33596
 *  Tree node representing a new expression, e.g. new A(). */
 
33597
 
 
33598
#line 33599 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33599
} // closed Puma
 
33600
class CCExprResolve;
 
33601
class CExprResolve;
 
33602
class WinIfExists;
 
33603
class WinImportHandler;
 
33604
class WinMacros;
 
33605
class WinAsm;
 
33606
class WinDeclSpecs;
 
33607
class WinMemberExplSpec;
 
33608
class WinTypeKeywords;
 
33609
class WinFriend;
 
33610
class ExtAC;
 
33611
class ExtACBuilderCoupling;
 
33612
class ExtACSyntaxCoupling;
 
33613
class ExtACTree;
 
33614
class ExtACKeywords;
 
33615
class ExtGnu;
 
33616
class PragmaOnceUnitState;
 
33617
class PragmaOnce;
 
33618
class CMatchSyntax;
 
33619
namespace Puma {
 
33620
 
 
33621
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33622
 
 
33623
#line 33624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33624
} // closed Puma
 
33625
 
 
33626
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33627
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33628
#include "CCExprResolveH.ah"
 
33629
#endif
 
33630
namespace Puma {
 
33631
 
 
33632
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33633
 
 
33634
#line 33635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33635
} // closed Puma
 
33636
 
 
33637
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33638
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33639
#include "CExprResolveH.ah"
 
33640
#endif
 
33641
namespace Puma {
 
33642
 
 
33643
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33644
class CT_NewExpr : public CT_Expression, public CSemObject {
 
33645
#line 33646 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33646
  friend class ::CCExprResolve;
 
33647
  friend class ::CExprResolve;
 
33648
  friend class ::WinIfExists;
 
33649
  friend class ::WinImportHandler;
 
33650
  friend class ::WinMacros;
 
33651
  friend class ::WinAsm;
 
33652
  friend class ::WinDeclSpecs;
 
33653
  friend class ::WinMemberExplSpec;
 
33654
  friend class ::WinTypeKeywords;
 
33655
  friend class ::WinFriend;
 
33656
  friend class ::ExtAC;
 
33657
  friend class ::ExtACBuilderCoupling;
 
33658
  friend class ::ExtACSyntaxCoupling;
 
33659
  friend class ::ExtACTree;
 
33660
  friend class ::ExtACKeywords;
 
33661
  friend class ::ExtGnu;
 
33662
  friend class ::PragmaOnceUnitState;
 
33663
  friend class ::PragmaOnce;
 
33664
  friend class ::CMatchSyntax;
 
33665
 
 
33666
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33667
 
 
33668
  CTree *sons[6]; // oper, placement, open, type, close, init
 
33669
 
 
33670
public:
 
33671
  /** Constructor.
 
33672
   *  \param op The new operator.
 
33673
   *  \param p The optional placement expression.
 
33674
   *  \param o The optional left parenthesis around the type identifier.
 
33675
   *  \param t The type identifier specifying the type of the object to create.
 
33676
   *  \param c The optional right parenthesis around the type identifier.
 
33677
   *  \param i The optional initializer. */
 
33678
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
 
33679
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
33680
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
 
33681
  }
 
33682
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33683
  static const char *NodeId ();
 
33684
  /** Get the name of the node. Can be compared with NodeId(). */
 
33685
  const char *NodeName () const { return NodeId (); }
 
33686
  /** Get the number of sons. */
 
33687
  int Sons () const { return CTree::Sons (sons, 6); }
 
33688
  /** Get the n-th son.
 
33689
   *  \param n The index of the son.
 
33690
   *  \return The n-th son or NULL. */
 
33691
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
33692
  /** Replace a son.
 
33693
   *  \param old_son The son to replace.
 
33694
   *  \param new_son The new son. */
 
33695
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
33696
    CTree::ReplaceSon (sons, 6, old_son, new_son);
 
33697
  }
 
33698
  /** Get the operator name. */
 
33699
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
33700
  /** Get the placement expression. */
 
33701
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
33702
  /** Get the initializer. */
 
33703
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
33704
  /** Get the type of the object to create. */
 
33705
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
33706
  /** Get the semantic information object. */
 
33707
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
33708
   private:
 
33709
  typedef CT_NewExpr CCExprResolveExpr;
 
33710
 
 
33711
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
33712
 public :
 
33713
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
33714
  typedef CT_NewExpr CExprResolveExpr;
 
33715
 
 
33716
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
33717
 public :
 
33718
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
33719
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33720
};
 
33721
 
 
33722
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
33723
 *  Tree node representing an if-then expression, 
 
33724
 *  e.g. a>0?a:b or a?:b. */
 
33725
 
 
33726
#line 33727 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33727
} // closed Puma
 
33728
class CCExprResolve;
 
33729
class CExprResolve;
 
33730
class WinIfExists;
 
33731
class WinImportHandler;
 
33732
class WinMacros;
 
33733
class WinAsm;
 
33734
class WinDeclSpecs;
 
33735
class WinMemberExplSpec;
 
33736
class WinTypeKeywords;
 
33737
class WinFriend;
 
33738
class ExtAC;
 
33739
class ExtACBuilderCoupling;
 
33740
class ExtACSyntaxCoupling;
 
33741
class ExtACTree;
 
33742
class ExtACKeywords;
 
33743
class ExtGnu;
 
33744
class PragmaOnceUnitState;
 
33745
class PragmaOnce;
 
33746
class CMatchSyntax;
 
33747
namespace Puma {
 
33748
 
 
33749
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33750
 
 
33751
#line 33752 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33752
} // closed Puma
 
33753
 
 
33754
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33755
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33756
#include "CCExprResolveH.ah"
 
33757
#endif
 
33758
namespace Puma {
 
33759
 
 
33760
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33761
 
 
33762
#line 33763 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33763
} // closed Puma
 
33764
 
 
33765
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33766
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33767
#include "CExprResolveH.ah"
 
33768
#endif
 
33769
namespace Puma {
 
33770
 
 
33771
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33772
class CT_IfThenExpr : public CT_Expression {
 
33773
#line 33774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33774
  friend class ::CCExprResolve;
 
33775
  friend class ::CExprResolve;
 
33776
  friend class ::WinIfExists;
 
33777
  friend class ::WinImportHandler;
 
33778
  friend class ::WinMacros;
 
33779
  friend class ::WinAsm;
 
33780
  friend class ::WinDeclSpecs;
 
33781
  friend class ::WinMemberExplSpec;
 
33782
  friend class ::WinTypeKeywords;
 
33783
  friend class ::WinFriend;
 
33784
  friend class ::ExtAC;
 
33785
  friend class ::ExtACBuilderCoupling;
 
33786
  friend class ::ExtACSyntaxCoupling;
 
33787
  friend class ::ExtACTree;
 
33788
  friend class ::ExtACKeywords;
 
33789
  friend class ::ExtGnu;
 
33790
  friend class ::PragmaOnceUnitState;
 
33791
  friend class ::PragmaOnce;
 
33792
  friend class ::CMatchSyntax;
 
33793
 
 
33794
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33795
 
 
33796
  CTree *sons[5]; // cond, oper, left, colon, right
 
33797
 
 
33798
public:
 
33799
  /** Constructor.
 
33800
   *  \param c1 The condition expression.
 
33801
   *  \param o The question mark operator. 
 
33802
   *  \param l The expression to the left of the colon.
 
33803
   *  \param c2 The colon operator.
 
33804
   *  \param r The expression to the right of the colon. */ 
 
33805
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
 
33806
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
33807
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
33808
  }
 
33809
  /** Constructor.
 
33810
   *  \param c1 The condition expression.
 
33811
   *  \param o The question mark operator. 
 
33812
   *  \param c2 The colon operator.
 
33813
   *  \param r The expression to the right of the colon. */ 
 
33814
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
 
33815
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
33816
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
33817
  }
 
33818
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33819
  static const char *NodeId ();
 
33820
  /** Get the name of the node. Can be compared with NodeId(). */
 
33821
  const char *NodeName () const { return NodeId (); }
 
33822
  /** Get the number of sons. */
 
33823
  int Sons () const { return CTree::Sons (sons, 5); }
 
33824
  /** Get the n-th son.
 
33825
   *  \param n The index of the son.
 
33826
   *  \return The n-th son or NULL. */
 
33827
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
33828
  /** Get the condition expression. */
 
33829
  CTree *Condition () const { return sons[0]; }
 
33830
  /** Get the left expression (condition=true). */
 
33831
  CTree *LeftOperand () const { return sons[2]; }
 
33832
  /** Get the right expression (condition=false). */
 
33833
  CTree *RightOperand () const { return sons[4]; }
 
33834
  /** Replace a son.
 
33835
   *  \param old_son The son to replace.
 
33836
   *  \param new_son The new son. */
 
33837
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
33838
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
33839
  }
 
33840
   private:
 
33841
  typedef CT_IfThenExpr CCExprResolveExpr;
 
33842
 
 
33843
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
33844
 public :
 
33845
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
33846
  typedef CT_IfThenExpr CExprResolveExpr;
 
33847
 
 
33848
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
33849
 public :
 
33850
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
33851
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33852
};
 
33853
 
 
33854
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
33855
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
 
33856
 
 
33857
#line 33858 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33858
} // closed Puma
 
33859
class CCExprResolve;
 
33860
class CExprResolve;
 
33861
class WinIfExists;
 
33862
class WinImportHandler;
 
33863
class WinMacros;
 
33864
class WinAsm;
 
33865
class WinDeclSpecs;
 
33866
class WinMemberExplSpec;
 
33867
class WinTypeKeywords;
 
33868
class WinFriend;
 
33869
class ExtAC;
 
33870
class ExtACBuilderCoupling;
 
33871
class ExtACSyntaxCoupling;
 
33872
class ExtACTree;
 
33873
class ExtACKeywords;
 
33874
class ExtGnu;
 
33875
class PragmaOnceUnitState;
 
33876
class PragmaOnce;
 
33877
class CMatchSyntax;
 
33878
namespace Puma {
 
33879
 
 
33880
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33881
 
 
33882
#line 33883 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33883
} // closed Puma
 
33884
 
 
33885
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33886
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33887
#include "CCExprResolveH.ah"
 
33888
#endif
 
33889
namespace Puma {
 
33890
 
 
33891
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33892
 
 
33893
#line 33894 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33894
} // closed Puma
 
33895
 
 
33896
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33897
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33898
#include "CExprResolveH.ah"
 
33899
#endif
 
33900
namespace Puma {
 
33901
 
 
33902
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33903
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
 
33904
#line 33905 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33905
  friend class ::CCExprResolve;
 
33906
  friend class ::CExprResolve;
 
33907
  friend class ::WinIfExists;
 
33908
  friend class ::WinImportHandler;
 
33909
  friend class ::WinMacros;
 
33910
  friend class ::WinAsm;
 
33911
  friend class ::WinDeclSpecs;
 
33912
  friend class ::WinMemberExplSpec;
 
33913
  friend class ::WinTypeKeywords;
 
33914
  friend class ::WinFriend;
 
33915
  friend class ::ExtAC;
 
33916
  friend class ::ExtACBuilderCoupling;
 
33917
  friend class ::ExtACSyntaxCoupling;
 
33918
  friend class ::ExtACTree;
 
33919
  friend class ::ExtACKeywords;
 
33920
  friend class ::ExtGnu;
 
33921
  friend class ::PragmaOnceUnitState;
 
33922
  friend class ::PragmaOnce;
 
33923
  friend class ::CMatchSyntax;
 
33924
 
 
33925
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33926
 
 
33927
  CTree *sons[4]; // open, type, close, init
 
33928
 
 
33929
public:
 
33930
  /** Constructor.
 
33931
   *  \param r Left parenthesis of the type name.
 
33932
   *  \param t The type name.
 
33933
   *  \param cr Right parenthesis of the type name.
 
33934
   *  \param i The initializer list. */
 
33935
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
 
33936
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
33937
    AddSon (sons[2], cr); AddSon (sons[3], i);
 
33938
  }
 
33939
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33940
  static const char *NodeId ();
 
33941
  /** Get the name of the node. Can be compared with NodeId(). */
 
33942
  const char *NodeName () const { return NodeId (); }
 
33943
  /** Get the number of sons. */
 
33944
  int Sons () const { return 4; }
 
33945
  /** Get the n-th son.
 
33946
   *  \param n The index of the son.
 
33947
   *  \return The n-th son or NULL. */
 
33948
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
33949
  /** Replace a son.
 
33950
   *  \param old_son The son to replace.
 
33951
   *  \param new_son The new son. */
 
33952
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
33953
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
33954
  }
 
33955
  /** Get the type name. */
 
33956
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
33957
  /** Get the initializer list. */
 
33958
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
33959
  /** Get the semantic information object. */
 
33960
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
33961
   private:
 
33962
  typedef CT_CmpdLiteral CCExprResolveExpr;
 
33963
 
 
33964
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
33965
 public :
 
33966
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
33967
  typedef CT_CmpdLiteral CExprResolveExpr;
 
33968
 
 
33969
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
33970
 public :
 
33971
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
33972
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33973
};
 
33974
 
 
33975
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
33976
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
 
33977
 
 
33978
#line 33979 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
33979
} // closed Puma
 
33980
class CCExprResolve;
 
33981
class CExprResolve;
 
33982
class WinIfExists;
 
33983
class WinImportHandler;
 
33984
class WinMacros;
 
33985
class WinAsm;
 
33986
class WinDeclSpecs;
 
33987
class WinMemberExplSpec;
 
33988
class WinTypeKeywords;
 
33989
class WinFriend;
 
33990
class ExtAC;
 
33991
class ExtACBuilderCoupling;
 
33992
class ExtACSyntaxCoupling;
 
33993
class ExtACTree;
 
33994
class ExtACKeywords;
 
33995
class ExtGnu;
 
33996
class PragmaOnceUnitState;
 
33997
class PragmaOnce;
 
33998
class CMatchSyntax;
 
33999
namespace Puma {
 
34000
 
 
34001
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34002
 
 
34003
#line 34004 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34004
} // closed Puma
 
34005
 
 
34006
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34007
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34008
#include "CCExprResolveH.ah"
 
34009
#endif
 
34010
namespace Puma {
 
34011
 
 
34012
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34013
 
 
34014
#line 34015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34015
} // closed Puma
 
34016
 
 
34017
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34018
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34019
#include "CExprResolveH.ah"
 
34020
#endif
 
34021
namespace Puma {
 
34022
 
 
34023
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34024
class CT_ConstructExpr : public CT_Expression, public CSemObject {
 
34025
#line 34026 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34026
  friend class ::CCExprResolve;
 
34027
  friend class ::CExprResolve;
 
34028
  friend class ::WinIfExists;
 
34029
  friend class ::WinImportHandler;
 
34030
  friend class ::WinMacros;
 
34031
  friend class ::WinAsm;
 
34032
  friend class ::WinDeclSpecs;
 
34033
  friend class ::WinMemberExplSpec;
 
34034
  friend class ::WinTypeKeywords;
 
34035
  friend class ::WinFriend;
 
34036
  friend class ::ExtAC;
 
34037
  friend class ::ExtACBuilderCoupling;
 
34038
  friend class ::ExtACSyntaxCoupling;
 
34039
  friend class ::ExtACTree;
 
34040
  friend class ::ExtACKeywords;
 
34041
  friend class ::ExtGnu;
 
34042
  friend class ::PragmaOnceUnitState;
 
34043
  friend class ::PragmaOnce;
 
34044
  friend class ::CMatchSyntax;
 
34045
 
 
34046
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34047
 
 
34048
  CTree *sons[2]; // type, init
 
34049
 
 
34050
public:
 
34051
  /** Constructor.
 
34052
   *  \param t The type name.
 
34053
   *  \param i The initializer list. */
 
34054
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
34055
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34056
  static const char *NodeId ();
 
34057
  /** Get the name of the node. Can be compared with NodeId(). */
 
34058
  const char *NodeName () const { return NodeId (); }
 
34059
  /** Get the number of sons. */
 
34060
  int Sons () const { return 2; }
 
34061
  /** Get the n-th son.
 
34062
   *  \param n The index of the son.
 
34063
   *  \return The n-th son or NULL. */
 
34064
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
34065
  /** Replace a son.
 
34066
   *  \param old_son The son to replace.
 
34067
   *  \param new_son The new son. */
 
34068
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
34069
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
34070
  }
 
34071
  /** Get the type name. */
 
34072
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
34073
  /** Get the initializer. */
 
34074
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
34075
  /** Get the semantic information object. */
 
34076
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
34077
   private:
 
34078
  typedef CT_ConstructExpr CCExprResolveExpr;
 
34079
 
 
34080
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34081
 public :
 
34082
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34083
  typedef CT_ConstructExpr CExprResolveExpr;
 
34084
 
 
34085
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34086
 public :
 
34087
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34088
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34089
};
 
34090
 
 
34091
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
34092
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
 
34093
 
 
34094
#line 34095 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34095
} // closed Puma
 
34096
class CCExprResolve;
 
34097
class CExprResolve;
 
34098
class WinIfExists;
 
34099
class WinImportHandler;
 
34100
class WinMacros;
 
34101
class WinAsm;
 
34102
class WinDeclSpecs;
 
34103
class WinMemberExplSpec;
 
34104
class WinTypeKeywords;
 
34105
class WinFriend;
 
34106
class ExtAC;
 
34107
class ExtACBuilderCoupling;
 
34108
class ExtACSyntaxCoupling;
 
34109
class ExtACTree;
 
34110
class ExtACKeywords;
 
34111
class ExtGnu;
 
34112
class PragmaOnceUnitState;
 
34113
class PragmaOnce;
 
34114
class CMatchSyntax;
 
34115
namespace Puma {
 
34116
 
 
34117
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34118
 
 
34119
#line 34120 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34120
} // closed Puma
 
34121
 
 
34122
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34123
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34124
#include "CCExprResolveH.ah"
 
34125
#endif
 
34126
namespace Puma {
 
34127
 
 
34128
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34129
 
 
34130
#line 34131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34131
} // closed Puma
 
34132
 
 
34133
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34134
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34135
#include "CExprResolveH.ah"
 
34136
#endif
 
34137
namespace Puma {
 
34138
 
 
34139
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34140
class CT_ThrowExpr : public CT_Expression {
 
34141
#line 34142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34142
  friend class ::CCExprResolve;
 
34143
  friend class ::CExprResolve;
 
34144
  friend class ::WinIfExists;
 
34145
  friend class ::WinImportHandler;
 
34146
  friend class ::WinMacros;
 
34147
  friend class ::WinAsm;
 
34148
  friend class ::WinDeclSpecs;
 
34149
  friend class ::WinMemberExplSpec;
 
34150
  friend class ::WinTypeKeywords;
 
34151
  friend class ::WinFriend;
 
34152
  friend class ::ExtAC;
 
34153
  friend class ::ExtACBuilderCoupling;
 
34154
  friend class ::ExtACSyntaxCoupling;
 
34155
  friend class ::ExtACTree;
 
34156
  friend class ::ExtACKeywords;
 
34157
  friend class ::ExtGnu;
 
34158
  friend class ::PragmaOnceUnitState;
 
34159
  friend class ::PragmaOnce;
 
34160
  friend class ::CMatchSyntax;
 
34161
 
 
34162
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34163
 
 
34164
  CTree *sons[2]; // throw, expr
 
34165
 
 
34166
public:
 
34167
  /** Constructor.
 
34168
   *  \param t The 'throw' keyword.
 
34169
   *  \param e The expression. */
 
34170
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
34171
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34172
  static const char *NodeId ();
 
34173
  /** Get the name of the node. Can be compared with NodeId(). */
 
34174
  const char *NodeName () const { return NodeId (); }
 
34175
  /** Get the number of sons. */
 
34176
  int Sons () const { return CTree::Sons (sons, 2); }
 
34177
  /** Get the n-th son.
 
34178
   *  \param n The index of the son.
 
34179
   *  \return The n-th son or NULL. */
 
34180
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
34181
  /** Replace a son.
 
34182
   *  \param old_son The son to replace.
 
34183
   *  \param new_son The new son. */
 
34184
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
34185
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
34186
  }
 
34187
  /** Get the expression. */
 
34188
  CTree *Expr () const { return sons[1]; }
 
34189
   private:
 
34190
  typedef CT_ThrowExpr CCExprResolveExpr;
 
34191
 
 
34192
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34193
 public :
 
34194
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34195
  typedef CT_ThrowExpr CExprResolveExpr;
 
34196
 
 
34197
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34198
 public :
 
34199
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34200
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34201
};
 
34202
 
 
34203
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
34204
 *  Tree node representing an index expression. */
 
34205
 
 
34206
#line 34207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34207
} // closed Puma
 
34208
class CCExprResolve;
 
34209
class CExprResolve;
 
34210
class WinIfExists;
 
34211
class WinImportHandler;
 
34212
class WinMacros;
 
34213
class WinAsm;
 
34214
class WinDeclSpecs;
 
34215
class WinMemberExplSpec;
 
34216
class WinTypeKeywords;
 
34217
class WinFriend;
 
34218
class ExtAC;
 
34219
class ExtACBuilderCoupling;
 
34220
class ExtACSyntaxCoupling;
 
34221
class ExtACTree;
 
34222
class ExtACKeywords;
 
34223
class ExtGnu;
 
34224
class PragmaOnceUnitState;
 
34225
class PragmaOnce;
 
34226
class CMatchSyntax;
 
34227
namespace Puma {
 
34228
 
 
34229
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34230
 
 
34231
#line 34232 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34232
} // closed Puma
 
34233
 
 
34234
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34235
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34236
#include "CCExprResolveH.ah"
 
34237
#endif
 
34238
namespace Puma {
 
34239
 
 
34240
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34241
 
 
34242
#line 34243 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34243
} // closed Puma
 
34244
 
 
34245
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34246
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34247
#include "CExprResolveH.ah"
 
34248
#endif
 
34249
namespace Puma {
 
34250
 
 
34251
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34252
class CT_IndexExpr : public CT_Call {
 
34253
#line 34254 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34254
  friend class ::CCExprResolve;
 
34255
  friend class ::CExprResolve;
 
34256
  friend class ::WinIfExists;
 
34257
  friend class ::WinImportHandler;
 
34258
  friend class ::WinMacros;
 
34259
  friend class ::WinAsm;
 
34260
  friend class ::WinDeclSpecs;
 
34261
  friend class ::WinMemberExplSpec;
 
34262
  friend class ::WinTypeKeywords;
 
34263
  friend class ::WinFriend;
 
34264
  friend class ::ExtAC;
 
34265
  friend class ::ExtACBuilderCoupling;
 
34266
  friend class ::ExtACSyntaxCoupling;
 
34267
  friend class ::ExtACTree;
 
34268
  friend class ::ExtACKeywords;
 
34269
  friend class ::ExtGnu;
 
34270
  friend class ::PragmaOnceUnitState;
 
34271
  friend class ::PragmaOnce;
 
34272
  friend class ::CMatchSyntax;
 
34273
 
 
34274
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34275
 
 
34276
  CTree *sons[4]; // expr, open, index, close
 
34277
 
 
34278
public:
 
34279
  /** Constructor.
 
34280
   *  \param e The expression on which to invoke the index operator.
 
34281
   *  \param o Left parenthesis of the index expression.
 
34282
   *  \param i The index expression. 
 
34283
   *  \param c Right parenthesis of the index expression. */
 
34284
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
 
34285
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
34286
    AddSon (sons[2], i); AddSon (sons[3], c);
 
34287
  }
 
34288
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34289
  static const char *NodeId ();
 
34290
  /** Get the name of the node. Can be compared with NodeId(). */
 
34291
  const char *NodeName () const { return NodeId (); }
 
34292
  /** Get the number of sons. */
 
34293
  int Sons () const { return 4; }
 
34294
  /** Get the n-th son.
 
34295
   *  \param n The index of the son.
 
34296
   *  \return The n-th son or NULL. */
 
34297
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
34298
  /** Replace a son.
 
34299
   *  \param old_son The son to replace.
 
34300
   *  \param new_son The new son. */
 
34301
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
34302
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
34303
  }
 
34304
   private:
 
34305
  typedef CT_IndexExpr CCExprResolveExpr;
 
34306
 
 
34307
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34308
 public :
 
34309
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34310
  typedef CT_IndexExpr CExprResolveExpr;
 
34311
 
 
34312
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34313
 public :
 
34314
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34315
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34316
};
 
34317
 
 
34318
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
34319
 *  Tree node representing a function call expression, e.g. f(i). */
 
34320
 
 
34321
#line 34322 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34322
} // closed Puma
 
34323
class CCExprResolve;
 
34324
class CExprResolve;
 
34325
class WinIfExists;
 
34326
class WinImportHandler;
 
34327
class WinMacros;
 
34328
class WinAsm;
 
34329
class WinDeclSpecs;
 
34330
class WinMemberExplSpec;
 
34331
class WinTypeKeywords;
 
34332
class WinFriend;
 
34333
class ExtAC;
 
34334
class ExtACBuilderCoupling;
 
34335
class ExtACSyntaxCoupling;
 
34336
class ExtACTree;
 
34337
class ExtACKeywords;
 
34338
class ExtGnu;
 
34339
class PragmaOnceUnitState;
 
34340
class PragmaOnce;
 
34341
class CMatchSyntax;
 
34342
namespace Puma {
 
34343
 
 
34344
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34345
 
 
34346
#line 34347 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34347
} // closed Puma
 
34348
 
 
34349
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34350
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34351
#include "CCExprResolveH.ah"
 
34352
#endif
 
34353
namespace Puma {
 
34354
 
 
34355
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34356
 
 
34357
#line 34358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34358
} // closed Puma
 
34359
 
 
34360
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34361
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34362
#include "CExprResolveH.ah"
 
34363
#endif
 
34364
namespace Puma {
 
34365
 
 
34366
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34367
class CT_CallExpr : public CT_Call {
 
34368
#line 34369 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34369
  friend class ::CCExprResolve;
 
34370
  friend class ::CExprResolve;
 
34371
  friend class ::WinIfExists;
 
34372
  friend class ::WinImportHandler;
 
34373
  friend class ::WinMacros;
 
34374
  friend class ::WinAsm;
 
34375
  friend class ::WinDeclSpecs;
 
34376
  friend class ::WinMemberExplSpec;
 
34377
  friend class ::WinTypeKeywords;
 
34378
  friend class ::WinFriend;
 
34379
  friend class ::ExtAC;
 
34380
  friend class ::ExtACBuilderCoupling;
 
34381
  friend class ::ExtACSyntaxCoupling;
 
34382
  friend class ::ExtACTree;
 
34383
  friend class ::ExtACKeywords;
 
34384
  friend class ::ExtGnu;
 
34385
  friend class ::PragmaOnceUnitState;
 
34386
  friend class ::PragmaOnce;
 
34387
  friend class ::CMatchSyntax;
 
34388
 
 
34389
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34390
 
 
34391
  CTree *sons[2]; // expr, args
 
34392
 
 
34393
public:
 
34394
  /** Constructor.
 
34395
   *  \param e The expression on which the call is invoked. */
 
34396
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
34397
  /** Constructor.
 
34398
   *  \param e The expression on which the call is invoked.
 
34399
   *  \param l The argument list of the call. */
 
34400
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
34401
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34402
  static const char *NodeId ();
 
34403
  /** Get the name of the node. Can be compared with NodeId(). */
 
34404
  const char *NodeName () const { return NodeId (); }
 
34405
  /** Get the number of sons. */
 
34406
  int Sons () const { return CTree::Sons (sons, 2); }
 
34407
  /** Get the n-th son.
 
34408
   *  \param n The index of the son.
 
34409
   *  \return The n-th son or NULL. */
 
34410
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
34411
  /** Replace a son.
 
34412
   *  \param old_son The son to replace.
 
34413
   *  \param new_son The new son. */
 
34414
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
34415
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
34416
  }
 
34417
  CTree *Expr () const { return sons[0]; }
 
34418
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
 
34419
   private:
 
34420
  typedef CT_CallExpr CCExprResolveExpr;
 
34421
 
 
34422
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34423
 public :
 
34424
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34425
  typedef CT_CallExpr CExprResolveExpr;
 
34426
 
 
34427
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34428
 public :
 
34429
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34430
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34431
};
 
34432
 
 
34433
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
34434
 *  Tree node representing a cast expression, e.g. (int)a. */
 
34435
 
 
34436
#line 34437 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34437
} // closed Puma
 
34438
class CCExprResolve;
 
34439
class CExprResolve;
 
34440
class WinIfExists;
 
34441
class WinImportHandler;
 
34442
class WinMacros;
 
34443
class WinAsm;
 
34444
class WinDeclSpecs;
 
34445
class WinMemberExplSpec;
 
34446
class WinTypeKeywords;
 
34447
class WinFriend;
 
34448
class ExtAC;
 
34449
class ExtACBuilderCoupling;
 
34450
class ExtACSyntaxCoupling;
 
34451
class ExtACTree;
 
34452
class ExtACKeywords;
 
34453
class ExtGnu;
 
34454
class PragmaOnceUnitState;
 
34455
class PragmaOnce;
 
34456
class CMatchSyntax;
 
34457
namespace Puma {
 
34458
 
 
34459
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34460
 
 
34461
#line 34462 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34462
} // closed Puma
 
34463
 
 
34464
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34465
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34466
#include "CCExprResolveH.ah"
 
34467
#endif
 
34468
namespace Puma {
 
34469
 
 
34470
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34471
 
 
34472
#line 34473 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34473
} // closed Puma
 
34474
 
 
34475
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34476
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34477
#include "CExprResolveH.ah"
 
34478
#endif
 
34479
namespace Puma {
 
34480
 
 
34481
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34482
class CT_CastExpr : public CT_Expression {
 
34483
#line 34484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34484
  friend class ::CCExprResolve;
 
34485
  friend class ::CExprResolve;
 
34486
  friend class ::WinIfExists;
 
34487
  friend class ::WinImportHandler;
 
34488
  friend class ::WinMacros;
 
34489
  friend class ::WinAsm;
 
34490
  friend class ::WinDeclSpecs;
 
34491
  friend class ::WinMemberExplSpec;
 
34492
  friend class ::WinTypeKeywords;
 
34493
  friend class ::WinFriend;
 
34494
  friend class ::ExtAC;
 
34495
  friend class ::ExtACBuilderCoupling;
 
34496
  friend class ::ExtACSyntaxCoupling;
 
34497
  friend class ::ExtACTree;
 
34498
  friend class ::ExtACKeywords;
 
34499
  friend class ::ExtGnu;
 
34500
  friend class ::PragmaOnceUnitState;
 
34501
  friend class ::PragmaOnce;
 
34502
  friend class ::CMatchSyntax;
 
34503
 
 
34504
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34505
 
 
34506
  CTree *sons[4]; // open, type, close, expr
 
34507
 
 
34508
public:
 
34509
  /** Constructor.
 
34510
   *  \param o Left parenthesis of the type name.
 
34511
   *  \param t The type to cast to.
 
34512
   *  \param c Right parenthesis of the type name. 
 
34513
   *  \param e The expression to cast. */
 
34514
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
 
34515
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
34516
    AddSon (sons[2], c); AddSon (sons[3], e);
 
34517
  }
 
34518
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34519
  static const char *NodeId ();
 
34520
  /** Get the name of the node. Can be compared with NodeId(). */
 
34521
  const char *NodeName () const { return NodeId (); }
 
34522
  /** Get the number of sons. */
 
34523
  int Sons () const { return 4; }
 
34524
  /** Get the n-th son.
 
34525
   *  \param n The index of the son.
 
34526
   *  \return The n-th son or NULL. */
 
34527
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
34528
  /** Replace a son.
 
34529
   *  \param old_son The son to replace.
 
34530
   *  \param new_son The new son. */
 
34531
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
34532
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
34533
  }
 
34534
  /** Get the casted expression. */
 
34535
  CTree *Expr () const { return sons[3]; }
 
34536
  /** Get the type to cast to. */
 
34537
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
34538
   private:
 
34539
  typedef CT_CastExpr CCExprResolveExpr;
 
34540
 
 
34541
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34542
 public :
 
34543
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34544
  typedef CT_CastExpr CExprResolveExpr;
 
34545
 
 
34546
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34547
 public :
 
34548
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34549
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34550
};
 
34551
 
 
34552
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
34553
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
 
34554
 
 
34555
#line 34556 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34556
} // closed Puma
 
34557
class CCExprResolve;
 
34558
class CExprResolve;
 
34559
class WinIfExists;
 
34560
class WinImportHandler;
 
34561
class WinMacros;
 
34562
class WinAsm;
 
34563
class WinDeclSpecs;
 
34564
class WinMemberExplSpec;
 
34565
class WinTypeKeywords;
 
34566
class WinFriend;
 
34567
class ExtAC;
 
34568
class ExtACBuilderCoupling;
 
34569
class ExtACSyntaxCoupling;
 
34570
class ExtACTree;
 
34571
class ExtACKeywords;
 
34572
class ExtGnu;
 
34573
class PragmaOnceUnitState;
 
34574
class PragmaOnce;
 
34575
class CMatchSyntax;
 
34576
namespace Puma {
 
34577
 
 
34578
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34579
 
 
34580
#line 34581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34581
} // closed Puma
 
34582
 
 
34583
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34584
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34585
#include "CCExprResolveH.ah"
 
34586
#endif
 
34587
namespace Puma {
 
34588
 
 
34589
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34590
 
 
34591
#line 34592 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34592
} // closed Puma
 
34593
 
 
34594
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34595
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34596
#include "CExprResolveH.ah"
 
34597
#endif
 
34598
namespace Puma {
 
34599
 
 
34600
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34601
class CT_StaticCast : public CT_Expression {
 
34602
#line 34603 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34603
  friend class ::CCExprResolve;
 
34604
  friend class ::CExprResolve;
 
34605
  friend class ::WinIfExists;
 
34606
  friend class ::WinImportHandler;
 
34607
  friend class ::WinMacros;
 
34608
  friend class ::WinAsm;
 
34609
  friend class ::WinDeclSpecs;
 
34610
  friend class ::WinMemberExplSpec;
 
34611
  friend class ::WinTypeKeywords;
 
34612
  friend class ::WinFriend;
 
34613
  friend class ::ExtAC;
 
34614
  friend class ::ExtACBuilderCoupling;
 
34615
  friend class ::ExtACSyntaxCoupling;
 
34616
  friend class ::ExtACTree;
 
34617
  friend class ::ExtACKeywords;
 
34618
  friend class ::ExtGnu;
 
34619
  friend class ::PragmaOnceUnitState;
 
34620
  friend class ::PragmaOnce;
 
34621
  friend class ::CMatchSyntax;
 
34622
 
 
34623
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34624
 
 
34625
  CTree *sons[5]; // cast, open, type, close, expr
 
34626
 
 
34627
public:
 
34628
  /** Constructor.
 
34629
   *  \param cst The cast operator, i.e. 'static_cast'.
 
34630
   *  \param o Left arrow bracket of the type name.
 
34631
   *  \param t The type to cast to.
 
34632
   *  \param c Right array bracket of the type name.
 
34633
   *  \param e The expression to cast. */
 
34634
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
 
34635
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
34636
    AddSon (sons[3], c); AddSon (sons[4], e);
 
34637
  }
 
34638
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34639
  static const char *NodeId ();
 
34640
  /** Get the name of the node. Can be compared with NodeId(). */
 
34641
  const char *NodeName () const { return NodeId (); }
 
34642
  /** Get the number of sons. */
 
34643
  int Sons () const { return 5; }
 
34644
  /** Get the n-th son.
 
34645
   *  \param n The index of the son.
 
34646
   *  \return The n-th son or NULL. */
 
34647
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
34648
  /** Replace a son.
 
34649
   *  \param old_son The son to replace.
 
34650
   *  \param new_son The new son. */
 
34651
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
34652
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
34653
  }
 
34654
  /** Get the casted expression. */
 
34655
  CTree *Expr () const { return sons[4]; }
 
34656
  /** Get the type to cast to. */
 
34657
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
34658
   private:
 
34659
  typedef CT_StaticCast CCExprResolveExpr;
 
34660
 
 
34661
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34662
 public :
 
34663
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34664
  typedef CT_StaticCast CExprResolveExpr;
 
34665
 
 
34666
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34667
 public :
 
34668
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34669
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34670
};
 
34671
 
 
34672
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
34673
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
 
34674
 
 
34675
#line 34676 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34676
} // closed Puma
 
34677
class CCExprResolve;
 
34678
class CExprResolve;
 
34679
class WinIfExists;
 
34680
class WinImportHandler;
 
34681
class WinMacros;
 
34682
class WinAsm;
 
34683
class WinDeclSpecs;
 
34684
class WinMemberExplSpec;
 
34685
class WinTypeKeywords;
 
34686
class WinFriend;
 
34687
class ExtAC;
 
34688
class ExtACBuilderCoupling;
 
34689
class ExtACSyntaxCoupling;
 
34690
class ExtACTree;
 
34691
class ExtACKeywords;
 
34692
class ExtGnu;
 
34693
class PragmaOnceUnitState;
 
34694
class PragmaOnce;
 
34695
class CMatchSyntax;
 
34696
namespace Puma {
 
34697
 
 
34698
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34699
 
 
34700
#line 34701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34701
} // closed Puma
 
34702
 
 
34703
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34704
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34705
#include "CCExprResolveH.ah"
 
34706
#endif
 
34707
namespace Puma {
 
34708
 
 
34709
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34710
 
 
34711
#line 34712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34712
} // closed Puma
 
34713
 
 
34714
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34715
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34716
#include "CExprResolveH.ah"
 
34717
#endif
 
34718
namespace Puma {
 
34719
 
 
34720
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34721
class CT_ConstCast : public CT_StaticCast {
 
34722
#line 34723 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34723
  friend class ::CCExprResolve;
 
34724
  friend class ::CExprResolve;
 
34725
  friend class ::WinIfExists;
 
34726
  friend class ::WinImportHandler;
 
34727
  friend class ::WinMacros;
 
34728
  friend class ::WinAsm;
 
34729
  friend class ::WinDeclSpecs;
 
34730
  friend class ::WinMemberExplSpec;
 
34731
  friend class ::WinTypeKeywords;
 
34732
  friend class ::WinFriend;
 
34733
  friend class ::ExtAC;
 
34734
  friend class ::ExtACBuilderCoupling;
 
34735
  friend class ::ExtACSyntaxCoupling;
 
34736
  friend class ::ExtACTree;
 
34737
  friend class ::ExtACKeywords;
 
34738
  friend class ::ExtGnu;
 
34739
  friend class ::PragmaOnceUnitState;
 
34740
  friend class ::PragmaOnce;
 
34741
  friend class ::CMatchSyntax;
 
34742
 
 
34743
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34744
 
 
34745
public:
 
34746
  /** Constructor.
 
34747
   *  \param cst The cast operator, i.e. 'const_cast'.
 
34748
   *  \param o Left arrow bracket of the type name.
 
34749
   *  \param t The type to cast to.
 
34750
   *  \param c Right array bracket of the type name.
 
34751
   *  \param e The expression to cast. */
 
34752
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
34753
    CT_StaticCast (cst, o, t, c, e) {}
 
34754
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34755
  static const char *NodeId ();
 
34756
  /** Get the name of the node. Can be compared with NodeId(). */
 
34757
  const char *NodeName () const { return NodeId (); }
 
34758
   private:
 
34759
  typedef CT_ConstCast CCExprResolveExpr;
 
34760
 
 
34761
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34762
 public :
 
34763
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34764
  typedef CT_ConstCast CExprResolveExpr;
 
34765
 
 
34766
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34767
 public :
 
34768
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34769
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34770
};
 
34771
 
 
34772
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
34773
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
 
34774
 
 
34775
#line 34776 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34776
} // closed Puma
 
34777
class CCExprResolve;
 
34778
class CExprResolve;
 
34779
class WinIfExists;
 
34780
class WinImportHandler;
 
34781
class WinMacros;
 
34782
class WinAsm;
 
34783
class WinDeclSpecs;
 
34784
class WinMemberExplSpec;
 
34785
class WinTypeKeywords;
 
34786
class WinFriend;
 
34787
class ExtAC;
 
34788
class ExtACBuilderCoupling;
 
34789
class ExtACSyntaxCoupling;
 
34790
class ExtACTree;
 
34791
class ExtACKeywords;
 
34792
class ExtGnu;
 
34793
class PragmaOnceUnitState;
 
34794
class PragmaOnce;
 
34795
class CMatchSyntax;
 
34796
namespace Puma {
 
34797
 
 
34798
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34799
 
 
34800
#line 34801 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34801
} // closed Puma
 
34802
 
 
34803
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34804
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34805
#include "CCExprResolveH.ah"
 
34806
#endif
 
34807
namespace Puma {
 
34808
 
 
34809
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34810
 
 
34811
#line 34812 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34812
} // closed Puma
 
34813
 
 
34814
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34815
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34816
#include "CExprResolveH.ah"
 
34817
#endif
 
34818
namespace Puma {
 
34819
 
 
34820
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34821
class CT_ReintCast : public CT_StaticCast {
 
34822
#line 34823 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34823
  friend class ::CCExprResolve;
 
34824
  friend class ::CExprResolve;
 
34825
  friend class ::WinIfExists;
 
34826
  friend class ::WinImportHandler;
 
34827
  friend class ::WinMacros;
 
34828
  friend class ::WinAsm;
 
34829
  friend class ::WinDeclSpecs;
 
34830
  friend class ::WinMemberExplSpec;
 
34831
  friend class ::WinTypeKeywords;
 
34832
  friend class ::WinFriend;
 
34833
  friend class ::ExtAC;
 
34834
  friend class ::ExtACBuilderCoupling;
 
34835
  friend class ::ExtACSyntaxCoupling;
 
34836
  friend class ::ExtACTree;
 
34837
  friend class ::ExtACKeywords;
 
34838
  friend class ::ExtGnu;
 
34839
  friend class ::PragmaOnceUnitState;
 
34840
  friend class ::PragmaOnce;
 
34841
  friend class ::CMatchSyntax;
 
34842
 
 
34843
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34844
 
 
34845
public:
 
34846
  /** Constructor.
 
34847
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
34848
   *  \param o Left arrow bracket of the type name.
 
34849
   *  \param t The type to cast to.
 
34850
   *  \param c Right array bracket of the type name.
 
34851
   *  \param e The expression to cast. */
 
34852
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
34853
    CT_StaticCast (cst, o, t, c, e) {}
 
34854
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34855
  static const char *NodeId ();
 
34856
  /** Get the name of the node. Can be compared with NodeId(). */
 
34857
  const char *NodeName () const { return NodeId (); }
 
34858
   private:
 
34859
  typedef CT_ReintCast CCExprResolveExpr;
 
34860
 
 
34861
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34862
 public :
 
34863
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34864
  typedef CT_ReintCast CExprResolveExpr;
 
34865
 
 
34866
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34867
 public :
 
34868
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34869
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34870
};
 
34871
 
 
34872
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
34873
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
 
34874
 
 
34875
#line 34876 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34876
} // closed Puma
 
34877
class CCExprResolve;
 
34878
class CExprResolve;
 
34879
class WinIfExists;
 
34880
class WinImportHandler;
 
34881
class WinMacros;
 
34882
class WinAsm;
 
34883
class WinDeclSpecs;
 
34884
class WinMemberExplSpec;
 
34885
class WinTypeKeywords;
 
34886
class WinFriend;
 
34887
class ExtAC;
 
34888
class ExtACBuilderCoupling;
 
34889
class ExtACSyntaxCoupling;
 
34890
class ExtACTree;
 
34891
class ExtACKeywords;
 
34892
class ExtGnu;
 
34893
class PragmaOnceUnitState;
 
34894
class PragmaOnce;
 
34895
class CMatchSyntax;
 
34896
namespace Puma {
 
34897
 
 
34898
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34899
 
 
34900
#line 34901 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34901
} // closed Puma
 
34902
 
 
34903
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34904
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34905
#include "CCExprResolveH.ah"
 
34906
#endif
 
34907
namespace Puma {
 
34908
 
 
34909
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34910
 
 
34911
#line 34912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34912
} // closed Puma
 
34913
 
 
34914
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34915
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34916
#include "CExprResolveH.ah"
 
34917
#endif
 
34918
namespace Puma {
 
34919
 
 
34920
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34921
class CT_DynamicCast : public CT_StaticCast {
 
34922
#line 34923 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34923
  friend class ::CCExprResolve;
 
34924
  friend class ::CExprResolve;
 
34925
  friend class ::WinIfExists;
 
34926
  friend class ::WinImportHandler;
 
34927
  friend class ::WinMacros;
 
34928
  friend class ::WinAsm;
 
34929
  friend class ::WinDeclSpecs;
 
34930
  friend class ::WinMemberExplSpec;
 
34931
  friend class ::WinTypeKeywords;
 
34932
  friend class ::WinFriend;
 
34933
  friend class ::ExtAC;
 
34934
  friend class ::ExtACBuilderCoupling;
 
34935
  friend class ::ExtACSyntaxCoupling;
 
34936
  friend class ::ExtACTree;
 
34937
  friend class ::ExtACKeywords;
 
34938
  friend class ::ExtGnu;
 
34939
  friend class ::PragmaOnceUnitState;
 
34940
  friend class ::PragmaOnce;
 
34941
  friend class ::CMatchSyntax;
 
34942
 
 
34943
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34944
 
 
34945
public:
 
34946
  /** Constructor.
 
34947
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
34948
   *  \param o Left arrow bracket of the type name.
 
34949
   *  \param t The type to cast to.
 
34950
   *  \param c Right array bracket of the type name.
 
34951
   *  \param e The expression to cast. */
 
34952
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
34953
    CT_StaticCast (cst, o, t, c, e) {}
 
34954
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34955
  static const char *NodeId ();
 
34956
  /** Get the name of the node. Can be compared with NodeId(). */
 
34957
  const char *NodeName () const { return NodeId (); }
 
34958
   private:
 
34959
  typedef CT_DynamicCast CCExprResolveExpr;
 
34960
 
 
34961
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34962
 public :
 
34963
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34964
  typedef CT_DynamicCast CExprResolveExpr;
 
34965
 
 
34966
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34967
 public :
 
34968
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34969
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34970
};
 
34971
 
 
34972
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
34973
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
34974
 *  where 1.2 is implicitely casted from float to int. */
 
34975
 
 
34976
#line 34977 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
34977
} // closed Puma
 
34978
class CCExprResolve;
 
34979
class CExprResolve;
 
34980
class WinIfExists;
 
34981
class WinImportHandler;
 
34982
class WinMacros;
 
34983
class WinAsm;
 
34984
class WinDeclSpecs;
 
34985
class WinMemberExplSpec;
 
34986
class WinTypeKeywords;
 
34987
class WinFriend;
 
34988
class ExtAC;
 
34989
class ExtACBuilderCoupling;
 
34990
class ExtACSyntaxCoupling;
 
34991
class ExtACTree;
 
34992
class ExtACKeywords;
 
34993
class ExtGnu;
 
34994
class PragmaOnceUnitState;
 
34995
class PragmaOnce;
 
34996
class CMatchSyntax;
 
34997
namespace Puma {
 
34998
 
 
34999
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35000
 
 
35001
#line 35002 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35002
} // closed Puma
 
35003
 
 
35004
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35005
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35006
#include "CCExprResolveH.ah"
 
35007
#endif
 
35008
namespace Puma {
 
35009
 
 
35010
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35011
 
 
35012
#line 35013 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35013
} // closed Puma
 
35014
 
 
35015
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35016
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35017
#include "CExprResolveH.ah"
 
35018
#endif
 
35019
namespace Puma {
 
35020
 
 
35021
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35022
class CT_ImplicitCast : public CT_Expression {
 
35023
#line 35024 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35024
  friend class ::CCExprResolve;
 
35025
  friend class ::CExprResolve;
 
35026
  friend class ::WinIfExists;
 
35027
  friend class ::WinImportHandler;
 
35028
  friend class ::WinMacros;
 
35029
  friend class ::WinAsm;
 
35030
  friend class ::WinDeclSpecs;
 
35031
  friend class ::WinMemberExplSpec;
 
35032
  friend class ::WinTypeKeywords;
 
35033
  friend class ::WinFriend;
 
35034
  friend class ::ExtAC;
 
35035
  friend class ::ExtACBuilderCoupling;
 
35036
  friend class ::ExtACSyntaxCoupling;
 
35037
  friend class ::ExtACTree;
 
35038
  friend class ::ExtACKeywords;
 
35039
  friend class ::ExtGnu;
 
35040
  friend class ::PragmaOnceUnitState;
 
35041
  friend class ::PragmaOnce;
 
35042
  friend class ::CMatchSyntax;
 
35043
 
 
35044
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35045
 
 
35046
  CTree *_expr; // casted expression
 
35047
 
 
35048
public:
 
35049
  /** Constructor.
 
35050
   *  \param e The expression that is implicitely casted. */
 
35051
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
35052
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35053
  static const char *NodeId ();
 
35054
  /** Get the name of the node. Can be compared with NodeId(). */
 
35055
  const char *NodeName () const { return NodeId (); }
 
35056
  /** Get the number of sons. */
 
35057
  int Sons () const { return 1; }
 
35058
  /** Get the n-th son.
 
35059
   *  \param n The index of the son.
 
35060
   *  \return The n-th son or NULL. */
 
35061
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
35062
  /** Get the casted expression. */
 
35063
  CTree *Expr () const { return _expr; }
 
35064
  /** Replace a son.
 
35065
   *  \param old_son The son to replace.
 
35066
   *  \param new_son The new son. */
 
35067
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
35068
   { CTree::ReplaceSon (_expr, old_son, new_son); }
 
35069
   private:
 
35070
  typedef CT_ImplicitCast CCExprResolveExpr;
 
35071
 
 
35072
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
35073
 public :
 
35074
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
35075
  typedef CT_ImplicitCast CExprResolveExpr;
 
35076
 
 
35077
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
35078
 public :
 
35079
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
35080
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35081
};
 
35082
 
 
35083
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
35084
 *  Tree node representing a typeid expression, e.g. typeid(X). */
 
35085
 
 
35086
#line 35087 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35087
} // closed Puma
 
35088
class CCExprResolve;
 
35089
class CExprResolve;
 
35090
class WinIfExists;
 
35091
class WinImportHandler;
 
35092
class WinMacros;
 
35093
class WinAsm;
 
35094
class WinDeclSpecs;
 
35095
class WinMemberExplSpec;
 
35096
class WinTypeKeywords;
 
35097
class WinFriend;
 
35098
class ExtAC;
 
35099
class ExtACBuilderCoupling;
 
35100
class ExtACSyntaxCoupling;
 
35101
class ExtACTree;
 
35102
class ExtACKeywords;
 
35103
class ExtGnu;
 
35104
class PragmaOnceUnitState;
 
35105
class PragmaOnce;
 
35106
class CMatchSyntax;
 
35107
namespace Puma {
 
35108
 
 
35109
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35110
 
 
35111
#line 35112 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35112
} // closed Puma
 
35113
 
 
35114
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35115
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35116
#include "CCExprResolveH.ah"
 
35117
#endif
 
35118
namespace Puma {
 
35119
 
 
35120
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35121
 
 
35122
#line 35123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35123
} // closed Puma
 
35124
 
 
35125
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35126
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35127
#include "CExprResolveH.ah"
 
35128
#endif
 
35129
namespace Puma {
 
35130
 
 
35131
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35132
class CT_TypeidExpr : public CT_Expression {
 
35133
#line 35134 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35134
  friend class ::CCExprResolve;
 
35135
  friend class ::CExprResolve;
 
35136
  friend class ::WinIfExists;
 
35137
  friend class ::WinImportHandler;
 
35138
  friend class ::WinMacros;
 
35139
  friend class ::WinAsm;
 
35140
  friend class ::WinDeclSpecs;
 
35141
  friend class ::WinMemberExplSpec;
 
35142
  friend class ::WinTypeKeywords;
 
35143
  friend class ::WinFriend;
 
35144
  friend class ::ExtAC;
 
35145
  friend class ::ExtACBuilderCoupling;
 
35146
  friend class ::ExtACSyntaxCoupling;
 
35147
  friend class ::ExtACTree;
 
35148
  friend class ::ExtACKeywords;
 
35149
  friend class ::ExtGnu;
 
35150
  friend class ::PragmaOnceUnitState;
 
35151
  friend class ::PragmaOnce;
 
35152
  friend class ::CMatchSyntax;
 
35153
 
 
35154
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35155
 
 
35156
  CTree *sons[4]; // typeid, open, type_id/expr, close
 
35157
 
 
35158
public:
 
35159
  /** Constructor.
 
35160
   *  \param tid The 'typeid' operator.
 
35161
   *  \param o The left parenthesis of the type name or expression.
 
35162
   *  \param e The expression or type name for which to get the type identifier.
 
35163
   *  \param c The right parenthesis of the type name or expression. */
 
35164
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
 
35165
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
35166
    AddSon (sons[2], e); AddSon (sons[3], c);
 
35167
  }
 
35168
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35169
  static const char *NodeId ();
 
35170
  /** Get the name of the node. Can be compared with NodeId(). */
 
35171
  const char *NodeName () const { return NodeId (); }
 
35172
  /** Get the number of sons. */
 
35173
  int Sons () const { return 4; }
 
35174
  /** Get the n-th son.
 
35175
   *  \param n The index of the son.
 
35176
   *  \return The n-th son or NULL. */
 
35177
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
35178
  /** Replace a son.
 
35179
   *  \param old_son The son to replace.
 
35180
   *  \param new_son The new son. */
 
35181
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35182
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
35183
  }
 
35184
  /** Get the typeid argument, i.e. the expression or type name for
 
35185
   *  which to get the type identifier. */
 
35186
  CTree *Arg () const { return sons[2]; }
 
35187
   private:
 
35188
  typedef CT_TypeidExpr CCExprResolveExpr;
 
35189
 
 
35190
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
35191
 public :
 
35192
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
35193
  typedef CT_TypeidExpr CExprResolveExpr;
 
35194
 
 
35195
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
35196
 public :
 
35197
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
35198
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35199
};
 
35200
 
 
35201
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
35202
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
 
35203
 
 
35204
#line 35205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35205
} // closed Puma
 
35206
class CCExprResolve;
 
35207
class CExprResolve;
 
35208
class WinIfExists;
 
35209
class WinImportHandler;
 
35210
class WinMacros;
 
35211
class WinAsm;
 
35212
class WinDeclSpecs;
 
35213
class WinMemberExplSpec;
 
35214
class WinTypeKeywords;
 
35215
class WinFriend;
 
35216
class ExtAC;
 
35217
class ExtACBuilderCoupling;
 
35218
class ExtACSyntaxCoupling;
 
35219
class ExtACTree;
 
35220
class ExtACKeywords;
 
35221
class ExtGnu;
 
35222
class PragmaOnceUnitState;
 
35223
class PragmaOnce;
 
35224
class CMatchSyntax;
 
35225
namespace Puma {
 
35226
 
 
35227
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35228
 
 
35229
#line 35230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35230
} // closed Puma
 
35231
 
 
35232
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35233
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35234
#include "CCExprResolveH.ah"
 
35235
#endif
 
35236
namespace Puma {
 
35237
 
 
35238
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35239
 
 
35240
#line 35241 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35241
} // closed Puma
 
35242
 
 
35243
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35244
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35245
#include "CExprResolveH.ah"
 
35246
#endif
 
35247
namespace Puma {
 
35248
 
 
35249
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35250
class CT_SizeofExpr : public CT_Expression {
 
35251
#line 35252 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35252
  friend class ::CCExprResolve;
 
35253
  friend class ::CExprResolve;
 
35254
  friend class ::WinIfExists;
 
35255
  friend class ::WinImportHandler;
 
35256
  friend class ::WinMacros;
 
35257
  friend class ::WinAsm;
 
35258
  friend class ::WinDeclSpecs;
 
35259
  friend class ::WinMemberExplSpec;
 
35260
  friend class ::WinTypeKeywords;
 
35261
  friend class ::WinFriend;
 
35262
  friend class ::ExtAC;
 
35263
  friend class ::ExtACBuilderCoupling;
 
35264
  friend class ::ExtACSyntaxCoupling;
 
35265
  friend class ::ExtACTree;
 
35266
  friend class ::ExtACKeywords;
 
35267
  friend class ::ExtGnu;
 
35268
  friend class ::PragmaOnceUnitState;
 
35269
  friend class ::PragmaOnce;
 
35270
  friend class ::CMatchSyntax;
 
35271
 
 
35272
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35273
 
 
35274
  CTree *sons[5]; // key, open, type, close, expr
 
35275
 
 
35276
public:
 
35277
  /** Constructor.
 
35278
   *  \param k The 'sizeof' keyword.
 
35279
   *  \param o Left parenthesis around the type name.
 
35280
   *  \param t The type from which to get the size.
 
35281
   *  \param c Right parenthesis around the type name. */
 
35282
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
 
35283
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
35284
    AddSon (sons[3], c); AddSon (sons[4], 0);
 
35285
  }
 
35286
  /** Constructor.
 
35287
   *  \param k The 'sizeof' keyword.
 
35288
   *  \param e The expression from which to get the size. */
 
35289
  CT_SizeofExpr (CTree *k, CTree *e) {
 
35290
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
35291
    AddSon (sons[3], 0); AddSon (sons[4], e);
 
35292
  }
 
35293
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35294
  static const char *NodeId ();
 
35295
  /** Get the name of the node. Can be compared with NodeId(). */
 
35296
  const char *NodeName () const { return NodeId (); }
 
35297
  /** Get the number of sons. */
 
35298
  int Sons () const { return CTree::Sons (sons, 5); }
 
35299
  /** Get the n-th son.
 
35300
   *  \param n The index of the son.
 
35301
   *  \return The n-th son or NULL. */
 
35302
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
35303
  /** Replace a son.
 
35304
   *  \param old_son The son to replace.
 
35305
   *  \param new_son The new son. */
 
35306
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35307
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
35308
  }
 
35309
  /** Get the expression. */
 
35310
  CTree *Expr () const { return sons[4]; }
 
35311
  /** Get the type name. */
 
35312
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
35313
   private:
 
35314
  typedef CT_SizeofExpr CCExprResolveExpr;
 
35315
 
 
35316
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
35317
 public :
 
35318
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
35319
  typedef CT_SizeofExpr CExprResolveExpr;
 
35320
 
 
35321
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
35322
 public :
 
35323
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
35324
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35325
};
 
35326
 
 
35327
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
35328
 *  Tree node representing an index designator, i.e. [1]. */
 
35329
 
 
35330
#line 35331 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35331
} // closed Puma
 
35332
class CCExprResolve;
 
35333
class CExprResolve;
 
35334
class WinIfExists;
 
35335
class WinImportHandler;
 
35336
class WinMacros;
 
35337
class WinAsm;
 
35338
class WinDeclSpecs;
 
35339
class WinMemberExplSpec;
 
35340
class WinTypeKeywords;
 
35341
class WinFriend;
 
35342
class ExtAC;
 
35343
class ExtACBuilderCoupling;
 
35344
class ExtACSyntaxCoupling;
 
35345
class ExtACTree;
 
35346
class ExtACKeywords;
 
35347
class ExtGnu;
 
35348
class PragmaOnceUnitState;
 
35349
class PragmaOnce;
 
35350
class CMatchSyntax;
 
35351
namespace Puma {
 
35352
 
 
35353
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35354
 
 
35355
#line 35356 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35356
} // closed Puma
 
35357
 
 
35358
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35359
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35360
#include "CCExprResolveH.ah"
 
35361
#endif
 
35362
namespace Puma {
 
35363
 
 
35364
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35365
 
 
35366
#line 35367 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35367
} // closed Puma
 
35368
 
 
35369
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35370
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35371
#include "CExprResolveH.ah"
 
35372
#endif
 
35373
namespace Puma {
 
35374
 
 
35375
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35376
class CT_IndexDesignator : public CT_Expression {
 
35377
#line 35378 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35378
  friend class ::CCExprResolve;
 
35379
  friend class ::CExprResolve;
 
35380
  friend class ::WinIfExists;
 
35381
  friend class ::WinImportHandler;
 
35382
  friend class ::WinMacros;
 
35383
  friend class ::WinAsm;
 
35384
  friend class ::WinDeclSpecs;
 
35385
  friend class ::WinMemberExplSpec;
 
35386
  friend class ::WinTypeKeywords;
 
35387
  friend class ::WinFriend;
 
35388
  friend class ::ExtAC;
 
35389
  friend class ::ExtACBuilderCoupling;
 
35390
  friend class ::ExtACSyntaxCoupling;
 
35391
  friend class ::ExtACTree;
 
35392
  friend class ::ExtACKeywords;
 
35393
  friend class ::ExtGnu;
 
35394
  friend class ::PragmaOnceUnitState;
 
35395
  friend class ::PragmaOnce;
 
35396
  friend class ::CMatchSyntax;
 
35397
 
 
35398
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35399
 
 
35400
  CTree *sons[3]; // open, index, close
 
35401
 
 
35402
public:
 
35403
  /** Constructor.
 
35404
   *  \param o Left bracket of the index designator.
 
35405
   *  \param i The index expression.
 
35406
   *  \param c Right bracket of the index designator. */
 
35407
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
 
35408
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
 
35409
  }
 
35410
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35411
  static const char *NodeId ();
 
35412
  /** Get the name of the node. Can be compared with NodeId(). */
 
35413
  const char *NodeName () const { return NodeId (); }
 
35414
  /** Get the number of sons. */
 
35415
  int Sons () const { return 3; }
 
35416
  /** Get the n-th son.
 
35417
   *  \param n The index of the son.
 
35418
   *  \return The n-th son or NULL. */
 
35419
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
35420
  /** Replace a son.
 
35421
   *  \param old_son The son to replace.
 
35422
   *  \param new_son The new son. */
 
35423
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35424
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
35425
  }
 
35426
   private:
 
35427
  typedef CT_IndexDesignator CCExprResolveExpr;
 
35428
 
 
35429
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
35430
 public :
 
35431
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
35432
  typedef CT_IndexDesignator CExprResolveExpr;
 
35433
 
 
35434
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
35435
 public :
 
35436
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
35437
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35438
};
 
35439
 
 
35440
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
35441
 *  Tree node representing a member designator, e.g. .a. */
 
35442
 
 
35443
#line 35444 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35444
} // closed Puma
 
35445
class CCExprResolve;
 
35446
class CExprResolve;
 
35447
class WinIfExists;
 
35448
class WinImportHandler;
 
35449
class WinMacros;
 
35450
class WinAsm;
 
35451
class WinDeclSpecs;
 
35452
class WinMemberExplSpec;
 
35453
class WinTypeKeywords;
 
35454
class WinFriend;
 
35455
class ExtAC;
 
35456
class ExtACBuilderCoupling;
 
35457
class ExtACSyntaxCoupling;
 
35458
class ExtACTree;
 
35459
class ExtACKeywords;
 
35460
class ExtGnu;
 
35461
class PragmaOnceUnitState;
 
35462
class PragmaOnce;
 
35463
class CMatchSyntax;
 
35464
namespace Puma {
 
35465
 
 
35466
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35467
 
 
35468
#line 35469 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35469
} // closed Puma
 
35470
 
 
35471
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35472
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35473
#include "CCExprResolveH.ah"
 
35474
#endif
 
35475
namespace Puma {
 
35476
 
 
35477
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35478
 
 
35479
#line 35480 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35480
} // closed Puma
 
35481
 
 
35482
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35483
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35484
#include "CExprResolveH.ah"
 
35485
#endif
 
35486
namespace Puma {
 
35487
 
 
35488
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35489
class CT_MembDesignator : public CT_Expression {
 
35490
#line 35491 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35491
  friend class ::CCExprResolve;
 
35492
  friend class ::CExprResolve;
 
35493
  friend class ::WinIfExists;
 
35494
  friend class ::WinImportHandler;
 
35495
  friend class ::WinMacros;
 
35496
  friend class ::WinAsm;
 
35497
  friend class ::WinDeclSpecs;
 
35498
  friend class ::WinMemberExplSpec;
 
35499
  friend class ::WinTypeKeywords;
 
35500
  friend class ::WinFriend;
 
35501
  friend class ::ExtAC;
 
35502
  friend class ::ExtACBuilderCoupling;
 
35503
  friend class ::ExtACSyntaxCoupling;
 
35504
  friend class ::ExtACTree;
 
35505
  friend class ::ExtACKeywords;
 
35506
  friend class ::ExtGnu;
 
35507
  friend class ::PragmaOnceUnitState;
 
35508
  friend class ::PragmaOnce;
 
35509
  friend class ::CMatchSyntax;
 
35510
 
 
35511
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35512
 
 
35513
  CTree *sons[2]; // dot, member
 
35514
 
 
35515
public:
 
35516
  /** Constructor.
 
35517
   *  \param d The dot before the member name.
 
35518
   *  \param m The member name. */
 
35519
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
35520
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35521
  static const char *NodeId ();
 
35522
  /** Get the name of the node. Can be compared with NodeId(). */
 
35523
  const char *NodeName () const { return NodeId (); }
 
35524
  /** Get the number of sons. */
 
35525
  int Sons () const { return 2; }
 
35526
  /** Get the n-th son.
 
35527
   *  \param n The index of the son.
 
35528
   *  \return The n-th son or NULL. */
 
35529
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
35530
  /** Replace a son.
 
35531
   *  \param old_son The son to replace.
 
35532
   *  \param new_son The new son. */
 
35533
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35534
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
35535
  }
 
35536
   private:
 
35537
  typedef CT_MembDesignator CCExprResolveExpr;
 
35538
 
 
35539
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
35540
 public :
 
35541
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
35542
  typedef CT_MembDesignator CExprResolveExpr;
 
35543
 
 
35544
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
35545
 public :
 
35546
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
35547
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35548
};
 
35549
 
 
35550
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
35551
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
 
35552
 
 
35553
#line 35554 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35554
} // closed Puma
 
35555
class CCExprResolve;
 
35556
class CExprResolve;
 
35557
class WinIfExists;
 
35558
class WinImportHandler;
 
35559
class WinMacros;
 
35560
class WinAsm;
 
35561
class WinDeclSpecs;
 
35562
class WinMemberExplSpec;
 
35563
class WinTypeKeywords;
 
35564
class WinFriend;
 
35565
class ExtAC;
 
35566
class ExtACBuilderCoupling;
 
35567
class ExtACSyntaxCoupling;
 
35568
class ExtACTree;
 
35569
class ExtACKeywords;
 
35570
class ExtGnu;
 
35571
class PragmaOnceUnitState;
 
35572
class PragmaOnce;
 
35573
class CMatchSyntax;
 
35574
namespace Puma {
 
35575
 
 
35576
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35577
class CT_DesignatorSeq : public CT_List, public CSemValue {
 
35578
#line 35579 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35579
  friend class ::CCExprResolve;
 
35580
  friend class ::CExprResolve;
 
35581
  friend class ::WinIfExists;
 
35582
  friend class ::WinImportHandler;
 
35583
  friend class ::WinMacros;
 
35584
  friend class ::WinAsm;
 
35585
  friend class ::WinDeclSpecs;
 
35586
  friend class ::WinMemberExplSpec;
 
35587
  friend class ::WinTypeKeywords;
 
35588
  friend class ::WinFriend;
 
35589
  friend class ::ExtAC;
 
35590
  friend class ::ExtACBuilderCoupling;
 
35591
  friend class ::ExtACSyntaxCoupling;
 
35592
  friend class ::ExtACTree;
 
35593
  friend class ::ExtACKeywords;
 
35594
  friend class ::ExtGnu;
 
35595
  friend class ::PragmaOnceUnitState;
 
35596
  friend class ::PragmaOnce;
 
35597
  friend class ::CMatchSyntax;
 
35598
 
 
35599
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35600
 
 
35601
public:
 
35602
  /** Constructor.
 
35603
   *  \param size Initial number of designators. */
 
35604
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
35605
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35606
  static const char *NodeId ();
 
35607
  /** Get the name of the node. Can be compared with NodeId(). */
 
35608
  const char *NodeName () const { return NodeId (); }
 
35609
 
 
35610
  /** Get the type of the entity to initialize. */
 
35611
  CTypeInfo *Type () const { return type; }
 
35612
  /** Get the value of the entity to initialize. */
 
35613
  CExprValue *Value () const { return value; }
 
35614
  /** Get the semantic value object. */
 
35615
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
35616
};
 
35617
 
 
35618
/*****************************************************************************/
 
35619
/*                                                                           */
 
35620
/*                         Declaration specifiers                            */
 
35621
/*                                                                           */
 
35622
/*****************************************************************************/
 
35623
 
 
35624
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
35625
 *  Base class for all tree nodes representing declaration specifiers. */
 
35626
 
 
35627
#line 35628 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35628
} // closed Puma
 
35629
class CCExprResolve;
 
35630
class CExprResolve;
 
35631
class WinIfExists;
 
35632
class WinImportHandler;
 
35633
class WinMacros;
 
35634
class WinAsm;
 
35635
class WinDeclSpecs;
 
35636
class WinMemberExplSpec;
 
35637
class WinTypeKeywords;
 
35638
class WinFriend;
 
35639
class ExtAC;
 
35640
class ExtACBuilderCoupling;
 
35641
class ExtACSyntaxCoupling;
 
35642
class ExtACTree;
 
35643
class ExtACKeywords;
 
35644
class ExtGnu;
 
35645
class PragmaOnceUnitState;
 
35646
class PragmaOnce;
 
35647
class CMatchSyntax;
 
35648
namespace Puma {
 
35649
 
 
35650
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35651
class CT_DeclSpec : public CTree {
 
35652
#line 35653 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35653
  friend class ::CCExprResolve;
 
35654
  friend class ::CExprResolve;
 
35655
  friend class ::WinIfExists;
 
35656
  friend class ::WinImportHandler;
 
35657
  friend class ::WinMacros;
 
35658
  friend class ::WinAsm;
 
35659
  friend class ::WinDeclSpecs;
 
35660
  friend class ::WinMemberExplSpec;
 
35661
  friend class ::WinTypeKeywords;
 
35662
  friend class ::WinFriend;
 
35663
  friend class ::ExtAC;
 
35664
  friend class ::ExtACBuilderCoupling;
 
35665
  friend class ::ExtACSyntaxCoupling;
 
35666
  friend class ::ExtACTree;
 
35667
  friend class ::ExtACKeywords;
 
35668
  friend class ::ExtGnu;
 
35669
  friend class ::PragmaOnceUnitState;
 
35670
  friend class ::PragmaOnce;
 
35671
  friend class ::CMatchSyntax;
 
35672
 
 
35673
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35674
 
 
35675
protected:
 
35676
  /** Constructor. */
 
35677
  CT_DeclSpec () {}
 
35678
};
 
35679
 
 
35680
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
35681
 *  Tree node representing a primitive declaration specifier. */
 
35682
 
 
35683
#line 35684 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35684
} // closed Puma
 
35685
class CCExprResolve;
 
35686
class CExprResolve;
 
35687
class WinIfExists;
 
35688
class WinImportHandler;
 
35689
class WinMacros;
 
35690
class WinAsm;
 
35691
class WinDeclSpecs;
 
35692
class WinMemberExplSpec;
 
35693
class WinTypeKeywords;
 
35694
class WinFriend;
 
35695
class ExtAC;
 
35696
class ExtACBuilderCoupling;
 
35697
class ExtACSyntaxCoupling;
 
35698
class ExtACTree;
 
35699
class ExtACKeywords;
 
35700
class ExtGnu;
 
35701
class PragmaOnceUnitState;
 
35702
class PragmaOnce;
 
35703
class CMatchSyntax;
 
35704
namespace Puma {
 
35705
 
 
35706
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35707
class CT_PrimDeclSpec : public CT_DeclSpec {
 
35708
#line 35709 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35709
  friend class ::CCExprResolve;
 
35710
  friend class ::CExprResolve;
 
35711
  friend class ::WinIfExists;
 
35712
  friend class ::WinImportHandler;
 
35713
  friend class ::WinMacros;
 
35714
  friend class ::WinAsm;
 
35715
  friend class ::WinDeclSpecs;
 
35716
  friend class ::WinMemberExplSpec;
 
35717
  friend class ::WinTypeKeywords;
 
35718
  friend class ::WinFriend;
 
35719
  friend class ::ExtAC;
 
35720
  friend class ::ExtACBuilderCoupling;
 
35721
  friend class ::ExtACSyntaxCoupling;
 
35722
  friend class ::ExtACTree;
 
35723
  friend class ::ExtACKeywords;
 
35724
  friend class ::ExtGnu;
 
35725
  friend class ::PragmaOnceUnitState;
 
35726
  friend class ::PragmaOnce;
 
35727
  friend class ::CMatchSyntax;
 
35728
 
 
35729
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35730
 
 
35731
public:
 
35732
  /** Declaration specifier types. */
 
35733
  enum Type { 
 
35734
    PDS_FRIEND,    /** friend */
 
35735
    PDS_TYPEDEF,   /** typedef */
 
35736
    PDS_AUTO,      /** auto */
 
35737
    PDS_REGISTER,  /** register */
 
35738
    PDS_STATIC,    /** static */
 
35739
    PDS_EXTERN,    /** extern */
 
35740
    PDS_MUTABLE,   /** mutable */
 
35741
    PDS_INLINE,    /** inline */
 
35742
    PDS_VIRTUAL,   /** virtual */
 
35743
    PDS_EXPLICIT,  /** explicit */
 
35744
    PDS_CONST,     /** const */
 
35745
    PDS_VOLATILE,  /** volatile */
 
35746
    PDS_RESTRICT,  /** restrict */
 
35747
    PDS_CHAR,      /** char */
 
35748
    PDS_WCHAR_T,   /** wchar_t */
 
35749
    PDS_BOOL,      /** bool */
 
35750
    PDS_SHORT,     /** short */
 
35751
    PDS_INT,       /** int */
 
35752
    PDS_LONG,      /** long */
 
35753
    PDS_SIGNED,    /** signed */
 
35754
    PDS_UNSIGNED,  /** unsigned */
 
35755
    PDS_FLOAT,     /** float */
 
35756
    PDS_DOUBLE,    /** double */
 
35757
    PDS_VOID,      /** void */
 
35758
    // AspectC++ specific type specifier
 
35759
    PDS_UNKNOWN_T, /** unknown_t */
 
35760
    // Win specific declaration specifiers
 
35761
    PDS_CDECL,     /** __cdecl */
 
35762
    PDS_STDCALL,   /** __stdcall */
 
35763
    PDS_FASTCALL,  /** __fastcall */
 
35764
    PDS_INT64,     /** __int64 */
 
35765
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
35766
    PDS_NUM        /** Number of declaration specifier types. */
 
35767
  };
 
35768
 
 
35769
private:
 
35770
  Type _type;
 
35771
  CTree *_token; // has to be a CT_Token
 
35772
 
 
35773
  void determine_type ();
 
35774
 
 
35775
public:
 
35776
  /** Constructor.
 
35777
   *  \param t The token containing the declaration specifier. */
 
35778
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
35779
  /** Constructor.
 
35780
   *  \param t The declaration specifier type. */
 
35781
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
35782
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35783
  static const char *NodeId ();
 
35784
  /** Get the name of the node. Can be compared with NodeId(). */
 
35785
  const char *NodeName () const { return NodeId (); }
 
35786
  /** Get the number of sons. */
 
35787
  int Sons () const { return _token ? 1 : 0; }
 
35788
  /** Get the n-th son.
 
35789
   *  \param n The index of the son.
 
35790
   *  \return The n-th son or NULL. */
 
35791
  CTree *Son (int n) const 
 
35792
   { return (n == 0) ? _token : (CTree*)0; }
 
35793
  /** Get the textual representation of the declaration specifier.
 
35794
   *  \return The string representation or " ". */
 
35795
  const char *SpecText () const 
 
35796
   { return _token ? _token->token ()->text () : " "; }
 
35797
  /** Get the declaration specifier type. */
 
35798
  Type SpecType () const { return _type; }
 
35799
  /** Number of declaration specifier types. */
 
35800
  static const int NumTypes = PDS_NUM;
 
35801
  /** Replace a son.
 
35802
   *  \param old_son The son to replace.
 
35803
   *  \param new_son The new son. */
 
35804
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35805
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
35806
    determine_type ();
 
35807
  }
 
35808
};
 
35809
 
 
35810
/** \class CT_NamedType CTree.h Puma/CTree.h
 
35811
 *  Tree node representing a named type, e.g. (int*)a. 
 
35812
 *  where int* is a type with a generated name. */
 
35813
 
 
35814
#line 35815 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35815
} // closed Puma
 
35816
class CCExprResolve;
 
35817
class CExprResolve;
 
35818
class WinIfExists;
 
35819
class WinImportHandler;
 
35820
class WinMacros;
 
35821
class WinAsm;
 
35822
class WinDeclSpecs;
 
35823
class WinMemberExplSpec;
 
35824
class WinTypeKeywords;
 
35825
class WinFriend;
 
35826
class ExtAC;
 
35827
class ExtACBuilderCoupling;
 
35828
class ExtACSyntaxCoupling;
 
35829
class ExtACTree;
 
35830
class ExtACKeywords;
 
35831
class ExtGnu;
 
35832
class PragmaOnceUnitState;
 
35833
class PragmaOnce;
 
35834
class CMatchSyntax;
 
35835
namespace Puma {
 
35836
 
 
35837
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35838
class CT_NamedType : public CT_DeclSpec, public CSemObject {
 
35839
#line 35840 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35840
  friend class ::CCExprResolve;
 
35841
  friend class ::CExprResolve;
 
35842
  friend class ::WinIfExists;
 
35843
  friend class ::WinImportHandler;
 
35844
  friend class ::WinMacros;
 
35845
  friend class ::WinAsm;
 
35846
  friend class ::WinDeclSpecs;
 
35847
  friend class ::WinMemberExplSpec;
 
35848
  friend class ::WinTypeKeywords;
 
35849
  friend class ::WinFriend;
 
35850
  friend class ::ExtAC;
 
35851
  friend class ::ExtACBuilderCoupling;
 
35852
  friend class ::ExtACSyntaxCoupling;
 
35853
  friend class ::ExtACTree;
 
35854
  friend class ::ExtACKeywords;
 
35855
  friend class ::ExtGnu;
 
35856
  friend class ::PragmaOnceUnitState;
 
35857
  friend class ::PragmaOnce;
 
35858
  friend class ::CMatchSyntax;
 
35859
 
 
35860
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35861
 
 
35862
  CTree *sons[2]; // declspecs, declarator
 
35863
 
 
35864
public:
 
35865
  /** Constructor.
 
35866
   *  \param dss The declaration specifier sequence of the type.
 
35867
   *  \param d The type declarator. */
 
35868
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
35869
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35870
  static const char *NodeId ();
 
35871
  /** Get the name of the node. Can be compared with NodeId(). */
 
35872
  const char *NodeName () const { return NodeId (); }
 
35873
  /** Get the number of sons. */
 
35874
  int Sons () const { return CTree::Sons (sons, 2); }
 
35875
  /** Get the n-th son.
 
35876
   *  \param n The index of the son.
 
35877
   *  \return The n-th son or NULL. */
 
35878
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
35879
  /** Get the declarator. */
 
35880
  CTree *Declarator () const { return sons[1]; }
 
35881
  /** Replace a son.
 
35882
   *  \param old_son The son to replace.
 
35883
   *  \param new_son The new son. */
 
35884
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35885
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
35886
  }
 
35887
  /** Get the semantic information object. */
 
35888
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
35889
};
 
35890
      
 
35891
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
35892
 *  Tree node representing a class specifier, e.g. class X. */
 
35893
 
 
35894
#line 35895 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35895
} // closed Puma
 
35896
class CCExprResolve;
 
35897
class CExprResolve;
 
35898
class WinIfExists;
 
35899
class WinImportHandler;
 
35900
class WinMacros;
 
35901
class WinAsm;
 
35902
class WinDeclSpecs;
 
35903
class WinMemberExplSpec;
 
35904
class WinTypeKeywords;
 
35905
class WinFriend;
 
35906
class ExtAC;
 
35907
class ExtACBuilderCoupling;
 
35908
class ExtACSyntaxCoupling;
 
35909
class ExtACTree;
 
35910
class ExtACKeywords;
 
35911
class ExtGnu;
 
35912
class PragmaOnceUnitState;
 
35913
class PragmaOnce;
 
35914
class CMatchSyntax;
 
35915
namespace Puma {
 
35916
 
 
35917
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35918
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
 
35919
#line 35920 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35920
  friend class ::CCExprResolve;
 
35921
  friend class ::CExprResolve;
 
35922
  friend class ::WinIfExists;
 
35923
  friend class ::WinImportHandler;
 
35924
  friend class ::WinMacros;
 
35925
  friend class ::WinAsm;
 
35926
  friend class ::WinDeclSpecs;
 
35927
  friend class ::WinMemberExplSpec;
 
35928
  friend class ::WinTypeKeywords;
 
35929
  friend class ::WinFriend;
 
35930
  friend class ::ExtAC;
 
35931
  friend class ::ExtACBuilderCoupling;
 
35932
  friend class ::ExtACSyntaxCoupling;
 
35933
  friend class ::ExtACTree;
 
35934
  friend class ::ExtACKeywords;
 
35935
  friend class ::ExtGnu;
 
35936
  friend class ::PragmaOnceUnitState;
 
35937
  friend class ::PragmaOnce;
 
35938
  friend class ::CMatchSyntax;
 
35939
 
 
35940
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35941
 
 
35942
  CTree *sons[2]; // key, name
 
35943
  
 
35944
public:
 
35945
  /** Constructor.
 
35946
   *  \param k The 'class' or 'struct' keyword.
 
35947
   *  \param n The class name. */
 
35948
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
35949
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35950
  static const char *NodeId ();
 
35951
  /** Get the name of the node. Can be compared with NodeId(). */
 
35952
  const char *NodeName () const { return NodeId (); }
 
35953
  /** Get the number of sons. */
 
35954
  int Sons () const { return 2; }
 
35955
  /** Get the n-th son.
 
35956
   *  \param n The index of the son.
 
35957
   *  \return The n-th son or NULL. */
 
35958
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
35959
  /** Get the class name. */
 
35960
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
35961
  /** Get the semantic information object. */
 
35962
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
35963
  /** Replace a son.
 
35964
   *  \param old_son The son to replace.
 
35965
   *  \param new_son The new son. */
 
35966
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35967
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
35968
  }
 
35969
};
 
35970
 
 
35971
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
35972
 *  Tree node representing a union specifier, e.g. union X. */
 
35973
 
 
35974
#line 35975 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
35975
} // closed Puma
 
35976
class CCExprResolve;
 
35977
class CExprResolve;
 
35978
class WinIfExists;
 
35979
class WinImportHandler;
 
35980
class WinMacros;
 
35981
class WinAsm;
 
35982
class WinDeclSpecs;
 
35983
class WinMemberExplSpec;
 
35984
class WinTypeKeywords;
 
35985
class WinFriend;
 
35986
class ExtAC;
 
35987
class ExtACBuilderCoupling;
 
35988
class ExtACSyntaxCoupling;
 
35989
class ExtACTree;
 
35990
class ExtACKeywords;
 
35991
class ExtGnu;
 
35992
class PragmaOnceUnitState;
 
35993
class PragmaOnce;
 
35994
class CMatchSyntax;
 
35995
namespace Puma {
 
35996
 
 
35997
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35998
class CT_UnionSpec : public CT_ClassSpec {
 
35999
#line 36000 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36000
  friend class ::CCExprResolve;
 
36001
  friend class ::CExprResolve;
 
36002
  friend class ::WinIfExists;
 
36003
  friend class ::WinImportHandler;
 
36004
  friend class ::WinMacros;
 
36005
  friend class ::WinAsm;
 
36006
  friend class ::WinDeclSpecs;
 
36007
  friend class ::WinMemberExplSpec;
 
36008
  friend class ::WinTypeKeywords;
 
36009
  friend class ::WinFriend;
 
36010
  friend class ::ExtAC;
 
36011
  friend class ::ExtACBuilderCoupling;
 
36012
  friend class ::ExtACSyntaxCoupling;
 
36013
  friend class ::ExtACTree;
 
36014
  friend class ::ExtACKeywords;
 
36015
  friend class ::ExtGnu;
 
36016
  friend class ::PragmaOnceUnitState;
 
36017
  friend class ::PragmaOnce;
 
36018
  friend class ::CMatchSyntax;
 
36019
 
 
36020
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36021
 
 
36022
public:
 
36023
  /** Constructor.
 
36024
   *  \param k The 'union' keyword.
 
36025
   *  \param n The name of the union. */
 
36026
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
36027
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36028
  static const char *NodeId ();
 
36029
  /** Get the name of the node. Can be compared with NodeId(). */
 
36030
  const char *NodeName () const { return NodeId (); }
 
36031
};
 
36032
 
 
36033
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
36034
 *  Tree node representing an enumeration specifier, e.g. enum X. */
 
36035
 
 
36036
#line 36037 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36037
} // closed Puma
 
36038
class CCExprResolve;
 
36039
class CExprResolve;
 
36040
class WinIfExists;
 
36041
class WinImportHandler;
 
36042
class WinMacros;
 
36043
class WinAsm;
 
36044
class WinDeclSpecs;
 
36045
class WinMemberExplSpec;
 
36046
class WinTypeKeywords;
 
36047
class WinFriend;
 
36048
class ExtAC;
 
36049
class ExtACBuilderCoupling;
 
36050
class ExtACSyntaxCoupling;
 
36051
class ExtACTree;
 
36052
class ExtACKeywords;
 
36053
class ExtGnu;
 
36054
class PragmaOnceUnitState;
 
36055
class PragmaOnce;
 
36056
class CMatchSyntax;
 
36057
namespace Puma {
 
36058
 
 
36059
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36060
class CT_EnumSpec : public CT_ClassSpec {
 
36061
#line 36062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36062
  friend class ::CCExprResolve;
 
36063
  friend class ::CExprResolve;
 
36064
  friend class ::WinIfExists;
 
36065
  friend class ::WinImportHandler;
 
36066
  friend class ::WinMacros;
 
36067
  friend class ::WinAsm;
 
36068
  friend class ::WinDeclSpecs;
 
36069
  friend class ::WinMemberExplSpec;
 
36070
  friend class ::WinTypeKeywords;
 
36071
  friend class ::WinFriend;
 
36072
  friend class ::ExtAC;
 
36073
  friend class ::ExtACBuilderCoupling;
 
36074
  friend class ::ExtACSyntaxCoupling;
 
36075
  friend class ::ExtACTree;
 
36076
  friend class ::ExtACKeywords;
 
36077
  friend class ::ExtGnu;
 
36078
  friend class ::PragmaOnceUnitState;
 
36079
  friend class ::PragmaOnce;
 
36080
  friend class ::CMatchSyntax;
 
36081
 
 
36082
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36083
 
 
36084
public:
 
36085
  /** Constructor.
 
36086
   *  \param k The 'enum' keyword. 
 
36087
   *  \param n The name of the enumeration. */
 
36088
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
36089
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36090
  static const char *NodeId ();
 
36091
  /** Get the name of the node. Can be compared with NodeId(). */
 
36092
  const char *NodeName () const { return NodeId (); }
 
36093
};
 
36094
 
 
36095
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
36096
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
 
36097
 
 
36098
#line 36099 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36099
} // closed Puma
 
36100
class CCExprResolve;
 
36101
class CExprResolve;
 
36102
class WinIfExists;
 
36103
class WinImportHandler;
 
36104
class WinMacros;
 
36105
class WinAsm;
 
36106
class WinDeclSpecs;
 
36107
class WinMemberExplSpec;
 
36108
class WinTypeKeywords;
 
36109
class WinFriend;
 
36110
class ExtAC;
 
36111
class ExtACBuilderCoupling;
 
36112
class ExtACSyntaxCoupling;
 
36113
class ExtACTree;
 
36114
class ExtACKeywords;
 
36115
class ExtGnu;
 
36116
class PragmaOnceUnitState;
 
36117
class PragmaOnce;
 
36118
class CMatchSyntax;
 
36119
namespace Puma {
 
36120
 
 
36121
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36122
class CT_ExceptionSpec : public CT_DeclSpec {
 
36123
#line 36124 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36124
  friend class ::CCExprResolve;
 
36125
  friend class ::CExprResolve;
 
36126
  friend class ::WinIfExists;
 
36127
  friend class ::WinImportHandler;
 
36128
  friend class ::WinMacros;
 
36129
  friend class ::WinAsm;
 
36130
  friend class ::WinDeclSpecs;
 
36131
  friend class ::WinMemberExplSpec;
 
36132
  friend class ::WinTypeKeywords;
 
36133
  friend class ::WinFriend;
 
36134
  friend class ::ExtAC;
 
36135
  friend class ::ExtACBuilderCoupling;
 
36136
  friend class ::ExtACSyntaxCoupling;
 
36137
  friend class ::ExtACTree;
 
36138
  friend class ::ExtACKeywords;
 
36139
  friend class ::ExtGnu;
 
36140
  friend class ::PragmaOnceUnitState;
 
36141
  friend class ::PragmaOnce;
 
36142
  friend class ::CMatchSyntax;
 
36143
 
 
36144
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36145
 
 
36146
  CTree *sons[2]; // throw, type_id_list
 
36147
  
 
36148
public:
 
36149
  /** Constructor.
 
36150
   *  \param k The 'throw' keyword.
 
36151
   *  \param l The type list for the exception type to throw. */
 
36152
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
36153
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36154
  static const char *NodeId ();
 
36155
  /** Get the name of the node. Can be compared with NodeId(). */
 
36156
  const char *NodeName () const { return NodeId (); }
 
36157
  /** Get the number of sons. */
 
36158
  int Sons () const { return 2; }
 
36159
  /** Get the n-th son.
 
36160
   *  \param n The index of the son.
 
36161
   *  \return The n-th son or NULL. */
 
36162
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
36163
  /** Get the exception type list. */
 
36164
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
36165
  /** Replace a son.
 
36166
   *  \param old_son The son to replace.
 
36167
   *  \param new_son The new son. */
 
36168
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
36169
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
36170
  }
 
36171
};
 
36172
 
 
36173
/*****************************************************************************/
 
36174
/*                                                                           */
 
36175
/*                              Declarations                                 */
 
36176
/*                                                                           */
 
36177
/*****************************************************************************/
 
36178
 
 
36179
/** \class CT_Decl CTree.h Puma/CTree.h
 
36180
 *  Base class for all tree nodes representing declarations. */
 
36181
 
 
36182
#line 36183 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36183
} // closed Puma
 
36184
class CCExprResolve;
 
36185
class CExprResolve;
 
36186
class WinIfExists;
 
36187
class WinImportHandler;
 
36188
class WinMacros;
 
36189
class WinAsm;
 
36190
class WinDeclSpecs;
 
36191
class WinMemberExplSpec;
 
36192
class WinTypeKeywords;
 
36193
class WinFriend;
 
36194
class ExtAC;
 
36195
class ExtACBuilderCoupling;
 
36196
class ExtACSyntaxCoupling;
 
36197
class ExtACTree;
 
36198
class ExtACKeywords;
 
36199
class ExtGnu;
 
36200
class PragmaOnceUnitState;
 
36201
class PragmaOnce;
 
36202
class CMatchSyntax;
 
36203
namespace Puma {
 
36204
 
 
36205
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36206
class CT_Decl : public CTree {
 
36207
#line 36208 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36208
  friend class ::CCExprResolve;
 
36209
  friend class ::CExprResolve;
 
36210
  friend class ::WinIfExists;
 
36211
  friend class ::WinImportHandler;
 
36212
  friend class ::WinMacros;
 
36213
  friend class ::WinAsm;
 
36214
  friend class ::WinDeclSpecs;
 
36215
  friend class ::WinMemberExplSpec;
 
36216
  friend class ::WinTypeKeywords;
 
36217
  friend class ::WinFriend;
 
36218
  friend class ::ExtAC;
 
36219
  friend class ::ExtACBuilderCoupling;
 
36220
  friend class ::ExtACSyntaxCoupling;
 
36221
  friend class ::ExtACTree;
 
36222
  friend class ::ExtACKeywords;
 
36223
  friend class ::ExtGnu;
 
36224
  friend class ::PragmaOnceUnitState;
 
36225
  friend class ::PragmaOnce;
 
36226
  friend class ::CMatchSyntax;
 
36227
 
 
36228
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36229
 
 
36230
  CT_LinkageSpec *_linkage;
 
36231
  
 
36232
protected:
 
36233
  /** Constructor. */
 
36234
  CT_Decl () : _linkage (0) {}
 
36235
  
 
36236
public:
 
36237
  /** Set the linkage of the declared entity.
 
36238
   *  \param l The linkage specifiers. */
 
36239
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
36240
  /** Get the linkage specifiers. */
 
36241
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
36242
  /** Get this. */
 
36243
  virtual CT_Decl *IsDeclaration () { return this; }
 
36244
};
 
36245
 
 
36246
/** \class CT_Program CTree.h Puma/CTree.h
 
36247
 *  Root node of C/C++ syntax tree. */
 
36248
 
 
36249
#line 36250 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36250
} // closed Puma
 
36251
class CCExprResolve;
 
36252
class CExprResolve;
 
36253
class WinIfExists;
 
36254
class WinImportHandler;
 
36255
class WinMacros;
 
36256
class WinAsm;
 
36257
class WinDeclSpecs;
 
36258
class WinMemberExplSpec;
 
36259
class WinTypeKeywords;
 
36260
class WinFriend;
 
36261
class ExtAC;
 
36262
class ExtACBuilderCoupling;
 
36263
class ExtACSyntaxCoupling;
 
36264
class ExtACTree;
 
36265
class ExtACKeywords;
 
36266
class ExtGnu;
 
36267
class PragmaOnceUnitState;
 
36268
class PragmaOnce;
 
36269
class CMatchSyntax;
 
36270
namespace Puma {
 
36271
 
 
36272
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36273
class CT_Program : public CT_DeclList, public CSemScope {
 
36274
#line 36275 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36275
  friend class ::CCExprResolve;
 
36276
  friend class ::CExprResolve;
 
36277
  friend class ::WinIfExists;
 
36278
  friend class ::WinImportHandler;
 
36279
  friend class ::WinMacros;
 
36280
  friend class ::WinAsm;
 
36281
  friend class ::WinDeclSpecs;
 
36282
  friend class ::WinMemberExplSpec;
 
36283
  friend class ::WinTypeKeywords;
 
36284
  friend class ::WinFriend;
 
36285
  friend class ::ExtAC;
 
36286
  friend class ::ExtACBuilderCoupling;
 
36287
  friend class ::ExtACSyntaxCoupling;
 
36288
  friend class ::ExtACTree;
 
36289
  friend class ::ExtACKeywords;
 
36290
  friend class ::ExtGnu;
 
36291
  friend class ::PragmaOnceUnitState;
 
36292
  friend class ::PragmaOnce;
 
36293
  friend class ::CMatchSyntax;
 
36294
 
 
36295
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36296
 
 
36297
public:
 
36298
  /** Constructor.
 
36299
   *  \param size The initial number of declarations in the program.
 
36300
   *  \param incr The initial increment count. */
 
36301
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
36302
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36303
  static const char *NodeId ();
 
36304
  /** Get the name of the node. Can be compared with NodeId(). */
 
36305
  const char *NodeName () const { return NodeId (); }
 
36306
  /** Get the semantic scope object. */
 
36307
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
36308
};
 
36309
   
 
36310
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
36311
 *  Tree node representing an object declaration, e.g. int *i. */
 
36312
 
 
36313
#line 36314 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36314
} // closed Puma
 
36315
class CCExprResolve;
 
36316
class CExprResolve;
 
36317
class WinIfExists;
 
36318
class WinImportHandler;
 
36319
class WinMacros;
 
36320
class WinAsm;
 
36321
class WinDeclSpecs;
 
36322
class WinMemberExplSpec;
 
36323
class WinTypeKeywords;
 
36324
class WinFriend;
 
36325
class ExtAC;
 
36326
class ExtACBuilderCoupling;
 
36327
class ExtACSyntaxCoupling;
 
36328
class ExtACTree;
 
36329
class ExtACKeywords;
 
36330
class ExtGnu;
 
36331
class PragmaOnceUnitState;
 
36332
class PragmaOnce;
 
36333
class CMatchSyntax;
 
36334
namespace Puma {
 
36335
 
 
36336
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36337
class CT_ObjDecl : public CT_Decl {
 
36338
#line 36339 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36339
  friend class ::CCExprResolve;
 
36340
  friend class ::CExprResolve;
 
36341
  friend class ::WinIfExists;
 
36342
  friend class ::WinImportHandler;
 
36343
  friend class ::WinMacros;
 
36344
  friend class ::WinAsm;
 
36345
  friend class ::WinDeclSpecs;
 
36346
  friend class ::WinMemberExplSpec;
 
36347
  friend class ::WinTypeKeywords;
 
36348
  friend class ::WinFriend;
 
36349
  friend class ::ExtAC;
 
36350
  friend class ::ExtACBuilderCoupling;
 
36351
  friend class ::ExtACSyntaxCoupling;
 
36352
  friend class ::ExtACTree;
 
36353
  friend class ::ExtACKeywords;
 
36354
  friend class ::ExtGnu;
 
36355
  friend class ::PragmaOnceUnitState;
 
36356
  friend class ::PragmaOnce;
 
36357
  friend class ::CMatchSyntax;
 
36358
 
 
36359
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36360
 
 
36361
  CTree *sons[3]; // declspecs, declarators, colon
 
36362
 
 
36363
public:
 
36364
  /** Constructor.
 
36365
   *  \param dsl The declaration specifier sequence.
 
36366
   *  \param dl The declarator list.
 
36367
   *  \param c Optional colon. */
 
36368
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
 
36369
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
 
36370
  }
 
36371
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36372
  static const char *NodeId ();
 
36373
  /** Get the name of the node. Can be compared with NodeId(). */
 
36374
  const char *NodeName () const { return NodeId (); }
 
36375
  /** Get the number of sons. */
 
36376
  int Sons () const { return 3; }
 
36377
  /** Get the n-th son.
 
36378
   *  \param n The index of the son.
 
36379
   *  \return The n-th son or NULL. */
 
36380
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
36381
  /** Get the declaration specifier sequence. */
 
36382
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
36383
  /** Get the declarator list. */
 
36384
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
36385
  /** Replace a son.
 
36386
   *  \param old_son The son to replace.
 
36387
   *  \param new_son The new son. */
 
36388
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
36389
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
36390
  }
 
36391
};
 
36392
 
 
36393
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
36394
 *  Tree node representing a template declaration. */
 
36395
 
 
36396
#line 36397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36397
} // closed Puma
 
36398
class CCExprResolve;
 
36399
class CExprResolve;
 
36400
class WinIfExists;
 
36401
class WinImportHandler;
 
36402
class WinMacros;
 
36403
class WinAsm;
 
36404
class WinDeclSpecs;
 
36405
class WinMemberExplSpec;
 
36406
class WinTypeKeywords;
 
36407
class WinFriend;
 
36408
class ExtAC;
 
36409
class ExtACBuilderCoupling;
 
36410
class ExtACSyntaxCoupling;
 
36411
class ExtACTree;
 
36412
class ExtACKeywords;
 
36413
class ExtGnu;
 
36414
class PragmaOnceUnitState;
 
36415
class PragmaOnce;
 
36416
class CMatchSyntax;
 
36417
namespace Puma {
 
36418
 
 
36419
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36420
class CT_TemplateDecl : public CT_Decl, public CSemScope {
 
36421
#line 36422 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36422
  friend class ::CCExprResolve;
 
36423
  friend class ::CExprResolve;
 
36424
  friend class ::WinIfExists;
 
36425
  friend class ::WinImportHandler;
 
36426
  friend class ::WinMacros;
 
36427
  friend class ::WinAsm;
 
36428
  friend class ::WinDeclSpecs;
 
36429
  friend class ::WinMemberExplSpec;
 
36430
  friend class ::WinTypeKeywords;
 
36431
  friend class ::WinFriend;
 
36432
  friend class ::ExtAC;
 
36433
  friend class ::ExtACBuilderCoupling;
 
36434
  friend class ::ExtACSyntaxCoupling;
 
36435
  friend class ::ExtACTree;
 
36436
  friend class ::ExtACKeywords;
 
36437
  friend class ::ExtGnu;
 
36438
  friend class ::PragmaOnceUnitState;
 
36439
  friend class ::PragmaOnce;
 
36440
  friend class ::CMatchSyntax;
 
36441
 
 
36442
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36443
 
 
36444
  CTree *sons[3]; // export, param_list, decl
 
36445
 
 
36446
public:
 
36447
  /** Constructor.
 
36448
   *  \param e Optional 'export' keyword. 
 
36449
   *  \param p The template parameter list.
 
36450
   *  \param d The class or function declaration. */
 
36451
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
 
36452
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
 
36453
  }
 
36454
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36455
  static const char *NodeId ();
 
36456
  /** Get the name of the node. Can be compared with NodeId(). */
 
36457
  const char *NodeName () const { return NodeId (); }
 
36458
  /** Get the number of sons. */
 
36459
  int Sons () const { return CTree::Sons (sons, 3); }
 
36460
  /** Get the n-th son.
 
36461
   *  \param n The index of the son.
 
36462
   *  \return The n-th son or NULL. */
 
36463
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
36464
  /** Replace a son.
 
36465
   *  \param old_son The son to replace.
 
36466
   *  \param new_son The new son. */
 
36467
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
36468
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
 
36469
  }
 
36470
  /** Get the 'export' keyword. */
 
36471
  CTree *Export () const { return sons[0]; }
 
36472
  /** Get the template parameter list. */
 
36473
  CT_TemplateParamList *Parameters () const { 
 
36474
    return (CT_TemplateParamList*)sons[1]; 
 
36475
  }
 
36476
  /** Get the class or function declaration. */
 
36477
  CTree *Declaration () const { return sons[2]; }
 
36478
  /** Get the semantic scope object. */
 
36479
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
36480
};
 
36481
 
 
36482
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
36483
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
 
36484
 
 
36485
#line 36486 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36486
} // closed Puma
 
36487
class CCExprResolve;
 
36488
class CExprResolve;
 
36489
class WinIfExists;
 
36490
class WinImportHandler;
 
36491
class WinMacros;
 
36492
class WinAsm;
 
36493
class WinDeclSpecs;
 
36494
class WinMemberExplSpec;
 
36495
class WinTypeKeywords;
 
36496
class WinFriend;
 
36497
class ExtAC;
 
36498
class ExtACBuilderCoupling;
 
36499
class ExtACSyntaxCoupling;
 
36500
class ExtACTree;
 
36501
class ExtACKeywords;
 
36502
class ExtGnu;
 
36503
class PragmaOnceUnitState;
 
36504
class PragmaOnce;
 
36505
class CMatchSyntax;
 
36506
namespace Puma {
 
36507
 
 
36508
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36509
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
 
36510
#line 36511 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36511
  friend class ::CCExprResolve;
 
36512
  friend class ::CExprResolve;
 
36513
  friend class ::WinIfExists;
 
36514
  friend class ::WinImportHandler;
 
36515
  friend class ::WinMacros;
 
36516
  friend class ::WinAsm;
 
36517
  friend class ::WinDeclSpecs;
 
36518
  friend class ::WinMemberExplSpec;
 
36519
  friend class ::WinTypeKeywords;
 
36520
  friend class ::WinFriend;
 
36521
  friend class ::ExtAC;
 
36522
  friend class ::ExtACBuilderCoupling;
 
36523
  friend class ::ExtACSyntaxCoupling;
 
36524
  friend class ::ExtACTree;
 
36525
  friend class ::ExtACKeywords;
 
36526
  friend class ::ExtGnu;
 
36527
  friend class ::PragmaOnceUnitState;
 
36528
  friend class ::PragmaOnce;
 
36529
  friend class ::CMatchSyntax;
 
36530
 
 
36531
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36532
 
 
36533
protected:
 
36534
  /** Constructor. */
 
36535
  CT_TemplateParamDecl () {}
 
36536
  
 
36537
public:
 
36538
  /** Get the template default argument. */
 
36539
  virtual CT_ExprList *DefaultArgument () const = 0;
 
36540
  /** Get the semantic information object. */
 
36541
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
36542
};
 
36543
 
 
36544
 
 
36545
#line 36546 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36546
} // closed Puma
 
36547
class CCExprResolve;
 
36548
class CExprResolve;
 
36549
class WinIfExists;
 
36550
class WinImportHandler;
 
36551
class WinMacros;
 
36552
class WinAsm;
 
36553
class WinDeclSpecs;
 
36554
class WinMemberExplSpec;
 
36555
class WinTypeKeywords;
 
36556
class WinFriend;
 
36557
class ExtAC;
 
36558
class ExtACBuilderCoupling;
 
36559
class ExtACSyntaxCoupling;
 
36560
class ExtACTree;
 
36561
class ExtACKeywords;
 
36562
class ExtGnu;
 
36563
class PragmaOnceUnitState;
 
36564
class PragmaOnce;
 
36565
class CMatchSyntax;
 
36566
namespace Puma {
 
36567
 
 
36568
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36569
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
 
36570
#line 36571 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36571
  friend class ::CCExprResolve;
 
36572
  friend class ::CExprResolve;
 
36573
  friend class ::WinIfExists;
 
36574
  friend class ::WinImportHandler;
 
36575
  friend class ::WinMacros;
 
36576
  friend class ::WinAsm;
 
36577
  friend class ::WinDeclSpecs;
 
36578
  friend class ::WinMemberExplSpec;
 
36579
  friend class ::WinTypeKeywords;
 
36580
  friend class ::WinFriend;
 
36581
  friend class ::ExtAC;
 
36582
  friend class ::ExtACBuilderCoupling;
 
36583
  friend class ::ExtACSyntaxCoupling;
 
36584
  friend class ::ExtACTree;
 
36585
  friend class ::ExtACKeywords;
 
36586
  friend class ::ExtGnu;
 
36587
  friend class ::PragmaOnceUnitState;
 
36588
  friend class ::PragmaOnce;
 
36589
  friend class ::CMatchSyntax;
 
36590
 
 
36591
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36592
 
 
36593
  CTree *sons[3]; // declspecs, declarator, init
 
36594
 
 
36595
public:
 
36596
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
 
36597
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
 
36598
  }
 
36599
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36600
  static const char *NodeId ();
 
36601
  /** Get the name of the node. Can be compared with NodeId(). */
 
36602
  const char *NodeName () const { return NodeId (); }
 
36603
  /** Get the number of sons. */
 
36604
  int Sons () const { return CTree::Sons (sons, 3); }
 
36605
  /** Get the n-th son.
 
36606
   *  \param n The index of the son.
 
36607
   *  \return The n-th son or NULL. */
 
36608
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
36609
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
36610
  CTree *Declarator () const { return sons[1]; }
 
36611
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
 
36612
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
36613
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
36614
  /** Replace a son.
 
36615
   *  \param old_son The son to replace.
 
36616
   *  \param new_son The new son. */
 
36617
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
36618
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
36619
  }
 
36620
};
 
36621
 
 
36622
 
 
36623
#line 36624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36624
} // closed Puma
 
36625
class CCExprResolve;
 
36626
class CExprResolve;
 
36627
class WinIfExists;
 
36628
class WinImportHandler;
 
36629
class WinMacros;
 
36630
class WinAsm;
 
36631
class WinDeclSpecs;
 
36632
class WinMemberExplSpec;
 
36633
class WinTypeKeywords;
 
36634
class WinFriend;
 
36635
class ExtAC;
 
36636
class ExtACBuilderCoupling;
 
36637
class ExtACSyntaxCoupling;
 
36638
class ExtACTree;
 
36639
class ExtACKeywords;
 
36640
class ExtGnu;
 
36641
class PragmaOnceUnitState;
 
36642
class PragmaOnce;
 
36643
class CMatchSyntax;
 
36644
namespace Puma {
 
36645
 
 
36646
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36647
class CT_TypeParamDecl : public CT_TemplateParamDecl {
 
36648
#line 36649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36649
  friend class ::CCExprResolve;
 
36650
  friend class ::CExprResolve;
 
36651
  friend class ::WinIfExists;
 
36652
  friend class ::WinImportHandler;
 
36653
  friend class ::WinMacros;
 
36654
  friend class ::WinAsm;
 
36655
  friend class ::WinDeclSpecs;
 
36656
  friend class ::WinMemberExplSpec;
 
36657
  friend class ::WinTypeKeywords;
 
36658
  friend class ::WinFriend;
 
36659
  friend class ::ExtAC;
 
36660
  friend class ::ExtACBuilderCoupling;
 
36661
  friend class ::ExtACSyntaxCoupling;
 
36662
  friend class ::ExtACTree;
 
36663
  friend class ::ExtACKeywords;
 
36664
  friend class ::ExtGnu;
 
36665
  friend class ::PragmaOnceUnitState;
 
36666
  friend class ::PragmaOnce;
 
36667
  friend class ::CMatchSyntax;
 
36668
 
 
36669
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36670
 
 
36671
  CTree *sons[4]; // params, key, id, init
 
36672
 
 
36673
public:
 
36674
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
 
36675
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
36676
    AddSon (sons[2], id); AddSon (sons[3], i);
 
36677
  }
 
36678
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36679
  static const char *NodeId ();
 
36680
  /** Get the name of the node. Can be compared with NodeId(). */
 
36681
  const char *NodeName () const { return NodeId (); }
 
36682
  /** Get the number of sons. */
 
36683
  int Sons () const { return CTree::Sons (sons, 4); }
 
36684
  /** Get the n-th son.
 
36685
   *  \param n The index of the son.
 
36686
   *  \return The n-th son or NULL. */
 
36687
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
36688
  CT_TemplateParamList *Parameters () const { 
 
36689
    return (CT_TemplateParamList*)sons[0]; 
 
36690
  }
 
36691
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
36692
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
 
36693
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
36694
  /** Replace a son.
 
36695
   *  \param old_son The son to replace.
 
36696
   *  \param new_son The new son. */
 
36697
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
36698
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
36699
  }
 
36700
};
 
36701
 
 
36702
 
 
36703
#line 36704 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.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 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36727
class CT_EnumDef : public CT_Decl, public CSemObject {
 
36728
#line 36729 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36729
  friend class ::CCExprResolve;
 
36730
  friend class ::CExprResolve;
 
36731
  friend class ::WinIfExists;
 
36732
  friend class ::WinImportHandler;
 
36733
  friend class ::WinMacros;
 
36734
  friend class ::WinAsm;
 
36735
  friend class ::WinDeclSpecs;
 
36736
  friend class ::WinMemberExplSpec;
 
36737
  friend class ::WinTypeKeywords;
 
36738
  friend class ::WinFriend;
 
36739
  friend class ::ExtAC;
 
36740
  friend class ::ExtACBuilderCoupling;
 
36741
  friend class ::ExtACSyntaxCoupling;
 
36742
  friend class ::ExtACTree;
 
36743
  friend class ::ExtACKeywords;
 
36744
  friend class ::ExtGnu;
 
36745
  friend class ::PragmaOnceUnitState;
 
36746
  friend class ::PragmaOnce;
 
36747
  friend class ::CMatchSyntax;
 
36748
 
 
36749
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36750
 
 
36751
  CTree *sons[3]; // key, name, enumerators
 
36752
 
 
36753
public:
 
36754
  CT_EnumDef (CTree *k, CTree *n) {
 
36755
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
 
36756
  }
 
36757
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36758
  static const char *NodeId ();
 
36759
  /** Get the name of the node. Can be compared with NodeId(). */
 
36760
  const char *NodeName () const { return NodeId (); }
 
36761
  /** Get the number of sons. */
 
36762
  int Sons () const { return CTree::Sons (sons, 3); }
 
36763
  /** Get the n-th son.
 
36764
   *  \param n The index of the son.
 
36765
   *  \return The n-th son or NULL. */
 
36766
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
36767
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
36768
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
 
36769
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
36770
  /** Replace a son.
 
36771
   *  \param old_son The son to replace.
 
36772
   *  \param new_son The new son. */
 
36773
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
36774
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
36775
  }
 
36776
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
36777
};
 
36778
 
 
36779
 
 
36780
#line 36781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36781
} // closed Puma
 
36782
class CCExprResolve;
 
36783
class CExprResolve;
 
36784
class WinIfExists;
 
36785
class WinImportHandler;
 
36786
class WinMacros;
 
36787
class WinAsm;
 
36788
class WinDeclSpecs;
 
36789
class WinMemberExplSpec;
 
36790
class WinTypeKeywords;
 
36791
class WinFriend;
 
36792
class ExtAC;
 
36793
class ExtACBuilderCoupling;
 
36794
class ExtACSyntaxCoupling;
 
36795
class ExtACTree;
 
36796
class ExtACKeywords;
 
36797
class ExtGnu;
 
36798
class PragmaOnceUnitState;
 
36799
class PragmaOnce;
 
36800
class CMatchSyntax;
 
36801
namespace Puma {
 
36802
 
 
36803
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36804
class CT_Enumerator : public CT_Decl, public CSemObject {
 
36805
#line 36806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36806
  friend class ::CCExprResolve;
 
36807
  friend class ::CExprResolve;
 
36808
  friend class ::WinIfExists;
 
36809
  friend class ::WinImportHandler;
 
36810
  friend class ::WinMacros;
 
36811
  friend class ::WinAsm;
 
36812
  friend class ::WinDeclSpecs;
 
36813
  friend class ::WinMemberExplSpec;
 
36814
  friend class ::WinTypeKeywords;
 
36815
  friend class ::WinFriend;
 
36816
  friend class ::ExtAC;
 
36817
  friend class ::ExtACBuilderCoupling;
 
36818
  friend class ::ExtACSyntaxCoupling;
 
36819
  friend class ::ExtACTree;
 
36820
  friend class ::ExtACKeywords;
 
36821
  friend class ::ExtGnu;
 
36822
  friend class ::PragmaOnceUnitState;
 
36823
  friend class ::PragmaOnce;
 
36824
  friend class ::CMatchSyntax;
 
36825
 
 
36826
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36827
 
 
36828
  CTree *sons[2]; // name, init
 
36829
 
 
36830
public:
 
36831
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
36832
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36833
  static const char *NodeId ();
 
36834
  /** Get the name of the node. Can be compared with NodeId(). */
 
36835
  const char *NodeName () const { return NodeId (); }
 
36836
  /** Get the number of sons. */
 
36837
  int Sons () const { return CTree::Sons (sons, 2); }
 
36838
  /** Get the n-th son.
 
36839
   *  \param n The index of the son.
 
36840
   *  \return The n-th son or NULL. */
 
36841
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
36842
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
36843
  void Initializer (CTree *i) { AddSon (sons[1], i); }
 
36844
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
36845
  /** Replace a son.
 
36846
   *  \param old_son The son to replace.
 
36847
   *  \param new_son The new son. */
 
36848
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
36849
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
 
36850
  }
 
36851
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
36852
};
 
36853
 
 
36854
 
 
36855
#line 36856 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36856
} // closed Puma
 
36857
class CCExprResolve;
 
36858
class CExprResolve;
 
36859
class WinIfExists;
 
36860
class WinImportHandler;
 
36861
class WinMacros;
 
36862
class WinAsm;
 
36863
class WinDeclSpecs;
 
36864
class WinMemberExplSpec;
 
36865
class WinTypeKeywords;
 
36866
class WinFriend;
 
36867
class ExtAC;
 
36868
class ExtACBuilderCoupling;
 
36869
class ExtACSyntaxCoupling;
 
36870
class ExtACTree;
 
36871
class ExtACKeywords;
 
36872
class ExtGnu;
 
36873
class PragmaOnceUnitState;
 
36874
class PragmaOnce;
 
36875
class CMatchSyntax;
 
36876
namespace Puma {
 
36877
 
 
36878
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36879
class CT_FctDef : public CT_Decl, public CSemObject {
 
36880
#line 36881 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36881
  friend class ::CCExprResolve;
 
36882
  friend class ::CExprResolve;
 
36883
  friend class ::WinIfExists;
 
36884
  friend class ::WinImportHandler;
 
36885
  friend class ::WinMacros;
 
36886
  friend class ::WinAsm;
 
36887
  friend class ::WinDeclSpecs;
 
36888
  friend class ::WinMemberExplSpec;
 
36889
  friend class ::WinTypeKeywords;
 
36890
  friend class ::WinFriend;
 
36891
  friend class ::ExtAC;
 
36892
  friend class ::ExtACBuilderCoupling;
 
36893
  friend class ::ExtACSyntaxCoupling;
 
36894
  friend class ::ExtACTree;
 
36895
  friend class ::ExtACKeywords;
 
36896
  friend class ::ExtGnu;
 
36897
  friend class ::PragmaOnceUnitState;
 
36898
  friend class ::PragmaOnce;
 
36899
  friend class ::CMatchSyntax;
 
36900
 
 
36901
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36902
 
 
36903
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
 
36904
 
 
36905
public:
 
36906
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
 
36907
             CTree *b, CTree *hs) {
 
36908
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
36909
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
36910
    AddSon (sons[6], hs); 
 
36911
  }
 
36912
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36913
  static const char *NodeId ();
 
36914
  /** Get the name of the node. Can be compared with NodeId(). */
 
36915
  const char *NodeName () const { return NodeId (); }
 
36916
  /** Get the number of sons. */
 
36917
  int Sons () const { return CTree::Sons (sons, 7); }
 
36918
  /** Get the n-th son.
 
36919
   *  \param n The index of the son.
 
36920
   *  \return The n-th son or NULL. */
 
36921
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
36922
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
36923
  CTree *Declarator () const { return sons[1]; }
 
36924
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
 
36925
  CTree *CtorInit () const { return sons[3]; }
 
36926
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
 
36927
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
 
36928
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
 
36929
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
36930
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
36931
  void Body (CTree *b) { AddSon (sons[5], b); }
 
36932
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
 
36933
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
36934
    AddSon (sons[5], b); AddSon (sons[6], h);
 
36935
  }
 
36936
  /** Replace a son.
 
36937
   *  \param old_son The son to replace.
 
36938
   *  \param new_son The new son. */
 
36939
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
36940
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
36941
  }
 
36942
};
 
36943
 
 
36944
 
 
36945
#line 36946 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36946
} // closed Puma
 
36947
class CCExprResolve;
 
36948
class CExprResolve;
 
36949
class WinIfExists;
 
36950
class WinImportHandler;
 
36951
class WinMacros;
 
36952
class WinAsm;
 
36953
class WinDeclSpecs;
 
36954
class WinMemberExplSpec;
 
36955
class WinTypeKeywords;
 
36956
class WinFriend;
 
36957
class ExtAC;
 
36958
class ExtACBuilderCoupling;
 
36959
class ExtACSyntaxCoupling;
 
36960
class ExtACTree;
 
36961
class ExtACKeywords;
 
36962
class ExtGnu;
 
36963
class PragmaOnceUnitState;
 
36964
class PragmaOnce;
 
36965
class CMatchSyntax;
 
36966
namespace Puma {
 
36967
 
 
36968
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36969
class CT_AsmDef : public CT_Decl {
 
36970
#line 36971 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
36971
  friend class ::CCExprResolve;
 
36972
  friend class ::CExprResolve;
 
36973
  friend class ::WinIfExists;
 
36974
  friend class ::WinImportHandler;
 
36975
  friend class ::WinMacros;
 
36976
  friend class ::WinAsm;
 
36977
  friend class ::WinDeclSpecs;
 
36978
  friend class ::WinMemberExplSpec;
 
36979
  friend class ::WinTypeKeywords;
 
36980
  friend class ::WinFriend;
 
36981
  friend class ::ExtAC;
 
36982
  friend class ::ExtACBuilderCoupling;
 
36983
  friend class ::ExtACSyntaxCoupling;
 
36984
  friend class ::ExtACTree;
 
36985
  friend class ::ExtACKeywords;
 
36986
  friend class ::ExtGnu;
 
36987
  friend class ::PragmaOnceUnitState;
 
36988
  friend class ::PragmaOnce;
 
36989
  friend class ::CMatchSyntax;
 
36990
 
 
36991
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36992
 
 
36993
  CTree *sons[5]; // asm, open, str, close, semi_colon
 
36994
 
 
36995
public:
 
36996
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
 
36997
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
36998
    AddSon (sons[3], c); AddSon (sons[4], sc); 
 
36999
  }
 
37000
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37001
  static const char *NodeId ();
 
37002
  /** Get the name of the node. Can be compared with NodeId(). */
 
37003
  const char *NodeName () const { return NodeId (); }
 
37004
  /** Get the number of sons. */
 
37005
  int Sons () const { return 5; }
 
37006
  /** Get the n-th son.
 
37007
   *  \param n The index of the son.
 
37008
   *  \return The n-th son or NULL. */
 
37009
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
37010
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
37011
  /** Replace a son.
 
37012
   *  \param old_son The son to replace.
 
37013
   *  \param new_son The new son. */
 
37014
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
37015
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
37016
  }
 
37017
};
 
37018
 
 
37019
 
 
37020
#line 37021 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37021
} // closed Puma
 
37022
class CCExprResolve;
 
37023
class CExprResolve;
 
37024
class WinIfExists;
 
37025
class WinImportHandler;
 
37026
class WinMacros;
 
37027
class WinAsm;
 
37028
class WinDeclSpecs;
 
37029
class WinMemberExplSpec;
 
37030
class WinTypeKeywords;
 
37031
class WinFriend;
 
37032
class ExtAC;
 
37033
class ExtACBuilderCoupling;
 
37034
class ExtACSyntaxCoupling;
 
37035
class ExtACTree;
 
37036
class ExtACKeywords;
 
37037
class ExtGnu;
 
37038
class PragmaOnceUnitState;
 
37039
class PragmaOnce;
 
37040
class CMatchSyntax;
 
37041
namespace Puma {
 
37042
 
 
37043
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37044
class CT_Handler : public CT_Decl, public CSemScope {
 
37045
#line 37046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37046
  friend class ::CCExprResolve;
 
37047
  friend class ::CExprResolve;
 
37048
  friend class ::WinIfExists;
 
37049
  friend class ::WinImportHandler;
 
37050
  friend class ::WinMacros;
 
37051
  friend class ::WinAsm;
 
37052
  friend class ::WinDeclSpecs;
 
37053
  friend class ::WinMemberExplSpec;
 
37054
  friend class ::WinTypeKeywords;
 
37055
  friend class ::WinFriend;
 
37056
  friend class ::ExtAC;
 
37057
  friend class ::ExtACBuilderCoupling;
 
37058
  friend class ::ExtACSyntaxCoupling;
 
37059
  friend class ::ExtACTree;
 
37060
  friend class ::ExtACKeywords;
 
37061
  friend class ::ExtGnu;
 
37062
  friend class ::PragmaOnceUnitState;
 
37063
  friend class ::PragmaOnce;
 
37064
  friend class ::CMatchSyntax;
 
37065
 
 
37066
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37067
 
 
37068
  CTree *sons[3]; // catch, exception_decl, stmt
 
37069
 
 
37070
public:
 
37071
  CT_Handler (CTree *c, CTree *e, CTree *s) {
 
37072
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
 
37073
  }
 
37074
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37075
  static const char *NodeId ();
 
37076
  /** Get the name of the node. Can be compared with NodeId(). */
 
37077
  const char *NodeName () const { return NodeId (); }
 
37078
  /** Get the number of sons. */
 
37079
  int Sons () const { return 3; }
 
37080
  /** Get the n-th son.
 
37081
   *  \param n The index of the son.
 
37082
   *  \return The n-th son or NULL. */
 
37083
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
37084
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
37085
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
37086
  /** Replace a son.
 
37087
   *  \param old_son The son to replace.
 
37088
   *  \param new_son The new son. */
 
37089
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
37090
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
37091
  }
 
37092
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
37093
};
 
37094
 
 
37095
 
 
37096
#line 37097 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37097
} // closed Puma
 
37098
class CCExprResolve;
 
37099
class CExprResolve;
 
37100
class WinIfExists;
 
37101
class WinImportHandler;
 
37102
class WinMacros;
 
37103
class WinAsm;
 
37104
class WinDeclSpecs;
 
37105
class WinMemberExplSpec;
 
37106
class WinTypeKeywords;
 
37107
class WinFriend;
 
37108
class ExtAC;
 
37109
class ExtACBuilderCoupling;
 
37110
class ExtACSyntaxCoupling;
 
37111
class ExtACTree;
 
37112
class ExtACKeywords;
 
37113
class ExtGnu;
 
37114
class PragmaOnceUnitState;
 
37115
class PragmaOnce;
 
37116
class CMatchSyntax;
 
37117
namespace Puma {
 
37118
 
 
37119
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37120
class CT_LinkageSpec : public CT_Decl {
 
37121
#line 37122 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37122
  friend class ::CCExprResolve;
 
37123
  friend class ::CExprResolve;
 
37124
  friend class ::WinIfExists;
 
37125
  friend class ::WinImportHandler;
 
37126
  friend class ::WinMacros;
 
37127
  friend class ::WinAsm;
 
37128
  friend class ::WinDeclSpecs;
 
37129
  friend class ::WinMemberExplSpec;
 
37130
  friend class ::WinTypeKeywords;
 
37131
  friend class ::WinFriend;
 
37132
  friend class ::ExtAC;
 
37133
  friend class ::ExtACBuilderCoupling;
 
37134
  friend class ::ExtACSyntaxCoupling;
 
37135
  friend class ::ExtACTree;
 
37136
  friend class ::ExtACKeywords;
 
37137
  friend class ::ExtGnu;
 
37138
  friend class ::PragmaOnceUnitState;
 
37139
  friend class ::PragmaOnce;
 
37140
  friend class ::CMatchSyntax;
 
37141
 
 
37142
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37143
 
 
37144
  CTree *sons[5]; // extern, str, open, decls, close
 
37145
 
 
37146
public:
 
37147
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
 
37148
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
37149
    AddSon (sons[3], d); AddSon (sons[4], c);
 
37150
    if (isList ())
 
37151
      ((CT_DeclList*)Decls ())->Linkage (this);
 
37152
    else
 
37153
      ((CT_Decl*)Decls ())->Linkage (this);
 
37154
  }
 
37155
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37156
  static const char *NodeId ();
 
37157
  /** Get the name of the node. Can be compared with NodeId(). */
 
37158
  const char *NodeName () const { return NodeId (); }
 
37159
  /** Get the number of sons. */
 
37160
  int Sons () const { return CTree::Sons (sons, 5); }
 
37161
  /** Get the n-th son.
 
37162
   *  \param n The index of the son.
 
37163
   *  \return The n-th son or NULL. */
 
37164
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
37165
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
 
37166
  CTree *Decls () const { return sons[3]; }
 
37167
  bool isList () const {
 
37168
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
 
37169
  }
 
37170
  /** Replace a son.
 
37171
   *  \param old_son The son to replace.
 
37172
   *  \param new_son The new son. */
 
37173
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
37174
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
37175
  }
 
37176
};
 
37177
 
 
37178
 
 
37179
#line 37180 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37180
} // closed Puma
 
37181
class CCExprResolve;
 
37182
class CExprResolve;
 
37183
class WinIfExists;
 
37184
class WinImportHandler;
 
37185
class WinMacros;
 
37186
class WinAsm;
 
37187
class WinDeclSpecs;
 
37188
class WinMemberExplSpec;
 
37189
class WinTypeKeywords;
 
37190
class WinFriend;
 
37191
class ExtAC;
 
37192
class ExtACBuilderCoupling;
 
37193
class ExtACSyntaxCoupling;
 
37194
class ExtACTree;
 
37195
class ExtACKeywords;
 
37196
class ExtGnu;
 
37197
class PragmaOnceUnitState;
 
37198
class PragmaOnce;
 
37199
class CMatchSyntax;
 
37200
namespace Puma {
 
37201
 
 
37202
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37203
class CT_ArgDecl : public CT_Decl, public CSemObject {
 
37204
#line 37205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37205
  friend class ::CCExprResolve;
 
37206
  friend class ::CExprResolve;
 
37207
  friend class ::WinIfExists;
 
37208
  friend class ::WinImportHandler;
 
37209
  friend class ::WinMacros;
 
37210
  friend class ::WinAsm;
 
37211
  friend class ::WinDeclSpecs;
 
37212
  friend class ::WinMemberExplSpec;
 
37213
  friend class ::WinTypeKeywords;
 
37214
  friend class ::WinFriend;
 
37215
  friend class ::ExtAC;
 
37216
  friend class ::ExtACBuilderCoupling;
 
37217
  friend class ::ExtACSyntaxCoupling;
 
37218
  friend class ::ExtACTree;
 
37219
  friend class ::ExtACKeywords;
 
37220
  friend class ::ExtGnu;
 
37221
  friend class ::PragmaOnceUnitState;
 
37222
  friend class ::PragmaOnce;
 
37223
  friend class ::CMatchSyntax;
 
37224
 
 
37225
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37226
 
 
37227
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
 
37228
 
 
37229
public:
 
37230
  CT_ArgDecl (CTree *dsl, CTree *d) {
 
37231
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
37232
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
 
37233
  }
 
37234
  CT_ArgDecl (CTree *ellipsis) {
 
37235
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
37236
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
 
37237
  }
 
37238
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37239
  static const char *NodeId ();
 
37240
  /** Get the name of the node. Can be compared with NodeId(). */
 
37241
  const char *NodeName () const { return NodeId (); }
 
37242
  /** Get the number of sons. */
 
37243
  int Sons () const { return CTree::Sons (sons, 4); }
 
37244
  /** Get the n-th son.
 
37245
   *  \param n The index of the son.
 
37246
   *  \return The n-th son or NULL. */
 
37247
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
37248
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
37249
  CTree *Declarator () const { return sons[1]; }
 
37250
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
37251
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
 
37252
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
37253
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
37254
  /** Replace a son.
 
37255
   *  \param old_son The son to replace.
 
37256
   *  \param new_son The new son. */
 
37257
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
37258
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
37259
  }
 
37260
};
 
37261
 
 
37262
 
 
37263
#line 37264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37264
} // closed Puma
 
37265
class CCExprResolve;
 
37266
class CExprResolve;
 
37267
class WinIfExists;
 
37268
class WinImportHandler;
 
37269
class WinMacros;
 
37270
class WinAsm;
 
37271
class WinDeclSpecs;
 
37272
class WinMemberExplSpec;
 
37273
class WinTypeKeywords;
 
37274
class WinFriend;
 
37275
class ExtAC;
 
37276
class ExtACBuilderCoupling;
 
37277
class ExtACSyntaxCoupling;
 
37278
class ExtACTree;
 
37279
class ExtACKeywords;
 
37280
class ExtGnu;
 
37281
class PragmaOnceUnitState;
 
37282
class PragmaOnce;
 
37283
class CMatchSyntax;
 
37284
namespace Puma {
 
37285
 
 
37286
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37287
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
 
37288
#line 37289 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37289
  friend class ::CCExprResolve;
 
37290
  friend class ::CExprResolve;
 
37291
  friend class ::WinIfExists;
 
37292
  friend class ::WinImportHandler;
 
37293
  friend class ::WinMacros;
 
37294
  friend class ::WinAsm;
 
37295
  friend class ::WinDeclSpecs;
 
37296
  friend class ::WinMemberExplSpec;
 
37297
  friend class ::WinTypeKeywords;
 
37298
  friend class ::WinFriend;
 
37299
  friend class ::ExtAC;
 
37300
  friend class ::ExtACBuilderCoupling;
 
37301
  friend class ::ExtACSyntaxCoupling;
 
37302
  friend class ::ExtACTree;
 
37303
  friend class ::ExtACKeywords;
 
37304
  friend class ::ExtGnu;
 
37305
  friend class ::PragmaOnceUnitState;
 
37306
  friend class ::PragmaOnce;
 
37307
  friend class ::CMatchSyntax;
 
37308
 
 
37309
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37310
 
 
37311
public:
 
37312
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
 
37313
   CT_DeclList (size, 2) { AddProperties (props); }
 
37314
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37315
  static const char *NodeId ();
 
37316
  /** Get the name of the node. Can be compared with NodeId(). */
 
37317
  const char *NodeName () const { return NodeId (); }
 
37318
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
37319
};
 
37320
 
 
37321
 
 
37322
#line 37323 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37323
} // closed Puma
 
37324
class CCExprResolve;
 
37325
class CExprResolve;
 
37326
class WinIfExists;
 
37327
class WinImportHandler;
 
37328
class WinMacros;
 
37329
class WinAsm;
 
37330
class WinDeclSpecs;
 
37331
class WinMemberExplSpec;
 
37332
class WinTypeKeywords;
 
37333
class WinFriend;
 
37334
class ExtAC;
 
37335
class ExtACBuilderCoupling;
 
37336
class ExtACSyntaxCoupling;
 
37337
class ExtACTree;
 
37338
class ExtACKeywords;
 
37339
class ExtGnu;
 
37340
class PragmaOnceUnitState;
 
37341
class PragmaOnce;
 
37342
class CMatchSyntax;
 
37343
namespace Puma {
 
37344
 
 
37345
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37346
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
 
37347
#line 37348 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37348
  friend class ::CCExprResolve;
 
37349
  friend class ::CExprResolve;
 
37350
  friend class ::WinIfExists;
 
37351
  friend class ::WinImportHandler;
 
37352
  friend class ::WinMacros;
 
37353
  friend class ::WinAsm;
 
37354
  friend class ::WinDeclSpecs;
 
37355
  friend class ::WinMemberExplSpec;
 
37356
  friend class ::WinTypeKeywords;
 
37357
  friend class ::WinFriend;
 
37358
  friend class ::ExtAC;
 
37359
  friend class ::ExtACBuilderCoupling;
 
37360
  friend class ::ExtACSyntaxCoupling;
 
37361
  friend class ::ExtACTree;
 
37362
  friend class ::ExtACKeywords;
 
37363
  friend class ::ExtGnu;
 
37364
  friend class ::PragmaOnceUnitState;
 
37365
  friend class ::PragmaOnce;
 
37366
  friend class ::CMatchSyntax;
 
37367
 
 
37368
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37369
 
 
37370
public:
 
37371
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
37372
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37373
  static const char *NodeId ();
 
37374
  /** Get the name of the node. Can be compared with NodeId(). */
 
37375
  const char *NodeName () const { return NodeId (); }
 
37376
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
37377
};
 
37378
 
 
37379
 
 
37380
#line 37381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37381
} // closed Puma
 
37382
class CCExprResolve;
 
37383
class CExprResolve;
 
37384
class WinIfExists;
 
37385
class WinImportHandler;
 
37386
class WinMacros;
 
37387
class WinAsm;
 
37388
class WinDeclSpecs;
 
37389
class WinMemberExplSpec;
 
37390
class WinTypeKeywords;
 
37391
class WinFriend;
 
37392
class ExtAC;
 
37393
class ExtACBuilderCoupling;
 
37394
class ExtACSyntaxCoupling;
 
37395
class ExtACTree;
 
37396
class ExtACKeywords;
 
37397
class ExtGnu;
 
37398
class PragmaOnceUnitState;
 
37399
class PragmaOnce;
 
37400
class CMatchSyntax;
 
37401
namespace Puma {
 
37402
 
 
37403
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37404
class CT_ArgNameList : public CT_ArgDeclList {
 
37405
#line 37406 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37406
  friend class ::CCExprResolve;
 
37407
  friend class ::CExprResolve;
 
37408
  friend class ::WinIfExists;
 
37409
  friend class ::WinImportHandler;
 
37410
  friend class ::WinMacros;
 
37411
  friend class ::WinAsm;
 
37412
  friend class ::WinDeclSpecs;
 
37413
  friend class ::WinMemberExplSpec;
 
37414
  friend class ::WinTypeKeywords;
 
37415
  friend class ::WinFriend;
 
37416
  friend class ::ExtAC;
 
37417
  friend class ::ExtACBuilderCoupling;
 
37418
  friend class ::ExtACSyntaxCoupling;
 
37419
  friend class ::ExtACTree;
 
37420
  friend class ::ExtACKeywords;
 
37421
  friend class ::ExtGnu;
 
37422
  friend class ::PragmaOnceUnitState;
 
37423
  friend class ::PragmaOnce;
 
37424
  friend class ::CMatchSyntax;
 
37425
 
 
37426
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37427
 
 
37428
public:
 
37429
  CT_ArgNameList () : CT_ArgDeclList () {}
 
37430
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37431
  static const char *NodeId ();
 
37432
  /** Get the name of the node. Can be compared with NodeId(). */
 
37433
  const char *NodeName () const { return NodeId (); }
 
37434
};
 
37435
 
 
37436
 
 
37437
#line 37438 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37438
} // closed Puma
 
37439
class CCExprResolve;
 
37440
class CExprResolve;
 
37441
class WinIfExists;
 
37442
class WinImportHandler;
 
37443
class WinMacros;
 
37444
class WinAsm;
 
37445
class WinDeclSpecs;
 
37446
class WinMemberExplSpec;
 
37447
class WinTypeKeywords;
 
37448
class WinFriend;
 
37449
class ExtAC;
 
37450
class ExtACBuilderCoupling;
 
37451
class ExtACSyntaxCoupling;
 
37452
class ExtACTree;
 
37453
class ExtACKeywords;
 
37454
class ExtGnu;
 
37455
class PragmaOnceUnitState;
 
37456
class PragmaOnce;
 
37457
class CMatchSyntax;
 
37458
namespace Puma {
 
37459
 
 
37460
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37461
class CT_NamespaceDef : public CT_Decl, public CSemObject {
 
37462
#line 37463 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37463
  friend class ::CCExprResolve;
 
37464
  friend class ::CExprResolve;
 
37465
  friend class ::WinIfExists;
 
37466
  friend class ::WinImportHandler;
 
37467
  friend class ::WinMacros;
 
37468
  friend class ::WinAsm;
 
37469
  friend class ::WinDeclSpecs;
 
37470
  friend class ::WinMemberExplSpec;
 
37471
  friend class ::WinTypeKeywords;
 
37472
  friend class ::WinFriend;
 
37473
  friend class ::ExtAC;
 
37474
  friend class ::ExtACBuilderCoupling;
 
37475
  friend class ::ExtACSyntaxCoupling;
 
37476
  friend class ::ExtACTree;
 
37477
  friend class ::ExtACKeywords;
 
37478
  friend class ::ExtGnu;
 
37479
  friend class ::PragmaOnceUnitState;
 
37480
  friend class ::PragmaOnce;
 
37481
  friend class ::CMatchSyntax;
 
37482
 
 
37483
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37484
 
 
37485
  CTree *sons[3]; // ns, name, members
 
37486
 
 
37487
public:
 
37488
  CT_NamespaceDef (CTree *n, CTree *nm) {
 
37489
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
 
37490
  }
 
37491
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
 
37492
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
 
37493
  }
 
37494
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37495
  static const char *NodeId ();
 
37496
  /** Get the name of the node. Can be compared with NodeId(). */
 
37497
  const char *NodeName () const { return NodeId (); }
 
37498
  /** Get the number of sons. */
 
37499
  int Sons () const { return CTree::Sons (sons, 3); }
 
37500
  /** Get the n-th son.
 
37501
   *  \param n The index of the son.
 
37502
   *  \return The n-th son or NULL. */
 
37503
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
37504
  void Members (CTree *m) { AddSon (sons[2], m); }
 
37505
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
 
37506
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
37507
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
37508
  /** Replace a son.
 
37509
   *  \param old_son The son to replace.
 
37510
   *  \param new_son The new son. */
 
37511
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
37512
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
37513
  }
 
37514
};
 
37515
 
 
37516
 
 
37517
#line 37518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37518
} // closed Puma
 
37519
class CCExprResolve;
 
37520
class CExprResolve;
 
37521
class WinIfExists;
 
37522
class WinImportHandler;
 
37523
class WinMacros;
 
37524
class WinAsm;
 
37525
class WinDeclSpecs;
 
37526
class WinMemberExplSpec;
 
37527
class WinTypeKeywords;
 
37528
class WinFriend;
 
37529
class ExtAC;
 
37530
class ExtACBuilderCoupling;
 
37531
class ExtACSyntaxCoupling;
 
37532
class ExtACTree;
 
37533
class ExtACKeywords;
 
37534
class ExtGnu;
 
37535
class PragmaOnceUnitState;
 
37536
class PragmaOnce;
 
37537
class CMatchSyntax;
 
37538
namespace Puma {
 
37539
 
 
37540
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37541
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
 
37542
#line 37543 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37543
  friend class ::CCExprResolve;
 
37544
  friend class ::CExprResolve;
 
37545
  friend class ::WinIfExists;
 
37546
  friend class ::WinImportHandler;
 
37547
  friend class ::WinMacros;
 
37548
  friend class ::WinAsm;
 
37549
  friend class ::WinDeclSpecs;
 
37550
  friend class ::WinMemberExplSpec;
 
37551
  friend class ::WinTypeKeywords;
 
37552
  friend class ::WinFriend;
 
37553
  friend class ::ExtAC;
 
37554
  friend class ::ExtACBuilderCoupling;
 
37555
  friend class ::ExtACSyntaxCoupling;
 
37556
  friend class ::ExtACTree;
 
37557
  friend class ::ExtACKeywords;
 
37558
  friend class ::ExtGnu;
 
37559
  friend class ::PragmaOnceUnitState;
 
37560
  friend class ::PragmaOnce;
 
37561
  friend class ::CMatchSyntax;
 
37562
 
 
37563
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37564
 
 
37565
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
 
37566
 
 
37567
public:
 
37568
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
 
37569
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
37570
    AddSon (sons[3], nm); AddSon (sons[4], s); 
 
37571
  }
 
37572
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37573
  static const char *NodeId ();
 
37574
  /** Get the name of the node. Can be compared with NodeId(). */
 
37575
  const char *NodeName () const { return NodeId (); }
 
37576
  /** Get the number of sons. */
 
37577
  int Sons () const { return 5; }
 
37578
  /** Get the n-th son.
 
37579
   *  \param n The index of the son.
 
37580
   *  \return The n-th son or NULL. */
 
37581
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
37582
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
 
37583
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
 
37584
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
37585
  /** Replace a son.
 
37586
   *  \param old_son The son to replace.
 
37587
   *  \param new_son The new son. */
 
37588
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
37589
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
37590
  }
 
37591
};
 
37592
 
 
37593
 
 
37594
#line 37595 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37595
} // closed Puma
 
37596
class CCExprResolve;
 
37597
class CExprResolve;
 
37598
class WinIfExists;
 
37599
class WinImportHandler;
 
37600
class WinMacros;
 
37601
class WinAsm;
 
37602
class WinDeclSpecs;
 
37603
class WinMemberExplSpec;
 
37604
class WinTypeKeywords;
 
37605
class WinFriend;
 
37606
class ExtAC;
 
37607
class ExtACBuilderCoupling;
 
37608
class ExtACSyntaxCoupling;
 
37609
class ExtACTree;
 
37610
class ExtACKeywords;
 
37611
class ExtGnu;
 
37612
class PragmaOnceUnitState;
 
37613
class PragmaOnce;
 
37614
class CMatchSyntax;
 
37615
namespace Puma {
 
37616
 
 
37617
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37618
class CT_UsingDirective : public CT_Decl {
 
37619
#line 37620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37620
  friend class ::CCExprResolve;
 
37621
  friend class ::CExprResolve;
 
37622
  friend class ::WinIfExists;
 
37623
  friend class ::WinImportHandler;
 
37624
  friend class ::WinMacros;
 
37625
  friend class ::WinAsm;
 
37626
  friend class ::WinDeclSpecs;
 
37627
  friend class ::WinMemberExplSpec;
 
37628
  friend class ::WinTypeKeywords;
 
37629
  friend class ::WinFriend;
 
37630
  friend class ::ExtAC;
 
37631
  friend class ::ExtACBuilderCoupling;
 
37632
  friend class ::ExtACSyntaxCoupling;
 
37633
  friend class ::ExtACTree;
 
37634
  friend class ::ExtACKeywords;
 
37635
  friend class ::ExtGnu;
 
37636
  friend class ::PragmaOnceUnitState;
 
37637
  friend class ::PragmaOnce;
 
37638
  friend class ::CMatchSyntax;
 
37639
 
 
37640
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37641
 
 
37642
  CTree *sons[4]; // using, ns, name, semi_colon
 
37643
 
 
37644
public:
 
37645
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
 
37646
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
37647
    AddSon (sons[3], s); 
 
37648
  }
 
37649
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37650
  static const char *NodeId ();
 
37651
  /** Get the name of the node. Can be compared with NodeId(). */
 
37652
  const char *NodeName () const { return NodeId (); }
 
37653
  /** Get the number of sons. */
 
37654
  int Sons () const { return 4; }
 
37655
  /** Get the n-th son.
 
37656
   *  \param n The index of the son.
 
37657
   *  \return The n-th son or NULL. */
 
37658
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
37659
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
37660
  /** Replace a son.
 
37661
   *  \param old_son The son to replace.
 
37662
   *  \param new_son The new son. */
 
37663
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
37664
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
37665
  }
 
37666
};
 
37667
 
 
37668
/*****************************************************************************/
 
37669
/*                                                                           */
 
37670
/*                              Declarators                                  */
 
37671
/*                                                                           */
 
37672
/*****************************************************************************/
 
37673
 
 
37674
 
 
37675
#line 37676 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37676
} // closed Puma
 
37677
class CCExprResolve;
 
37678
class CExprResolve;
 
37679
class WinIfExists;
 
37680
class WinImportHandler;
 
37681
class WinMacros;
 
37682
class WinAsm;
 
37683
class WinDeclSpecs;
 
37684
class WinMemberExplSpec;
 
37685
class WinTypeKeywords;
 
37686
class WinFriend;
 
37687
class ExtAC;
 
37688
class ExtACBuilderCoupling;
 
37689
class ExtACSyntaxCoupling;
 
37690
class ExtACTree;
 
37691
class ExtACKeywords;
 
37692
class ExtGnu;
 
37693
class PragmaOnceUnitState;
 
37694
class PragmaOnce;
 
37695
class CMatchSyntax;
 
37696
namespace Puma {
 
37697
 
 
37698
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37699
class CT_Declarator : public CTree {
 
37700
#line 37701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37701
  friend class ::CCExprResolve;
 
37702
  friend class ::CExprResolve;
 
37703
  friend class ::WinIfExists;
 
37704
  friend class ::WinImportHandler;
 
37705
  friend class ::WinMacros;
 
37706
  friend class ::WinAsm;
 
37707
  friend class ::WinDeclSpecs;
 
37708
  friend class ::WinMemberExplSpec;
 
37709
  friend class ::WinTypeKeywords;
 
37710
  friend class ::WinFriend;
 
37711
  friend class ::ExtAC;
 
37712
  friend class ::ExtACBuilderCoupling;
 
37713
  friend class ::ExtACSyntaxCoupling;
 
37714
  friend class ::ExtACTree;
 
37715
  friend class ::ExtACKeywords;
 
37716
  friend class ::ExtGnu;
 
37717
  friend class ::PragmaOnceUnitState;
 
37718
  friend class ::PragmaOnce;
 
37719
  friend class ::CMatchSyntax;
 
37720
 
 
37721
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37722
 
 
37723
protected:
 
37724
  CT_Declarator () {}
 
37725
 
 
37726
public:
 
37727
  virtual CTree *Declarator () const = 0;
 
37728
  //classification function
 
37729
  virtual CT_Declarator *IsDeclarator () { return this; }
 
37730
  // locate the name node
 
37731
  CT_SimpleName *Name ();
 
37732
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
 
37733
};
 
37734
 
 
37735
 
 
37736
#line 37737 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37737
} // closed Puma
 
37738
class CCExprResolve;
 
37739
class CExprResolve;
 
37740
class WinIfExists;
 
37741
class WinImportHandler;
 
37742
class WinMacros;
 
37743
class WinAsm;
 
37744
class WinDeclSpecs;
 
37745
class WinMemberExplSpec;
 
37746
class WinTypeKeywords;
 
37747
class WinFriend;
 
37748
class ExtAC;
 
37749
class ExtACBuilderCoupling;
 
37750
class ExtACSyntaxCoupling;
 
37751
class ExtACTree;
 
37752
class ExtACKeywords;
 
37753
class ExtGnu;
 
37754
class PragmaOnceUnitState;
 
37755
class PragmaOnce;
 
37756
class CMatchSyntax;
 
37757
namespace Puma {
 
37758
 
 
37759
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37760
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
 
37761
#line 37762 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37762
  friend class ::CCExprResolve;
 
37763
  friend class ::CExprResolve;
 
37764
  friend class ::WinIfExists;
 
37765
  friend class ::WinImportHandler;
 
37766
  friend class ::WinMacros;
 
37767
  friend class ::WinAsm;
 
37768
  friend class ::WinDeclSpecs;
 
37769
  friend class ::WinMemberExplSpec;
 
37770
  friend class ::WinTypeKeywords;
 
37771
  friend class ::WinFriend;
 
37772
  friend class ::ExtAC;
 
37773
  friend class ::ExtACBuilderCoupling;
 
37774
  friend class ::ExtACSyntaxCoupling;
 
37775
  friend class ::ExtACTree;
 
37776
  friend class ::ExtACKeywords;
 
37777
  friend class ::ExtGnu;
 
37778
  friend class ::PragmaOnceUnitState;
 
37779
  friend class ::PragmaOnce;
 
37780
  friend class ::CMatchSyntax;
 
37781
 
 
37782
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37783
 
 
37784
  CTree *sons[3]; // declarator, ext, init
 
37785
  CTree *obj_decl;
 
37786
 
 
37787
public:
 
37788
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
37789
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
37790
    AddSon (obj_decl, 0); 
 
37791
  }
 
37792
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37793
  static const char *NodeId ();
 
37794
  /** Get the name of the node. Can be compared with NodeId(). */
 
37795
  const char *NodeName () const { return NodeId (); }
 
37796
  /** Get the number of sons. */
 
37797
  int Sons () const { return CTree::Sons (sons, 3); }
 
37798
  /** Get the n-th son.
 
37799
   *  \param n The index of the son.
 
37800
   *  \return The n-th son or NULL. */
 
37801
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
37802
  CTree *Declarator () const { return sons[0]; }
 
37803
  CTree *Extension () const { return sons[1]; }
 
37804
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
37805
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
37806
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
37807
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
37808
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
37809
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
37810
  /** Replace a son.
 
37811
   *  \param old_son The son to replace.
 
37812
   *  \param new_son The new son. */
 
37813
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
37814
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
37815
  }
 
37816
};
 
37817
 
 
37818
 
 
37819
#line 37820 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37820
} // closed Puma
 
37821
class CCExprResolve;
 
37822
class CExprResolve;
 
37823
class WinIfExists;
 
37824
class WinImportHandler;
 
37825
class WinMacros;
 
37826
class WinAsm;
 
37827
class WinDeclSpecs;
 
37828
class WinMemberExplSpec;
 
37829
class WinTypeKeywords;
 
37830
class WinFriend;
 
37831
class ExtAC;
 
37832
class ExtACBuilderCoupling;
 
37833
class ExtACSyntaxCoupling;
 
37834
class ExtACTree;
 
37835
class ExtACKeywords;
 
37836
class ExtGnu;
 
37837
class PragmaOnceUnitState;
 
37838
class PragmaOnce;
 
37839
class CMatchSyntax;
 
37840
namespace Puma {
 
37841
 
 
37842
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37843
class CT_BracedDeclarator : public CT_Declarator {
 
37844
#line 37845 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37845
  friend class ::CCExprResolve;
 
37846
  friend class ::CExprResolve;
 
37847
  friend class ::WinIfExists;
 
37848
  friend class ::WinImportHandler;
 
37849
  friend class ::WinMacros;
 
37850
  friend class ::WinAsm;
 
37851
  friend class ::WinDeclSpecs;
 
37852
  friend class ::WinMemberExplSpec;
 
37853
  friend class ::WinTypeKeywords;
 
37854
  friend class ::WinFriend;
 
37855
  friend class ::ExtAC;
 
37856
  friend class ::ExtACBuilderCoupling;
 
37857
  friend class ::ExtACSyntaxCoupling;
 
37858
  friend class ::ExtACTree;
 
37859
  friend class ::ExtACKeywords;
 
37860
  friend class ::ExtGnu;
 
37861
  friend class ::PragmaOnceUnitState;
 
37862
  friend class ::PragmaOnce;
 
37863
  friend class ::CMatchSyntax;
 
37864
 
 
37865
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37866
 
 
37867
  CTree *sons[4]; // open, win_specs, declarator, close
 
37868
 
 
37869
public:
 
37870
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
 
37871
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
37872
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
37873
  }
 
37874
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
 
37875
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
37876
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
37877
  }
 
37878
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37879
  static const char *NodeId ();
 
37880
  /** Get the name of the node. Can be compared with NodeId(). */
 
37881
  const char *NodeName () const { return NodeId (); }
 
37882
  /** Get the number of sons. */
 
37883
  int Sons () const { return CTree::Sons (sons, 4); }
 
37884
  /** Get the n-th son.
 
37885
   *  \param n The index of the son.
 
37886
   *  \return The n-th son or NULL. */
 
37887
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
37888
  CTree *Declarator () const { return sons[2]; }
 
37889
  /** Replace a son.
 
37890
   *  \param old_son The son to replace.
 
37891
   *  \param new_son The new son. */
 
37892
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
37893
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
37894
  }
 
37895
};
 
37896
 
 
37897
 
 
37898
#line 37899 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37899
} // closed Puma
 
37900
class CCExprResolve;
 
37901
class CExprResolve;
 
37902
class WinIfExists;
 
37903
class WinImportHandler;
 
37904
class WinMacros;
 
37905
class WinAsm;
 
37906
class WinDeclSpecs;
 
37907
class WinMemberExplSpec;
 
37908
class WinTypeKeywords;
 
37909
class WinFriend;
 
37910
class ExtAC;
 
37911
class ExtACBuilderCoupling;
 
37912
class ExtACSyntaxCoupling;
 
37913
class ExtACTree;
 
37914
class ExtACKeywords;
 
37915
class ExtGnu;
 
37916
class PragmaOnceUnitState;
 
37917
class PragmaOnce;
 
37918
class CMatchSyntax;
 
37919
namespace Puma {
 
37920
 
 
37921
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37922
class CT_ArrayDelimiter : public CTree {
 
37923
#line 37924 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37924
  friend class ::CCExprResolve;
 
37925
  friend class ::CExprResolve;
 
37926
  friend class ::WinIfExists;
 
37927
  friend class ::WinImportHandler;
 
37928
  friend class ::WinMacros;
 
37929
  friend class ::WinAsm;
 
37930
  friend class ::WinDeclSpecs;
 
37931
  friend class ::WinMemberExplSpec;
 
37932
  friend class ::WinTypeKeywords;
 
37933
  friend class ::WinFriend;
 
37934
  friend class ::ExtAC;
 
37935
  friend class ::ExtACBuilderCoupling;
 
37936
  friend class ::ExtACSyntaxCoupling;
 
37937
  friend class ::ExtACTree;
 
37938
  friend class ::ExtACKeywords;
 
37939
  friend class ::ExtGnu;
 
37940
  friend class ::PragmaOnceUnitState;
 
37941
  friend class ::PragmaOnce;
 
37942
  friend class ::CMatchSyntax;
 
37943
 
 
37944
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37945
 
 
37946
  CTree *sons[4]; // star, static, quals, expr
 
37947
  bool pos0;
 
37948
 
 
37949
public:
 
37950
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
 
37951
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
37952
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
 
37953
  }
 
37954
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37955
  static const char *NodeId ();
 
37956
  /** Get the name of the node. Can be compared with NodeId(). */
 
37957
  const char *NodeName () const { return NodeId (); }
 
37958
  /** Get the number of sons. */
 
37959
  int Sons () const { return CTree::Sons (sons, 4); }
 
37960
  /** Get the n-th son.
 
37961
   *  \param n The index of the son.
 
37962
   *  \return The n-th son or NULL. */
 
37963
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
37964
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
 
37965
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
 
37966
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
 
37967
  CTree *Expr () const { return sons[3]; }
 
37968
  /** Replace a son.
 
37969
   *  \param old_son The son to replace.
 
37970
   *  \param new_son The new son. */
 
37971
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
37972
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
37973
  }
 
37974
};
 
37975
 
 
37976
 
 
37977
#line 37978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
37978
} // closed Puma
 
37979
class CCExprResolve;
 
37980
class CExprResolve;
 
37981
class WinIfExists;
 
37982
class WinImportHandler;
 
37983
class WinMacros;
 
37984
class WinAsm;
 
37985
class WinDeclSpecs;
 
37986
class WinMemberExplSpec;
 
37987
class WinTypeKeywords;
 
37988
class WinFriend;
 
37989
class ExtAC;
 
37990
class ExtACBuilderCoupling;
 
37991
class ExtACSyntaxCoupling;
 
37992
class ExtACTree;
 
37993
class ExtACKeywords;
 
37994
class ExtGnu;
 
37995
class PragmaOnceUnitState;
 
37996
class PragmaOnce;
 
37997
class CMatchSyntax;
 
37998
namespace Puma {
 
37999
 
 
38000
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38001
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
 
38002
#line 38003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38003
  friend class ::CCExprResolve;
 
38004
  friend class ::CExprResolve;
 
38005
  friend class ::WinIfExists;
 
38006
  friend class ::WinImportHandler;
 
38007
  friend class ::WinMacros;
 
38008
  friend class ::WinAsm;
 
38009
  friend class ::WinDeclSpecs;
 
38010
  friend class ::WinMemberExplSpec;
 
38011
  friend class ::WinTypeKeywords;
 
38012
  friend class ::WinFriend;
 
38013
  friend class ::ExtAC;
 
38014
  friend class ::ExtACBuilderCoupling;
 
38015
  friend class ::ExtACSyntaxCoupling;
 
38016
  friend class ::ExtACTree;
 
38017
  friend class ::ExtACKeywords;
 
38018
  friend class ::ExtGnu;
 
38019
  friend class ::PragmaOnceUnitState;
 
38020
  friend class ::PragmaOnce;
 
38021
  friend class ::CMatchSyntax;
 
38022
 
 
38023
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38024
 
 
38025
  CTree *sons[4]; // declarator, open, delim, close
 
38026
 
 
38027
public:
 
38028
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
 
38029
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
38030
    AddSon (sons[2], ad); AddSon (sons[3], c); 
 
38031
  }
 
38032
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38033
  static const char *NodeId ();
 
38034
  /** Get the name of the node. Can be compared with NodeId(). */
 
38035
  const char *NodeName () const { return NodeId (); }
 
38036
  /** Get the number of sons. */
 
38037
  int Sons () const { return 4; }
 
38038
  /** Get the n-th son.
 
38039
   *  \param n The index of the son.
 
38040
   *  \return The n-th son or NULL. */
 
38041
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
38042
  CTree *Declarator () const { return sons[0]; }
 
38043
  CT_ArrayDelimiter *Delimiter () const 
 
38044
   { return (CT_ArrayDelimiter*)sons[2]; }
 
38045
  /** Replace a son.
 
38046
   *  \param old_son The son to replace.
 
38047
   *  \param new_son The new son. */
 
38048
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
38049
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
38050
  }
 
38051
  CTypeInfo *Type () const { return type; }
 
38052
  CExprValue *Value () const { return value; }
 
38053
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
38054
};
 
38055
 
 
38056
 
 
38057
#line 38058 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38058
} // closed Puma
 
38059
class CCExprResolve;
 
38060
class CExprResolve;
 
38061
class WinIfExists;
 
38062
class WinImportHandler;
 
38063
class WinMacros;
 
38064
class WinAsm;
 
38065
class WinDeclSpecs;
 
38066
class WinMemberExplSpec;
 
38067
class WinTypeKeywords;
 
38068
class WinFriend;
 
38069
class ExtAC;
 
38070
class ExtACBuilderCoupling;
 
38071
class ExtACSyntaxCoupling;
 
38072
class ExtACTree;
 
38073
class ExtACKeywords;
 
38074
class ExtGnu;
 
38075
class PragmaOnceUnitState;
 
38076
class PragmaOnce;
 
38077
class CMatchSyntax;
 
38078
namespace Puma {
 
38079
 
 
38080
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38081
class CT_FctDeclarator : public CT_Declarator {
 
38082
#line 38083 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38083
  friend class ::CCExprResolve;
 
38084
  friend class ::CExprResolve;
 
38085
  friend class ::WinIfExists;
 
38086
  friend class ::WinImportHandler;
 
38087
  friend class ::WinMacros;
 
38088
  friend class ::WinAsm;
 
38089
  friend class ::WinDeclSpecs;
 
38090
  friend class ::WinMemberExplSpec;
 
38091
  friend class ::WinTypeKeywords;
 
38092
  friend class ::WinFriend;
 
38093
  friend class ::ExtAC;
 
38094
  friend class ::ExtACBuilderCoupling;
 
38095
  friend class ::ExtACSyntaxCoupling;
 
38096
  friend class ::ExtACTree;
 
38097
  friend class ::ExtACKeywords;
 
38098
  friend class ::ExtGnu;
 
38099
  friend class ::PragmaOnceUnitState;
 
38100
  friend class ::PragmaOnce;
 
38101
  friend class ::CMatchSyntax;
 
38102
 
 
38103
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38104
 
 
38105
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
 
38106
 
 
38107
public:
 
38108
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
 
38109
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
38110
    AddSon (sons[2], cv); AddSon (sons[3], es); 
 
38111
  }
 
38112
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38113
  static const char *NodeId ();
 
38114
  /** Get the name of the node. Can be compared with NodeId(). */
 
38115
  const char *NodeName () const { return NodeId (); }
 
38116
  /** Get the number of sons. */
 
38117
  int Sons () const { return CTree::Sons (sons, 4); }
 
38118
  /** Get the n-th son.
 
38119
   *  \param n The index of the son.
 
38120
   *  \return The n-th son or NULL. */
 
38121
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
38122
  CTree *Declarator () const { return sons[0]; }
 
38123
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
38124
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
 
38125
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
38126
  /** Replace a son.
 
38127
   *  \param old_son The son to replace.
 
38128
   *  \param new_son The new son. */
 
38129
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
38130
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
38131
  }
 
38132
};
 
38133
 
 
38134
 
 
38135
#line 38136 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38136
} // closed Puma
 
38137
class CCExprResolve;
 
38138
class CExprResolve;
 
38139
class WinIfExists;
 
38140
class WinImportHandler;
 
38141
class WinMacros;
 
38142
class WinAsm;
 
38143
class WinDeclSpecs;
 
38144
class WinMemberExplSpec;
 
38145
class WinTypeKeywords;
 
38146
class WinFriend;
 
38147
class ExtAC;
 
38148
class ExtACBuilderCoupling;
 
38149
class ExtACSyntaxCoupling;
 
38150
class ExtACTree;
 
38151
class ExtACKeywords;
 
38152
class ExtGnu;
 
38153
class PragmaOnceUnitState;
 
38154
class PragmaOnce;
 
38155
class CMatchSyntax;
 
38156
namespace Puma {
 
38157
 
 
38158
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38159
class CT_RefDeclarator : public CT_Declarator {
 
38160
#line 38161 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38161
  friend class ::CCExprResolve;
 
38162
  friend class ::CExprResolve;
 
38163
  friend class ::WinIfExists;
 
38164
  friend class ::WinImportHandler;
 
38165
  friend class ::WinMacros;
 
38166
  friend class ::WinAsm;
 
38167
  friend class ::WinDeclSpecs;
 
38168
  friend class ::WinMemberExplSpec;
 
38169
  friend class ::WinTypeKeywords;
 
38170
  friend class ::WinFriend;
 
38171
  friend class ::ExtAC;
 
38172
  friend class ::ExtACBuilderCoupling;
 
38173
  friend class ::ExtACSyntaxCoupling;
 
38174
  friend class ::ExtACTree;
 
38175
  friend class ::ExtACKeywords;
 
38176
  friend class ::ExtGnu;
 
38177
  friend class ::PragmaOnceUnitState;
 
38178
  friend class ::PragmaOnce;
 
38179
  friend class ::CMatchSyntax;
 
38180
 
 
38181
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38182
 
 
38183
  CTree *sons[2]; // ref, declarator
 
38184
 
 
38185
public:
 
38186
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
38187
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38188
  static const char *NodeId ();
 
38189
  /** Get the name of the node. Can be compared with NodeId(). */
 
38190
  const char *NodeName () const { return NodeId (); }
 
38191
  /** Get the number of sons. */
 
38192
  int Sons () const { return 2; }
 
38193
  /** Get the n-th son.
 
38194
   *  \param n The index of the son.
 
38195
   *  \return The n-th son or NULL. */
 
38196
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
38197
  CTree *Declarator () const { return sons[1]; }
 
38198
  /** Replace a son.
 
38199
   *  \param old_son The son to replace.
 
38200
   *  \param new_son The new son. */
 
38201
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
38202
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
38203
  }
 
38204
};
 
38205
 
 
38206
 
 
38207
#line 38208 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38208
} // closed Puma
 
38209
class CCExprResolve;
 
38210
class CExprResolve;
 
38211
class WinIfExists;
 
38212
class WinImportHandler;
 
38213
class WinMacros;
 
38214
class WinAsm;
 
38215
class WinDeclSpecs;
 
38216
class WinMemberExplSpec;
 
38217
class WinTypeKeywords;
 
38218
class WinFriend;
 
38219
class ExtAC;
 
38220
class ExtACBuilderCoupling;
 
38221
class ExtACSyntaxCoupling;
 
38222
class ExtACTree;
 
38223
class ExtACKeywords;
 
38224
class ExtGnu;
 
38225
class PragmaOnceUnitState;
 
38226
class PragmaOnce;
 
38227
class CMatchSyntax;
 
38228
namespace Puma {
 
38229
 
 
38230
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38231
class CT_PtrDeclarator : public CT_Declarator {
 
38232
#line 38233 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38233
  friend class ::CCExprResolve;
 
38234
  friend class ::CExprResolve;
 
38235
  friend class ::WinIfExists;
 
38236
  friend class ::WinImportHandler;
 
38237
  friend class ::WinMacros;
 
38238
  friend class ::WinAsm;
 
38239
  friend class ::WinDeclSpecs;
 
38240
  friend class ::WinMemberExplSpec;
 
38241
  friend class ::WinTypeKeywords;
 
38242
  friend class ::WinFriend;
 
38243
  friend class ::ExtAC;
 
38244
  friend class ::ExtACBuilderCoupling;
 
38245
  friend class ::ExtACSyntaxCoupling;
 
38246
  friend class ::ExtACTree;
 
38247
  friend class ::ExtACKeywords;
 
38248
  friend class ::ExtGnu;
 
38249
  friend class ::PragmaOnceUnitState;
 
38250
  friend class ::PragmaOnce;
 
38251
  friend class ::CMatchSyntax;
 
38252
 
 
38253
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38254
 
 
38255
  CTree *sons[3]; // ptr, cv_quals, declarator
 
38256
 
 
38257
public:
 
38258
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
 
38259
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
 
38260
  }
 
38261
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38262
  static const char *NodeId ();
 
38263
  /** Get the name of the node. Can be compared with NodeId(). */
 
38264
  const char *NodeName () const { return NodeId (); }
 
38265
  /** Get the number of sons. */
 
38266
  int Sons () const { return CTree::Sons (sons, 3); }
 
38267
  /** Get the n-th son.
 
38268
   *  \param n The index of the son.
 
38269
   *  \return The n-th son or NULL. */
 
38270
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
38271
  CTree *Declarator () const { return sons[2]; }
 
38272
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
38273
  /** Replace a son.
 
38274
   *  \param old_son The son to replace.
 
38275
   *  \param new_son The new son. */
 
38276
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
38277
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
38278
  }
 
38279
};
 
38280
 
 
38281
 
 
38282
#line 38283 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38283
} // closed Puma
 
38284
class CCExprResolve;
 
38285
class CExprResolve;
 
38286
class WinIfExists;
 
38287
class WinImportHandler;
 
38288
class WinMacros;
 
38289
class WinAsm;
 
38290
class WinDeclSpecs;
 
38291
class WinMemberExplSpec;
 
38292
class WinTypeKeywords;
 
38293
class WinFriend;
 
38294
class ExtAC;
 
38295
class ExtACBuilderCoupling;
 
38296
class ExtACSyntaxCoupling;
 
38297
class ExtACTree;
 
38298
class ExtACKeywords;
 
38299
class ExtGnu;
 
38300
class PragmaOnceUnitState;
 
38301
class PragmaOnce;
 
38302
class CMatchSyntax;
 
38303
namespace Puma {
 
38304
 
 
38305
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38306
class CT_MembPtrDeclarator : public CT_Declarator {
 
38307
#line 38308 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38308
  friend class ::CCExprResolve;
 
38309
  friend class ::CExprResolve;
 
38310
  friend class ::WinIfExists;
 
38311
  friend class ::WinImportHandler;
 
38312
  friend class ::WinMacros;
 
38313
  friend class ::WinAsm;
 
38314
  friend class ::WinDeclSpecs;
 
38315
  friend class ::WinMemberExplSpec;
 
38316
  friend class ::WinTypeKeywords;
 
38317
  friend class ::WinFriend;
 
38318
  friend class ::ExtAC;
 
38319
  friend class ::ExtACBuilderCoupling;
 
38320
  friend class ::ExtACSyntaxCoupling;
 
38321
  friend class ::ExtACTree;
 
38322
  friend class ::ExtACKeywords;
 
38323
  friend class ::ExtGnu;
 
38324
  friend class ::PragmaOnceUnitState;
 
38325
  friend class ::PragmaOnce;
 
38326
  friend class ::CMatchSyntax;
 
38327
 
 
38328
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38329
 
 
38330
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
 
38331
 
 
38332
public:
 
38333
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
 
38334
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
38335
    AddSon (sons[3], q); AddSon (sons[4], d); 
 
38336
  }
 
38337
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38338
  static const char *NodeId ();
 
38339
  /** Get the name of the node. Can be compared with NodeId(). */
 
38340
  const char *NodeName () const { return NodeId (); }
 
38341
  /** Get the number of sons. */
 
38342
  int Sons () const { return CTree::Sons (sons, 5); }
 
38343
  /** Get the n-th son.
 
38344
   *  \param n The index of the son.
 
38345
   *  \return The n-th son or NULL. */
 
38346
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
38347
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
38348
  CTree *Declarator () const { return sons[4]; }
 
38349
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
38350
  /** Replace a son.
 
38351
   *  \param old_son The son to replace.
 
38352
   *  \param new_son The new son. */
 
38353
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
38354
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
38355
  }
 
38356
};
 
38357
 
 
38358
 
 
38359
#line 38360 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38360
} // closed Puma
 
38361
class CCExprResolve;
 
38362
class CExprResolve;
 
38363
class WinIfExists;
 
38364
class WinImportHandler;
 
38365
class WinMacros;
 
38366
class WinAsm;
 
38367
class WinDeclSpecs;
 
38368
class WinMemberExplSpec;
 
38369
class WinTypeKeywords;
 
38370
class WinFriend;
 
38371
class ExtAC;
 
38372
class ExtACBuilderCoupling;
 
38373
class ExtACSyntaxCoupling;
 
38374
class ExtACTree;
 
38375
class ExtACKeywords;
 
38376
class ExtGnu;
 
38377
class PragmaOnceUnitState;
 
38378
class PragmaOnce;
 
38379
class CMatchSyntax;
 
38380
namespace Puma {
 
38381
 
 
38382
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38383
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
 
38384
#line 38385 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38385
  friend class ::CCExprResolve;
 
38386
  friend class ::CExprResolve;
 
38387
  friend class ::WinIfExists;
 
38388
  friend class ::WinImportHandler;
 
38389
  friend class ::WinMacros;
 
38390
  friend class ::WinAsm;
 
38391
  friend class ::WinDeclSpecs;
 
38392
  friend class ::WinMemberExplSpec;
 
38393
  friend class ::WinTypeKeywords;
 
38394
  friend class ::WinFriend;
 
38395
  friend class ::ExtAC;
 
38396
  friend class ::ExtACBuilderCoupling;
 
38397
  friend class ::ExtACSyntaxCoupling;
 
38398
  friend class ::ExtACTree;
 
38399
  friend class ::ExtACKeywords;
 
38400
  friend class ::ExtGnu;
 
38401
  friend class ::PragmaOnceUnitState;
 
38402
  friend class ::PragmaOnce;
 
38403
  friend class ::CMatchSyntax;
 
38404
 
 
38405
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38406
 
 
38407
  CTree *sons[3]; // declarator, colon, expr
 
38408
 
 
38409
public:
 
38410
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
 
38411
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
 
38412
  }
 
38413
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38414
  static const char *NodeId ();
 
38415
  /** Get the name of the node. Can be compared with NodeId(). */
 
38416
  const char *NodeName () const { return NodeId (); }
 
38417
  /** Get the number of sons. */
 
38418
  int Sons () const { return CTree::Sons (sons, 3); }
 
38419
  /** Get the n-th son.
 
38420
   *  \param n The index of the son.
 
38421
   *  \return The n-th son or NULL. */
 
38422
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
38423
  CTree *Declarator () const { return sons[0]; }
 
38424
  CTree *Expr () const { return sons[2]; }
 
38425
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
 
38426
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
38427
  /** Replace a son.
 
38428
   *  \param old_son The son to replace.
 
38429
   *  \param new_son The new son. */
 
38430
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
38431
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
38432
  }
 
38433
};
 
38434
 
 
38435
/*****************************************************************************/
 
38436
/*                                                                           */
 
38437
/*                              Statements                                   */
 
38438
/*                                                                           */
 
38439
/*****************************************************************************/
 
38440
 
 
38441
 
 
38442
#line 38443 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38443
} // closed Puma
 
38444
class CCExprResolve;
 
38445
class CExprResolve;
 
38446
class WinIfExists;
 
38447
class WinImportHandler;
 
38448
class WinMacros;
 
38449
class WinAsm;
 
38450
class WinDeclSpecs;
 
38451
class WinMemberExplSpec;
 
38452
class WinTypeKeywords;
 
38453
class WinFriend;
 
38454
class ExtAC;
 
38455
class ExtACBuilderCoupling;
 
38456
class ExtACSyntaxCoupling;
 
38457
class ExtACTree;
 
38458
class ExtACKeywords;
 
38459
class ExtGnu;
 
38460
class PragmaOnceUnitState;
 
38461
class PragmaOnce;
 
38462
class CMatchSyntax;
 
38463
namespace Puma {
 
38464
 
 
38465
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38466
class CT_Statement : public CTree {
 
38467
#line 38468 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38468
  friend class ::CCExprResolve;
 
38469
  friend class ::CExprResolve;
 
38470
  friend class ::WinIfExists;
 
38471
  friend class ::WinImportHandler;
 
38472
  friend class ::WinMacros;
 
38473
  friend class ::WinAsm;
 
38474
  friend class ::WinDeclSpecs;
 
38475
  friend class ::WinMemberExplSpec;
 
38476
  friend class ::WinTypeKeywords;
 
38477
  friend class ::WinFriend;
 
38478
  friend class ::ExtAC;
 
38479
  friend class ::ExtACBuilderCoupling;
 
38480
  friend class ::ExtACSyntaxCoupling;
 
38481
  friend class ::ExtACTree;
 
38482
  friend class ::ExtACKeywords;
 
38483
  friend class ::ExtGnu;
 
38484
  friend class ::PragmaOnceUnitState;
 
38485
  friend class ::PragmaOnce;
 
38486
  friend class ::CMatchSyntax;
 
38487
 
 
38488
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38489
 
 
38490
protected:
 
38491
  CT_Statement () {}
 
38492
  virtual CT_Statement *IsStatement () { return this; }
 
38493
};
 
38494
 
 
38495
 
 
38496
#line 38497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38497
} // closed Puma
 
38498
class CCExprResolve;
 
38499
class CExprResolve;
 
38500
class WinIfExists;
 
38501
class WinImportHandler;
 
38502
class WinMacros;
 
38503
class WinAsm;
 
38504
class WinDeclSpecs;
 
38505
class WinMemberExplSpec;
 
38506
class WinTypeKeywords;
 
38507
class WinFriend;
 
38508
class ExtAC;
 
38509
class ExtACBuilderCoupling;
 
38510
class ExtACSyntaxCoupling;
 
38511
class ExtACTree;
 
38512
class ExtACKeywords;
 
38513
class ExtGnu;
 
38514
class PragmaOnceUnitState;
 
38515
class PragmaOnce;
 
38516
class CMatchSyntax;
 
38517
namespace Puma {
 
38518
 
 
38519
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38520
class CT_LabelStmt : public CT_Statement {
 
38521
#line 38522 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38522
  friend class ::CCExprResolve;
 
38523
  friend class ::CExprResolve;
 
38524
  friend class ::WinIfExists;
 
38525
  friend class ::WinImportHandler;
 
38526
  friend class ::WinMacros;
 
38527
  friend class ::WinAsm;
 
38528
  friend class ::WinDeclSpecs;
 
38529
  friend class ::WinMemberExplSpec;
 
38530
  friend class ::WinTypeKeywords;
 
38531
  friend class ::WinFriend;
 
38532
  friend class ::ExtAC;
 
38533
  friend class ::ExtACBuilderCoupling;
 
38534
  friend class ::ExtACSyntaxCoupling;
 
38535
  friend class ::ExtACTree;
 
38536
  friend class ::ExtACKeywords;
 
38537
  friend class ::ExtGnu;
 
38538
  friend class ::PragmaOnceUnitState;
 
38539
  friend class ::PragmaOnce;
 
38540
  friend class ::CMatchSyntax;
 
38541
 
 
38542
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38543
 
 
38544
  CTree *sons[3]; // id, colon, stmt
 
38545
 
 
38546
public:
 
38547
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
 
38548
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
38549
  }
 
38550
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38551
  static const char *NodeId ();
 
38552
  /** Get the name of the node. Can be compared with NodeId(). */
 
38553
  const char *NodeName () const { return NodeId (); }
 
38554
  /** Get the number of sons. */
 
38555
  int Sons () const { return 3; }
 
38556
  /** Get the n-th son.
 
38557
   *  \param n The index of the son.
 
38558
   *  \return The n-th son or NULL. */
 
38559
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
38560
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
38561
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
38562
  /** Replace a son.
 
38563
   *  \param old_son The son to replace.
 
38564
   *  \param new_son The new son. */
 
38565
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
38566
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
38567
  }
 
38568
};
 
38569
 
 
38570
 
 
38571
#line 38572 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38572
} // closed Puma
 
38573
class CCExprResolve;
 
38574
class CExprResolve;
 
38575
class WinIfExists;
 
38576
class WinImportHandler;
 
38577
class WinMacros;
 
38578
class WinAsm;
 
38579
class WinDeclSpecs;
 
38580
class WinMemberExplSpec;
 
38581
class WinTypeKeywords;
 
38582
class WinFriend;
 
38583
class ExtAC;
 
38584
class ExtACBuilderCoupling;
 
38585
class ExtACSyntaxCoupling;
 
38586
class ExtACTree;
 
38587
class ExtACKeywords;
 
38588
class ExtGnu;
 
38589
class PragmaOnceUnitState;
 
38590
class PragmaOnce;
 
38591
class CMatchSyntax;
 
38592
namespace Puma {
 
38593
 
 
38594
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38595
class CT_DefaultStmt : public CT_Statement {
 
38596
#line 38597 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38597
  friend class ::CCExprResolve;
 
38598
  friend class ::CExprResolve;
 
38599
  friend class ::WinIfExists;
 
38600
  friend class ::WinImportHandler;
 
38601
  friend class ::WinMacros;
 
38602
  friend class ::WinAsm;
 
38603
  friend class ::WinDeclSpecs;
 
38604
  friend class ::WinMemberExplSpec;
 
38605
  friend class ::WinTypeKeywords;
 
38606
  friend class ::WinFriend;
 
38607
  friend class ::ExtAC;
 
38608
  friend class ::ExtACBuilderCoupling;
 
38609
  friend class ::ExtACSyntaxCoupling;
 
38610
  friend class ::ExtACTree;
 
38611
  friend class ::ExtACKeywords;
 
38612
  friend class ::ExtGnu;
 
38613
  friend class ::PragmaOnceUnitState;
 
38614
  friend class ::PragmaOnce;
 
38615
  friend class ::CMatchSyntax;
 
38616
 
 
38617
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38618
 
 
38619
  CTree *sons[3]; // keyword, colon, stmt
 
38620
 
 
38621
public:
 
38622
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
 
38623
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
38624
  }
 
38625
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38626
  static const char *NodeId ();
 
38627
  /** Get the name of the node. Can be compared with NodeId(). */
 
38628
  const char *NodeName () const { return NodeId (); }
 
38629
  /** Get the number of sons. */
 
38630
  int Sons () const { return 3; }
 
38631
  /** Get the n-th son.
 
38632
   *  \param n The index of the son.
 
38633
   *  \return The n-th son or NULL. */
 
38634
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
38635
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
38636
  /** Replace a son.
 
38637
   *  \param old_son The son to replace.
 
38638
   *  \param new_son The new son. */
 
38639
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
38640
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
38641
  }
 
38642
};
 
38643
 
 
38644
 
 
38645
#line 38646 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38646
} // closed Puma
 
38647
class CCExprResolve;
 
38648
class CExprResolve;
 
38649
class WinIfExists;
 
38650
class WinImportHandler;
 
38651
class WinMacros;
 
38652
class WinAsm;
 
38653
class WinDeclSpecs;
 
38654
class WinMemberExplSpec;
 
38655
class WinTypeKeywords;
 
38656
class WinFriend;
 
38657
class ExtAC;
 
38658
class ExtACBuilderCoupling;
 
38659
class ExtACSyntaxCoupling;
 
38660
class ExtACTree;
 
38661
class ExtACKeywords;
 
38662
class ExtGnu;
 
38663
class PragmaOnceUnitState;
 
38664
class PragmaOnce;
 
38665
class CMatchSyntax;
 
38666
namespace Puma {
 
38667
 
 
38668
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38669
class CT_TryStmt : public CT_Statement {
 
38670
#line 38671 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38671
  friend class ::CCExprResolve;
 
38672
  friend class ::CExprResolve;
 
38673
  friend class ::WinIfExists;
 
38674
  friend class ::WinImportHandler;
 
38675
  friend class ::WinMacros;
 
38676
  friend class ::WinAsm;
 
38677
  friend class ::WinDeclSpecs;
 
38678
  friend class ::WinMemberExplSpec;
 
38679
  friend class ::WinTypeKeywords;
 
38680
  friend class ::WinFriend;
 
38681
  friend class ::ExtAC;
 
38682
  friend class ::ExtACBuilderCoupling;
 
38683
  friend class ::ExtACSyntaxCoupling;
 
38684
  friend class ::ExtACTree;
 
38685
  friend class ::ExtACKeywords;
 
38686
  friend class ::ExtGnu;
 
38687
  friend class ::PragmaOnceUnitState;
 
38688
  friend class ::PragmaOnce;
 
38689
  friend class ::CMatchSyntax;
 
38690
 
 
38691
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38692
 
 
38693
  CTree *sons[3]; // try, stmt, handlers
 
38694
 
 
38695
public:
 
38696
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
 
38697
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
 
38698
  }
 
38699
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38700
  static const char *NodeId ();
 
38701
  /** Get the name of the node. Can be compared with NodeId(). */
 
38702
  const char *NodeName () const { return NodeId (); }
 
38703
  /** Get the number of sons. */
 
38704
  int Sons () const { return 3; }
 
38705
  /** Get the n-th son.
 
38706
   *  \param n The index of the son.
 
38707
   *  \return The n-th son or NULL. */
 
38708
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
38709
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
38710
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
38711
  /** Replace a son.
 
38712
   *  \param old_son The son to replace.
 
38713
   *  \param new_son The new son. */
 
38714
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
38715
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
38716
  }
 
38717
};
 
38718
 
 
38719
 
 
38720
#line 38721 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38721
} // closed Puma
 
38722
class CCExprResolve;
 
38723
class CExprResolve;
 
38724
class WinIfExists;
 
38725
class WinImportHandler;
 
38726
class WinMacros;
 
38727
class WinAsm;
 
38728
class WinDeclSpecs;
 
38729
class WinMemberExplSpec;
 
38730
class WinTypeKeywords;
 
38731
class WinFriend;
 
38732
class ExtAC;
 
38733
class ExtACBuilderCoupling;
 
38734
class ExtACSyntaxCoupling;
 
38735
class ExtACTree;
 
38736
class ExtACKeywords;
 
38737
class ExtGnu;
 
38738
class PragmaOnceUnitState;
 
38739
class PragmaOnce;
 
38740
class CMatchSyntax;
 
38741
namespace Puma {
 
38742
 
 
38743
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38744
class CT_CaseStmt : public CT_Statement {
 
38745
#line 38746 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38746
  friend class ::CCExprResolve;
 
38747
  friend class ::CExprResolve;
 
38748
  friend class ::WinIfExists;
 
38749
  friend class ::WinImportHandler;
 
38750
  friend class ::WinMacros;
 
38751
  friend class ::WinAsm;
 
38752
  friend class ::WinDeclSpecs;
 
38753
  friend class ::WinMemberExplSpec;
 
38754
  friend class ::WinTypeKeywords;
 
38755
  friend class ::WinFriend;
 
38756
  friend class ::ExtAC;
 
38757
  friend class ::ExtACBuilderCoupling;
 
38758
  friend class ::ExtACSyntaxCoupling;
 
38759
  friend class ::ExtACTree;
 
38760
  friend class ::ExtACKeywords;
 
38761
  friend class ::ExtGnu;
 
38762
  friend class ::PragmaOnceUnitState;
 
38763
  friend class ::PragmaOnce;
 
38764
  friend class ::CMatchSyntax;
 
38765
 
 
38766
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38767
 
 
38768
  CTree *sons[4]; // keyword, expr, colon, stmt
 
38769
 
 
38770
public:
 
38771
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
 
38772
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
38773
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
 
38774
  }
 
38775
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38776
  static const char *NodeId ();
 
38777
  /** Get the name of the node. Can be compared with NodeId(). */
 
38778
  const char *NodeName () const { return NodeId (); }
 
38779
  /** Get the number of sons. */
 
38780
  int Sons () const { return 4; }
 
38781
  /** Get the n-th son.
 
38782
   *  \param n The index of the son.
 
38783
   *  \return The n-th son or NULL. */
 
38784
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
38785
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
 
38786
  CTree *Expr () const { return sons[1]; }
 
38787
  /** Replace a son.
 
38788
   *  \param old_son The son to replace.
 
38789
   *  \param new_son The new son. */
 
38790
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
38791
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
38792
  }
 
38793
};
 
38794
 
 
38795
 
 
38796
#line 38797 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38797
} // closed Puma
 
38798
class CCExprResolve;
 
38799
class CExprResolve;
 
38800
class WinIfExists;
 
38801
class WinImportHandler;
 
38802
class WinMacros;
 
38803
class WinAsm;
 
38804
class WinDeclSpecs;
 
38805
class WinMemberExplSpec;
 
38806
class WinTypeKeywords;
 
38807
class WinFriend;
 
38808
class ExtAC;
 
38809
class ExtACBuilderCoupling;
 
38810
class ExtACSyntaxCoupling;
 
38811
class ExtACTree;
 
38812
class ExtACKeywords;
 
38813
class ExtGnu;
 
38814
class PragmaOnceUnitState;
 
38815
class PragmaOnce;
 
38816
class CMatchSyntax;
 
38817
namespace Puma {
 
38818
 
 
38819
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38820
class CT_ExprStmt : public CT_Statement {
 
38821
#line 38822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38822
  friend class ::CCExprResolve;
 
38823
  friend class ::CExprResolve;
 
38824
  friend class ::WinIfExists;
 
38825
  friend class ::WinImportHandler;
 
38826
  friend class ::WinMacros;
 
38827
  friend class ::WinAsm;
 
38828
  friend class ::WinDeclSpecs;
 
38829
  friend class ::WinMemberExplSpec;
 
38830
  friend class ::WinTypeKeywords;
 
38831
  friend class ::WinFriend;
 
38832
  friend class ::ExtAC;
 
38833
  friend class ::ExtACBuilderCoupling;
 
38834
  friend class ::ExtACSyntaxCoupling;
 
38835
  friend class ::ExtACTree;
 
38836
  friend class ::ExtACKeywords;
 
38837
  friend class ::ExtGnu;
 
38838
  friend class ::PragmaOnceUnitState;
 
38839
  friend class ::PragmaOnce;
 
38840
  friend class ::CMatchSyntax;
 
38841
 
 
38842
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38843
 
 
38844
  CTree *sons[2]; // expr, semi_colon
 
38845
 
 
38846
public:
 
38847
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
38848
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38849
  static const char *NodeId ();
 
38850
  /** Get the name of the node. Can be compared with NodeId(). */
 
38851
  const char *NodeName () const { return NodeId (); }
 
38852
  /** Get the number of sons. */
 
38853
  int Sons () const { return CTree::Sons (sons, 2); }
 
38854
  /** Get the n-th son.
 
38855
   *  \param n The index of the son.
 
38856
   *  \return The n-th son or NULL. */
 
38857
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
38858
  CTree *Expr () const { return sons[0]; }
 
38859
  /** Replace a son.
 
38860
   *  \param old_son The son to replace.
 
38861
   *  \param new_son The new son. */
 
38862
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
38863
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
38864
  }
 
38865
};
 
38866
 
 
38867
 
 
38868
#line 38869 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38869
} // closed Puma
 
38870
class CCExprResolve;
 
38871
class CExprResolve;
 
38872
class WinIfExists;
 
38873
class WinImportHandler;
 
38874
class WinMacros;
 
38875
class WinAsm;
 
38876
class WinDeclSpecs;
 
38877
class WinMemberExplSpec;
 
38878
class WinTypeKeywords;
 
38879
class WinFriend;
 
38880
class ExtAC;
 
38881
class ExtACBuilderCoupling;
 
38882
class ExtACSyntaxCoupling;
 
38883
class ExtACTree;
 
38884
class ExtACKeywords;
 
38885
class ExtGnu;
 
38886
class PragmaOnceUnitState;
 
38887
class PragmaOnce;
 
38888
class CMatchSyntax;
 
38889
namespace Puma {
 
38890
 
 
38891
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38892
class CT_DeclStmt : public CT_Statement {
 
38893
#line 38894 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38894
  friend class ::CCExprResolve;
 
38895
  friend class ::CExprResolve;
 
38896
  friend class ::WinIfExists;
 
38897
  friend class ::WinImportHandler;
 
38898
  friend class ::WinMacros;
 
38899
  friend class ::WinAsm;
 
38900
  friend class ::WinDeclSpecs;
 
38901
  friend class ::WinMemberExplSpec;
 
38902
  friend class ::WinTypeKeywords;
 
38903
  friend class ::WinFriend;
 
38904
  friend class ::ExtAC;
 
38905
  friend class ::ExtACBuilderCoupling;
 
38906
  friend class ::ExtACSyntaxCoupling;
 
38907
  friend class ::ExtACTree;
 
38908
  friend class ::ExtACKeywords;
 
38909
  friend class ::ExtGnu;
 
38910
  friend class ::PragmaOnceUnitState;
 
38911
  friend class ::PragmaOnce;
 
38912
  friend class ::CMatchSyntax;
 
38913
 
 
38914
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38915
 
 
38916
  CTree *_decl;
 
38917
 
 
38918
public:
 
38919
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
38920
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38921
  static const char *NodeId ();
 
38922
  /** Get the name of the node. Can be compared with NodeId(). */
 
38923
  const char *NodeName () const { return NodeId (); }
 
38924
  /** Get the number of sons. */
 
38925
  int Sons () const { return 1; }
 
38926
  /** Get the n-th son.
 
38927
   *  \param n The index of the son.
 
38928
   *  \return The n-th son or NULL. */
 
38929
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
38930
  /** Replace a son.
 
38931
   *  \param old_son The son to replace.
 
38932
   *  \param new_son The new son. */
 
38933
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
38934
   { CTree::ReplaceSon (_decl, old_son, new_son); }
 
38935
};
 
38936
 
 
38937
 
 
38938
#line 38939 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38939
} // closed Puma
 
38940
class CCExprResolve;
 
38941
class CExprResolve;
 
38942
class WinIfExists;
 
38943
class WinImportHandler;
 
38944
class WinMacros;
 
38945
class WinAsm;
 
38946
class WinDeclSpecs;
 
38947
class WinMemberExplSpec;
 
38948
class WinTypeKeywords;
 
38949
class WinFriend;
 
38950
class ExtAC;
 
38951
class ExtACBuilderCoupling;
 
38952
class ExtACSyntaxCoupling;
 
38953
class ExtACTree;
 
38954
class ExtACKeywords;
 
38955
class ExtGnu;
 
38956
class PragmaOnceUnitState;
 
38957
class PragmaOnce;
 
38958
class CMatchSyntax;
 
38959
namespace Puma {
 
38960
 
 
38961
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38962
class CT_SwitchStmt : public CT_Statement, public CSemScope {
 
38963
#line 38964 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
38964
  friend class ::CCExprResolve;
 
38965
  friend class ::CExprResolve;
 
38966
  friend class ::WinIfExists;
 
38967
  friend class ::WinImportHandler;
 
38968
  friend class ::WinMacros;
 
38969
  friend class ::WinAsm;
 
38970
  friend class ::WinDeclSpecs;
 
38971
  friend class ::WinMemberExplSpec;
 
38972
  friend class ::WinTypeKeywords;
 
38973
  friend class ::WinFriend;
 
38974
  friend class ::ExtAC;
 
38975
  friend class ::ExtACBuilderCoupling;
 
38976
  friend class ::ExtACSyntaxCoupling;
 
38977
  friend class ::ExtACTree;
 
38978
  friend class ::ExtACKeywords;
 
38979
  friend class ::ExtGnu;
 
38980
  friend class ::PragmaOnceUnitState;
 
38981
  friend class ::PragmaOnce;
 
38982
  friend class ::CMatchSyntax;
 
38983
 
 
38984
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38985
 
 
38986
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
38987
 
 
38988
public:
 
38989
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
38990
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
38991
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
38992
  }
 
38993
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38994
  static const char *NodeId ();
 
38995
  /** Get the name of the node. Can be compared with NodeId(). */
 
38996
  const char *NodeName () const { return NodeId (); }
 
38997
  /** Get the number of sons. */
 
38998
  int Sons () const { return 5; }
 
38999
  /** Get the n-th son.
 
39000
   *  \param n The index of the son.
 
39001
   *  \return The n-th son or NULL. */
 
39002
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
39003
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
39004
  CTree *Condition () const { return sons[2]; }
 
39005
  /** Replace a son.
 
39006
   *  \param old_son The son to replace.
 
39007
   *  \param new_son The new son. */
 
39008
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39009
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
39010
  }
 
39011
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
39012
};
 
39013
 
 
39014
 
 
39015
#line 39016 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39016
} // closed Puma
 
39017
class CCExprResolve;
 
39018
class CExprResolve;
 
39019
class WinIfExists;
 
39020
class WinImportHandler;
 
39021
class WinMacros;
 
39022
class WinAsm;
 
39023
class WinDeclSpecs;
 
39024
class WinMemberExplSpec;
 
39025
class WinTypeKeywords;
 
39026
class WinFriend;
 
39027
class ExtAC;
 
39028
class ExtACBuilderCoupling;
 
39029
class ExtACSyntaxCoupling;
 
39030
class ExtACTree;
 
39031
class ExtACKeywords;
 
39032
class ExtGnu;
 
39033
class PragmaOnceUnitState;
 
39034
class PragmaOnce;
 
39035
class CMatchSyntax;
 
39036
namespace Puma {
 
39037
 
 
39038
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39039
class CT_IfStmt : public CT_Statement, public CSemScope {
 
39040
#line 39041 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39041
  friend class ::CCExprResolve;
 
39042
  friend class ::CExprResolve;
 
39043
  friend class ::WinIfExists;
 
39044
  friend class ::WinImportHandler;
 
39045
  friend class ::WinMacros;
 
39046
  friend class ::WinAsm;
 
39047
  friend class ::WinDeclSpecs;
 
39048
  friend class ::WinMemberExplSpec;
 
39049
  friend class ::WinTypeKeywords;
 
39050
  friend class ::WinFriend;
 
39051
  friend class ::ExtAC;
 
39052
  friend class ::ExtACBuilderCoupling;
 
39053
  friend class ::ExtACSyntaxCoupling;
 
39054
  friend class ::ExtACTree;
 
39055
  friend class ::ExtACKeywords;
 
39056
  friend class ::ExtGnu;
 
39057
  friend class ::PragmaOnceUnitState;
 
39058
  friend class ::PragmaOnce;
 
39059
  friend class ::CMatchSyntax;
 
39060
 
 
39061
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39062
 
 
39063
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
39064
 
 
39065
public:
 
39066
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
39067
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
39068
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
39069
  }
 
39070
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39071
  static const char *NodeId ();
 
39072
  /** Get the name of the node. Can be compared with NodeId(). */
 
39073
  const char *NodeName () const { return NodeId (); }
 
39074
  /** Get the number of sons. */
 
39075
  int Sons () const { return 5; }
 
39076
  /** Get the n-th son.
 
39077
   *  \param n The index of the son.
 
39078
   *  \return The n-th son or NULL. */
 
39079
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
39080
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
39081
  CTree *Condition () const { return sons[2]; }
 
39082
  /** Replace a son.
 
39083
   *  \param old_son The son to replace.
 
39084
   *  \param new_son The new son. */
 
39085
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39086
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
39087
  }
 
39088
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
39089
};
 
39090
 
 
39091
 
 
39092
#line 39093 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39093
} // closed Puma
 
39094
class CCExprResolve;
 
39095
class CExprResolve;
 
39096
class WinIfExists;
 
39097
class WinImportHandler;
 
39098
class WinMacros;
 
39099
class WinAsm;
 
39100
class WinDeclSpecs;
 
39101
class WinMemberExplSpec;
 
39102
class WinTypeKeywords;
 
39103
class WinFriend;
 
39104
class ExtAC;
 
39105
class ExtACBuilderCoupling;
 
39106
class ExtACSyntaxCoupling;
 
39107
class ExtACTree;
 
39108
class ExtACKeywords;
 
39109
class ExtGnu;
 
39110
class PragmaOnceUnitState;
 
39111
class PragmaOnce;
 
39112
class CMatchSyntax;
 
39113
namespace Puma {
 
39114
 
 
39115
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39116
class CT_IfElseStmt : public CT_Statement, public CSemScope {
 
39117
#line 39118 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39118
  friend class ::CCExprResolve;
 
39119
  friend class ::CExprResolve;
 
39120
  friend class ::WinIfExists;
 
39121
  friend class ::WinImportHandler;
 
39122
  friend class ::WinMacros;
 
39123
  friend class ::WinAsm;
 
39124
  friend class ::WinDeclSpecs;
 
39125
  friend class ::WinMemberExplSpec;
 
39126
  friend class ::WinTypeKeywords;
 
39127
  friend class ::WinFriend;
 
39128
  friend class ::ExtAC;
 
39129
  friend class ::ExtACBuilderCoupling;
 
39130
  friend class ::ExtACSyntaxCoupling;
 
39131
  friend class ::ExtACTree;
 
39132
  friend class ::ExtACKeywords;
 
39133
  friend class ::ExtGnu;
 
39134
  friend class ::PragmaOnceUnitState;
 
39135
  friend class ::PragmaOnce;
 
39136
  friend class ::CMatchSyntax;
 
39137
 
 
39138
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39139
 
 
39140
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
 
39141
 
 
39142
public:
 
39143
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
 
39144
                 CTree *is, CTree *e, CTree *es) {
 
39145
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
39146
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
39147
    AddSon (sons[6], es); 
 
39148
  }
 
39149
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39150
  static const char *NodeId ();
 
39151
  /** Get the name of the node. Can be compared with NodeId(). */
 
39152
  const char *NodeName () const { return NodeId (); }
 
39153
  /** Get the number of sons. */
 
39154
  int Sons () const { return 7; }
 
39155
  /** Get the n-th son.
 
39156
   *  \param n The index of the son.
 
39157
   *  \return The n-th son or NULL. */
 
39158
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
39159
  CTree *Condition () const { return sons[2]; }
 
39160
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
 
39161
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
39162
  /** Replace a son.
 
39163
   *  \param old_son The son to replace.
 
39164
   *  \param new_son The new son. */
 
39165
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39166
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
39167
  }
 
39168
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
39169
};
 
39170
 
 
39171
 
 
39172
#line 39173 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39173
} // closed Puma
 
39174
class CCExprResolve;
 
39175
class CExprResolve;
 
39176
class WinIfExists;
 
39177
class WinImportHandler;
 
39178
class WinMacros;
 
39179
class WinAsm;
 
39180
class WinDeclSpecs;
 
39181
class WinMemberExplSpec;
 
39182
class WinTypeKeywords;
 
39183
class WinFriend;
 
39184
class ExtAC;
 
39185
class ExtACBuilderCoupling;
 
39186
class ExtACSyntaxCoupling;
 
39187
class ExtACTree;
 
39188
class ExtACKeywords;
 
39189
class ExtGnu;
 
39190
class PragmaOnceUnitState;
 
39191
class PragmaOnce;
 
39192
class CMatchSyntax;
 
39193
namespace Puma {
 
39194
 
 
39195
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39196
class CT_BreakStmt : public CT_Statement {
 
39197
#line 39198 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39198
  friend class ::CCExprResolve;
 
39199
  friend class ::CExprResolve;
 
39200
  friend class ::WinIfExists;
 
39201
  friend class ::WinImportHandler;
 
39202
  friend class ::WinMacros;
 
39203
  friend class ::WinAsm;
 
39204
  friend class ::WinDeclSpecs;
 
39205
  friend class ::WinMemberExplSpec;
 
39206
  friend class ::WinTypeKeywords;
 
39207
  friend class ::WinFriend;
 
39208
  friend class ::ExtAC;
 
39209
  friend class ::ExtACBuilderCoupling;
 
39210
  friend class ::ExtACSyntaxCoupling;
 
39211
  friend class ::ExtACTree;
 
39212
  friend class ::ExtACKeywords;
 
39213
  friend class ::ExtGnu;
 
39214
  friend class ::PragmaOnceUnitState;
 
39215
  friend class ::PragmaOnce;
 
39216
  friend class ::CMatchSyntax;
 
39217
 
 
39218
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39219
 
 
39220
  CTree *sons[2]; // key, semi_colon
 
39221
 
 
39222
public:
 
39223
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
39224
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39225
  static const char *NodeId ();
 
39226
  /** Get the name of the node. Can be compared with NodeId(). */
 
39227
  const char *NodeName () const { return NodeId (); }
 
39228
  /** Get the number of sons. */
 
39229
  int Sons () const { return 2; }
 
39230
  /** Get the n-th son.
 
39231
   *  \param n The index of the son.
 
39232
   *  \return The n-th son or NULL. */
 
39233
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
39234
  /** Replace a son.
 
39235
   *  \param old_son The son to replace.
 
39236
   *  \param new_son The new son. */
 
39237
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39238
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
39239
  }
 
39240
};
 
39241
 
 
39242
 
 
39243
#line 39244 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39244
} // closed Puma
 
39245
class CCExprResolve;
 
39246
class CExprResolve;
 
39247
class WinIfExists;
 
39248
class WinImportHandler;
 
39249
class WinMacros;
 
39250
class WinAsm;
 
39251
class WinDeclSpecs;
 
39252
class WinMemberExplSpec;
 
39253
class WinTypeKeywords;
 
39254
class WinFriend;
 
39255
class ExtAC;
 
39256
class ExtACBuilderCoupling;
 
39257
class ExtACSyntaxCoupling;
 
39258
class ExtACTree;
 
39259
class ExtACKeywords;
 
39260
class ExtGnu;
 
39261
class PragmaOnceUnitState;
 
39262
class PragmaOnce;
 
39263
class CMatchSyntax;
 
39264
namespace Puma {
 
39265
 
 
39266
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39267
class CT_ContinueStmt : public CT_Statement {
 
39268
#line 39269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39269
  friend class ::CCExprResolve;
 
39270
  friend class ::CExprResolve;
 
39271
  friend class ::WinIfExists;
 
39272
  friend class ::WinImportHandler;
 
39273
  friend class ::WinMacros;
 
39274
  friend class ::WinAsm;
 
39275
  friend class ::WinDeclSpecs;
 
39276
  friend class ::WinMemberExplSpec;
 
39277
  friend class ::WinTypeKeywords;
 
39278
  friend class ::WinFriend;
 
39279
  friend class ::ExtAC;
 
39280
  friend class ::ExtACBuilderCoupling;
 
39281
  friend class ::ExtACSyntaxCoupling;
 
39282
  friend class ::ExtACTree;
 
39283
  friend class ::ExtACKeywords;
 
39284
  friend class ::ExtGnu;
 
39285
  friend class ::PragmaOnceUnitState;
 
39286
  friend class ::PragmaOnce;
 
39287
  friend class ::CMatchSyntax;
 
39288
 
 
39289
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39290
 
 
39291
  CTree *sons[2]; // key, semi_colon
 
39292
 
 
39293
public:
 
39294
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
39295
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39296
  static const char *NodeId ();
 
39297
  /** Get the name of the node. Can be compared with NodeId(). */
 
39298
  const char *NodeName () const { return NodeId (); }
 
39299
  /** Get the number of sons. */
 
39300
  int Sons () const { return 2; }
 
39301
  /** Get the n-th son.
 
39302
   *  \param n The index of the son.
 
39303
   *  \return The n-th son or NULL. */
 
39304
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
39305
  /** Replace a son.
 
39306
   *  \param old_son The son to replace.
 
39307
   *  \param new_son The new son. */
 
39308
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39309
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
39310
  }
 
39311
};
 
39312
 
 
39313
 
 
39314
#line 39315 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39315
} // closed Puma
 
39316
class CCExprResolve;
 
39317
class CExprResolve;
 
39318
class WinIfExists;
 
39319
class WinImportHandler;
 
39320
class WinMacros;
 
39321
class WinAsm;
 
39322
class WinDeclSpecs;
 
39323
class WinMemberExplSpec;
 
39324
class WinTypeKeywords;
 
39325
class WinFriend;
 
39326
class ExtAC;
 
39327
class ExtACBuilderCoupling;
 
39328
class ExtACSyntaxCoupling;
 
39329
class ExtACTree;
 
39330
class ExtACKeywords;
 
39331
class ExtGnu;
 
39332
class PragmaOnceUnitState;
 
39333
class PragmaOnce;
 
39334
class CMatchSyntax;
 
39335
namespace Puma {
 
39336
 
 
39337
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39338
class CT_GotoStmt : public CT_Statement {
 
39339
#line 39340 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39340
  friend class ::CCExprResolve;
 
39341
  friend class ::CExprResolve;
 
39342
  friend class ::WinIfExists;
 
39343
  friend class ::WinImportHandler;
 
39344
  friend class ::WinMacros;
 
39345
  friend class ::WinAsm;
 
39346
  friend class ::WinDeclSpecs;
 
39347
  friend class ::WinMemberExplSpec;
 
39348
  friend class ::WinTypeKeywords;
 
39349
  friend class ::WinFriend;
 
39350
  friend class ::ExtAC;
 
39351
  friend class ::ExtACBuilderCoupling;
 
39352
  friend class ::ExtACSyntaxCoupling;
 
39353
  friend class ::ExtACTree;
 
39354
  friend class ::ExtACKeywords;
 
39355
  friend class ::ExtGnu;
 
39356
  friend class ::PragmaOnceUnitState;
 
39357
  friend class ::PragmaOnce;
 
39358
  friend class ::CMatchSyntax;
 
39359
 
 
39360
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39361
 
 
39362
  CTree *sons[3]; // key, label, semi_colon
 
39363
 
 
39364
public:
 
39365
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
 
39366
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
 
39367
  }
 
39368
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39369
  static const char *NodeId ();
 
39370
  /** Get the name of the node. Can be compared with NodeId(). */
 
39371
  const char *NodeName () const { return NodeId (); }
 
39372
  /** Get the number of sons. */
 
39373
  int Sons () const { return 3; }
 
39374
  /** Get the n-th son.
 
39375
   *  \param n The index of the son.
 
39376
   *  \return The n-th son or NULL. */
 
39377
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
39378
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
39379
  /** Replace a son.
 
39380
   *  \param old_son The son to replace.
 
39381
   *  \param new_son The new son. */
 
39382
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39383
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
39384
  }
 
39385
};
 
39386
 
 
39387
 
 
39388
#line 39389 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39389
} // closed Puma
 
39390
class CCExprResolve;
 
39391
class CExprResolve;
 
39392
class WinIfExists;
 
39393
class WinImportHandler;
 
39394
class WinMacros;
 
39395
class WinAsm;
 
39396
class WinDeclSpecs;
 
39397
class WinMemberExplSpec;
 
39398
class WinTypeKeywords;
 
39399
class WinFriend;
 
39400
class ExtAC;
 
39401
class ExtACBuilderCoupling;
 
39402
class ExtACSyntaxCoupling;
 
39403
class ExtACTree;
 
39404
class ExtACKeywords;
 
39405
class ExtGnu;
 
39406
class PragmaOnceUnitState;
 
39407
class PragmaOnce;
 
39408
class CMatchSyntax;
 
39409
namespace Puma {
 
39410
 
 
39411
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39412
class CT_ReturnStmt : public CT_Statement {
 
39413
#line 39414 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39414
  friend class ::CCExprResolve;
 
39415
  friend class ::CExprResolve;
 
39416
  friend class ::WinIfExists;
 
39417
  friend class ::WinImportHandler;
 
39418
  friend class ::WinMacros;
 
39419
  friend class ::WinAsm;
 
39420
  friend class ::WinDeclSpecs;
 
39421
  friend class ::WinMemberExplSpec;
 
39422
  friend class ::WinTypeKeywords;
 
39423
  friend class ::WinFriend;
 
39424
  friend class ::ExtAC;
 
39425
  friend class ::ExtACBuilderCoupling;
 
39426
  friend class ::ExtACSyntaxCoupling;
 
39427
  friend class ::ExtACTree;
 
39428
  friend class ::ExtACKeywords;
 
39429
  friend class ::ExtGnu;
 
39430
  friend class ::PragmaOnceUnitState;
 
39431
  friend class ::PragmaOnce;
 
39432
  friend class ::CMatchSyntax;
 
39433
 
 
39434
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39435
 
 
39436
  CTree *sons[3]; // key, expr, semi_colon
 
39437
 
 
39438
public:
 
39439
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
 
39440
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
 
39441
  }
 
39442
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39443
  static const char *NodeId ();
 
39444
  /** Get the name of the node. Can be compared with NodeId(). */
 
39445
  const char *NodeName () const { return NodeId (); }
 
39446
  /** Get the number of sons. */
 
39447
  int Sons () const { return CTree::Sons (sons, 3); }
 
39448
  /** Get the n-th son.
 
39449
   *  \param n The index of the son.
 
39450
   *  \return The n-th son or NULL. */
 
39451
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
39452
  CTree *Expr () const { return sons[1]; }
 
39453
  /** Replace a son.
 
39454
   *  \param old_son The son to replace.
 
39455
   *  \param new_son The new son. */
 
39456
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39457
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
39458
  }
 
39459
};
 
39460
 
 
39461
 
 
39462
#line 39463 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39463
} // closed Puma
 
39464
class CCExprResolve;
 
39465
class CExprResolve;
 
39466
class WinIfExists;
 
39467
class WinImportHandler;
 
39468
class WinMacros;
 
39469
class WinAsm;
 
39470
class WinDeclSpecs;
 
39471
class WinMemberExplSpec;
 
39472
class WinTypeKeywords;
 
39473
class WinFriend;
 
39474
class ExtAC;
 
39475
class ExtACBuilderCoupling;
 
39476
class ExtACSyntaxCoupling;
 
39477
class ExtACTree;
 
39478
class ExtACKeywords;
 
39479
class ExtGnu;
 
39480
class PragmaOnceUnitState;
 
39481
class PragmaOnce;
 
39482
class CMatchSyntax;
 
39483
namespace Puma {
 
39484
 
 
39485
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39486
class CT_WhileStmt : public CT_Statement, public CSemScope {
 
39487
#line 39488 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39488
  friend class ::CCExprResolve;
 
39489
  friend class ::CExprResolve;
 
39490
  friend class ::WinIfExists;
 
39491
  friend class ::WinImportHandler;
 
39492
  friend class ::WinMacros;
 
39493
  friend class ::WinAsm;
 
39494
  friend class ::WinDeclSpecs;
 
39495
  friend class ::WinMemberExplSpec;
 
39496
  friend class ::WinTypeKeywords;
 
39497
  friend class ::WinFriend;
 
39498
  friend class ::ExtAC;
 
39499
  friend class ::ExtACBuilderCoupling;
 
39500
  friend class ::ExtACSyntaxCoupling;
 
39501
  friend class ::ExtACTree;
 
39502
  friend class ::ExtACKeywords;
 
39503
  friend class ::ExtGnu;
 
39504
  friend class ::PragmaOnceUnitState;
 
39505
  friend class ::PragmaOnce;
 
39506
  friend class ::CMatchSyntax;
 
39507
 
 
39508
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39509
 
 
39510
  CTree *sons[5]; // key, open, cond, close, stmt
 
39511
 
 
39512
public:
 
39513
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
39514
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
39515
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
39516
  }
 
39517
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39518
  static const char *NodeId ();
 
39519
  /** Get the name of the node. Can be compared with NodeId(). */
 
39520
  const char *NodeName () const { return NodeId (); }
 
39521
  /** Get the number of sons. */
 
39522
  int Sons () const { return 5; }
 
39523
  /** Get the n-th son.
 
39524
   *  \param n The index of the son.
 
39525
   *  \return The n-th son or NULL. */
 
39526
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
39527
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
39528
  CTree *Condition () const { return sons[2]; }
 
39529
  /** Replace a son.
 
39530
   *  \param old_son The son to replace.
 
39531
   *  \param new_son The new son. */
 
39532
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39533
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
39534
  }
 
39535
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
39536
};
 
39537
 
 
39538
 
 
39539
#line 39540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39540
} // closed Puma
 
39541
class CCExprResolve;
 
39542
class CExprResolve;
 
39543
class WinIfExists;
 
39544
class WinImportHandler;
 
39545
class WinMacros;
 
39546
class WinAsm;
 
39547
class WinDeclSpecs;
 
39548
class WinMemberExplSpec;
 
39549
class WinTypeKeywords;
 
39550
class WinFriend;
 
39551
class ExtAC;
 
39552
class ExtACBuilderCoupling;
 
39553
class ExtACSyntaxCoupling;
 
39554
class ExtACTree;
 
39555
class ExtACKeywords;
 
39556
class ExtGnu;
 
39557
class PragmaOnceUnitState;
 
39558
class PragmaOnce;
 
39559
class CMatchSyntax;
 
39560
namespace Puma {
 
39561
 
 
39562
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39563
class CT_DoStmt : public CT_Statement {
 
39564
#line 39565 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39565
  friend class ::CCExprResolve;
 
39566
  friend class ::CExprResolve;
 
39567
  friend class ::WinIfExists;
 
39568
  friend class ::WinImportHandler;
 
39569
  friend class ::WinMacros;
 
39570
  friend class ::WinAsm;
 
39571
  friend class ::WinDeclSpecs;
 
39572
  friend class ::WinMemberExplSpec;
 
39573
  friend class ::WinTypeKeywords;
 
39574
  friend class ::WinFriend;
 
39575
  friend class ::ExtAC;
 
39576
  friend class ::ExtACBuilderCoupling;
 
39577
  friend class ::ExtACSyntaxCoupling;
 
39578
  friend class ::ExtACTree;
 
39579
  friend class ::ExtACKeywords;
 
39580
  friend class ::ExtGnu;
 
39581
  friend class ::PragmaOnceUnitState;
 
39582
  friend class ::PragmaOnce;
 
39583
  friend class ::CMatchSyntax;
 
39584
 
 
39585
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39586
 
 
39587
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
 
39588
 
 
39589
public:
 
39590
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
 
39591
             CTree *c, CTree *sc) {
 
39592
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
39593
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
39594
    AddSon (sons[6], sc); 
 
39595
  }
 
39596
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39597
  static const char *NodeId ();
 
39598
  /** Get the name of the node. Can be compared with NodeId(). */
 
39599
  const char *NodeName () const { return NodeId (); }
 
39600
  /** Get the number of sons. */
 
39601
  int Sons () const { return 7; }
 
39602
  /** Get the n-th son.
 
39603
   *  \param n The index of the son.
 
39604
   *  \return The n-th son or NULL. */
 
39605
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
39606
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
39607
  CTree *Expr () const { return sons[4]; }
 
39608
  /** Replace a son.
 
39609
   *  \param old_son The son to replace.
 
39610
   *  \param new_son The new son. */
 
39611
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39612
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
39613
  }
 
39614
};
 
39615
 
 
39616
 
 
39617
#line 39618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39618
} // closed Puma
 
39619
class CCExprResolve;
 
39620
class CExprResolve;
 
39621
class WinIfExists;
 
39622
class WinImportHandler;
 
39623
class WinMacros;
 
39624
class WinAsm;
 
39625
class WinDeclSpecs;
 
39626
class WinMemberExplSpec;
 
39627
class WinTypeKeywords;
 
39628
class WinFriend;
 
39629
class ExtAC;
 
39630
class ExtACBuilderCoupling;
 
39631
class ExtACSyntaxCoupling;
 
39632
class ExtACTree;
 
39633
class ExtACKeywords;
 
39634
class ExtGnu;
 
39635
class PragmaOnceUnitState;
 
39636
class PragmaOnce;
 
39637
class CMatchSyntax;
 
39638
namespace Puma {
 
39639
 
 
39640
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39641
class CT_ForStmt : public CT_Statement, public CSemScope {
 
39642
#line 39643 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39643
  friend class ::CCExprResolve;
 
39644
  friend class ::CExprResolve;
 
39645
  friend class ::WinIfExists;
 
39646
  friend class ::WinImportHandler;
 
39647
  friend class ::WinMacros;
 
39648
  friend class ::WinAsm;
 
39649
  friend class ::WinDeclSpecs;
 
39650
  friend class ::WinMemberExplSpec;
 
39651
  friend class ::WinTypeKeywords;
 
39652
  friend class ::WinFriend;
 
39653
  friend class ::ExtAC;
 
39654
  friend class ::ExtACBuilderCoupling;
 
39655
  friend class ::ExtACSyntaxCoupling;
 
39656
  friend class ::ExtACTree;
 
39657
  friend class ::ExtACKeywords;
 
39658
  friend class ::ExtGnu;
 
39659
  friend class ::PragmaOnceUnitState;
 
39660
  friend class ::PragmaOnce;
 
39661
  friend class ::CMatchSyntax;
 
39662
 
 
39663
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39664
 
 
39665
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
 
39666
 
 
39667
public:
 
39668
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
 
39669
              CTree *e, CTree *c, CTree *stmt) {
 
39670
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
39671
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
39672
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
 
39673
  }
 
39674
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39675
  static const char *NodeId ();
 
39676
  /** Get the name of the node. Can be compared with NodeId(). */
 
39677
  const char *NodeName () const { return NodeId (); }
 
39678
  /** Get the number of sons. */
 
39679
  int Sons () const { return CTree::Sons (sons, 8); }
 
39680
  /** Get the n-th son.
 
39681
   *  \param n The index of the son.
 
39682
   *  \return The n-th son or NULL. */
 
39683
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
 
39684
  CTree *InitStmt () const { return sons[2]; }
 
39685
  CTree *Condition () const { return sons[3]; }
 
39686
  CTree *Expr () const { return sons[5]; }
 
39687
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
39688
  /** Replace a son.
 
39689
   *  \param old_son The son to replace.
 
39690
   *  \param new_son The new son. */
 
39691
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39692
    CTree::ReplaceSon (sons, 8, old_son, new_son);
 
39693
  }
 
39694
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
39695
};
 
39696
 
 
39697
 
 
39698
#line 39699 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39699
} // closed Puma
 
39700
class CCExprResolve;
 
39701
class CExprResolve;
 
39702
class WinIfExists;
 
39703
class WinImportHandler;
 
39704
class WinMacros;
 
39705
class WinAsm;
 
39706
class WinDeclSpecs;
 
39707
class WinMemberExplSpec;
 
39708
class WinTypeKeywords;
 
39709
class WinFriend;
 
39710
class ExtAC;
 
39711
class ExtACBuilderCoupling;
 
39712
class ExtACSyntaxCoupling;
 
39713
class ExtACTree;
 
39714
class ExtACKeywords;
 
39715
class ExtGnu;
 
39716
class PragmaOnceUnitState;
 
39717
class PragmaOnce;
 
39718
class CMatchSyntax;
 
39719
namespace Puma {
 
39720
 
 
39721
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39722
class CT_Condition : public CT_Decl, public CSemObject {
 
39723
#line 39724 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39724
  friend class ::CCExprResolve;
 
39725
  friend class ::CExprResolve;
 
39726
  friend class ::WinIfExists;
 
39727
  friend class ::WinImportHandler;
 
39728
  friend class ::WinMacros;
 
39729
  friend class ::WinAsm;
 
39730
  friend class ::WinDeclSpecs;
 
39731
  friend class ::WinMemberExplSpec;
 
39732
  friend class ::WinTypeKeywords;
 
39733
  friend class ::WinFriend;
 
39734
  friend class ::ExtAC;
 
39735
  friend class ::ExtACBuilderCoupling;
 
39736
  friend class ::ExtACSyntaxCoupling;
 
39737
  friend class ::ExtACTree;
 
39738
  friend class ::ExtACKeywords;
 
39739
  friend class ::ExtGnu;
 
39740
  friend class ::PragmaOnceUnitState;
 
39741
  friend class ::PragmaOnce;
 
39742
  friend class ::CMatchSyntax;
 
39743
 
 
39744
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39745
 
 
39746
  CTree *sons[3]; // declspecs, declarator, init
 
39747
 
 
39748
public:
 
39749
  CT_Condition (CTree *dsl, CTree *d) {
 
39750
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
 
39751
  }
 
39752
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39753
  static const char *NodeId ();
 
39754
  /** Get the name of the node. Can be compared with NodeId(). */
 
39755
  const char *NodeName () const { return NodeId (); }
 
39756
  /** Get the number of sons. */
 
39757
  int Sons () const { return CTree::Sons (sons, 3); }
 
39758
  /** Get the n-th son.
 
39759
   *  \param n The index of the son.
 
39760
   *  \return The n-th son or NULL. */
 
39761
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
39762
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
39763
  CTree *Declarator () const { return sons[1]; }
 
39764
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
39765
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
39766
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
39767
  /** Replace a son.
 
39768
   *  \param old_son The son to replace.
 
39769
   *  \param new_son The new son. */
 
39770
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39771
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
39772
  }
 
39773
};
 
39774
 
 
39775
/*****************************************************************************/
 
39776
/*                                                                           */
 
39777
/*                              Classes                                      */
 
39778
/*                                                                           */
 
39779
/*****************************************************************************/
 
39780
 
 
39781
 
 
39782
#line 39783 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39783
} // closed Puma
 
39784
class CCExprResolve;
 
39785
class CExprResolve;
 
39786
class WinIfExists;
 
39787
class WinImportHandler;
 
39788
class WinMacros;
 
39789
class WinAsm;
 
39790
class WinDeclSpecs;
 
39791
class WinMemberExplSpec;
 
39792
class WinTypeKeywords;
 
39793
class WinFriend;
 
39794
class ExtAC;
 
39795
class ExtACBuilderCoupling;
 
39796
class ExtACSyntaxCoupling;
 
39797
class ExtACTree;
 
39798
class ExtACKeywords;
 
39799
class ExtGnu;
 
39800
class PragmaOnceUnitState;
 
39801
class PragmaOnce;
 
39802
class CMatchSyntax;
 
39803
namespace Puma {
 
39804
 
 
39805
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39806
 
 
39807
#line 39808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39808
} // closed Puma
 
39809
 
 
39810
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
39811
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
39812
#include "ExtACTree.ah"
 
39813
#endif
 
39814
namespace Puma {
 
39815
 
 
39816
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39817
class CT_ClassDef : public CT_Decl, public CSemObject {
 
39818
#line 39819 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39819
  friend class ::CCExprResolve;
 
39820
  friend class ::CExprResolve;
 
39821
  friend class ::WinIfExists;
 
39822
  friend class ::WinImportHandler;
 
39823
  friend class ::WinMacros;
 
39824
  friend class ::WinAsm;
 
39825
  friend class ::WinDeclSpecs;
 
39826
  friend class ::WinMemberExplSpec;
 
39827
  friend class ::WinTypeKeywords;
 
39828
  friend class ::WinFriend;
 
39829
  friend class ::ExtAC;
 
39830
  friend class ::ExtACBuilderCoupling;
 
39831
  friend class ::ExtACSyntaxCoupling;
 
39832
  friend class ::ExtACTree;
 
39833
  friend class ::ExtACKeywords;
 
39834
  friend class ::ExtGnu;
 
39835
  friend class ::PragmaOnceUnitState;
 
39836
  friend class ::PragmaOnce;
 
39837
  friend class ::CMatchSyntax;
 
39838
 
 
39839
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39840
 
 
39841
   
 
39842
#line 39843 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39843
 
 
39844
  struct __ac_wrapper_sons {
 
39845
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
 
39846
    operator A& () { return _data; }
 
39847
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
 
39848
    operator const A& () { return _data; }
 
39849
    operator const A& () const { return _data; }
 
39850
    operator void* () { return _data; }
 
39851
    operator void* () const { return (void*)_data; }
 
39852
    operator const void* () { return _data; }
 
39853
    operator const void* () const { return _data; }
 
39854
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
 
39855
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
 
39856
  } sons
 
39857
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39858
 
 
39859
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39860
; // key, name, bases, members
 
39861
  CTree *obj_decl;
 
39862
 
 
39863
public:
 
39864
  
 
39865
#line 39866 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39866
 
 
39867
 
 
39868
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
39869
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
39870
  typedef TResult Result;
 
39871
  typedef TThat   That;
 
39872
  typedef TTarget Target;
 
39873
  enum { ARGS = TArgs::ARGS };
 
39874
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
39875
  static const int JPID = 55;
 
39876
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
39877
  struct Res {
 
39878
    typedef void Type;
 
39879
    typedef void ReferredType;
 
39880
  };
 
39881
 
 
39882
  That *_that;
 
39883
 
 
39884
  inline That *that() {return (That*)_that;}
 
39885
 
 
39886
};
 
39887
 
 
39888
 
 
39889
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39890
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
 
39891
#line 39892 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39892
{
 
39893
  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;
 
39894
    __TJP tjp;
 
39895
  tjp._that =  (__TJP::That*)this;
 
39896
    this->__exec_old_C1(arg0, arg1, arg2);
 
39897
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
39898
  
 
39899
}
 
39900
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
39901
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39902
{
 
39903
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
39904
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
 
39905
  }
 
39906
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39907
  static const char *NodeId ();
 
39908
  /** Get the name of the node. Can be compared with NodeId(). */
 
39909
  const char *NodeName () const { return NodeId (); }
 
39910
  /** Get the number of sons. */
 
39911
  int Sons () const { return CTree::Sons (sons, 4); }
 
39912
  /** Get the n-th son.
 
39913
   *  \param n The index of the son.
 
39914
   *  \return The n-th son or NULL. */
 
39915
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
39916
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
39917
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
 
39918
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
 
39919
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
39920
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
39921
  void Members (CTree *m) { AddSon (sons[3], m); }
 
39922
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
39923
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
39924
  /** Replace a son.
 
39925
   *  \param old_son The son to replace.
 
39926
   *  \param new_son The new son. */
 
39927
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
39928
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
39929
  }
 
39930
   private:
 
39931
 
 
39932
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
39933
 Puma :: CTree * _intro_members ;
 
39934
Puma :: CTree * _base_intros ;
 
39935
public :
 
39936
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
39937
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
39938
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
39939
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
39940
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39941
 
 
39942
#line 39943 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39943
 
 
39944
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
39945
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
39946
  typedef TResult Result;
 
39947
  typedef TThat   That;
 
39948
  typedef TTarget Target;
 
39949
  enum { ARGS = TArgs::ARGS };
 
39950
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
39951
  static const int JPID = 6191;
 
39952
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
39953
  struct Res {
 
39954
    typedef void Type;
 
39955
    typedef void ReferredType;
 
39956
  };
 
39957
 
 
39958
  That *_that;
 
39959
 
 
39960
  inline That *that() {return (That*)_that;}
 
39961
 
 
39962
};
 
39963
 
 
39964
 
 
39965
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39966
 
 
39967
#line 39968 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39968
 
 
39969
public:
 
39970
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) {
 
39971
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
39972
  __TJP tjp;
 
39973
  tjp._that =  (__TJP::That*)this;
 
39974
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
39975
 
 
39976
}
 
39977
 
 
39978
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39979
 
 
39980
#line 39981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
39981
 
 
39982
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
39983
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
39984
  typedef TResult Result;
 
39985
  typedef TThat   That;
 
39986
  typedef TTarget Target;
 
39987
  enum { ARGS = TArgs::ARGS };
 
39988
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
39989
  static const int JPID = 6189;
 
39990
  static const AC::JPType JPTYPE = (AC::JPType)32;
 
39991
  struct Res {
 
39992
    typedef void Type;
 
39993
    typedef void ReferredType;
 
39994
  };
 
39995
 
 
39996
  That *_that;
 
39997
 
 
39998
  inline That *that() {return (That*)_that;}
 
39999
 
 
40000
};
 
40001
 
 
40002
 
 
40003
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40004
 
 
40005
#line 40006 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40006
 
 
40007
public:
 
40008
inline ~CT_ClassDef () {
 
40009
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
40010
  __TJP tjp;
 
40011
  tjp._that =  (__TJP::That*)this;
 
40012
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
 
40013
 
 
40014
}
 
40015
 
 
40016
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40017
};
 
40018
      
 
40019
 
 
40020
#line 40021 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40021
} // closed Puma
 
40022
class CCExprResolve;
 
40023
class CExprResolve;
 
40024
class WinIfExists;
 
40025
class WinImportHandler;
 
40026
class WinMacros;
 
40027
class WinAsm;
 
40028
class WinDeclSpecs;
 
40029
class WinMemberExplSpec;
 
40030
class WinTypeKeywords;
 
40031
class WinFriend;
 
40032
class ExtAC;
 
40033
class ExtACBuilderCoupling;
 
40034
class ExtACSyntaxCoupling;
 
40035
class ExtACTree;
 
40036
class ExtACKeywords;
 
40037
class ExtGnu;
 
40038
class PragmaOnceUnitState;
 
40039
class PragmaOnce;
 
40040
class CMatchSyntax;
 
40041
namespace Puma {
 
40042
 
 
40043
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40044
class CT_UnionDef : public CT_ClassDef {
 
40045
#line 40046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40046
  friend class ::CCExprResolve;
 
40047
  friend class ::CExprResolve;
 
40048
  friend class ::WinIfExists;
 
40049
  friend class ::WinImportHandler;
 
40050
  friend class ::WinMacros;
 
40051
  friend class ::WinAsm;
 
40052
  friend class ::WinDeclSpecs;
 
40053
  friend class ::WinMemberExplSpec;
 
40054
  friend class ::WinTypeKeywords;
 
40055
  friend class ::WinFriend;
 
40056
  friend class ::ExtAC;
 
40057
  friend class ::ExtACBuilderCoupling;
 
40058
  friend class ::ExtACSyntaxCoupling;
 
40059
  friend class ::ExtACTree;
 
40060
  friend class ::ExtACKeywords;
 
40061
  friend class ::ExtGnu;
 
40062
  friend class ::PragmaOnceUnitState;
 
40063
  friend class ::PragmaOnce;
 
40064
  friend class ::CMatchSyntax;
 
40065
 
 
40066
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40067
 
 
40068
public:
 
40069
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
 
40070
  static const char *NodeId ();
 
40071
  /** Get the name of the node. Can be compared with NodeId(). */
 
40072
  const char *NodeName () const { return NodeId (); }
 
40073
};
 
40074
      
 
40075
 
 
40076
#line 40077 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40077
} // closed Puma
 
40078
class CCExprResolve;
 
40079
class CExprResolve;
 
40080
class WinIfExists;
 
40081
class WinImportHandler;
 
40082
class WinMacros;
 
40083
class WinAsm;
 
40084
class WinDeclSpecs;
 
40085
class WinMemberExplSpec;
 
40086
class WinTypeKeywords;
 
40087
class WinFriend;
 
40088
class ExtAC;
 
40089
class ExtACBuilderCoupling;
 
40090
class ExtACSyntaxCoupling;
 
40091
class ExtACTree;
 
40092
class ExtACKeywords;
 
40093
class ExtGnu;
 
40094
class PragmaOnceUnitState;
 
40095
class PragmaOnce;
 
40096
class CMatchSyntax;
 
40097
namespace Puma {
 
40098
 
 
40099
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40100
class CT_MembList : public CT_DeclList, public CSemScope {
 
40101
#line 40102 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40102
  friend class ::CCExprResolve;
 
40103
  friend class ::CExprResolve;
 
40104
  friend class ::WinIfExists;
 
40105
  friend class ::WinImportHandler;
 
40106
  friend class ::WinMacros;
 
40107
  friend class ::WinAsm;
 
40108
  friend class ::WinDeclSpecs;
 
40109
  friend class ::WinMemberExplSpec;
 
40110
  friend class ::WinTypeKeywords;
 
40111
  friend class ::WinFriend;
 
40112
  friend class ::ExtAC;
 
40113
  friend class ::ExtACBuilderCoupling;
 
40114
  friend class ::ExtACSyntaxCoupling;
 
40115
  friend class ::ExtACTree;
 
40116
  friend class ::ExtACKeywords;
 
40117
  friend class ::ExtGnu;
 
40118
  friend class ::PragmaOnceUnitState;
 
40119
  friend class ::PragmaOnce;
 
40120
  friend class ::CMatchSyntax;
 
40121
 
 
40122
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40123
 
 
40124
public:
 
40125
  CT_MembList (int size = 10, int incr = 10) : 
 
40126
    CT_DeclList (size, incr) {}
 
40127
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40128
  static const char *NodeId ();
 
40129
  /** Get the name of the node. Can be compared with NodeId(). */
 
40130
  const char *NodeName () const { return NodeId (); }
 
40131
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
40132
};
 
40133
 
 
40134
 
 
40135
#line 40136 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40136
} // closed Puma
 
40137
class CCExprResolve;
 
40138
class CExprResolve;
 
40139
class WinIfExists;
 
40140
class WinImportHandler;
 
40141
class WinMacros;
 
40142
class WinAsm;
 
40143
class WinDeclSpecs;
 
40144
class WinMemberExplSpec;
 
40145
class WinTypeKeywords;
 
40146
class WinFriend;
 
40147
class ExtAC;
 
40148
class ExtACBuilderCoupling;
 
40149
class ExtACSyntaxCoupling;
 
40150
class ExtACTree;
 
40151
class ExtACKeywords;
 
40152
class ExtGnu;
 
40153
class PragmaOnceUnitState;
 
40154
class PragmaOnce;
 
40155
class CMatchSyntax;
 
40156
namespace Puma {
 
40157
 
 
40158
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40159
class CT_MembInitList : public CT_List, public CSemScope {
 
40160
#line 40161 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40161
  friend class ::CCExprResolve;
 
40162
  friend class ::CExprResolve;
 
40163
  friend class ::WinIfExists;
 
40164
  friend class ::WinImportHandler;
 
40165
  friend class ::WinMacros;
 
40166
  friend class ::WinAsm;
 
40167
  friend class ::WinDeclSpecs;
 
40168
  friend class ::WinMemberExplSpec;
 
40169
  friend class ::WinTypeKeywords;
 
40170
  friend class ::WinFriend;
 
40171
  friend class ::ExtAC;
 
40172
  friend class ::ExtACBuilderCoupling;
 
40173
  friend class ::ExtACSyntaxCoupling;
 
40174
  friend class ::ExtACTree;
 
40175
  friend class ::ExtACKeywords;
 
40176
  friend class ::ExtGnu;
 
40177
  friend class ::PragmaOnceUnitState;
 
40178
  friend class ::PragmaOnce;
 
40179
  friend class ::CMatchSyntax;
 
40180
 
 
40181
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40182
 
 
40183
public:
 
40184
  CT_MembInitList (int size = 2) : 
 
40185
    CT_List (size, 2, CT_List::OPEN) {}
 
40186
  static const char *NodeId ();
 
40187
  /** Get the name of the node. Can be compared with NodeId(). */
 
40188
  const char *NodeName () const { return NodeId (); }
 
40189
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
40190
};
 
40191
 
 
40192
 
 
40193
#line 40194 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40194
} // closed Puma
 
40195
class CCExprResolve;
 
40196
class CExprResolve;
 
40197
class WinIfExists;
 
40198
class WinImportHandler;
 
40199
class WinMacros;
 
40200
class WinAsm;
 
40201
class WinDeclSpecs;
 
40202
class WinMemberExplSpec;
 
40203
class WinTypeKeywords;
 
40204
class WinFriend;
 
40205
class ExtAC;
 
40206
class ExtACBuilderCoupling;
 
40207
class ExtACSyntaxCoupling;
 
40208
class ExtACTree;
 
40209
class ExtACKeywords;
 
40210
class ExtGnu;
 
40211
class PragmaOnceUnitState;
 
40212
class PragmaOnce;
 
40213
class CMatchSyntax;
 
40214
namespace Puma {
 
40215
 
 
40216
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40217
 
 
40218
#line 40219 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40219
} // closed Puma
 
40220
 
 
40221
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40222
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40223
#include "CCExprResolveH.ah"
 
40224
#endif
 
40225
namespace Puma {
 
40226
 
 
40227
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40228
 
 
40229
#line 40230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40230
} // closed Puma
 
40231
 
 
40232
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40233
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40234
#include "CExprResolveH.ah"
 
40235
#endif
 
40236
namespace Puma {
 
40237
 
 
40238
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40239
class CT_MembInit : public CT_Expression, public CSemObject {
 
40240
#line 40241 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40241
  friend class ::CCExprResolve;
 
40242
  friend class ::CExprResolve;
 
40243
  friend class ::WinIfExists;
 
40244
  friend class ::WinImportHandler;
 
40245
  friend class ::WinMacros;
 
40246
  friend class ::WinAsm;
 
40247
  friend class ::WinDeclSpecs;
 
40248
  friend class ::WinMemberExplSpec;
 
40249
  friend class ::WinTypeKeywords;
 
40250
  friend class ::WinFriend;
 
40251
  friend class ::ExtAC;
 
40252
  friend class ::ExtACBuilderCoupling;
 
40253
  friend class ::ExtACSyntaxCoupling;
 
40254
  friend class ::ExtACTree;
 
40255
  friend class ::ExtACKeywords;
 
40256
  friend class ::ExtGnu;
 
40257
  friend class ::PragmaOnceUnitState;
 
40258
  friend class ::PragmaOnce;
 
40259
  friend class ::CMatchSyntax;
 
40260
 
 
40261
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40262
 
 
40263
  CTree *sons[2]; // name, init
 
40264
 
 
40265
public:
 
40266
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
40267
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40268
  static const char *NodeId ();
 
40269
  /** Get the name of the node. Can be compared with NodeId(). */
 
40270
  const char *NodeName () const { return NodeId (); }
 
40271
  /** Get the number of sons. */
 
40272
  int Sons () const { return 2; }
 
40273
  /** Get the n-th son.
 
40274
   *  \param n The index of the son.
 
40275
   *  \return The n-th son or NULL. */
 
40276
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
40277
  /** Replace a son.
 
40278
   *  \param old_son The son to replace.
 
40279
   *  \param new_son The new son. */
 
40280
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40281
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
40282
  }
 
40283
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
40284
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
40285
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
40286
   private:
 
40287
  typedef CT_MembInit CCExprResolveExpr;
 
40288
 
 
40289
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
40290
 public :
 
40291
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
40292
  typedef CT_MembInit CExprResolveExpr;
 
40293
 
 
40294
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
40295
 public :
 
40296
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
40297
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40298
};
 
40299
 
 
40300
 
 
40301
#line 40302 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40302
} // closed Puma
 
40303
class CCExprResolve;
 
40304
class CExprResolve;
 
40305
class WinIfExists;
 
40306
class WinImportHandler;
 
40307
class WinMacros;
 
40308
class WinAsm;
 
40309
class WinDeclSpecs;
 
40310
class WinMemberExplSpec;
 
40311
class WinTypeKeywords;
 
40312
class WinFriend;
 
40313
class ExtAC;
 
40314
class ExtACBuilderCoupling;
 
40315
class ExtACSyntaxCoupling;
 
40316
class ExtACTree;
 
40317
class ExtACKeywords;
 
40318
class ExtGnu;
 
40319
class PragmaOnceUnitState;
 
40320
class PragmaOnce;
 
40321
class CMatchSyntax;
 
40322
namespace Puma {
 
40323
 
 
40324
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40325
class CT_BaseSpecList : public CT_List {
 
40326
#line 40327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40327
  friend class ::CCExprResolve;
 
40328
  friend class ::CExprResolve;
 
40329
  friend class ::WinIfExists;
 
40330
  friend class ::WinImportHandler;
 
40331
  friend class ::WinMacros;
 
40332
  friend class ::WinAsm;
 
40333
  friend class ::WinDeclSpecs;
 
40334
  friend class ::WinMemberExplSpec;
 
40335
  friend class ::WinTypeKeywords;
 
40336
  friend class ::WinFriend;
 
40337
  friend class ::ExtAC;
 
40338
  friend class ::ExtACBuilderCoupling;
 
40339
  friend class ::ExtACSyntaxCoupling;
 
40340
  friend class ::ExtACTree;
 
40341
  friend class ::ExtACKeywords;
 
40342
  friend class ::ExtGnu;
 
40343
  friend class ::PragmaOnceUnitState;
 
40344
  friend class ::PragmaOnce;
 
40345
  friend class ::CMatchSyntax;
 
40346
 
 
40347
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40348
 
 
40349
public:
 
40350
  CT_BaseSpecList (int size = 2) : 
 
40351
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
40352
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40353
  static const char *NodeId ();
 
40354
  /** Get the name of the node. Can be compared with NodeId(). */
 
40355
  const char *NodeName () const { return NodeId (); }
 
40356
};
 
40357
 
 
40358
 
 
40359
#line 40360 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40360
} // closed Puma
 
40361
class CCExprResolve;
 
40362
class CExprResolve;
 
40363
class WinIfExists;
 
40364
class WinImportHandler;
 
40365
class WinMacros;
 
40366
class WinAsm;
 
40367
class WinDeclSpecs;
 
40368
class WinMemberExplSpec;
 
40369
class WinTypeKeywords;
 
40370
class WinFriend;
 
40371
class ExtAC;
 
40372
class ExtACBuilderCoupling;
 
40373
class ExtACSyntaxCoupling;
 
40374
class ExtACTree;
 
40375
class ExtACKeywords;
 
40376
class ExtGnu;
 
40377
class PragmaOnceUnitState;
 
40378
class PragmaOnce;
 
40379
class CMatchSyntax;
 
40380
namespace Puma {
 
40381
 
 
40382
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40383
class CT_AccessSpec : public CTree {
 
40384
#line 40385 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40385
  friend class ::CCExprResolve;
 
40386
  friend class ::CExprResolve;
 
40387
  friend class ::WinIfExists;
 
40388
  friend class ::WinImportHandler;
 
40389
  friend class ::WinMacros;
 
40390
  friend class ::WinAsm;
 
40391
  friend class ::WinDeclSpecs;
 
40392
  friend class ::WinMemberExplSpec;
 
40393
  friend class ::WinTypeKeywords;
 
40394
  friend class ::WinFriend;
 
40395
  friend class ::ExtAC;
 
40396
  friend class ::ExtACBuilderCoupling;
 
40397
  friend class ::ExtACSyntaxCoupling;
 
40398
  friend class ::ExtACTree;
 
40399
  friend class ::ExtACKeywords;
 
40400
  friend class ::ExtGnu;
 
40401
  friend class ::PragmaOnceUnitState;
 
40402
  friend class ::PragmaOnce;
 
40403
  friend class ::CMatchSyntax;
 
40404
 
 
40405
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40406
 
 
40407
  CTree *sons[2]; // access, colon
 
40408
 
 
40409
public:
 
40410
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
40411
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40412
  static const char *NodeId ();
 
40413
  /** Get the name of the node. Can be compared with NodeId(). */
 
40414
  const char *NodeName () const { return NodeId (); }
 
40415
  /** Get the number of sons. */
 
40416
  int Sons () const { return 2; }
 
40417
  /** Get the n-th son.
 
40418
   *  \param n The index of the son.
 
40419
   *  \return The n-th son or NULL. */
 
40420
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
40421
  int Access () const { return sons[0]->token ()->type (); }
 
40422
  /** Replace a son.
 
40423
   *  \param old_son The son to replace.
 
40424
   *  \param new_son The new son. */
 
40425
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40426
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
40427
  }
 
40428
};
 
40429
 
 
40430
 
 
40431
#line 40432 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40432
} // closed Puma
 
40433
class CCExprResolve;
 
40434
class CExprResolve;
 
40435
class WinIfExists;
 
40436
class WinImportHandler;
 
40437
class WinMacros;
 
40438
class WinAsm;
 
40439
class WinDeclSpecs;
 
40440
class WinMemberExplSpec;
 
40441
class WinTypeKeywords;
 
40442
class WinFriend;
 
40443
class ExtAC;
 
40444
class ExtACBuilderCoupling;
 
40445
class ExtACSyntaxCoupling;
 
40446
class ExtACTree;
 
40447
class ExtACKeywords;
 
40448
class ExtGnu;
 
40449
class PragmaOnceUnitState;
 
40450
class PragmaOnce;
 
40451
class CMatchSyntax;
 
40452
namespace Puma {
 
40453
 
 
40454
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40455
class CT_BaseSpec : public CTree {
 
40456
#line 40457 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40457
  friend class ::CCExprResolve;
 
40458
  friend class ::CExprResolve;
 
40459
  friend class ::WinIfExists;
 
40460
  friend class ::WinImportHandler;
 
40461
  friend class ::WinMacros;
 
40462
  friend class ::WinAsm;
 
40463
  friend class ::WinDeclSpecs;
 
40464
  friend class ::WinMemberExplSpec;
 
40465
  friend class ::WinTypeKeywords;
 
40466
  friend class ::WinFriend;
 
40467
  friend class ::ExtAC;
 
40468
  friend class ::ExtACBuilderCoupling;
 
40469
  friend class ::ExtACSyntaxCoupling;
 
40470
  friend class ::ExtACTree;
 
40471
  friend class ::ExtACKeywords;
 
40472
  friend class ::ExtGnu;
 
40473
  friend class ::PragmaOnceUnitState;
 
40474
  friend class ::PragmaOnce;
 
40475
  friend class ::CMatchSyntax;
 
40476
 
 
40477
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40478
 
 
40479
  CTree *sons[3]; // virtual, access, name
 
40480
 
 
40481
public:
 
40482
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
 
40483
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
 
40484
  }
 
40485
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40486
  static const char *NodeId ();
 
40487
  /** Get the name of the node. Can be compared with NodeId(). */
 
40488
  const char *NodeName () const { return NodeId (); }
 
40489
  /** Get the number of sons. */
 
40490
  int Sons () const { return CTree::Sons (sons, 3); }
 
40491
  /** Get the n-th son.
 
40492
   *  \param n The index of the son.
 
40493
   *  \return The n-th son or NULL. */
 
40494
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
40495
  int Access () const { return sons[1]->token ()->type (); }
 
40496
  CTree *AccessSpec () const { return sons[1]; }
 
40497
  CTree *Virtual () const { return sons[0]; }
 
40498
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
40499
  /** Replace a son.
 
40500
   *  \param old_son The son to replace.
 
40501
   *  \param new_son The new son. */
 
40502
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40503
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
40504
  }
 
40505
};
 
40506
 
 
40507
 
 
40508
#line 40509 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40509
} // closed Puma
 
40510
class CCExprResolve;
 
40511
class CExprResolve;
 
40512
class WinIfExists;
 
40513
class WinImportHandler;
 
40514
class WinMacros;
 
40515
class WinAsm;
 
40516
class WinDeclSpecs;
 
40517
class WinMemberExplSpec;
 
40518
class WinTypeKeywords;
 
40519
class WinFriend;
 
40520
class ExtAC;
 
40521
class ExtACBuilderCoupling;
 
40522
class ExtACSyntaxCoupling;
 
40523
class ExtACTree;
 
40524
class ExtACKeywords;
 
40525
class ExtGnu;
 
40526
class PragmaOnceUnitState;
 
40527
class PragmaOnce;
 
40528
class CMatchSyntax;
 
40529
namespace Puma {
 
40530
 
 
40531
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40532
class CT_AccessDecl : public CT_Decl {
 
40533
#line 40534 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40534
  friend class ::CCExprResolve;
 
40535
  friend class ::CExprResolve;
 
40536
  friend class ::WinIfExists;
 
40537
  friend class ::WinImportHandler;
 
40538
  friend class ::WinMacros;
 
40539
  friend class ::WinAsm;
 
40540
  friend class ::WinDeclSpecs;
 
40541
  friend class ::WinMemberExplSpec;
 
40542
  friend class ::WinTypeKeywords;
 
40543
  friend class ::WinFriend;
 
40544
  friend class ::ExtAC;
 
40545
  friend class ::ExtACBuilderCoupling;
 
40546
  friend class ::ExtACSyntaxCoupling;
 
40547
  friend class ::ExtACTree;
 
40548
  friend class ::ExtACKeywords;
 
40549
  friend class ::ExtGnu;
 
40550
  friend class ::PragmaOnceUnitState;
 
40551
  friend class ::PragmaOnce;
 
40552
  friend class ::CMatchSyntax;
 
40553
 
 
40554
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40555
 
 
40556
  CTree *sons[2]; // name, semi_colon
 
40557
 
 
40558
public:
 
40559
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
40560
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40561
  static const char *NodeId ();
 
40562
  /** Get the name of the node. Can be compared with NodeId(). */
 
40563
  const char *NodeName () const { return NodeId (); }
 
40564
  /** Get the number of sons. */
 
40565
  int Sons () const { return 2; }
 
40566
  /** Get the n-th son.
 
40567
   *  \param n The index of the son.
 
40568
   *  \return The n-th son or NULL. */
 
40569
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
40570
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
40571
  /** Replace a son.
 
40572
   *  \param old_son The son to replace.
 
40573
   *  \param new_son The new son. */
 
40574
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40575
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
40576
  }
 
40577
};
 
40578
 
 
40579
 
 
40580
#line 40581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40581
} // closed Puma
 
40582
class CCExprResolve;
 
40583
class CExprResolve;
 
40584
class WinIfExists;
 
40585
class WinImportHandler;
 
40586
class WinMacros;
 
40587
class WinAsm;
 
40588
class WinDeclSpecs;
 
40589
class WinMemberExplSpec;
 
40590
class WinTypeKeywords;
 
40591
class WinFriend;
 
40592
class ExtAC;
 
40593
class ExtACBuilderCoupling;
 
40594
class ExtACSyntaxCoupling;
 
40595
class ExtACTree;
 
40596
class ExtACKeywords;
 
40597
class ExtGnu;
 
40598
class PragmaOnceUnitState;
 
40599
class PragmaOnce;
 
40600
class CMatchSyntax;
 
40601
namespace Puma {
 
40602
 
 
40603
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40604
class CT_UsingDecl : public CT_AccessDecl {
 
40605
#line 40606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40606
  friend class ::CCExprResolve;
 
40607
  friend class ::CExprResolve;
 
40608
  friend class ::WinIfExists;
 
40609
  friend class ::WinImportHandler;
 
40610
  friend class ::WinMacros;
 
40611
  friend class ::WinAsm;
 
40612
  friend class ::WinDeclSpecs;
 
40613
  friend class ::WinMemberExplSpec;
 
40614
  friend class ::WinTypeKeywords;
 
40615
  friend class ::WinFriend;
 
40616
  friend class ::ExtAC;
 
40617
  friend class ::ExtACBuilderCoupling;
 
40618
  friend class ::ExtACSyntaxCoupling;
 
40619
  friend class ::ExtACTree;
 
40620
  friend class ::ExtACKeywords;
 
40621
  friend class ::ExtGnu;
 
40622
  friend class ::PragmaOnceUnitState;
 
40623
  friend class ::PragmaOnce;
 
40624
  friend class ::CMatchSyntax;
 
40625
 
 
40626
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40627
 
 
40628
  CTree *sons[2]; // using, typename
 
40629
 
 
40630
public:
 
40631
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
40632
    AddSon (sons[0], u); AddSon (sons[1], 0); 
 
40633
  }
 
40634
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
40635
    AddSon (sons[0], u); AddSon (sons[1], t); 
 
40636
  }
 
40637
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40638
  static const char *NodeId ();
 
40639
  /** Get the name of the node. Can be compared with NodeId(). */
 
40640
  const char *NodeName () const { return NodeId (); }
 
40641
  /** Get the number of sons. */
 
40642
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
40643
  /** Get the n-th son.
 
40644
   *  \param n The index of the son.
 
40645
   *  \return The n-th son or NULL. */
 
40646
  CTree *Son (int n) const {
 
40647
    int num = CTree::Sons (sons, 2);
 
40648
    CTree *result = CTree::Son (sons, 2, n);
 
40649
    return result ? result : CT_AccessDecl::Son (n-num);
 
40650
  }
 
40651
  CTree *Typename () const { return sons[1]; }
 
40652
  /** Replace a son.
 
40653
   *  \param old_son The son to replace.
 
40654
   *  \param new_son The new son. */
 
40655
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40656
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
40657
    CT_AccessDecl::ReplaceSon (old_son, new_son);
 
40658
  }
 
40659
};
 
40660
 
 
40661
/*****************************************************************************/
 
40662
/*                                                                           */
 
40663
/*                              Wildcards                                    */
 
40664
/*                                                                           */
 
40665
/*****************************************************************************/
 
40666
 
 
40667
 
 
40668
#line 40669 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40669
} // closed Puma
 
40670
class CCExprResolve;
 
40671
class CExprResolve;
 
40672
class WinIfExists;
 
40673
class WinImportHandler;
 
40674
class WinMacros;
 
40675
class WinAsm;
 
40676
class WinDeclSpecs;
 
40677
class WinMemberExplSpec;
 
40678
class WinTypeKeywords;
 
40679
class WinFriend;
 
40680
class ExtAC;
 
40681
class ExtACBuilderCoupling;
 
40682
class ExtACSyntaxCoupling;
 
40683
class ExtACTree;
 
40684
class ExtACKeywords;
 
40685
class ExtGnu;
 
40686
class PragmaOnceUnitState;
 
40687
class PragmaOnce;
 
40688
class CMatchSyntax;
 
40689
namespace Puma {
 
40690
 
 
40691
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40692
class CT_Any : public CTree {
 
40693
#line 40694 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40694
  friend class ::CCExprResolve;
 
40695
  friend class ::CExprResolve;
 
40696
  friend class ::WinIfExists;
 
40697
  friend class ::WinImportHandler;
 
40698
  friend class ::WinMacros;
 
40699
  friend class ::WinAsm;
 
40700
  friend class ::WinDeclSpecs;
 
40701
  friend class ::WinMemberExplSpec;
 
40702
  friend class ::WinTypeKeywords;
 
40703
  friend class ::WinFriend;
 
40704
  friend class ::ExtAC;
 
40705
  friend class ::ExtACBuilderCoupling;
 
40706
  friend class ::ExtACSyntaxCoupling;
 
40707
  friend class ::ExtACTree;
 
40708
  friend class ::ExtACKeywords;
 
40709
  friend class ::ExtGnu;
 
40710
  friend class ::PragmaOnceUnitState;
 
40711
  friend class ::PragmaOnce;
 
40712
  friend class ::CMatchSyntax;
 
40713
 
 
40714
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40715
 
 
40716
  CTree *sons[2]; // keyword, extension
 
40717
 
 
40718
public:
 
40719
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
40720
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40721
  static const char *NodeId ();
 
40722
  /** Get the name of the node. Can be compared with NodeId(). */
 
40723
  const char *NodeName () const { return NodeId (); }
 
40724
  /** Get the number of sons. */
 
40725
  int Sons () const { return CTree::Sons (sons, 2); }
 
40726
  /** Get the n-th son.
 
40727
   *  \param n The index of the son.
 
40728
   *  \return The n-th son or NULL. */
 
40729
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
40730
  /** Replace a son.
 
40731
   *  \param old_son The son to replace.
 
40732
   *  \param new_son The new son. */
 
40733
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40734
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
40735
  }
 
40736
  int AnyType () const { return sons[0]->token ()->type (); }
 
40737
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
 
40738
};
 
40739
 
 
40740
 
 
40741
#line 40742 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40742
} // closed Puma
 
40743
class CCExprResolve;
 
40744
class CExprResolve;
 
40745
class WinIfExists;
 
40746
class WinImportHandler;
 
40747
class WinMacros;
 
40748
class WinAsm;
 
40749
class WinDeclSpecs;
 
40750
class WinMemberExplSpec;
 
40751
class WinTypeKeywords;
 
40752
class WinFriend;
 
40753
class ExtAC;
 
40754
class ExtACBuilderCoupling;
 
40755
class ExtACSyntaxCoupling;
 
40756
class ExtACTree;
 
40757
class ExtACKeywords;
 
40758
class ExtGnu;
 
40759
class PragmaOnceUnitState;
 
40760
class PragmaOnce;
 
40761
class CMatchSyntax;
 
40762
namespace Puma {
 
40763
 
 
40764
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40765
class CT_AnyList : public CT_Any {
 
40766
#line 40767 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40767
  friend class ::CCExprResolve;
 
40768
  friend class ::CExprResolve;
 
40769
  friend class ::WinIfExists;
 
40770
  friend class ::WinImportHandler;
 
40771
  friend class ::WinMacros;
 
40772
  friend class ::WinAsm;
 
40773
  friend class ::WinDeclSpecs;
 
40774
  friend class ::WinMemberExplSpec;
 
40775
  friend class ::WinTypeKeywords;
 
40776
  friend class ::WinFriend;
 
40777
  friend class ::ExtAC;
 
40778
  friend class ::ExtACBuilderCoupling;
 
40779
  friend class ::ExtACSyntaxCoupling;
 
40780
  friend class ::ExtACTree;
 
40781
  friend class ::ExtACKeywords;
 
40782
  friend class ::ExtGnu;
 
40783
  friend class ::PragmaOnceUnitState;
 
40784
  friend class ::PragmaOnce;
 
40785
  friend class ::CMatchSyntax;
 
40786
 
 
40787
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40788
 
 
40789
public:
 
40790
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
40791
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40792
  static const char *NodeId ();
 
40793
  /** Get the name of the node. Can be compared with NodeId(). */
 
40794
  const char *NodeName () const { return NodeId (); }
 
40795
};
 
40796
 
 
40797
 
 
40798
#line 40799 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40799
} // closed Puma
 
40800
class CCExprResolve;
 
40801
class CExprResolve;
 
40802
class WinIfExists;
 
40803
class WinImportHandler;
 
40804
class WinMacros;
 
40805
class WinAsm;
 
40806
class WinDeclSpecs;
 
40807
class WinMemberExplSpec;
 
40808
class WinTypeKeywords;
 
40809
class WinFriend;
 
40810
class ExtAC;
 
40811
class ExtACBuilderCoupling;
 
40812
class ExtACSyntaxCoupling;
 
40813
class ExtACTree;
 
40814
class ExtACKeywords;
 
40815
class ExtGnu;
 
40816
class PragmaOnceUnitState;
 
40817
class PragmaOnce;
 
40818
class CMatchSyntax;
 
40819
namespace Puma {
 
40820
 
 
40821
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40822
class CT_AnyExtension : public CTree, public CSemValue {
 
40823
#line 40824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40824
  friend class ::CCExprResolve;
 
40825
  friend class ::CExprResolve;
 
40826
  friend class ::WinIfExists;
 
40827
  friend class ::WinImportHandler;
 
40828
  friend class ::WinMacros;
 
40829
  friend class ::WinAsm;
 
40830
  friend class ::WinDeclSpecs;
 
40831
  friend class ::WinMemberExplSpec;
 
40832
  friend class ::WinTypeKeywords;
 
40833
  friend class ::WinFriend;
 
40834
  friend class ::ExtAC;
 
40835
  friend class ::ExtACBuilderCoupling;
 
40836
  friend class ::ExtACSyntaxCoupling;
 
40837
  friend class ::ExtACTree;
 
40838
  friend class ::ExtACKeywords;
 
40839
  friend class ::ExtGnu;
 
40840
  friend class ::PragmaOnceUnitState;
 
40841
  friend class ::PragmaOnce;
 
40842
  friend class ::CMatchSyntax;
 
40843
 
 
40844
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40845
 
 
40846
  CTree *sons[5]; // open, string, comma, cond, close
 
40847
 
 
40848
public:
 
40849
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
 
40850
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
40851
    AddSon (sons[3], c); AddSon (sons[4], cr); 
 
40852
  }
 
40853
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40854
  static const char *NodeId ();
 
40855
  /** Get the name of the node. Can be compared with NodeId(). */
 
40856
  const char *NodeName () const { return NodeId (); }
 
40857
  /** Get the number of sons. */
 
40858
  int Sons () const { return CTree::Sons (sons, 5); }
 
40859
  /** Get the n-th son.
 
40860
   *  \param n The index of the son.
 
40861
   *  \return The n-th son or NULL. */
 
40862
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
40863
  /** Replace a son.
 
40864
   *  \param old_son The son to replace.
 
40865
   *  \param new_son The new son. */
 
40866
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40867
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
40868
  }
 
40869
  CTree *Condition () const { return sons[3]; }
 
40870
  CT_Token *String () const { return (CT_Token*)sons[1]; }
 
40871
  const char *Name () const { 
 
40872
    return value ? value->StrLiteral ()->String () : (const char*)0; }
 
40873
 
 
40874
  CExprValue *Value () const { return value; }
 
40875
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
40876
};
 
40877
 
 
40878
 
 
40879
#line 40880 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40880
} // closed Puma
 
40881
class CCExprResolve;
 
40882
class CExprResolve;
 
40883
class WinIfExists;
 
40884
class WinImportHandler;
 
40885
class WinMacros;
 
40886
class WinAsm;
 
40887
class WinDeclSpecs;
 
40888
class WinMemberExplSpec;
 
40889
class WinTypeKeywords;
 
40890
class WinFriend;
 
40891
class ExtAC;
 
40892
class ExtACBuilderCoupling;
 
40893
class ExtACSyntaxCoupling;
 
40894
class ExtACTree;
 
40895
class ExtACKeywords;
 
40896
class ExtGnu;
 
40897
class PragmaOnceUnitState;
 
40898
class PragmaOnce;
 
40899
class CMatchSyntax;
 
40900
namespace Puma {
 
40901
 
 
40902
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40903
class CT_AnyCondition : public CTree {
 
40904
#line 40905 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40905
  friend class ::CCExprResolve;
 
40906
  friend class ::CExprResolve;
 
40907
  friend class ::WinIfExists;
 
40908
  friend class ::WinImportHandler;
 
40909
  friend class ::WinMacros;
 
40910
  friend class ::WinAsm;
 
40911
  friend class ::WinDeclSpecs;
 
40912
  friend class ::WinMemberExplSpec;
 
40913
  friend class ::WinTypeKeywords;
 
40914
  friend class ::WinFriend;
 
40915
  friend class ::ExtAC;
 
40916
  friend class ::ExtACBuilderCoupling;
 
40917
  friend class ::ExtACSyntaxCoupling;
 
40918
  friend class ::ExtACTree;
 
40919
  friend class ::ExtACKeywords;
 
40920
  friend class ::ExtGnu;
 
40921
  friend class ::PragmaOnceUnitState;
 
40922
  friend class ::PragmaOnce;
 
40923
  friend class ::CMatchSyntax;
 
40924
 
 
40925
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40926
 
 
40927
  CTree *sons[3]; // arg1, arg2, arg3
 
40928
 
 
40929
public:
 
40930
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
 
40931
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
 
40932
  }
 
40933
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40934
  static const char *NodeId ();
 
40935
  /** Get the name of the node. Can be compared with NodeId(). */
 
40936
  const char *NodeName () const { return NodeId (); }
 
40937
  /** Get the number of sons. */
 
40938
  int Sons () const { return CTree::Sons (sons, 3); }
 
40939
  /** Get the n-th son.
 
40940
   *  \param n The index of the son.
 
40941
   *  \return The n-th son or NULL. */
 
40942
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
40943
  /** Replace a son.
 
40944
   *  \param old_son The son to replace.
 
40945
   *  \param new_son The new son. */
 
40946
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40947
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
40948
  }
 
40949
};
 
40950
 
 
40951
 
 
40952
} // namespace Puma
 
40953
 
 
40954
#endif /* __CTree_h__ */
 
40955
 
 
40956
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/WinCTree.h"
 
40957
namespace Puma {
 
40958
 
 
40959
 
 
40960
 
 
40961
#line 40962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40962
} // closed Puma
 
40963
class CCExprResolve;
 
40964
class CExprResolve;
 
40965
class WinIfExists;
 
40966
class WinImportHandler;
 
40967
class WinMacros;
 
40968
class WinAsm;
 
40969
class WinDeclSpecs;
 
40970
class WinMemberExplSpec;
 
40971
class WinTypeKeywords;
 
40972
class WinFriend;
 
40973
class ExtAC;
 
40974
class ExtACBuilderCoupling;
 
40975
class ExtACSyntaxCoupling;
 
40976
class ExtACTree;
 
40977
class ExtACKeywords;
 
40978
class ExtGnu;
 
40979
class PragmaOnceUnitState;
 
40980
class PragmaOnce;
 
40981
class CMatchSyntax;
 
40982
namespace Puma {
 
40983
 
 
40984
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/WinCTree.h"
 
40985
class CT_AsmBlock : public CT_Statement {
 
40986
#line 40987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
40987
  friend class ::CCExprResolve;
 
40988
  friend class ::CExprResolve;
 
40989
  friend class ::WinIfExists;
 
40990
  friend class ::WinImportHandler;
 
40991
  friend class ::WinMacros;
 
40992
  friend class ::WinAsm;
 
40993
  friend class ::WinDeclSpecs;
 
40994
  friend class ::WinMemberExplSpec;
 
40995
  friend class ::WinTypeKeywords;
 
40996
  friend class ::WinFriend;
 
40997
  friend class ::ExtAC;
 
40998
  friend class ::ExtACBuilderCoupling;
 
40999
  friend class ::ExtACSyntaxCoupling;
 
41000
  friend class ::ExtACTree;
 
41001
  friend class ::ExtACKeywords;
 
41002
  friend class ::ExtGnu;
 
41003
  friend class ::PragmaOnceUnitState;
 
41004
  friend class ::PragmaOnce;
 
41005
  friend class ::CMatchSyntax;
 
41006
 
 
41007
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/WinCTree.h"
 
41008
 
 
41009
  CTree *_key;
 
41010
  CTree *_begin;
 
41011
  CTree *_end;
 
41012
 
 
41013
public:
 
41014
  CT_AsmBlock (CTree *k, CTree *b, CTree *e) :
 
41015
    _key (k), _begin (b), _end (e) {}
 
41016
  static const char *NodeId ();
 
41017
  const char *NodeName () const { return NodeId (); }  
 
41018
  virtual int Sons () const { return 3; }
 
41019
  virtual CTree *Son (int n) const {
 
41020
    switch (n) {
 
41021
      case 0: return _key;
 
41022
      case 1: return _begin;
 
41023
      case 2: return _end;
 
41024
      default: return (CTree*)0;
 
41025
    }
 
41026
  }
 
41027
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {
 
41028
    if (old_son == _key) _key = new_son;
 
41029
    else if (old_son == _begin) _begin = new_son;
 
41030
    else if (old_son == _end) _end = new_son;
 
41031
  }
 
41032
};
 
41033
 
 
41034
 
 
41035
} // namespace Puma
 
41036
 
 
41037
#endif /* __win_c_tree_h__ */
 
41038
 
 
41039
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
14744
41040
// This file is part of PUMA.
14745
41041
// Copyright (C) 1999-2003  The PUMA developer team.
14746
41042
//                                                                
14774
41070
// to the same entity
14775
41071
 
14776
41072
 
14777
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
 
41073
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
14778
41074
// This file is part of PUMA.
14779
41075
// Copyright (C) 1999-2003  The PUMA developer team.
14780
41076
//                                                                
14809
41105
class Unit;
14810
41106
 
14811
41107
 
14812
 
#line 14813 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
41108
#line 41109 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
14813
41109
} // closed Puma
 
41110
class CCExprResolve;
 
41111
class CExprResolve;
14814
41112
class WinIfExists;
14815
41113
class WinImportHandler;
14816
41114
class WinMacros;
14817
 
class CMatchSyntax;
14818
 
class ExtGnu;
 
41115
class WinAsm;
 
41116
class WinDeclSpecs;
 
41117
class WinMemberExplSpec;
 
41118
class WinTypeKeywords;
 
41119
class WinFriend;
14819
41120
class ExtAC;
14820
41121
class ExtACBuilderCoupling;
14821
41122
class ExtACSyntaxCoupling;
14822
41123
class ExtACTree;
14823
41124
class ExtACKeywords;
14824
 
class WinAsm;
14825
 
class WinDeclSpecs;
14826
 
class WinMemberExplSpec;
14827
 
class WinTypeKeywords;
 
41125
class ExtGnu;
14828
41126
class PragmaOnceUnitState;
14829
41127
class PragmaOnce;
14830
 
class CCExprResolve;
14831
 
class CExprResolve;
 
41128
class CMatchSyntax;
14832
41129
namespace Puma {
14833
41130
 
14834
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
 
41131
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
14835
41132
class CSourceInfo {
14836
 
#line 14837 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
41133
#line 41134 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
41134
  friend class ::CCExprResolve;
 
41135
  friend class ::CExprResolve;
14837
41136
  friend class ::WinIfExists;
14838
41137
  friend class ::WinImportHandler;
14839
41138
  friend class ::WinMacros;
14840
 
  friend class ::CMatchSyntax;
14841
 
  friend class ::ExtGnu;
 
41139
  friend class ::WinAsm;
 
41140
  friend class ::WinDeclSpecs;
 
41141
  friend class ::WinMemberExplSpec;
 
41142
  friend class ::WinTypeKeywords;
 
41143
  friend class ::WinFriend;
14842
41144
  friend class ::ExtAC;
14843
41145
  friend class ::ExtACBuilderCoupling;
14844
41146
  friend class ::ExtACSyntaxCoupling;
14845
41147
  friend class ::ExtACTree;
14846
41148
  friend class ::ExtACKeywords;
14847
 
  friend class ::WinAsm;
14848
 
  friend class ::WinDeclSpecs;
14849
 
  friend class ::WinMemberExplSpec;
14850
 
  friend class ::WinTypeKeywords;
 
41149
  friend class ::ExtGnu;
14851
41150
  friend class ::PragmaOnceUnitState;
14852
41151
  friend class ::PragmaOnce;
14853
 
  friend class ::CCExprResolve;
14854
 
  friend class ::CExprResolve;
 
41152
  friend class ::CMatchSyntax;
14855
41153
 
14856
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
 
41154
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
14857
41155
 
14858
41156
  CFileInfo *_FileInfo; 
14859
41157
  CT_Token *_StartToken;
14927
41225
 
14928
41226
#endif /* __CSourceInfo_h__ */
14929
41227
 
14930
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProtection.h"
 
41228
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProtection.h"
14931
41229
// This file is part of PUMA.
14932
41230
// Copyright (C) 1999-2003  The PUMA developer team.
14933
41231
//                                                                
14955
41253
 
14956
41254
 
14957
41255
 
14958
 
#line 14959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
41256
#line 41257 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
14959
41257
} // closed Puma
 
41258
class CCExprResolve;
 
41259
class CExprResolve;
14960
41260
class WinIfExists;
14961
41261
class WinImportHandler;
14962
41262
class WinMacros;
14963
 
class CMatchSyntax;
14964
 
class ExtGnu;
 
41263
class WinAsm;
 
41264
class WinDeclSpecs;
 
41265
class WinMemberExplSpec;
 
41266
class WinTypeKeywords;
 
41267
class WinFriend;
14965
41268
class ExtAC;
14966
41269
class ExtACBuilderCoupling;
14967
41270
class ExtACSyntaxCoupling;
14968
41271
class ExtACTree;
14969
41272
class ExtACKeywords;
14970
 
class WinAsm;
14971
 
class WinDeclSpecs;
14972
 
class WinMemberExplSpec;
14973
 
class WinTypeKeywords;
 
41273
class ExtGnu;
14974
41274
class PragmaOnceUnitState;
14975
41275
class PragmaOnce;
14976
 
class CCExprResolve;
14977
 
class CExprResolve;
 
41276
class CMatchSyntax;
14978
41277
namespace Puma {
14979
41278
 
14980
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProtection.h"
 
41279
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProtection.h"
14981
41280
struct CProtection {
14982
 
#line 14983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
41281
#line 41282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
41282
  friend class ::CCExprResolve;
 
41283
  friend class ::CExprResolve;
14983
41284
  friend class ::WinIfExists;
14984
41285
  friend class ::WinImportHandler;
14985
41286
  friend class ::WinMacros;
14986
 
  friend class ::CMatchSyntax;
14987
 
  friend class ::ExtGnu;
 
41287
  friend class ::WinAsm;
 
41288
  friend class ::WinDeclSpecs;
 
41289
  friend class ::WinMemberExplSpec;
 
41290
  friend class ::WinTypeKeywords;
 
41291
  friend class ::WinFriend;
14988
41292
  friend class ::ExtAC;
14989
41293
  friend class ::ExtACBuilderCoupling;
14990
41294
  friend class ::ExtACSyntaxCoupling;
14991
41295
  friend class ::ExtACTree;
14992
41296
  friend class ::ExtACKeywords;
14993
 
  friend class ::WinAsm;
14994
 
  friend class ::WinDeclSpecs;
14995
 
  friend class ::WinMemberExplSpec;
14996
 
  friend class ::WinTypeKeywords;
 
41297
  friend class ::ExtGnu;
14997
41298
  friend class ::PragmaOnceUnitState;
14998
41299
  friend class ::PragmaOnce;
14999
 
  friend class ::CCExprResolve;
15000
 
  friend class ::CExprResolve;
 
41300
  friend class ::CMatchSyntax;
15001
41301
 
15002
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProtection.h"
 
41302
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProtection.h"
15003
41303
 
15004
41304
  enum Type {
15005
41305
    PROT_PUBLIC, 
15014
41314
 
15015
41315
#endif /* __CProtection_h__ */
15016
41316
 
15017
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStorage.h"
 
41317
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStorage.h"
15018
41318
// This file is part of PUMA.
15019
41319
// Copyright (C) 1999-2003  The PUMA developer team.
15020
41320
//                                                                
15042
41342
 
15043
41343
 
15044
41344
 
15045
 
#line 15046 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
41345
#line 41346 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
15046
41346
} // closed Puma
 
41347
class CCExprResolve;
 
41348
class CExprResolve;
15047
41349
class WinIfExists;
15048
41350
class WinImportHandler;
15049
41351
class WinMacros;
15050
 
class CMatchSyntax;
15051
 
class ExtGnu;
 
41352
class WinAsm;
 
41353
class WinDeclSpecs;
 
41354
class WinMemberExplSpec;
 
41355
class WinTypeKeywords;
 
41356
class WinFriend;
15052
41357
class ExtAC;
15053
41358
class ExtACBuilderCoupling;
15054
41359
class ExtACSyntaxCoupling;
15055
41360
class ExtACTree;
15056
41361
class ExtACKeywords;
15057
 
class WinAsm;
15058
 
class WinDeclSpecs;
15059
 
class WinMemberExplSpec;
15060
 
class WinTypeKeywords;
 
41362
class ExtGnu;
15061
41363
class PragmaOnceUnitState;
15062
41364
class PragmaOnce;
15063
 
class CCExprResolve;
15064
 
class CExprResolve;
 
41365
class CMatchSyntax;
15065
41366
namespace Puma {
15066
41367
 
15067
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStorage.h"
 
41368
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStorage.h"
15068
41369
struct CStorage {
15069
 
#line 15070 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
41370
#line 41371 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
41371
  friend class ::CCExprResolve;
 
41372
  friend class ::CExprResolve;
15070
41373
  friend class ::WinIfExists;
15071
41374
  friend class ::WinImportHandler;
15072
41375
  friend class ::WinMacros;
15073
 
  friend class ::CMatchSyntax;
15074
 
  friend class ::ExtGnu;
 
41376
  friend class ::WinAsm;
 
41377
  friend class ::WinDeclSpecs;
 
41378
  friend class ::WinMemberExplSpec;
 
41379
  friend class ::WinTypeKeywords;
 
41380
  friend class ::WinFriend;
15075
41381
  friend class ::ExtAC;
15076
41382
  friend class ::ExtACBuilderCoupling;
15077
41383
  friend class ::ExtACSyntaxCoupling;
15078
41384
  friend class ::ExtACTree;
15079
41385
  friend class ::ExtACKeywords;
15080
 
  friend class ::WinAsm;
15081
 
  friend class ::WinDeclSpecs;
15082
 
  friend class ::WinMemberExplSpec;
15083
 
  friend class ::WinTypeKeywords;
 
41386
  friend class ::ExtGnu;
15084
41387
  friend class ::PragmaOnceUnitState;
15085
41388
  friend class ::PragmaOnce;
15086
 
  friend class ::CCExprResolve;
15087
 
  friend class ::CExprResolve;
 
41389
  friend class ::CMatchSyntax;
15088
41390
 
15089
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStorage.h"
 
41391
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStorage.h"
15090
41392
 
15091
41393
  enum Type {
15092
41394
    CLASS_STATIC,
15101
41403
 
15102
41404
#endif /* __CStorage_h__ */
15103
41405
 
15104
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLinkage.h"
 
41406
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLinkage.h"
15105
41407
// This file is part of PUMA.
15106
41408
// Copyright (C) 1999-2003  The PUMA developer team.
15107
41409
//                                                                
15129
41431
 
15130
41432
 
15131
41433
 
15132
 
#line 15133 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
41434
#line 41435 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
15133
41435
} // closed Puma
 
41436
class CCExprResolve;
 
41437
class CExprResolve;
15134
41438
class WinIfExists;
15135
41439
class WinImportHandler;
15136
41440
class WinMacros;
15137
 
class CMatchSyntax;
15138
 
class ExtGnu;
 
41441
class WinAsm;
 
41442
class WinDeclSpecs;
 
41443
class WinMemberExplSpec;
 
41444
class WinTypeKeywords;
 
41445
class WinFriend;
15139
41446
class ExtAC;
15140
41447
class ExtACBuilderCoupling;
15141
41448
class ExtACSyntaxCoupling;
15142
41449
class ExtACTree;
15143
41450
class ExtACKeywords;
15144
 
class WinAsm;
15145
 
class WinDeclSpecs;
15146
 
class WinMemberExplSpec;
15147
 
class WinTypeKeywords;
 
41451
class ExtGnu;
15148
41452
class PragmaOnceUnitState;
15149
41453
class PragmaOnce;
15150
 
class CCExprResolve;
15151
 
class CExprResolve;
 
41454
class CMatchSyntax;
15152
41455
namespace Puma {
15153
41456
 
15154
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLinkage.h"
 
41457
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLinkage.h"
15155
41458
struct CLinkage {
15156
 
#line 15157 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
41459
#line 41460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
41460
  friend class ::CCExprResolve;
 
41461
  friend class ::CExprResolve;
15157
41462
  friend class ::WinIfExists;
15158
41463
  friend class ::WinImportHandler;
15159
41464
  friend class ::WinMacros;
15160
 
  friend class ::CMatchSyntax;
15161
 
  friend class ::ExtGnu;
 
41465
  friend class ::WinAsm;
 
41466
  friend class ::WinDeclSpecs;
 
41467
  friend class ::WinMemberExplSpec;
 
41468
  friend class ::WinTypeKeywords;
 
41469
  friend class ::WinFriend;
15162
41470
  friend class ::ExtAC;
15163
41471
  friend class ::ExtACBuilderCoupling;
15164
41472
  friend class ::ExtACSyntaxCoupling;
15165
41473
  friend class ::ExtACTree;
15166
41474
  friend class ::ExtACKeywords;
15167
 
  friend class ::WinAsm;
15168
 
  friend class ::WinDeclSpecs;
15169
 
  friend class ::WinMemberExplSpec;
15170
 
  friend class ::WinTypeKeywords;
 
41475
  friend class ::ExtGnu;
15171
41476
  friend class ::PragmaOnceUnitState;
15172
41477
  friend class ::PragmaOnce;
15173
 
  friend class ::CCExprResolve;
15174
 
  friend class ::CExprResolve;
 
41478
  friend class ::CMatchSyntax;
15175
41479
 
15176
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLinkage.h"
 
41480
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLinkage.h"
15177
41481
 
15178
41482
  enum Type {
15179
41483
    LINK_INTERNAL, 
15187
41491
 
15188
41492
#endif /* __CLinkage_h__ */
15189
41493
 
15190
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
41494
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
15191
41495
// This file is part of PUMA.
15192
41496
// Copyright (C) 1999-2003  The PUMA developer team.
15193
41497
//                                                                
15210
41514
#define __CLanguage_h__
15211
41515
 
15212
41516
 
15213
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
41517
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
15214
41518
// Entity name encoding language; language linkage
15215
41519
 
15216
41520
namespace Puma {
15217
41521
 
15218
41522
 
15219
41523
 
15220
 
#line 15221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
41524
#line 41525 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
15221
41525
} // closed Puma
 
41526
class CCExprResolve;
 
41527
class CExprResolve;
15222
41528
class WinIfExists;
15223
41529
class WinImportHandler;
15224
41530
class WinMacros;
15225
 
class CMatchSyntax;
15226
 
class ExtGnu;
 
41531
class WinAsm;
 
41532
class WinDeclSpecs;
 
41533
class WinMemberExplSpec;
 
41534
class WinTypeKeywords;
 
41535
class WinFriend;
15227
41536
class ExtAC;
15228
41537
class ExtACBuilderCoupling;
15229
41538
class ExtACSyntaxCoupling;
15230
41539
class ExtACTree;
15231
41540
class ExtACKeywords;
15232
 
class WinAsm;
15233
 
class WinDeclSpecs;
15234
 
class WinMemberExplSpec;
15235
 
class WinTypeKeywords;
 
41541
class ExtGnu;
15236
41542
class PragmaOnceUnitState;
15237
41543
class PragmaOnce;
15238
 
class CCExprResolve;
15239
 
class CExprResolve;
 
41544
class CMatchSyntax;
15240
41545
namespace Puma {
15241
41546
 
15242
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
41547
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
15243
41548
class CLanguage {
15244
 
#line 15245 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
41549
#line 41550 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
41550
  friend class ::CCExprResolve;
 
41551
  friend class ::CExprResolve;
15245
41552
  friend class ::WinIfExists;
15246
41553
  friend class ::WinImportHandler;
15247
41554
  friend class ::WinMacros;
15248
 
  friend class ::CMatchSyntax;
15249
 
  friend class ::ExtGnu;
 
41555
  friend class ::WinAsm;
 
41556
  friend class ::WinDeclSpecs;
 
41557
  friend class ::WinMemberExplSpec;
 
41558
  friend class ::WinTypeKeywords;
 
41559
  friend class ::WinFriend;
15250
41560
  friend class ::ExtAC;
15251
41561
  friend class ::ExtACBuilderCoupling;
15252
41562
  friend class ::ExtACSyntaxCoupling;
15253
41563
  friend class ::ExtACTree;
15254
41564
  friend class ::ExtACKeywords;
15255
 
  friend class ::WinAsm;
15256
 
  friend class ::WinDeclSpecs;
15257
 
  friend class ::WinMemberExplSpec;
15258
 
  friend class ::WinTypeKeywords;
 
41565
  friend class ::ExtGnu;
15259
41566
  friend class ::PragmaOnceUnitState;
15260
41567
  friend class ::PragmaOnce;
15261
 
  friend class ::CCExprResolve;
15262
 
  friend class ::CExprResolve;
 
41568
  friend class ::CMatchSyntax;
15263
41569
 
15264
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
41570
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
15265
41571
 
15266
41572
public:
15267
41573
  enum LangType {
15297
41603
 
15298
41604
#endif /* __CLanguage_h__ */
15299
41605
 
15300
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
 
41606
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
15301
41607
// This file is part of PUMA.
15302
41608
// Copyright (C) 1999-2003  The PUMA developer team.
15303
41609
//                                                                
15325
41631
 
15326
41632
 
15327
41633
 
15328
 
#line 15329 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
41634
#line 41635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
15329
41635
} // closed Puma
 
41636
class CCExprResolve;
 
41637
class CExprResolve;
15330
41638
class WinIfExists;
15331
41639
class WinImportHandler;
15332
41640
class WinMacros;
15333
 
class CMatchSyntax;
15334
 
class ExtGnu;
 
41641
class WinAsm;
 
41642
class WinDeclSpecs;
 
41643
class WinMemberExplSpec;
 
41644
class WinTypeKeywords;
 
41645
class WinFriend;
15335
41646
class ExtAC;
15336
41647
class ExtACBuilderCoupling;
15337
41648
class ExtACSyntaxCoupling;
15338
41649
class ExtACTree;
15339
41650
class ExtACKeywords;
15340
 
class WinAsm;
15341
 
class WinDeclSpecs;
15342
 
class WinMemberExplSpec;
15343
 
class WinTypeKeywords;
 
41651
class ExtGnu;
15344
41652
class PragmaOnceUnitState;
15345
41653
class PragmaOnce;
15346
 
class CCExprResolve;
15347
 
class CExprResolve;
 
41654
class CMatchSyntax;
15348
41655
namespace Puma {
15349
41656
 
15350
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
 
41657
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
15351
41658
class CSpecifiers {
15352
 
#line 15353 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
41659
#line 41660 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
41660
  friend class ::CCExprResolve;
 
41661
  friend class ::CExprResolve;
15353
41662
  friend class ::WinIfExists;
15354
41663
  friend class ::WinImportHandler;
15355
41664
  friend class ::WinMacros;
15356
 
  friend class ::CMatchSyntax;
15357
 
  friend class ::ExtGnu;
 
41665
  friend class ::WinAsm;
 
41666
  friend class ::WinDeclSpecs;
 
41667
  friend class ::WinMemberExplSpec;
 
41668
  friend class ::WinTypeKeywords;
 
41669
  friend class ::WinFriend;
15358
41670
  friend class ::ExtAC;
15359
41671
  friend class ::ExtACBuilderCoupling;
15360
41672
  friend class ::ExtACSyntaxCoupling;
15361
41673
  friend class ::ExtACTree;
15362
41674
  friend class ::ExtACKeywords;
15363
 
  friend class ::WinAsm;
15364
 
  friend class ::WinDeclSpecs;
15365
 
  friend class ::WinMemberExplSpec;
15366
 
  friend class ::WinTypeKeywords;
 
41675
  friend class ::ExtGnu;
15367
41676
  friend class ::PragmaOnceUnitState;
15368
41677
  friend class ::PragmaOnce;
15369
 
  friend class ::CCExprResolve;
15370
 
  friend class ::CExprResolve;
 
41678
  friend class ::CMatchSyntax;
15371
41679
 
15372
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
 
41680
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
15373
41681
 
15374
41682
public:
15375
41683
  enum Spec {
15423
41731
 
15424
41732
#endif /* __CSpecifiers__ */
15425
41733
 
15426
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
41734
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
15427
41735
namespace Puma {
15428
41736
 
15429
41737
 
15457
41765
class CTemplateInstance;
15458
41766
 
15459
41767
 
15460
 
#line 15461 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
41768
#line 41769 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
15461
41769
} // closed Puma
 
41770
class CCExprResolve;
 
41771
class CExprResolve;
15462
41772
class WinIfExists;
15463
41773
class WinImportHandler;
15464
41774
class WinMacros;
15465
 
class CMatchSyntax;
15466
 
class ExtGnu;
 
41775
class WinAsm;
 
41776
class WinDeclSpecs;
 
41777
class WinMemberExplSpec;
 
41778
class WinTypeKeywords;
 
41779
class WinFriend;
15467
41780
class ExtAC;
15468
41781
class ExtACBuilderCoupling;
15469
41782
class ExtACSyntaxCoupling;
15470
41783
class ExtACTree;
15471
41784
class ExtACKeywords;
15472
 
class WinAsm;
15473
 
class WinDeclSpecs;
15474
 
class WinMemberExplSpec;
15475
 
class WinTypeKeywords;
 
41785
class ExtGnu;
15476
41786
class PragmaOnceUnitState;
15477
41787
class PragmaOnce;
15478
 
class CCExprResolve;
15479
 
class CExprResolve;
 
41788
class CMatchSyntax;
15480
41789
namespace Puma {
15481
41790
 
15482
 
#line 74 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
41791
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
15483
41792
class CObjectInfo {
15484
 
#line 15485 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
41793
#line 41794 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
41794
  friend class ::CCExprResolve;
 
41795
  friend class ::CExprResolve;
15485
41796
  friend class ::WinIfExists;
15486
41797
  friend class ::WinImportHandler;
15487
41798
  friend class ::WinMacros;
15488
 
  friend class ::CMatchSyntax;
15489
 
  friend class ::ExtGnu;
 
41799
  friend class ::WinAsm;
 
41800
  friend class ::WinDeclSpecs;
 
41801
  friend class ::WinMemberExplSpec;
 
41802
  friend class ::WinTypeKeywords;
 
41803
  friend class ::WinFriend;
15490
41804
  friend class ::ExtAC;
15491
41805
  friend class ::ExtACBuilderCoupling;
15492
41806
  friend class ::ExtACSyntaxCoupling;
15493
41807
  friend class ::ExtACTree;
15494
41808
  friend class ::ExtACKeywords;
15495
 
  friend class ::WinAsm;
15496
 
  friend class ::WinDeclSpecs;
15497
 
  friend class ::WinMemberExplSpec;
15498
 
  friend class ::WinTypeKeywords;
 
41809
  friend class ::ExtGnu;
15499
41810
  friend class ::PragmaOnceUnitState;
15500
41811
  friend class ::PragmaOnce;
15501
 
  friend class ::CCExprResolve;
15502
 
  friend class ::CExprResolve;
 
41812
  friend class ::CMatchSyntax;
15503
41813
 
15504
 
#line 74 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
41814
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
15505
41815
 
15506
41816
protected:
15507
41817
  enum ObjectId {
15532
41842
private:
15533
41843
  DString            _Name;
15534
41844
  const char        *_QualName;         // Full qualified name
 
41845
  bool              _abs, _tdef;        // Flags that were used for QualName()
15535
41846
  CTypeInfo         *_TypeInfo;
15536
41847
  CObjectInfo       *_BaseObject;       // corresponding object of base class
15537
41848
  CObjectInfo       *_Next;             // next linked object
15590
41901
  // Get ...
15591
41902
  ObjectId            Id () const;
15592
41903
  const DString&      Name () const; 
15593
 
  const char         *QualName ();                // created on demand
 
41904
  const char         *QualName (bool abs = false, // created on demand
 
41905
                                bool tdef = false);
15594
41906
  CObjectInfo        *DefObject () const;         // info of the definition
15595
41907
  CTypeInfo          *TypeInfo () const;
15596
41908
  CScopeInfo         *Scope () const;             // enclosing scope
15845
42157
 
15846
42158
#endif /* __CObjectInfo_h__ */
15847
42159
 
15848
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
15849
 
namespace Puma {
15850
 
 
15851
 
 
15852
 
class CLocalScope;
15853
 
class CFunctionInfo;
15854
 
class CNamespaceInfo;
15855
 
class CClassInfo;
15856
 
class CUnionInfo;
15857
 
class CTemplateInfo;
15858
 
 
15859
 
 
15860
 
#line 15861 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
15861
 
} // closed Puma
15862
 
class WinIfExists;
15863
 
class WinImportHandler;
15864
 
class WinMacros;
15865
 
class CMatchSyntax;
15866
 
class ExtGnu;
15867
 
class ExtAC;
15868
 
class ExtACBuilderCoupling;
15869
 
class ExtACSyntaxCoupling;
15870
 
class ExtACTree;
15871
 
class ExtACKeywords;
15872
 
class WinAsm;
15873
 
class WinDeclSpecs;
15874
 
class WinMemberExplSpec;
15875
 
class WinTypeKeywords;
15876
 
class PragmaOnceUnitState;
15877
 
class PragmaOnce;
15878
 
class CCExprResolve;
15879
 
class CExprResolve;
15880
 
namespace Puma {
15881
 
 
15882
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
15883
 
class CScopeInfo : public CObjectInfo {
15884
 
#line 15885 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
15885
 
  friend class ::WinIfExists;
15886
 
  friend class ::WinImportHandler;
15887
 
  friend class ::WinMacros;
15888
 
  friend class ::CMatchSyntax;
15889
 
  friend class ::ExtGnu;
15890
 
  friend class ::ExtAC;
15891
 
  friend class ::ExtACBuilderCoupling;
15892
 
  friend class ::ExtACSyntaxCoupling;
15893
 
  friend class ::ExtACTree;
15894
 
  friend class ::ExtACKeywords;
15895
 
  friend class ::WinAsm;
15896
 
  friend class ::WinDeclSpecs;
15897
 
  friend class ::WinMemberExplSpec;
15898
 
  friend class ::WinTypeKeywords;
15899
 
  friend class ::PragmaOnceUnitState;
15900
 
  friend class ::PragmaOnce;
15901
 
  friend class ::CCExprResolve;
15902
 
  friend class ::CExprResolve;
15903
 
 
15904
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
15905
 
 
15906
 
  Array<CScopeInfo*> _Children; // child scopes
15907
 
  CScopeInfo *_Parent; // parent scope
15908
 
 
15909
 
protected:
15910
 
  CScopeInfo (ObjectId);
15911
 
 
15912
 
public:
15913
 
  ~CScopeInfo ();
15914
 
 
15915
 
  // Get ... 
15916
 
  unsigned Children () const;           // children of this scope
15917
 
  CScopeInfo *Child (unsigned) const;
15918
 
  CScopeInfo *Parent () const;          // parent scope
15919
 
  bool isFile () const;                 // is file?
15920
 
  bool isNamespace () const;            // is namespace?
15921
 
  bool isRecord () const;               // is class or union?
15922
 
  bool isClass () const;                // is class?
15923
 
  bool isUnion () const;                // is union?
15924
 
  bool isFunction () const;             // is function?
15925
 
  bool isMethod () const;               // is class method?
15926
 
  bool isClassTemplate () const;        // is class template?
15927
 
  bool isFctTemplate () const;          // is function template?
15928
 
  bool insideTemplate () const;         // is inside class or function template?
15929
 
  bool insideRecord () const;           // is inside class or union?
15930
 
  bool insideClass () const;            // is inside class?
15931
 
  bool insideUnion () const;            // is inside union?
15932
 
  bool insideFunction () const;         // is inside function?
15933
 
  bool insideMethod () const;           // is inside class method?
15934
 
  bool isLocalScope () const;           // is local (block) scope?
15935
 
  bool isLocalRecord () const;          // is local (block scope) class or union?
15936
 
  bool isLocalClass () const;           // is local (block scope) class?
15937
 
  bool isLocalUnion () const;           // is local (block scope) union?
15938
 
  
15939
 
  bool GlobalScope () const;            // global (file) scope
15940
 
 
15941
 
  // Set ...
15942
 
  void Parent (const CScopeInfo *);
15943
 
  void addChild (CScopeInfo *);
15944
 
  void removeChild (const CScopeInfo *); // WILL NOT BE DESTROYED!
15945
 
  
15946
 
  // Create/Delete ...
15947
 
  CLocalScope *newLocalScope ();
15948
 
  CFunctionInfo *newFunction (bool = false);
15949
 
  CClassInfo *newClass (bool = false);
15950
 
  CUnionInfo *newUnion (bool = false);
15951
 
  CNamespaceInfo *newNamespace ();
15952
 
  CTemplateInfo *newTemplate ();
15953
 
  void deleteLocalScope (const CLocalScope *);
15954
 
  void deleteFunction (const CFunctionInfo *);
15955
 
  void deleteClass (const CClassInfo *);
15956
 
  void deleteUnion (const CUnionInfo *);
15957
 
  void deleteNamespace (const CNamespaceInfo *);
15958
 
  void deleteTemplate (const CTemplateInfo *);
15959
 
};
15960
 
 
15961
 
 
15962
 
inline CScopeInfo::CScopeInfo (CObjectInfo::ObjectId id) :
15963
 
  CObjectInfo (id),
15964
 
  _Children (20, 20),
15965
 
  _Parent ((CScopeInfo*)this)
15966
 
 {}
15967
 
 
15968
 
inline unsigned CScopeInfo::Children () const
15969
 
 { return _Children.length (); }
15970
 
inline CScopeInfo *CScopeInfo::Child (unsigned n) const
15971
 
 { return _Children.lookup (n); }
15972
 
inline CScopeInfo *CScopeInfo::Parent () const
15973
 
 { return _Parent; }
15974
 
 
15975
 
inline bool CScopeInfo::isLocalScope () const
15976
 
 { return LocalScope (); }
15977
 
inline bool CScopeInfo::isFile () const 
15978
 
 { return FileInfo (); }
15979
 
inline bool CScopeInfo::isNamespace () const 
15980
 
 { return NamespaceInfo (); }
15981
 
inline bool CScopeInfo::isRecord () const 
15982
 
 { return Record (); }
15983
 
inline bool CScopeInfo::isClass () const 
15984
 
 { return ClassInfo (); }
15985
 
inline bool CScopeInfo::isUnion () const 
15986
 
 { return UnionInfo (); }
15987
 
inline bool CScopeInfo::isFunction () const 
15988
 
 { return FunctionInfo (); }
15989
 
inline bool CScopeInfo::GlobalScope () const 
15990
 
 { return FileInfo (); }
15991
 
 
15992
 
inline bool CScopeInfo::insideFunction () const 
15993
 
 { return isFunction () || (Parent () && Parent () != this && 
15994
 
                            Parent ()->insideFunction ()); }
15995
 
inline bool CScopeInfo::insideMethod () const 
15996
 
 { return isMethod () || (Parent () && Parent () != this && 
15997
 
                          Parent ()->insideMethod ()); }
15998
 
inline bool CScopeInfo::insideRecord () const 
15999
 
 { return isRecord () || (Parent () && Parent () != this && 
16000
 
                          Parent ()->insideRecord ()); }
16001
 
inline bool CScopeInfo::insideTemplate () const 
16002
 
 { return isTemplate () || (Parent () && Parent () != this && 
16003
 
                            Parent ()->insideTemplate ()); }
16004
 
inline bool CScopeInfo::insideClass () const 
16005
 
 { return isClass () || (Parent () && Parent () != this && 
16006
 
                         Parent ()->insideClass ()); }
16007
 
inline bool CScopeInfo::insideUnion () const 
16008
 
 { return isUnion () || (Parent () && Parent () != this && 
16009
 
                         Parent ()->insideUnion ()); }
16010
 
 
16011
 
inline bool CScopeInfo::isLocalClass () const 
16012
 
 { return isClass () && insideFunction (); }
16013
 
inline bool CScopeInfo::isLocalUnion () const 
16014
 
 { return isUnion () && insideFunction (); }
16015
 
inline bool CScopeInfo::isLocalRecord () const 
16016
 
 { return isRecord () && insideFunction (); }
16017
 
 
16018
 
 
16019
 
} // namespace Puma
16020
 
 
16021
 
#endif /* __CScopeInfo_h__ */
16022
 
 
16023
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
16024
 
#ifndef __puma
16025
 
 
16026
 
#include <map>
16027
 
#include <set>
16028
 
#include <list>
16029
 
#include <string>
16030
 
#include "Puma/DString.h"
16031
 
using namespace std;
16032
 
 
16033
 
#endif
16034
 
 
16035
 
namespace Puma {
16036
 
 
16037
 
 
16038
 
class CAttributeInfo;
16039
 
class CTemplateParamInfo;
16040
 
class CFunctionInfo;
16041
 
class CClassInfo;
16042
 
class CUnionInfo;
16043
 
class CEnumInfo;
16044
 
class CTypedefInfo;
16045
 
class CNamespaceInfo;
16046
 
class CUsingInfo;
16047
 
class CMemberAliasInfo;
16048
 
 
16049
 
 
16050
 
#line 16051 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
16051
 
} // closed Puma
16052
 
class WinIfExists;
16053
 
class WinImportHandler;
16054
 
class WinMacros;
16055
 
class CMatchSyntax;
16056
 
class ExtGnu;
16057
 
class ExtAC;
16058
 
class ExtACBuilderCoupling;
16059
 
class ExtACSyntaxCoupling;
16060
 
class ExtACTree;
16061
 
class ExtACKeywords;
16062
 
class WinAsm;
16063
 
class WinDeclSpecs;
16064
 
class WinMemberExplSpec;
16065
 
class WinTypeKeywords;
16066
 
class PragmaOnceUnitState;
16067
 
class PragmaOnce;
16068
 
class CCExprResolve;
16069
 
class CExprResolve;
16070
 
namespace Puma {
16071
 
 
16072
 
#line 61 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
16073
 
class CStructure : public CScopeInfo {
16074
 
#line 16075 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
16075
 
  friend class ::WinIfExists;
16076
 
  friend class ::WinImportHandler;
16077
 
  friend class ::WinMacros;
16078
 
  friend class ::CMatchSyntax;
16079
 
  friend class ::ExtGnu;
16080
 
  friend class ::ExtAC;
16081
 
  friend class ::ExtACBuilderCoupling;
16082
 
  friend class ::ExtACSyntaxCoupling;
16083
 
  friend class ::ExtACTree;
16084
 
  friend class ::ExtACKeywords;
16085
 
  friend class ::WinAsm;
16086
 
  friend class ::WinDeclSpecs;
16087
 
  friend class ::WinMemberExplSpec;
16088
 
  friend class ::WinTypeKeywords;
16089
 
  friend class ::PragmaOnceUnitState;
16090
 
  friend class ::PragmaOnce;
16091
 
  friend class ::CCExprResolve;
16092
 
  friend class ::CExprResolve;
16093
 
 
16094
 
#line 61 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
16095
 
 
16096
 
public:
16097
 
#ifndef __puma
16098
 
  typedef list<CObjectInfo*> ObjectInfoList;
16099
 
  typedef map<DString,ObjectInfoList> ObjectsByName;
16100
 
  typedef set<CObjectInfo*> ObjectInfoSet;
16101
 
#endif 
16102
 
 
16103
 
private:
16104
 
  CStructure                *_Shared;
16105
 
  Array<CObjectInfo*>        _Objects; // ALL objects (mixed, in the order added to)
16106
 
  Array<CAttributeInfo*>     _Attributes;
16107
 
  Array<CTemplateParamInfo*> _TemplateParams;
16108
 
  Array<CFunctionInfo*>      _Functions;
16109
 
  Array<CObjectInfo*>        _Types;
16110
 
  Array<CUsingInfo*>         _Usings;     
16111
 
  Array<CRecord*>            _Friends;
16112
 
  Array<CNamespaceInfo*>     _Namespaces;     
16113
 
  Array<CMemberAliasInfo*>   _Aliases;     
16114
 
#ifndef __puma
16115
 
  ObjectsByName              _ObjectMap;
16116
 
  ObjectInfoSet              _ObjectSet;
16117
 
#endif
16118
 
 
16119
 
protected:
16120
 
  CStructure (ObjectId);
16121
 
 
16122
 
public:
16123
 
  ~CStructure ();
16124
 
 
16125
 
  // Get ... 
16126
 
#ifndef __puma
16127
 
  ObjectsByName& ObjectInfoMap() { return _Shared->_ObjectMap; }
16128
 
  const ObjectInfoSet& ObjectInfos() const { return _Shared->_ObjectSet; }
16129
 
#endif 
16130
 
  unsigned Objects () const;                        // all entities in scope
16131
 
  unsigned Objects (const DString&) const;
16132
 
  unsigned Types () const;                          // type declarations
16133
 
  unsigned Types (const DString&) const;
16134
 
  unsigned Attributes () const;                     // data objects
16135
 
  unsigned Attributes (const DString&) const;
16136
 
  unsigned TemplateParams () const;                 // template parameters
16137
 
  unsigned TemplateParams (const DString&) const;
16138
 
  unsigned Functions () const;                      // functions, methods, function
16139
 
  unsigned Functions (const DString&) const;        // templates and its instances
16140
 
  unsigned Usings () const;                         // using-directives
16141
 
  unsigned Usings (const DString&) const;
16142
 
  unsigned Namespaces () const;                     // namespaces
16143
 
  unsigned Namespaces (const DString&) const;
16144
 
  unsigned Friends () const;                        // friend function declarations
16145
 
  unsigned Friends (const DString&) const;
16146
 
  CObjectInfo *Object (unsigned) const;
16147
 
  CObjectInfo *Object (const DString&, unsigned = 0) const;
16148
 
  CObjectInfo *Type (unsigned) const;
16149
 
  CObjectInfo *Type (const DString&, unsigned = 0) const;
16150
 
  CUsingInfo *Using (unsigned) const;
16151
 
  CUsingInfo *Using (const DString&, unsigned = 0) const;
16152
 
  CNamespaceInfo *Namespace (unsigned) const;
16153
 
  CNamespaceInfo *Namespace (const DString&, unsigned = 0) const;
16154
 
  CRecord *Friend (unsigned) const;
16155
 
  CRecord *Friend (const DString&, unsigned = 0) const;
16156
 
  CAttributeInfo *Attribute (unsigned) const;
16157
 
  CAttributeInfo *Attribute (const DString&, unsigned = 0) const;
16158
 
  CTemplateParamInfo *TemplateParam (unsigned) const;
16159
 
  CTemplateParamInfo *TemplateParam (const DString&, unsigned = 0) const;
16160
 
  CFunctionInfo *Function (unsigned) const;
16161
 
  CFunctionInfo *Function (const DString&, unsigned = 0) const;
16162
 
  CFunctionInfo *Function (const DString&, CTypeInfo *) const;
16163
 
 
16164
 
  bool isMemberAlias (const CObjectInfo *) const; // is a member alias info?
16165
 
  CMemberAliasInfo *MemberAlias (const CObjectInfo *) const; // get denoted member
16166
 
 
16167
 
  // Set ...
16168
 
  void setShared (CStructure *);
16169
 
  void addObject (CObjectInfo *);
16170
 
  void addAttribute (CAttributeInfo *);
16171
 
  void addTemplateParam (CTemplateParamInfo *);
16172
 
  void addFunction (CFunctionInfo *);
16173
 
  void addType (CObjectInfo *);
16174
 
  void addUsing (CUsingInfo *);
16175
 
  void addNamespace (CNamespaceInfo *);
16176
 
  void addFriend (CRecord *);
16177
 
  void removeObject (const CObjectInfo *);       // WILL NOT BE DESTROYED!
16178
 
  void removeAttribute (const CAttributeInfo *); // WILL NOT BE DESTROYED!
16179
 
  void removeTemplateParam (const CTemplateParamInfo *); // WILL NOT BE DESTROYED!
16180
 
  void removeFunction (const CFunctionInfo *);   // WILL NOT BE DESTROYED!
16181
 
  void removeType (const CObjectInfo *);         // WILL NOT BE DESTROYED!
16182
 
  void removeUsing (const CUsingInfo *);         // WILL NOT BE DESTROYED!
16183
 
  void removeNamespace (const CNamespaceInfo *); // WILL NOT BE DESTROYED!
16184
 
  void removeFriend (const CRecord *);           // WILL NOT BE DESTROYED!
16185
 
  void removeMemberAlias (const CMemberAliasInfo *); // WILL NOT BE DESTROYED!
16186
 
 
16187
 
  void removeRegisterEntry ();
16188
 
  
16189
 
  void addObjectName(CObjectInfo *); // internal use only, do not call directly
16190
 
  void removeObjectName (const DString& name, CObjectInfo *info) ; // internal use only
16191
 
 
16192
 
  // Create/Delete ...
16193
 
  CAttributeInfo *newAttribute ();
16194
 
  CEnumInfo *newEnum ();
16195
 
  CUsingInfo *newUsing ();
16196
 
  CTypedefInfo *newTypedef ();
16197
 
  CMemberAliasInfo *newMemberAlias (CObjectInfo *);
16198
 
  void deleteAttribute (const CAttributeInfo *); 
16199
 
  void deleteEnum (const CEnumInfo *);
16200
 
  void deleteUsing (const CUsingInfo *);
16201
 
  void deleteTypedef (const CTypedefInfo *);
16202
 
  void deleteMemberAlias (const CMemberAliasInfo *);
16203
 
};
16204
 
 
16205
 
#define INIT_SIZE 20
16206
 
#define INCR_SIZE 20
16207
 
 
16208
 
inline CStructure::CStructure (CObjectInfo::ObjectId id) :
16209
 
  CScopeInfo (id),
16210
 
  _Shared (this),
16211
 
  _Objects (INIT_SIZE, INCR_SIZE),
16212
 
  _Attributes (INIT_SIZE, INCR_SIZE),
16213
 
  _TemplateParams (INIT_SIZE, INCR_SIZE),
16214
 
  _Functions (INIT_SIZE, INCR_SIZE),
16215
 
  _Types (INIT_SIZE, INCR_SIZE),
16216
 
  _Usings (INIT_SIZE, INCR_SIZE),
16217
 
  _Friends (INIT_SIZE, INCR_SIZE),
16218
 
  _Namespaces (INIT_SIZE, INCR_SIZE),
16219
 
  _Aliases (INIT_SIZE, INCR_SIZE)
16220
 
 {}
16221
 
 
16222
 
inline unsigned CStructure::Objects () const
16223
 
 { return _Objects.length (); }
16224
 
inline unsigned CStructure::Types () const
16225
 
 { return _Types.length (); }
16226
 
inline unsigned CStructure::Attributes () const
16227
 
 { return _Attributes.length (); }
16228
 
inline unsigned CStructure::TemplateParams () const
16229
 
 { return _TemplateParams.length (); }
16230
 
inline unsigned CStructure::Functions () const
16231
 
 { return _Functions.length (); }
16232
 
inline unsigned CStructure::Usings () const
16233
 
 { return _Usings.length (); }
16234
 
inline unsigned CStructure::Namespaces () const
16235
 
 { return _Namespaces.length (); }
16236
 
inline unsigned CStructure::Friends () const
16237
 
 { return _Friends.length (); }
16238
 
inline CObjectInfo *CStructure::Object (unsigned n) const
16239
 
 { return _Objects.lookup (n); }
16240
 
inline CObjectInfo *CStructure::Type (unsigned n) const
16241
 
 { return _Types.lookup (n); }
16242
 
inline CAttributeInfo *CStructure::Attribute (unsigned n) const
16243
 
 { return _Attributes.lookup (n); }
16244
 
inline CTemplateParamInfo *CStructure::TemplateParam (unsigned n) const
16245
 
 { return _TemplateParams.lookup (n); }
16246
 
inline CFunctionInfo *CStructure::Function (unsigned n) const
16247
 
 { return _Functions.lookup (n); }
16248
 
inline CUsingInfo *CStructure::Using (unsigned n) const
16249
 
 { return _Usings.lookup (n); }
16250
 
inline CNamespaceInfo *CStructure::Namespace (unsigned n) const
16251
 
 { return _Namespaces.lookup (n); }
16252
 
inline CRecord *CStructure::Friend (unsigned n) const
16253
 
 { return _Friends.lookup (n); }
16254
 
 
16255
 
inline bool CStructure::isMemberAlias (const CObjectInfo *info) const
16256
 
 { return (MemberAlias (info)); }
16257
 
 
16258
 
 
16259
 
} // namespace Puma
16260
 
 
16261
 
#endif /* __CStructure_h__ */
16262
 
 
16263
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
16264
 
// This file is part of PUMA.
16265
 
// Copyright (C) 1999-2003  The PUMA developer team.
16266
 
//                                                                
16267
 
// This program is free software;  you can redistribute it and/or 
16268
 
// modify it under the terms of the GNU General Public License as 
16269
 
// published by the Free Software Foundation; either version 2 of 
16270
 
// the License, or (at your option) any later version.            
16271
 
//                                                                
16272
 
// This program is distributed in the hope that it will be useful,
16273
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
16274
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
16275
 
// GNU General Public License for more details.                   
16276
 
//                                                                
16277
 
// You should have received a copy of the GNU General Public      
16278
 
// License along with this program; if not, write to the Free     
16279
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
16280
 
// MA  02111-1307  USA                                            
16281
 
 
16282
 
#ifndef __CSemVisitor_h__
16283
 
#define __CSemVisitor_h__
16284
 
 
16285
 
 
16286
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
42160
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
42161
#include <sstream>            // ostringstream
 
42162
 
 
42163
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
42164
#include <iomanip>            // hex, setfill, setw
 
42165
using namespace std;
 
42166
 
 
42167
namespace Puma {
 
42168
 
 
42169
 
 
42170
int CTree::alloc = 0;
 
42171
int CTree::release = 0;
 
42172
 
 
42173
CTree *CTree::Son (CTree * const *sons, int max, int num) const {
 
42174
  int cnt = 0;
 
42175
  for (int i = 0; i < max; i++) {
 
42176
    if (sons[i] == (CTree*)0)
 
42177
      continue;
 
42178
    if (cnt == num)
 
42179
      return sons[i];
 
42180
    cnt++;
 
42181
  }
 
42182
  return (CTree*)0;
 
42183
}
 
42184
 
 
42185
int CTree::Sons (CTree * const *sons, int max) const {
 
42186
  int cnt = 0;
 
42187
  for (int i = 0; i < max; i++) {
 
42188
    if (sons[i] == (CTree*)0)
 
42189
      continue;
 
42190
    cnt++;
 
42191
  }
 
42192
  return cnt;
 
42193
}
 
42194
 
 
42195
void CTree::ReplaceSon (CTree **sons, int max, CTree *old_son, CTree *new_son) {
 
42196
  for (int i = 0; i < max; i++) {
 
42197
    if (sons[i] == old_son) {
 
42198
      sons[i] = new_son;
 
42199
      if (new_son) SetParent (new_son, this);
 
42200
    }
 
42201
  }
 
42202
}
 
42203
 
 
42204
void CTree::ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son) {
 
42205
  if (old_son == son) {
 
42206
    son = new_son;
 
42207
    if (new_son) SetParent (new_son, this);
 
42208
  }
 
42209
}
 
42210
 
 
42211
void CTree::AddSon (CTree *&son, CTree *new_son) {
 
42212
  son = new_son;
 
42213
  if (new_son) SetParent (new_son, this);
 
42214
}
 
42215
 
 
42216
// find the start token
 
42217
Token* CTree::token () const {
 
42218
  CTree *son;
 
42219
  Token *tok;
 
42220
  unsigned sons = Sons ();
 
42221
 
 
42222
  for (unsigned i = 0; i < sons; i++) {
 
42223
    son = Son (i);
 
42224
    tok = son ? son->token () : (Token*)0;
 
42225
    if (tok)
 
42226
      return tok;
 
42227
  }
 
42228
 
 
42229
  return (Token*)0;
 
42230
}                                                                              
 
42231
 
 
42232
// find the end token
 
42233
Token* CTree::end_token () const {
 
42234
  CTree *son;
 
42235
  Token *tok;
 
42236
  unsigned sons = Sons ();
 
42237
 
 
42238
  for (unsigned i = sons; i > 0; i--) {
 
42239
    son = Son (i-1);
 
42240
    tok = son ? son->end_token () : (Token*)0;
 
42241
    if (tok)
 
42242
      return tok;
 
42243
  }
 
42244
 
 
42245
  return (Token*)0;
 
42246
}
 
42247
 
 
42248
// find the start token node
 
42249
CT_Token *CTree::token_node () const {
 
42250
  CTree *son;
 
42251
  CT_Token *tok;
 
42252
  unsigned sons = Sons ();
 
42253
 
 
42254
  for (unsigned i = 0; i < sons; i++) {
 
42255
    son = Son (i);
 
42256
    tok = son ? son->token_node () : (CT_Token*)0;
 
42257
    if (tok)
 
42258
      return tok;
 
42259
  }
 
42260
 
 
42261
  return (CT_Token*)0;
 
42262
}                                                                              
 
42263
 
 
42264
// find the end token node
 
42265
CT_Token* CTree::end_token_node () const {
 
42266
  CTree *son;
 
42267
  CT_Token *tok;
 
42268
  unsigned sons = Sons ();
 
42269
 
 
42270
  for (unsigned i = sons; i > 0; i--) {
 
42271
    son = Son (i-1);
 
42272
    tok = son ? son->end_token_node () : (CT_Token*)0;
 
42273
    if (tok)
 
42274
      return tok;
 
42275
  }
 
42276
 
 
42277
  return (CT_Token*)0;
 
42278
}
 
42279
 
 
42280
int CT_List::Entries () const {
 
42281
  if (_properties & FORCE_EMPTY) return 0;
 
42282
  int n = _sons.length ();
 
42283
  if (_properties & OPEN) n -= 1;
 
42284
  if (_properties & CLOSE) n -= 1;
 
42285
  if (_properties & INTRO) n -= 1;
 
42286
  if (!(_properties & SEPARATORS)) return n;
 
42287
  if (!(_properties & END_SEP)) n += 1;
 
42288
  if (_properties & NO_LAST_SEP) n += 1;
 
42289
  return n / 2;
 
42290
}
 
42291
 
 
42292
CTree *CT_List::Entry (int no) const {
 
42293
  int n = no;
 
42294
  if (_properties & SEPARATORS) n *= 2;
 
42295
  if (_properties & OPEN) n += 1; // this is also OPEN_CLOSE
 
42296
  if (_properties & INTRO) n += 1;
 
42297
  if (no == Entries () - 1 && (_properties & NO_LAST_SEP)) n -= 1;
 
42298
  return _sons.lookup (n);
 
42299
}
 
42300
 
 
42301
void CT_List::InsertSon (CTree *before_son, CTree *new_son) {
 
42302
  int sons = Sons ();
 
42303
  for (int i = 0; i < sons; i++) {
 
42304
    if (Son (i) == before_son) {
 
42305
      _sons.insert (i, new_son);
 
42306
      if (new_son) SetParent (new_son, this);
 
42307
      break;
 
42308
    }
 
42309
  }
 
42310
}
 
42311
 
 
42312
void CT_List::ReplaceSon (CTree *old_son, CTree *new_son) {
 
42313
  int sons = Sons ();
 
42314
  for (int i = 0; i < sons; i++) {
 
42315
    if (Son (i) == old_son) {
 
42316
      _sons[i] = new_son;
 
42317
      if (new_son) SetParent (new_son, this);
 
42318
      break;
 
42319
    }
 
42320
  }
 
42321
}
 
42322
 
 
42323
void CT_List::RemoveSon (CTree *son) {
 
42324
  int sons = Sons ();
 
42325
  for (int i = 0; i < sons; i++) {
 
42326
    if (Son (i) == son) {
 
42327
      _sons.remove (i);
 
42328
      break;
 
42329
    }
 
42330
  }
 
42331
}
 
42332
 
 
42333
void CT_DeclList::Linkage (CT_LinkageSpec *l) {
 
42334
  for (int e = 0; e < Entries (); e++)
 
42335
    ((CT_Decl*)Entry (e))->Linkage (l);
 
42336
}
 
42337
 
 
42338
void CT_PrimDeclSpec::determine_type () {
 
42339
  switch (_token->token ()->type ()) {
 
42340
    case TOK_FRIEND   : _type = PDS_FRIEND  ; break;
 
42341
    case TOK_TYPEDEF  : _type = PDS_TYPEDEF ; break;
 
42342
    case TOK_AUTO     : _type = PDS_AUTO    ; break;
 
42343
    case TOK_REGISTER : _type = PDS_REGISTER; break;
 
42344
    case TOK_STATIC   : _type = PDS_STATIC  ; break;
 
42345
    case TOK_EXTERN   : _type = PDS_EXTERN  ; break;
 
42346
    case TOK_MUTABLE  : _type = PDS_MUTABLE ; break;
 
42347
    case TOK_INLINE   : _type = PDS_INLINE  ; break;
 
42348
    case TOK_VIRTUAL  : _type = PDS_VIRTUAL ; break;
 
42349
    case TOK_EXPLICIT : _type = PDS_EXPLICIT; break;
 
42350
    case TOK_CONST    : _type = PDS_CONST   ; break;
 
42351
    case TOK_VOLATILE : _type = PDS_VOLATILE; break;
 
42352
    case TOK_CHAR     : _type = PDS_CHAR    ; break;
 
42353
    case TOK_WCHAR_T  : _type = PDS_WCHAR_T ; break;
 
42354
    case TOK_BOOL     : _type = PDS_BOOL    ; break;
 
42355
    case TOK_SHORT    : _type = PDS_SHORT   ; break;
 
42356
    case TOK_INT      : _type = PDS_INT     ; break;
 
42357
    case TOK_LONG     : _type = PDS_LONG    ; break;
 
42358
    case TOK_SIGNED   : _type = PDS_SIGNED  ; break;
 
42359
    case TOK_UNSIGNED : _type = PDS_UNSIGNED; break;
 
42360
    case TOK_FLOAT    : _type = PDS_FLOAT   ; break;
 
42361
    case TOK_DOUBLE   : _type = PDS_DOUBLE  ; break;
 
42362
    case TOK_VOID     : _type = PDS_VOID    ; break;
 
42363
    // AspectC++ specific type specifier
 
42364
    case TOK_UNKNOWN_T: _type = PDS_UNKNOWN_T; break;
 
42365
    // Win specific declaration specifiers 
 
42366
    case TOK_INT64    : _type = PDS_INT64   ; break;
 
42367
    case TOK_CDECL    : _type = PDS_CDECL   ; break;
 
42368
    case TOK_STDCALL  : _type = PDS_STDCALL ; break;
 
42369
    case TOK_FASTCALL : _type = PDS_FASTCALL; break;
 
42370
    default:            _type = PDS_UNKNOWN;
 
42371
  }
 
42372
}
 
42373
 
 
42374
CT_SimpleName *CT_Declarator::Name () {
 
42375
  CT_Declarator *dummy;
 
42376
  return Name (dummy);
 
42377
}
 
42378
 
 
42379
CT_SimpleName *CT_Declarator::Name (CT_Declarator *&last_declarator) {
 
42380
  CT_SimpleName *name = Declarator ()->IsSimpleName ();
 
42381
  if (name) {
 
42382
    last_declarator = this;
 
42383
    return name;
 
42384
  }
 
42385
  else
 
42386
    return ((CT_Declarator*)Declarator ())->Name (last_declarator);
 
42387
}
 
42388
 
 
42389
CT_DestructorName::CT_DestructorName (CTree *t, CTree *n) : 
 
42390
 CT_SpecialName (2) {
 
42391
  AddSon (t); 
 
42392
  AddSon (n); 
 
42393
 
 
42394
  std::ostringstream name;
 
42395
  name << "~" << n->token ()->text ();
 
42396
  Name (name.str ().c_str ());
 
42397
}
 
42398
 
 
42399
CT_OperatorName::CT_OperatorName (CTree *op) : CT_SpecialName (1) {
 
42400
  AddSon (op);
 
42401
  _oper = op->token ()->type ();
 
42402
  Name (op->token ()->text ());
 
42403
}
 
42404
 
 
42405
CT_OperatorName::CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c) : 
 
42406
 CT_SpecialName ((f ? 1 : 0) + (op ? 1 : 0) + (o ? 2 : 0)) { 
 
42407
  if (f) AddSon (f); 
 
42408
  if (op) AddSon (op); 
 
42409
  if (o) AddSon (o); 
 
42410
  if (c) AddSon (c); 
 
42411
 
 
42412
  std::ostringstream name;
 
42413
  if (f) name << "operator ";
 
42414
  op = op ? op : o;
 
42415
  int oper = op->token ()->type ();
 
42416
  switch (oper) {
 
42417
    case TOK_NEW: 
 
42418
      if (Sons () > 2) {
 
42419
        _oper = NEW_ARRAY;
 
42420
        name << "new[]";
 
42421
      } else {
 
42422
        _oper = oper;
 
42423
        name << "new";
 
42424
      }
 
42425
      break;
 
42426
    case TOK_DELETE: 
 
42427
      if (Sons () > 2) {
 
42428
        _oper = DEL_ARRAY;
 
42429
        name << "delete[]";
 
42430
      } else {
 
42431
        _oper = oper;
 
42432
        name << "delete";
 
42433
      }
 
42434
      break;
 
42435
    case TOK_OPEN_ROUND: 
 
42436
      _oper = FCT_CALL; 
 
42437
      name << "()";
 
42438
      break;
 
42439
    case TOK_OPEN_SQUARE: 
 
42440
      _oper = SUBSCRIPT; 
 
42441
      name << "[]";
 
42442
      break;
 
42443
    default: 
 
42444
      _oper = oper; 
 
42445
      name << op->token ()->text ();
 
42446
      break;
 
42447
  }
 
42448
  Name (name.str ().c_str ());
 
42449
}
 
42450
 
 
42451
CT_ConversionName::CT_ConversionName (CTree *f, CTree *t) : 
 
42452
 CT_SpecialName (2) { 
 
42453
  AddSon (f); 
 
42454
  AddSon (t); 
 
42455
 
 
42456
  std::ostringstream name;
 
42457
  name << "operator ";
 
42458
  TypeName ()->Object ()->TypeInfo ()->TypeText (name);
 
42459
  Name (name.str ().c_str ());
 
42460
}
 
42461
 
 
42462
void CT_QualName::print (ostream &os) const { 
 
42463
  int entries = Entries () - 1;
 
42464
  if (NodeName () == CT_RootQualName::NodeId ())
 
42465
    os << "::";
 
42466
  for (int i = 0; i < entries; i++)
 
42467
    os << ((CT_SimpleName*)Entry (i))->Text () << "::";
 
42468
  os << Text (); 
 
42469
}
 
42470
 
 
42471
// static syntax tree node ids
 
42472
 
 
42473
// TODO: these extension node types shouldn't be defined here!
 
42474
const char *CT_AsmBlock::NodeId () { return "AsmBlock"; }
 
42475
 
 
42476
const char *CT_GnuAsmSpec::NodeId () { return "GnuAsmSpec"; }
 
42477
const char *CT_GnuAsmDef::NodeId () { return "GnuAsmDef"; }
 
42478
const char *CT_GnuAsmOperand::NodeId () { return "GnuAsmOperand"; }
 
42479
const char *CT_GnuAsmOperands::NodeId () { return "GnuAsmOperands"; }
 
42480
const char *CT_GnuAsmClobbers::NodeId () { return "GnuAsmClobbers"; }
 
42481
const char *CT_GnuTypeof::NodeId () { return "GnuTypeof"; }
 
42482
const char *CT_GnuStatementExpr::NodeId () { return "GnuStatementExpr"; }
 
42483
 
 
42484
const char *CT_Error::NodeId () { return "Error"; }
 
42485
const char *CT_Token::NodeId () { return "Token"; }
 
42486
const char *CT_ExprList::NodeId () { return "ExprList"; }
 
42487
const char *CT_DeclaratorList::NodeId () { return "DeclaratorList"; }
 
42488
const char *CT_EnumeratorList::NodeId () { return "EnumeratorList"; }
 
42489
const char *CT_DeclList::NodeId () { return "DeclList"; }
 
42490
const char *CT_DeclSpecSeq::NodeId () { return "DeclSpecSeq"; }
 
42491
const char *CT_CmpdStmt::NodeId () { return "CmpdStmt"; }
 
42492
const char *CT_HandlerSeq::NodeId () { return "HandlerSeq"; }
 
42493
const char *CT_TemplateParamList::NodeId () { return "TemplateParamList"; }
 
42494
const char *CT_TemplateArgList::NodeId () { return "TemplateArgList"; }
 
42495
const char *CT_Expression::NodeId() { return "Expression"; }
 
42496
const char *CT_Call::NodeId() { return "Call"; }
 
42497
const char *CT_ImplicitCall::NodeId() { return "ImplicitCall"; }
 
42498
const char *CT_String::NodeId () { return "String"; }
 
42499
const char *CT_WideString::NodeId () { return "WideString"; }
 
42500
const char *CT_Integer::NodeId () { return "Integer"; }
 
42501
const char *CT_Character::NodeId () { return "Character"; }
 
42502
const char *CT_WideCharacter::NodeId () { return "WideCharacter"; }
 
42503
const char *CT_Float::NodeId () { return "Float"; }
 
42504
const char *CT_Bool::NodeId () { return "Bool"; }
 
42505
const char *CT_BracedExpr::NodeId () { return "BracedExpr"; }
 
42506
const char *CT_SimpleName::NodeId () { return "SimpleName"; }
 
42507
const char *CT_PrivateName::NodeId () { return "PrivateName"; }
 
42508
const char *CT_DestructorName::NodeId () { return "DestructorName"; }
 
42509
const char *CT_TemplateName::NodeId () { return "TemplateName"; }
 
42510
const char *CT_OperatorName::NodeId () { return "OperatorName"; }
 
42511
const char *CT_ConversionName::NodeId () { return "ConversionName"; }
 
42512
const char *CT_QualName::NodeId () { return "QualName"; }
 
42513
const char *CT_RootQualName::NodeId () { return "RootQualName"; }
 
42514
const char *CT_BinaryExpr::NodeId () { return "BinaryExpr"; }
 
42515
const char *CT_MembPtrExpr::NodeId () { return "MembPtrExpr"; }
 
42516
const char *CT_MembRefExpr::NodeId () { return "MembRefExpr"; }
 
42517
const char *CT_UnaryExpr::NodeId () { return "UnaryExpr"; }
 
42518
const char *CT_PostfixExpr::NodeId () { return "PostfixExpr"; }
 
42519
const char *CT_AddrExpr::NodeId () { return "AddrExpr"; }
 
42520
const char *CT_DerefExpr::NodeId () { return "DerefExpr"; }
 
42521
const char *CT_DeleteExpr::NodeId () { return "DeleteExpr"; }
 
42522
const char *CT_NewExpr::NodeId () { return "NewExpr"; }
 
42523
const char *CT_IfThenExpr::NodeId () { return "IfThenExpr"; }
 
42524
const char *CT_CmpdLiteral::NodeId () { return "CmpdLiteral"; }
 
42525
const char *CT_ConstructExpr::NodeId () { return "ConstructExpr"; }
 
42526
const char *CT_ThrowExpr::NodeId () { return "ThrowExpr"; }
 
42527
const char *CT_IndexExpr::NodeId () { return "IndexExpr"; }
 
42528
const char *CT_CallExpr::NodeId () { return "CallExpr"; }
 
42529
const char *CT_CastExpr::NodeId () { return "CastExpr"; }
 
42530
const char *CT_StaticCast::NodeId () { return "StaticCast"; }
 
42531
const char *CT_ConstCast::NodeId () { return "ConstCast"; }
 
42532
const char *CT_ReintCast::NodeId () { return "ReintCast"; }
 
42533
const char *CT_DynamicCast::NodeId () { return "DynamicCast"; }
 
42534
const char *CT_ImplicitCast::NodeId () { return "ImplicitCast"; }
 
42535
const char *CT_TypeidExpr::NodeId () { return "TypeidExpr"; }
 
42536
const char *CT_SizeofExpr::NodeId () { return "SizeofExpr"; }
 
42537
const char *CT_IndexDesignator::NodeId () { return "IndexDesignator"; }
 
42538
const char *CT_MembDesignator::NodeId () { return "MembDesignator"; }
 
42539
const char *CT_DesignatorSeq::NodeId () { return "DesignatorSeq"; }
 
42540
const char *CT_PrimDeclSpec::NodeId () { return "PrimDeclSpec"; }
 
42541
const char *CT_NamedType::NodeId () { return "NamedType"; }
 
42542
const char *CT_ClassSpec::NodeId () { return "ClassSpec"; }
 
42543
const char *CT_UnionSpec::NodeId () { return "UnionSpec"; }
 
42544
const char *CT_EnumSpec::NodeId () { return "EnumSpec"; }
 
42545
const char *CT_ExceptionSpec::NodeId () { return "ExceptionSpec"; }
 
42546
const char *CT_Program::NodeId () { return "Program"; }
 
42547
const char *CT_ObjDecl::NodeId () { return "ObjDecl"; }
 
42548
const char *CT_TemplateDecl::NodeId () { return "TemplateDecl"; }
 
42549
const char *CT_NonTypeParamDecl::NodeId () { return "NonTypeParamDecl"; }
 
42550
const char *CT_TypeParamDecl::NodeId () { return "TypeParamDecl"; }
 
42551
const char *CT_EnumDef::NodeId () { return "EnumDef"; }
 
42552
const char *CT_Enumerator::NodeId () { return "Enumerator"; }
 
42553
const char *CT_FctDef::NodeId () { return "FctDef"; }
 
42554
const char *CT_AsmDef::NodeId () { return "AsmDef"; }
 
42555
const char *CT_Handler::NodeId () { return "Handler"; }
 
42556
const char *CT_LinkageSpec::NodeId () { return "LinkageSpec"; }
 
42557
const char *CT_ArgDecl::NodeId () { return "ArgDecl"; }
 
42558
const char *CT_ArgDeclList::NodeId () { return "ArgDeclList"; }
 
42559
const char *CT_ArgDeclSeq::NodeId () { return "ArgDeclSeq"; }
 
42560
const char *CT_ArgNameList::NodeId () { return "ArgNameList"; }
 
42561
const char *CT_NamespaceDef::NodeId () { return "NamespaceDef"; }
 
42562
const char *CT_NamespaceAliasDef::NodeId () { return "NamespaceAliasDef"; }
 
42563
const char *CT_UsingDirective::NodeId () { return "UsingDirective"; }
 
42564
const char *CT_InitDeclarator::NodeId () { return "InitDeclarator"; }
 
42565
const char *CT_BracedDeclarator::NodeId () { return "BracedDeclarator"; }
 
42566
const char *CT_ArrayDelimiter::NodeId () { return "ArrayDelimiter"; }
 
42567
const char *CT_ArrayDeclarator::NodeId () { return "ArrayDeclarator"; }
 
42568
const char *CT_FctDeclarator::NodeId () { return "FctDeclarator"; }
 
42569
const char *CT_RefDeclarator::NodeId () { return "RefDeclarator"; }
 
42570
const char *CT_PtrDeclarator::NodeId () { return "PtrDeclarator"; }
 
42571
const char *CT_MembPtrDeclarator::NodeId () { return "MembPtrDeclarator"; }
 
42572
const char *CT_BitFieldDeclarator::NodeId () { return "BitFieldDeclarator"; }
 
42573
const char *CT_LabelStmt::NodeId () { return "LabelStmt"; }
 
42574
const char *CT_DefaultStmt::NodeId () { return "DefaultStmt"; }
 
42575
const char *CT_TryStmt::NodeId () { return "TryStmt"; }
 
42576
const char *CT_CaseStmt::NodeId () { return "CaseStmt"; }
 
42577
const char *CT_ExprStmt::NodeId () { return "ExprStmt"; }
 
42578
const char *CT_DeclStmt::NodeId () { return "DeclStmt"; }
 
42579
const char *CT_SwitchStmt::NodeId () { return "SwitchStmt"; }
 
42580
const char *CT_IfStmt::NodeId () { return "IfStmt"; }
 
42581
const char *CT_IfElseStmt::NodeId () { return "IfElseStmt"; }
 
42582
const char *CT_BreakStmt::NodeId () { return "BreakStmt"; }
 
42583
const char *CT_ContinueStmt::NodeId () { return "ContinueStmt"; }
 
42584
const char *CT_GotoStmt::NodeId () { return "GotoStmt"; }
 
42585
const char *CT_ReturnStmt::NodeId () { return "ReturnStmt"; }
 
42586
const char *CT_WhileStmt::NodeId () { return "WhileStmt"; }
 
42587
const char *CT_DoStmt::NodeId () { return "DoStmt"; }
 
42588
const char *CT_ForStmt::NodeId () { return "ForStmt"; }
 
42589
const char *CT_Condition::NodeId () { return "Condition"; }
 
42590
const char *CT_ClassDef::NodeId () { return "ClassDef"; }
 
42591
const char *CT_UnionDef::NodeId () { return "UnionDef"; }
 
42592
const char *CT_MembList::NodeId () { return "MembList"; }
 
42593
const char *CT_MembInitList::NodeId () { return "MembInitList"; }
 
42594
const char *CT_MembInit::NodeId () { return "MembInit"; }
 
42595
const char *CT_BaseSpecList::NodeId () { return "BaseSpecList"; }
 
42596
const char *CT_AccessSpec::NodeId () { return "AccessSpec"; }
 
42597
const char *CT_BaseSpec::NodeId () { return "BaseSpec"; }
 
42598
const char *CT_AccessDecl::NodeId () { return "AccessDecl"; }
 
42599
const char *CT_UsingDecl::NodeId () { return "UsingDecl"; }
 
42600
const char *CT_Any::NodeId () { return "Any"; }
 
42601
const char *CT_AnyList::NodeId () { return "AnyList"; }
 
42602
const char *CT_AnyExtension::NodeId () { return "AnyExtension"; }
 
42603
const char *CT_AnyCondition::NodeId () { return "AnyCondition"; }
 
42604
 
 
42605
 
 
42606
} // namespace Puma
 
42607
 
 
42608
// constant size mempool
 
42609
 
 
42610
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConstSizeMemPool.h"
 
42611
// This file is part of PUMA.
 
42612
// Copyright (C) 1999-2003  The PUMA developer team.
 
42613
//                                                                
 
42614
// This program is free software;  you can redistribute it and/or 
 
42615
// modify it under the terms of the GNU General Public License as 
 
42616
// published by the Free Software Foundation; either version 2 of 
 
42617
// the License, or (at your option) any later version.            
 
42618
//                                                                
 
42619
// This program is distributed in the hope that it will be useful,
 
42620
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
42621
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
42622
// GNU General Public License for more details.                   
 
42623
//                                                                
 
42624
// You should have received a copy of the GNU General Public      
 
42625
// License along with this program; if not, write to the Free     
 
42626
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
42627
// MA  02111-1307  USA                                            
 
42628
 
 
42629
#ifndef __ConstSizeMemPool_h__
 
42630
#define __ConstSizeMemPool_h__
 
42631
 
 
42632
 
 
42633
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConstSizeMemPool.h"
 
42634
#include <assert.h>
 
42635
#include <stdlib.h>
 
42636
 
 
42637
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConstSizeMemPool.h"
 
42638
using namespace std;
 
42639
 
 
42640
#ifdef PROFILE_MEM
 
42641
# include "Puma/RatioCounter.h"
 
42642
#endif
 
42643
 
 
42644
namespace Puma {
 
42645
 
 
42646
 
 
42647
template <int N>
 
42648
class ConstSizeMemPool {
 
42649
  Chain  m_Trash;
 
42650
#ifdef PROFILE_MEM
 
42651
  RatioCounter m_Ratio;
 
42652
#endif
 
42653
 
 
42654
public:
 
42655
  ConstSizeMemPool ()
 
42656
#ifdef PROFILE_MEM
 
42657
    : m_Ratio (N) 
 
42658
#endif
 
42659
  {}
 
42660
  ~ConstSizeMemPool () {
 
42661
    clean();
 
42662
  }
 
42663
 
 
42664
  // don't rely on external instances, use singletons
 
42665
  static ConstSizeMemPool &inst() {
 
42666
          static ConstSizeMemPool i;
 
42667
          return i;
 
42668
  }
 
42669
 
 
42670
  void *alloc ();
 
42671
  void free (void *p);
 
42672
   
 
42673
  inline void clean () {
 
42674
    Chain *c = m_Trash.unlink ();
 
42675
    while (c) {
 
42676
      ::free (c);
 
42677
      c = m_Trash.unlink ();
 
42678
    }
 
42679
  }
 
42680
};
 
42681
 
 
42682
template <int N>
 
42683
void *ConstSizeMemPool<N>::alloc () {
 
42684
#ifdef PROFILE_MEM
 
42685
    m_Ratio.use++;
 
42686
#endif
 
42687
    void *res = m_Trash.unlink ();
 
42688
    if (res == 0) {
 
42689
      res = ::malloc (N);
 
42690
    }
 
42691
#ifdef PROFILE_MEM
 
42692
    else m_Ratio.reuse++;
 
42693
#endif
 
42694
    return res;
 
42695
  }
 
42696
   
 
42697
template <int N>
 
42698
void ConstSizeMemPool<N>::free (void *p) {
 
42699
  m_Trash.insert ((Chain*)p);
 
42700
}
 
42701
 
 
42702
template<int N> inline void *malloc () 
 
42703
 { return ConstSizeMemPool<N>::inst().alloc(); }
 
42704
template<int N> inline void free (void *p) 
 
42705
 { ConstSizeMemPool<N>::inst().free(p); }
 
42706
template<int N> inline void clean () 
 
42707
 { ConstSizeMemPool<N>::inst().clean(); }
 
42708
 
 
42709
} // namespace Puma
 
42710
 
 
42711
#endif /* __ConstSizeMemPool_h__ */
 
42712
 
 
42713
#line 475 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
42714
namespace Puma {
 
42715
 
 
42716
 
 
42717
void *CT_Token::operator new (size_t n) {
 
42718
  assert (n == sizeof (CT_Token));
 
42719
  return malloc<sizeof (CT_Token)> ();
 
42720
}
 
42721
void CT_Token::operator delete (void *p) {
 
42722
  free<sizeof (CT_Token)> (p);
 
42723
}
 
42724
 
 
42725
void *CT_SimpleName::operator new (size_t n) {
 
42726
  assert (n == sizeof (CT_SimpleName));
 
42727
  return malloc<sizeof (CT_SimpleName)> ();
 
42728
}
 
42729
void CT_SimpleName::operator delete (void *p) {
 
42730
  free<sizeof (CT_SimpleName)> (p);
 
42731
}
 
42732
 
 
42733
void *CT_SpecialName::operator new (size_t n) {
 
42734
  assert (n == sizeof (CT_SpecialName));
 
42735
  return malloc<sizeof (CT_SpecialName)> ();
 
42736
}
 
42737
void CT_SpecialName::operator delete (void *p) {
 
42738
  free<sizeof (CT_SpecialName)> (p);
 
42739
}
 
42740
 
 
42741
void *CT_PrivateName::operator new (size_t n) {
 
42742
  assert (n == sizeof (CT_PrivateName));
 
42743
  return malloc<sizeof (CT_PrivateName)> ();
 
42744
}
 
42745
void CT_PrivateName::operator delete (void *p) {
 
42746
  free<sizeof (CT_PrivateName)> (p);
 
42747
}
 
42748
 
 
42749
void *CT_OperatorName::operator new (size_t n) {
 
42750
  assert (n == sizeof (CT_OperatorName));
 
42751
  return malloc<sizeof (CT_OperatorName)> ();
 
42752
}
 
42753
void CT_OperatorName::operator delete (void *p) {
 
42754
  free<sizeof (CT_OperatorName)> (p);
 
42755
}
 
42756
 
 
42757
void *CT_DestructorName::operator new (size_t n) {
 
42758
  assert (n == sizeof (CT_DestructorName));
 
42759
  return malloc<sizeof (CT_DestructorName)> ();
 
42760
}
 
42761
void CT_DestructorName::operator delete (void *p) {
 
42762
  free<sizeof (CT_DestructorName)> (p);
 
42763
}
 
42764
 
 
42765
void *CT_ConversionName::operator new (size_t n) {
 
42766
  assert (n == sizeof (CT_ConversionName));
 
42767
  return malloc<sizeof (CT_ConversionName)> ();
 
42768
}
 
42769
void CT_ConversionName::operator delete (void *p) {
 
42770
  free<sizeof (CT_ConversionName)> (p);
 
42771
}
 
42772
 
 
42773
void *CT_TemplateName::operator new (size_t n) {
 
42774
  assert (n == sizeof (CT_TemplateName));
 
42775
  return malloc<sizeof (CT_TemplateName)> ();
 
42776
}
 
42777
void CT_TemplateName::operator delete (void *p) {
 
42778
  free<sizeof (CT_TemplateName)> (p);
 
42779
}
 
42780
 
 
42781
void *CT_QualName::operator new (size_t n) {
 
42782
  assert (n == sizeof (CT_QualName));
 
42783
  return malloc<sizeof (CT_QualName)> ();
 
42784
}
 
42785
void CT_QualName::operator delete (void *p) {
 
42786
  free<sizeof (CT_QualName)> (p);
 
42787
}
 
42788
 
 
42789
void *CT_RootQualName::operator new (size_t n) {
 
42790
  assert (n == sizeof (CT_RootQualName));
 
42791
  return malloc<sizeof (CT_RootQualName)> ();
 
42792
}
 
42793
void CT_RootQualName::operator delete (void *p) {
 
42794
  free<sizeof (CT_RootQualName)> (p);
 
42795
}
 
42796
 
 
42797
 
 
42798
} // namespace Puma
 
42799
 
 
42800
#line 42801 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
42801
 
 
42802
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
42803
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
42804
 
 
42805
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
42806
// This file is part of PUMA.
 
42807
// Copyright (C) 1999-2003  The PUMA developer team.
 
42808
//                                                                
 
42809
// This program is free software;  you can redistribute it and/or 
 
42810
// modify it under the terms of the GNU General Public License as 
 
42811
// published by the Free Software Foundation; either version 2 of 
 
42812
// the License, or (at your option) any later version.            
 
42813
//                                                                
 
42814
// This program is distributed in the hope that it will be useful,
 
42815
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
42816
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
42817
// GNU General Public License for more details.                   
 
42818
//                                                                
 
42819
// You should have received a copy of the GNU General Public      
 
42820
// License along with this program; if not, write to the Free     
 
42821
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
42822
// MA  02111-1307  USA                                            
 
42823
 
 
42824
#ifndef __CExprResolveCC_ah__
 
42825
#define __CExprResolveCC_ah__
 
42826
 
 
42827
// This aspect inserts resolve member functions into all syntax tree classes
 
42828
// that represent expressions. As the function is virtual, an efficient
 
42829
// run-time switch over the node type is implemented.
 
42830
 
 
42831
 
 
42832
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemExpr.h"
 
42833
// This file is part of PUMA.
 
42834
// Copyright (C) 1999-2003  The PUMA developer team.
 
42835
//                                                                
 
42836
// This program is free software;  you can redistribute it and/or 
 
42837
// modify it under the terms of the GNU General Public License as 
 
42838
// published by the Free Software Foundation; either version 2 of 
 
42839
// the License, or (at your option) any later version.            
 
42840
//                                                                
 
42841
// This program is distributed in the hope that it will be useful,
 
42842
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
42843
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
42844
// GNU General Public License for more details.                   
 
42845
//                                                                
 
42846
// You should have received a copy of the GNU General Public      
 
42847
// License along with this program; if not, write to the Free     
 
42848
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
42849
// MA  02111-1307  USA                                            
 
42850
 
 
42851
#ifndef __CSemExpr_h__
 
42852
#define __CSemExpr_h__
 
42853
 
 
42854
 
 
42855
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
16287
42856
// This file is part of PUMA.
16288
42857
// Copyright (C) 1999-2003  The PUMA developer team.
16289
42858
//                                                                
16318
42887
// messages or collect them for a later processing.
16319
42888
 
16320
42889
 
16321
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
42890
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
16322
42891
namespace Puma {
16323
42892
 
16324
42893
 
16325
42894
 
16326
 
#line 16327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
42895
#line 42896 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
16327
42896
} // closed Puma
 
42897
class CCExprResolve;
 
42898
class CExprResolve;
16328
42899
class WinIfExists;
16329
42900
class WinImportHandler;
16330
42901
class WinMacros;
16331
 
class CMatchSyntax;
16332
 
class ExtGnu;
 
42902
class WinAsm;
 
42903
class WinDeclSpecs;
 
42904
class WinMemberExplSpec;
 
42905
class WinTypeKeywords;
 
42906
class WinFriend;
16333
42907
class ExtAC;
16334
42908
class ExtACBuilderCoupling;
16335
42909
class ExtACSyntaxCoupling;
16336
42910
class ExtACTree;
16337
42911
class ExtACKeywords;
16338
 
class WinAsm;
16339
 
class WinDeclSpecs;
16340
 
class WinMemberExplSpec;
16341
 
class WinTypeKeywords;
 
42912
class ExtGnu;
16342
42913
class PragmaOnceUnitState;
16343
42914
class PragmaOnce;
16344
 
class CCExprResolve;
16345
 
class CExprResolve;
 
42915
class CMatchSyntax;
16346
42916
namespace Puma {
16347
42917
 
16348
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
42918
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
16349
42919
class ErrorSink {
16350
 
#line 16351 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
42920
#line 42921 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
42921
  friend class ::CCExprResolve;
 
42922
  friend class ::CExprResolve;
16351
42923
  friend class ::WinIfExists;
16352
42924
  friend class ::WinImportHandler;
16353
42925
  friend class ::WinMacros;
16354
 
  friend class ::CMatchSyntax;
16355
 
  friend class ::ExtGnu;
 
42926
  friend class ::WinAsm;
 
42927
  friend class ::WinDeclSpecs;
 
42928
  friend class ::WinMemberExplSpec;
 
42929
  friend class ::WinTypeKeywords;
 
42930
  friend class ::WinFriend;
16356
42931
  friend class ::ExtAC;
16357
42932
  friend class ::ExtACBuilderCoupling;
16358
42933
  friend class ::ExtACSyntaxCoupling;
16359
42934
  friend class ::ExtACTree;
16360
42935
  friend class ::ExtACKeywords;
16361
 
  friend class ::WinAsm;
16362
 
  friend class ::WinDeclSpecs;
16363
 
  friend class ::WinMemberExplSpec;
16364
 
  friend class ::WinTypeKeywords;
 
42936
  friend class ::ExtGnu;
16365
42937
  friend class ::PragmaOnceUnitState;
16366
42938
  friend class ::PragmaOnce;
16367
 
  friend class ::CCExprResolve;
16368
 
  friend class ::CExprResolve;
 
42939
  friend class ::CMatchSyntax;
16369
42940
 
16370
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
42941
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
16371
42942
 
16372
42943
public:
16373
42944
  virtual ~ErrorSink () {}
16392
42963
 
16393
42964
#endif /* __error_sink_h__ */
16394
42965
 
16395
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CVisitor.h"
16396
 
// This file is part of PUMA.
16397
 
// Copyright (C) 1999-2003  The PUMA developer team.
16398
 
//                                                                
16399
 
// This program is free software;  you can redistribute it and/or 
16400
 
// modify it under the terms of the GNU General Public License as 
16401
 
// published by the Free Software Foundation; either version 2 of 
16402
 
// the License, or (at your option) any later version.            
16403
 
//                                                                
16404
 
// This program is distributed in the hope that it will be useful,
16405
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
16406
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
16407
 
// GNU General Public License for more details.                   
16408
 
//                                                                
16409
 
// You should have received a copy of the GNU General Public      
16410
 
// License along with this program; if not, write to the Free     
16411
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
16412
 
// MA  02111-1307  USA                                            
16413
 
 
16414
 
#ifndef __CVisitor_h__
16415
 
#define __CVisitor_h__
16416
 
 
16417
 
// Iterate through a C++ syntax tree
16418
 
 
16419
 
namespace Puma {
16420
 
 
16421
 
 
16422
 
class CTree;
16423
 
 
16424
 
 
16425
 
#line 16426 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
16426
 
} // closed Puma
16427
 
class WinIfExists;
16428
 
class WinImportHandler;
16429
 
class WinMacros;
16430
 
class CMatchSyntax;
16431
 
class ExtGnu;
16432
 
class ExtAC;
16433
 
class ExtACBuilderCoupling;
16434
 
class ExtACSyntaxCoupling;
16435
 
class ExtACTree;
16436
 
class ExtACKeywords;
16437
 
class WinAsm;
16438
 
class WinDeclSpecs;
16439
 
class WinMemberExplSpec;
16440
 
class WinTypeKeywords;
16441
 
class PragmaOnceUnitState;
16442
 
class PragmaOnce;
16443
 
class CCExprResolve;
16444
 
class CExprResolve;
16445
 
namespace Puma {
16446
 
 
16447
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CVisitor.h"
16448
 
class CVisitor {
16449
 
#line 16450 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
16450
 
  friend class ::WinIfExists;
16451
 
  friend class ::WinImportHandler;
16452
 
  friend class ::WinMacros;
16453
 
  friend class ::CMatchSyntax;
16454
 
  friend class ::ExtGnu;
16455
 
  friend class ::ExtAC;
16456
 
  friend class ::ExtACBuilderCoupling;
16457
 
  friend class ::ExtACSyntaxCoupling;
16458
 
  friend class ::ExtACTree;
16459
 
  friend class ::ExtACKeywords;
16460
 
  friend class ::WinAsm;
16461
 
  friend class ::WinDeclSpecs;
16462
 
  friend class ::WinMemberExplSpec;
16463
 
  friend class ::WinTypeKeywords;
16464
 
  friend class ::PragmaOnceUnitState;
16465
 
  friend class ::PragmaOnce;
16466
 
  friend class ::CCExprResolve;
16467
 
  friend class ::CExprResolve;
16468
 
 
16469
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CVisitor.h"
16470
 
 
16471
 
  bool _aborted;
16472
 
  bool _pruned;
16473
 
 
16474
 
  void visit_sons (CTree *node);
16475
 
 
16476
 
public:
16477
 
  CVisitor () : _aborted (false), _pruned (false) {}
16478
 
  virtual ~CVisitor () {}
16479
 
 
16480
 
  void abort (bool v = true) { _aborted = v; }
16481
 
  void prune (bool v = true) { _pruned = v; }
16482
 
  bool aborted () const { return _aborted; }
16483
 
  bool pruned () const { return _pruned; }
16484
 
  
16485
 
  void visit (CTree *node);
16486
 
 
16487
 
  virtual void pre_visit (CTree *node);
16488
 
  virtual void post_visit (CTree *node);
16489
 
};
16490
 
 
16491
 
 
16492
 
} // namespace Puma
16493
 
 
16494
 
#endif /* __CVisitor_h__ */
16495
 
 
16496
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Limits.h"
 
42966
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Limits.h"
16497
42967
/* This file was generated by the PUMA library, version 1.1. */
16498
42968
 
16499
42969
// This file is part of PUMA.
16517
42987
#ifndef __Limits_h__
16518
42988
#define __Limits_h__
16519
42989
 
 
42990
#include <limits.h>
16520
42991
 
16521
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Limits.h"
16522
42992
namespace Puma {
16523
42993
 
16524
42994
 
16574
43044
 
16575
43045
#endif /* __Limits_h__ */
16576
43046
 
16577
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
 
43047
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
16578
43048
// This file is part of PUMA.
16579
43049
// Copyright (C) 1999-2003  The PUMA developer team.
16580
43050
//                                                                
16600
43070
// information from file or command line.
16601
43071
 
16602
43072
 
16603
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
 
43073
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
16604
43074
// This file is part of PUMA.
16605
43075
// Copyright (C) 1999-2003  The PUMA developer team.
16606
43076
//                                                                
16626
43096
 
16627
43097
 
16628
43098
 
16629
 
#line 16630 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
43099
#line 43100 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
16630
43100
} // closed Puma
 
43101
class CCExprResolve;
 
43102
class CExprResolve;
16631
43103
class WinIfExists;
16632
43104
class WinImportHandler;
16633
43105
class WinMacros;
16634
 
class CMatchSyntax;
16635
 
class ExtGnu;
 
43106
class WinAsm;
 
43107
class WinDeclSpecs;
 
43108
class WinMemberExplSpec;
 
43109
class WinTypeKeywords;
 
43110
class WinFriend;
16636
43111
class ExtAC;
16637
43112
class ExtACBuilderCoupling;
16638
43113
class ExtACSyntaxCoupling;
16639
43114
class ExtACTree;
16640
43115
class ExtACKeywords;
16641
 
class WinAsm;
16642
 
class WinDeclSpecs;
16643
 
class WinMemberExplSpec;
16644
 
class WinTypeKeywords;
 
43116
class ExtGnu;
16645
43117
class PragmaOnceUnitState;
16646
43118
class PragmaOnce;
16647
 
class CCExprResolve;
16648
 
class CExprResolve;
 
43119
class CMatchSyntax;
16649
43120
namespace Puma {
16650
43121
 
16651
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
 
43122
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
16652
43123
class Flags {
16653
 
#line 16654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
43124
#line 43125 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
43125
  friend class ::CCExprResolve;
 
43126
  friend class ::CExprResolve;
16654
43127
  friend class ::WinIfExists;
16655
43128
  friend class ::WinImportHandler;
16656
43129
  friend class ::WinMacros;
16657
 
  friend class ::CMatchSyntax;
16658
 
  friend class ::ExtGnu;
 
43130
  friend class ::WinAsm;
 
43131
  friend class ::WinDeclSpecs;
 
43132
  friend class ::WinMemberExplSpec;
 
43133
  friend class ::WinTypeKeywords;
 
43134
  friend class ::WinFriend;
16659
43135
  friend class ::ExtAC;
16660
43136
  friend class ::ExtACBuilderCoupling;
16661
43137
  friend class ::ExtACSyntaxCoupling;
16662
43138
  friend class ::ExtACTree;
16663
43139
  friend class ::ExtACKeywords;
16664
 
  friend class ::WinAsm;
16665
 
  friend class ::WinDeclSpecs;
16666
 
  friend class ::WinMemberExplSpec;
16667
 
  friend class ::WinTypeKeywords;
 
43140
  friend class ::ExtGnu;
16668
43141
  friend class ::PragmaOnceUnitState;
16669
43142
  friend class ::PragmaOnce;
16670
 
  friend class ::CCExprResolve;
16671
 
  friend class ::CExprResolve;
 
43143
  friend class ::CMatchSyntax;
16672
43144
 
16673
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
 
43145
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
16674
43146
 
16675
43147
public:
16676
43148
  enum Flag {
16734
43206
 
16735
43207
#endif /* __Flags_h__ */
16736
43208
 
16737
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
43209
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
16738
43210
// This file is part of PUMA.
16739
43211
// Copyright (C) 1999-2003  The PUMA developer team.
16740
43212
//                                                                
16757
43229
#define __ConfOption_h__
16758
43230
 
16759
43231
 
16760
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
43232
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
16761
43233
#include <stdlib.h>
16762
43234
 
16763
43235
namespace Puma {
16764
43236
 
16765
43237
 
16766
43238
 
16767
 
#line 16768 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
43239
#line 43240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
16768
43240
} // closed Puma
 
43241
class CCExprResolve;
 
43242
class CExprResolve;
16769
43243
class WinIfExists;
16770
43244
class WinImportHandler;
16771
43245
class WinMacros;
16772
 
class CMatchSyntax;
16773
 
class ExtGnu;
 
43246
class WinAsm;
 
43247
class WinDeclSpecs;
 
43248
class WinMemberExplSpec;
 
43249
class WinTypeKeywords;
 
43250
class WinFriend;
16774
43251
class ExtAC;
16775
43252
class ExtACBuilderCoupling;
16776
43253
class ExtACSyntaxCoupling;
16777
43254
class ExtACTree;
16778
43255
class ExtACKeywords;
16779
 
class WinAsm;
16780
 
class WinDeclSpecs;
16781
 
class WinMemberExplSpec;
16782
 
class WinTypeKeywords;
 
43256
class ExtGnu;
16783
43257
class PragmaOnceUnitState;
16784
43258
class PragmaOnce;
16785
 
class CCExprResolve;
16786
 
class CExprResolve;
 
43259
class CMatchSyntax;
16787
43260
namespace Puma {
16788
43261
 
16789
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
43262
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
16790
43263
class ConfOption {
16791
 
#line 16792 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
43264
#line 43265 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
43265
  friend class ::CCExprResolve;
 
43266
  friend class ::CExprResolve;
16792
43267
  friend class ::WinIfExists;
16793
43268
  friend class ::WinImportHandler;
16794
43269
  friend class ::WinMacros;
16795
 
  friend class ::CMatchSyntax;
16796
 
  friend class ::ExtGnu;
 
43270
  friend class ::WinAsm;
 
43271
  friend class ::WinDeclSpecs;
 
43272
  friend class ::WinMemberExplSpec;
 
43273
  friend class ::WinTypeKeywords;
 
43274
  friend class ::WinFriend;
16797
43275
  friend class ::ExtAC;
16798
43276
  friend class ::ExtACBuilderCoupling;
16799
43277
  friend class ::ExtACSyntaxCoupling;
16800
43278
  friend class ::ExtACTree;
16801
43279
  friend class ::ExtACKeywords;
16802
 
  friend class ::WinAsm;
16803
 
  friend class ::WinDeclSpecs;
16804
 
  friend class ::WinMemberExplSpec;
16805
 
  friend class ::WinTypeKeywords;
 
43280
  friend class ::ExtGnu;
16806
43281
  friend class ::PragmaOnceUnitState;
16807
43282
  friend class ::PragmaOnce;
16808
 
  friend class ::CCExprResolve;
16809
 
  friend class ::CExprResolve;
 
43283
  friend class ::CMatchSyntax;
16810
43284
 
16811
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
43285
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
16812
43286
 
16813
43287
  const char *_name;
16814
43288
  Array<const char *> _args;
16854
43328
 
16855
43329
#endif /* __ConfOption_h__ */
16856
43330
 
16857
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
43331
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
16858
43332
// This file is part of PUMA.
16859
43333
// Copyright (C) 1999-2003  The PUMA developer team.
16860
43334
//                                                                
16880
43354
// as soon as it complete. It also stores the maximum error severity.
16881
43355
// The ErrorStream can be reset to it's initial state.
16882
43356
 
16883
 
#include <sstream>
16884
43357
 
16885
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
43358
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
16886
43359
using namespace std;
16887
43360
 
16888
43361
namespace Puma {
16889
43362
 
16890
43363
 
16891
43364
 
16892
 
#line 16893 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
43365
#line 43366 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
16893
43366
} // closed Puma
 
43367
class CCExprResolve;
 
43368
class CExprResolve;
16894
43369
class WinIfExists;
16895
43370
class WinImportHandler;
16896
43371
class WinMacros;
16897
 
class CMatchSyntax;
16898
 
class ExtGnu;
 
43372
class WinAsm;
 
43373
class WinDeclSpecs;
 
43374
class WinMemberExplSpec;
 
43375
class WinTypeKeywords;
 
43376
class WinFriend;
16899
43377
class ExtAC;
16900
43378
class ExtACBuilderCoupling;
16901
43379
class ExtACSyntaxCoupling;
16902
43380
class ExtACTree;
16903
43381
class ExtACKeywords;
16904
 
class WinAsm;
16905
 
class WinDeclSpecs;
16906
 
class WinMemberExplSpec;
16907
 
class WinTypeKeywords;
 
43382
class ExtGnu;
16908
43383
class PragmaOnceUnitState;
16909
43384
class PragmaOnce;
16910
 
class CCExprResolve;
16911
 
class CExprResolve;
 
43385
class CMatchSyntax;
16912
43386
namespace Puma {
16913
43387
 
16914
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
43388
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
16915
43389
class ErrorStream : public ErrorSink {
16916
 
#line 16917 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
43390
#line 43391 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
43391
  friend class ::CCExprResolve;
 
43392
  friend class ::CExprResolve;
16917
43393
  friend class ::WinIfExists;
16918
43394
  friend class ::WinImportHandler;
16919
43395
  friend class ::WinMacros;
16920
 
  friend class ::CMatchSyntax;
16921
 
  friend class ::ExtGnu;
 
43396
  friend class ::WinAsm;
 
43397
  friend class ::WinDeclSpecs;
 
43398
  friend class ::WinMemberExplSpec;
 
43399
  friend class ::WinTypeKeywords;
 
43400
  friend class ::WinFriend;
16922
43401
  friend class ::ExtAC;
16923
43402
  friend class ::ExtACBuilderCoupling;
16924
43403
  friend class ::ExtACSyntaxCoupling;
16925
43404
  friend class ::ExtACTree;
16926
43405
  friend class ::ExtACKeywords;
16927
 
  friend class ::WinAsm;
16928
 
  friend class ::WinDeclSpecs;
16929
 
  friend class ::WinMemberExplSpec;
16930
 
  friend class ::WinTypeKeywords;
 
43406
  friend class ::ExtGnu;
16931
43407
  friend class ::PragmaOnceUnitState;
16932
43408
  friend class ::PragmaOnce;
16933
 
  friend class ::CCExprResolve;
16934
 
  friend class ::CExprResolve;
 
43409
  friend class ::CMatchSyntax;
16935
43410
 
16936
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
43411
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
16937
43412
 
16938
43413
  ostream *_ostream;
16939
43414
  ErrorSeverity _max_severity;
16976
43451
 
16977
43452
#endif /* __error_stream_h__ */
16978
43453
 
16979
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
43454
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
16980
43455
// This file is part of PUMA.
16981
43456
// Copyright (C) 1999-2003  The PUMA developer team.
16982
43457
//                                                                
16999
43474
#define __OptsParser_h__
17000
43475
 
17001
43476
 
17002
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
43477
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
17003
43478
// This file is part of PUMA.
17004
43479
// Copyright (C) 1999-2003  The PUMA developer team.
17005
43480
//                                                                
17022
43497
#define __SimpleParser_h__
17023
43498
 
17024
43499
 
17025
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
43500
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
17026
43501
#include <vector>
17027
43502
using namespace std;
17028
43503
 
17029
43504
namespace Puma {
17030
43505
 
17031
43506
 
 
43507
/** 
 
43508
 * Simple string parser. 
 
43509
 * \class SimpleParser SimpleParser.h Puma/common/SimpleParser.h
 
43510
 */
17032
43511
 
17033
 
#line 17034 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
43512
#line 43513 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
17034
43513
} // closed Puma
 
43514
class CCExprResolve;
 
43515
class CExprResolve;
17035
43516
class WinIfExists;
17036
43517
class WinImportHandler;
17037
43518
class WinMacros;
17038
 
class CMatchSyntax;
17039
 
class ExtGnu;
 
43519
class WinAsm;
 
43520
class WinDeclSpecs;
 
43521
class WinMemberExplSpec;
 
43522
class WinTypeKeywords;
 
43523
class WinFriend;
17040
43524
class ExtAC;
17041
43525
class ExtACBuilderCoupling;
17042
43526
class ExtACSyntaxCoupling;
17043
43527
class ExtACTree;
17044
43528
class ExtACKeywords;
17045
 
class WinAsm;
17046
 
class WinDeclSpecs;
17047
 
class WinMemberExplSpec;
17048
 
class WinTypeKeywords;
 
43529
class ExtGnu;
17049
43530
class PragmaOnceUnitState;
17050
43531
class PragmaOnce;
17051
 
class CCExprResolve;
17052
 
class CExprResolve;
 
43532
class CMatchSyntax;
17053
43533
namespace Puma {
17054
43534
 
17055
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
43535
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
17056
43536
class SimpleParser {
17057
 
#line 17058 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
43537
#line 43538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
43538
  friend class ::CCExprResolve;
 
43539
  friend class ::CExprResolve;
17058
43540
  friend class ::WinIfExists;
17059
43541
  friend class ::WinImportHandler;
17060
43542
  friend class ::WinMacros;
17061
 
  friend class ::CMatchSyntax;
17062
 
  friend class ::ExtGnu;
 
43543
  friend class ::WinAsm;
 
43544
  friend class ::WinDeclSpecs;
 
43545
  friend class ::WinMemberExplSpec;
 
43546
  friend class ::WinTypeKeywords;
 
43547
  friend class ::WinFriend;
17063
43548
  friend class ::ExtAC;
17064
43549
  friend class ::ExtACBuilderCoupling;
17065
43550
  friend class ::ExtACSyntaxCoupling;
17066
43551
  friend class ::ExtACTree;
17067
43552
  friend class ::ExtACKeywords;
17068
 
  friend class ::WinAsm;
17069
 
  friend class ::WinDeclSpecs;
17070
 
  friend class ::WinMemberExplSpec;
17071
 
  friend class ::WinTypeKeywords;
 
43553
  friend class ::ExtGnu;
17072
43554
  friend class ::PragmaOnceUnitState;
17073
43555
  friend class ::PragmaOnce;
17074
 
  friend class ::CCExprResolve;
17075
 
  friend class ::CExprResolve;
 
43556
  friend class ::CMatchSyntax;
17076
43557
 
17077
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
43558
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
17078
43559
 
17079
43560
public:
17080
 
  SimpleParser() {}
17081
 
  ~SimpleParser() {}
17082
 
   
17083
 
  static int tokenize (const string &, vector<string> &, 
17084
 
                       const string &delimiters = " ");
17085
 
  static string strip (const string &);
 
43561
  /**
 
43562
   * Remove enclosing double-quotes from a string.
 
43563
   * \param str The string to strip.
 
43564
   * \return String without the enclosing double-quotes.
 
43565
   */
 
43566
  static string strip (const string& str);
 
43567
  /**
 
43568
   * Splits a given string into tokens recognized by the given delimiters.
 
43569
   * \param str The string to split.
 
43570
   * \param tokens A vector for the tokens.
 
43571
   * \param delimiters A string with the delimiters. Default is a space or tab.
 
43572
   * \return Number of recognized tokens.
 
43573
   */
 
43574
  static int tokenize (const string& str, vector<string>& tokens, const string& delimiters = " ");
 
43575
 
 
43576
private:
 
43577
  /**
 
43578
   * Get the position of the next token.
 
43579
   * \param line The string to tokenize.
 
43580
   * \param delimiters A string with the token delimiters.
 
43581
   * \param pos The current position in the string.
 
43582
   * \param lastPos The last position in the string.
 
43583
   * \return The position of the next token.
 
43584
   */
 
43585
  static string::size_type next (const string& line, const string& delimiters, string::size_type pos, string::size_type& lastPos);
 
43586
  /**
 
43587
   * Get the begin of the next token.
 
43588
   * \param line The string to tokenize.
 
43589
   * \param delimiters A string with the token delimiters.
 
43590
   * \param pos The current position in the string.
 
43591
   * \return The begin of the next token.
 
43592
   */
 
43593
  static string::size_type findBeginOfNextToken (const string& line, const string& delimiters, string::size_type pos);
 
43594
  /**
 
43595
   * Get the end of the next token.
 
43596
   * \param line The string to tokenize.
 
43597
   * \param delimiters A string with the token delimiters.
 
43598
   * \param lastPos The last position in the string, i.e. the begin of the next token.
 
43599
   * \return The end of the next token.
 
43600
   */
 
43601
  static string::size_type findEndOfNextToken (const string& line, const string& delimiters, string::size_type lastPos);
17086
43602
};
17087
43603
 
17088
43604
 
17090
43606
 
17091
43607
#endif /* __SimpleParser_h__ */
17092
43608
 
17093
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
43609
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
17094
43610
using namespace std;
17095
43611
 
17096
43612
namespace Puma {
17097
43613
 
17098
43614
 
 
43615
/** \brief The %Options %Parser searches command line parameters for options and
 
43616
 *  handles their option arguments, if applicable.
 
43617
 */
17099
43618
 
17100
 
#line 17101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
43619
#line 43620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
17101
43620
} // closed Puma
 
43621
class CCExprResolve;
 
43622
class CExprResolve;
17102
43623
class WinIfExists;
17103
43624
class WinImportHandler;
17104
43625
class WinMacros;
17105
 
class CMatchSyntax;
17106
 
class ExtGnu;
 
43626
class WinAsm;
 
43627
class WinDeclSpecs;
 
43628
class WinMemberExplSpec;
 
43629
class WinTypeKeywords;
 
43630
class WinFriend;
17107
43631
class ExtAC;
17108
43632
class ExtACBuilderCoupling;
17109
43633
class ExtACSyntaxCoupling;
17110
43634
class ExtACTree;
17111
43635
class ExtACKeywords;
17112
 
class WinAsm;
17113
 
class WinDeclSpecs;
17114
 
class WinMemberExplSpec;
17115
 
class WinTypeKeywords;
 
43636
class ExtGnu;
17116
43637
class PragmaOnceUnitState;
17117
43638
class PragmaOnce;
17118
 
class CCExprResolve;
17119
 
class CExprResolve;
 
43639
class CMatchSyntax;
17120
43640
namespace Puma {
17121
43641
 
17122
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
43642
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
17123
43643
class OptsParser : public SimpleParser {
17124
 
#line 17125 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
43644
#line 43645 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
43645
  friend class ::CCExprResolve;
 
43646
  friend class ::CExprResolve;
17125
43647
  friend class ::WinIfExists;
17126
43648
  friend class ::WinImportHandler;
17127
43649
  friend class ::WinMacros;
17128
 
  friend class ::CMatchSyntax;
17129
 
  friend class ::ExtGnu;
 
43650
  friend class ::WinAsm;
 
43651
  friend class ::WinDeclSpecs;
 
43652
  friend class ::WinMemberExplSpec;
 
43653
  friend class ::WinTypeKeywords;
 
43654
  friend class ::WinFriend;
17130
43655
  friend class ::ExtAC;
17131
43656
  friend class ::ExtACBuilderCoupling;
17132
43657
  friend class ::ExtACSyntaxCoupling;
17133
43658
  friend class ::ExtACTree;
17134
43659
  friend class ::ExtACKeywords;
17135
 
  friend class ::WinAsm;
17136
 
  friend class ::WinDeclSpecs;
17137
 
  friend class ::WinMemberExplSpec;
17138
 
  friend class ::WinTypeKeywords;
 
43660
  friend class ::ExtGnu;
17139
43661
  friend class ::PragmaOnceUnitState;
17140
43662
  friend class ::PragmaOnce;
17141
 
  friend class ::CCExprResolve;
17142
 
  friend class ::CExprResolve;
17143
 
 
17144
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
17145
 
 
 
43663
  friend class ::CMatchSyntax;
 
43664
 
 
43665
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
43666
 
 
43667
  
 
43668
  
 
43669
  /** \brief Vector holding the commandline parameters. 
 
43670
   *  
 
43671
   *  This vector is filled in the constructor
 
43672
   */
17146
43673
  vector<string> m_argv;
 
43674
 
 
43675
  /** \brief Position of current parameter analyzed by the 
 
43676
   *  options parser.
 
43677
   */
17147
43678
  unsigned int m_curarg;
 
43679
  
 
43680
  /** \brief The increment added to m_curarg used to get to the next 
 
43681
   *  entry of m_argv which shall be analysed.
 
43682
   */
17148
43683
  unsigned int m_tonext;
 
43684
  
 
43685
  /** \brief %Option number of currently processed element of m_argv
 
43686
   */
17149
43687
  int m_number;
 
43688
  
 
43689
  /** \brief Name of current option
 
43690
   */
 
43691
  string m_opt;
17150
43692
 
 
43693
  /** \brief Value of current option argument
 
43694
   */
17151
43695
  string m_arg;
17152
 
  string m_opt;
 
43696
  
17153
43697
   
17154
43698
public:
17155
43699
  
17156
 
  enum {NOARG =-4, ERR = -3, NOOPTION = -2, UNKNOWN = -1, FINISH = 0 };
17157
 
  
17158
 
  enum ArgType { AT_NONE = 0, AT_MANDATORY = 1, AT_OPTIONAL = 2 };
17159
 
  
 
43700
  /** \enum
 
43701
   *  Return codes for OptsParser::getOption() and OptsParser::getArgument()
 
43702
   */
 
43703
  enum {
 
43704
     NOARG =-4, /**< %Option has no argument */
 
43705
     ERR = -3, /**< Error when parsing option */
 
43706
     NOOPTION = -2, /**< Command line parameter is not an option */
 
43707
     UNKNOWN = -1, /**< Parameter is an unknown option */
 
43708
     FINISH = 0 /**< All options are handled */
 
43709
  };
 
43710
  
 
43711
  /** \enum
 
43712
   *  Type of argument associated to an option  
 
43713
   */
 
43714
  enum ArgType { 
 
43715
     AT_NONE = 0, /**< %Option receives no argument */
 
43716
     AT_MANDATORY = 1, /**< %Option requires an argument */
 
43717
     AT_OPTIONAL = 2 /**< %Option has optionally an argument */
 
43718
  };
 
43719
  
 
43720
  /** \struct
 
43721
   *  Type for specifying an array of options recognized by the %Option %Parser.
 
43722
   *  An array of this type has to be passed to the constructor OptsParser::OptsParser()
 
43723
   */
17160
43724
  struct Option {
17161
 
#line 17162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
43725
#line 43726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
43726
  friend class ::CCExprResolve;
 
43727
  friend class ::CExprResolve;
17162
43728
  friend class ::WinIfExists;
17163
43729
  friend class ::WinImportHandler;
17164
43730
  friend class ::WinMacros;
17165
 
  friend class ::CMatchSyntax;
17166
 
  friend class ::ExtGnu;
 
43731
  friend class ::WinAsm;
 
43732
  friend class ::WinDeclSpecs;
 
43733
  friend class ::WinMemberExplSpec;
 
43734
  friend class ::WinTypeKeywords;
 
43735
  friend class ::WinFriend;
17167
43736
  friend class ::ExtAC;
17168
43737
  friend class ::ExtACBuilderCoupling;
17169
43738
  friend class ::ExtACSyntaxCoupling;
17170
43739
  friend class ::ExtACTree;
17171
43740
  friend class ::ExtACKeywords;
17172
 
  friend class ::WinAsm;
17173
 
  friend class ::WinDeclSpecs;
17174
 
  friend class ::WinMemberExplSpec;
17175
 
  friend class ::WinTypeKeywords;
 
43741
  friend class ::ExtGnu;
17176
43742
  friend class ::PragmaOnceUnitState;
17177
43743
  friend class ::PragmaOnce;
17178
 
  friend class ::CCExprResolve;
17179
 
  friend class ::CExprResolve;
17180
 
 
17181
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
17182
 
 
17183
 
    int number;
17184
 
    char key; 
17185
 
    const char *name;
17186
 
    const char *desc;
17187
 
    ArgType args;
 
43744
  friend class ::CMatchSyntax;
 
43745
 
 
43746
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
43747
 
 
43748
    int number; /**< Number associated with this option */
 
43749
    const char *shortName; /**< Short name of this option. Should ideally not contain more than one character */
 
43750
    const char *longName; /**< Long namen of this option */
 
43751
    const char *desc; /**< Description of this option **/ 
 
43752
    ArgType argType; /**< Type of argument for this option */
17188
43753
  };
17189
43754
 
17190
43755
private:
 
43756
  /** Pointer to array of available options. This value is set to the value of the 
 
43757
   * parameter passed to the constructor OptsParser::OptsParser()
 
43758
   */
17191
43759
  const Option *m_opts;
17192
43760
   
17193
43761
public:
17194
 
  OptsParser (int, char **, const Option *);
17195
 
  OptsParser (const string &, const Option *);
 
43762
  /** \brief Constructor of OptsParser
 
43763
   *  
 
43764
   *  \param argc Number of parameters to be analyzed
 
43765
   *  \param argv Parameters to be analyzed
 
43766
   *  \param opts Pointer to array of options which shall be
 
43767
   *              recognized by the options parser
 
43768
   *
 
43769
   */
 
43770
  OptsParser (int argc, char **argv, const Option *opts);
 
43771
  
 
43772
  /** \brief Constructor of OptsParser
 
43773
   *  
 
43774
   *  \param line Reference to string with parameters to analyse
 
43775
   *              The paramaters are extracted from the string by splitting it up 
 
43776
   *              into tokens at:
 
43777
   *               - space character
 
43778
   *               - tabs 
 
43779
   *               - newline
 
43780
   *               - carriage return
 
43781
   *  \param opts Pointer to array of options which shall be 
 
43782
   *              recognized by the options parser
 
43783
   */
 
43784
  OptsParser (const string &line, const Option *);
17196
43785
 
17197
 
  int getCurrentArgNum () const;
17198
 
  int getNextArgNum () const;
 
43786
  
 
43787
  /** Get next parameter without modification. 
 
43788
   * No option parsing is done
 
43789
   *
 
43790
   * \return OptsParser::NOOPTION or OptsParser::FINISH 
 
43791
   */
 
43792
  int getRawOption ();
 
43793
  
 
43794
  /** \brief Get next option
 
43795
   *
 
43796
   * This function processes the next parameter passed to the constructor 
 
43797
   * OptsParser::OptsParser(). 
 
43798
   * That is, search for options and eventually process
 
43799
   * option and option arguement. 
 
43800
   *
 
43801
   * \return Number of option recognized by the options parser or
 
43802
   *         OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
 
43803
   *         OptsParser::UNKNOWN or OptsParser::FINISH.
 
43804
   *
 
43805
   */
17199
43806
  int getOption ();
 
43807
  
 
43808
  /** \brief Get result of last processed parameter
 
43809
   *
 
43810
   *  The number returned by this function is identical to the number 
 
43811
   *  returned by the last call of OptsParser::getOption
 
43812
   *   
 
43813
   * \return Number of option recognized by the options parser or
 
43814
   *         OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
 
43815
   *         OptsParser::UNKNOWN or OptsParser::FINISH.
 
43816
   *
 
43817
   */
17200
43818
  int getResult () const;
17201
43819
  
 
43820
  /** \brief Get option argument of last processed parameter
 
43821
   *
 
43822
   *  This function returns the argument of the option processed during 
 
43823
   *  OptsParser::getOption. If the option does not provide any argument
 
43824
   *  the string will be empty.
 
43825
   *
 
43826
   *  If OptsParser::getOption or respectively OptsParser::getResult returns with 
 
43827
   *  OptsParser::NOOPTION this function (OptsParser::getArgument) returns the last processed parameter, 
 
43828
   *  which is no option, of course.
 
43829
   *
 
43830
   *  \return Argument of last processed parameter
 
43831
   */
17202
43832
  const string &getArgument () const;
 
43833
  
 
43834
  /** \brief Get option name of last processed parameter
 
43835
   *
 
43836
   *  If the last processed parameter did not contain an option the string 
 
43837
   *  returned by this function is empty.
 
43838
   *
 
43839
   *  \return Name of last processed parameter
 
43840
   *
 
43841
   */
17203
43842
  const string &getOptionName () const;
 
43843
  
 
43844
  /** \brief Get position of current argument
 
43845
   *
 
43846
   *  \return Position of currently processed parameter previously passed to OptsParser::OptsParser()
 
43847
   *
 
43848
   */
 
43849
  int getCurrentArgNum () const;
 
43850
  
 
43851
  /** \brief Get position of next argument
 
43852
   *
 
43853
   *  \return Position of next parameter which will be processed by the %Options %Parser
 
43854
   *
 
43855
   */
 
43856
  int getNextArgNum () const;
17204
43857
 
17205
 
  bool revokeArgument();
17206
 
   
17207
43858
private:
17208
 
  int  getShortOption (const string &);
17209
 
  int  getLongOption  (const string &);
17210
 
  bool processOption  (const string &, unsigned int,ArgType argtype);
 
43859
  /** Search for an option in m_argv at position m_curarg
 
43860
   *
 
43861
   *  \param arg Currently processed parameter 
 
43862
   */
 
43863
  const Option*  findOption(const string &arg, bool isLong);
 
43864
  
 
43865
  /** Process an option found by OptsParser::findOption(). 
 
43866
   */
 
43867
  bool processOption  (const string &arg, const Option* curOpt, bool isLong);
17211
43868
};
17212
43869
 
17213
43870
 
17215
43872
 
17216
43873
#endif /* __OptsParser_h__ */
17217
43874
 
17218
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
 
43875
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
17219
43876
using namespace std;
17220
43877
 
17221
43878
namespace Puma {
17222
43879
 
17223
43880
 
17224
43881
 
17225
 
#line 17226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
43882
#line 43883 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
17226
43883
} // closed Puma
 
43884
class CCExprResolve;
 
43885
class CExprResolve;
17227
43886
class WinIfExists;
17228
43887
class WinImportHandler;
17229
43888
class WinMacros;
17230
 
class CMatchSyntax;
17231
 
class ExtGnu;
 
43889
class WinAsm;
 
43890
class WinDeclSpecs;
 
43891
class WinMemberExplSpec;
 
43892
class WinTypeKeywords;
 
43893
class WinFriend;
17232
43894
class ExtAC;
17233
43895
class ExtACBuilderCoupling;
17234
43896
class ExtACSyntaxCoupling;
17235
43897
class ExtACTree;
17236
43898
class ExtACKeywords;
17237
 
class WinAsm;
17238
 
class WinDeclSpecs;
17239
 
class WinMemberExplSpec;
17240
 
class WinTypeKeywords;
 
43899
class ExtGnu;
17241
43900
class PragmaOnceUnitState;
17242
43901
class PragmaOnce;
17243
 
class CCExprResolve;
17244
 
class CExprResolve;
 
43902
class CMatchSyntax;
17245
43903
namespace Puma {
17246
43904
 
17247
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
 
43905
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
17248
43906
class Config {
17249
 
#line 17250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
43907
#line 43908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
43908
  friend class ::CCExprResolve;
 
43909
  friend class ::CExprResolve;
17250
43910
  friend class ::WinIfExists;
17251
43911
  friend class ::WinImportHandler;
17252
43912
  friend class ::WinMacros;
17253
 
  friend class ::CMatchSyntax;
17254
 
  friend class ::ExtGnu;
 
43913
  friend class ::WinAsm;
 
43914
  friend class ::WinDeclSpecs;
 
43915
  friend class ::WinMemberExplSpec;
 
43916
  friend class ::WinTypeKeywords;
 
43917
  friend class ::WinFriend;
17255
43918
  friend class ::ExtAC;
17256
43919
  friend class ::ExtACBuilderCoupling;
17257
43920
  friend class ::ExtACSyntaxCoupling;
17258
43921
  friend class ::ExtACTree;
17259
43922
  friend class ::ExtACKeywords;
17260
 
  friend class ::WinAsm;
17261
 
  friend class ::WinDeclSpecs;
17262
 
  friend class ::WinMemberExplSpec;
17263
 
  friend class ::WinTypeKeywords;
 
43923
  friend class ::ExtGnu;
17264
43924
  friend class ::PragmaOnceUnitState;
17265
43925
  friend class ::PragmaOnce;
17266
 
  friend class ::CCExprResolve;
17267
 
  friend class ::CExprResolve;
 
43926
  friend class ::CMatchSyntax;
17268
43927
 
17269
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
 
43928
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
17270
43929
 
17271
43930
  Flags _flags;
17272
43931
  ErrorStream &_err;
17326
43985
private:
17327
43986
  bool Valid (const char *, const char * = (const char *)0) const;
17328
43987
 
17329
 
  bool Process (OptsParser&);
 
43988
  bool Process (OptsParser&, bool unescape = false);
17330
43989
  bool ProcessAssert (const string&);
17331
43990
  bool ProcessDefine (const string&);
17332
43991
  bool ProcessLockMacro (const string&);
17335
43994
  bool ProcessArgument (const string&,const string&);
17336
43995
  bool ProcessPathArgument (const string&,const string&);
17337
43996
 
 
43997
  string Unescape(const string&);
17338
43998
};
17339
43999
 
17340
44000
inline Config::Config (ErrorStream &e) : _err (e)
17376
44036
 
17377
44037
#endif /* __Config_h__ */
17378
44038
 
17379
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17380
 
 
17381
 
#line 17382 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
17382
 
 
17383
 
#ifndef __ac_fwd_ExtACTree__
17384
 
#define __ac_fwd_ExtACTree__
17385
 
class ExtACTree;
17386
 
namespace AC {
17387
 
  template <class JoinPoint>
17388
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
17389
 
  template <class JoinPoint>
17390
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
17391
 
}
17392
 
#endif
17393
 
 
17394
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
17395
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
17396
 
#endif
17397
 
 
17398
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17399
 
 
17400
 
#line 17401 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
17401
 
 
17402
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17403
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
17404
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
17405
 
 
17406
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17407
 
// This file is part of PUMA.
17408
 
// Copyright (C) 1999-2003  The PUMA developer team.
17409
 
//                                                                
17410
 
// This program is free software;  you can redistribute it and/or 
17411
 
// modify it under the terms of the GNU General Public License as 
17412
 
// published by the Free Software Foundation; either version 2 of 
17413
 
// the License, or (at your option) any later version.            
17414
 
//                                                                
17415
 
// This program is distributed in the hope that it will be useful,
17416
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
17417
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
17418
 
// GNU General Public License for more details.                   
17419
 
//                                                                
17420
 
// You should have received a copy of the GNU General Public      
17421
 
// License along with this program; if not, write to the Free     
17422
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
17423
 
// MA  02111-1307  USA                                            
17424
 
 
17425
 
#ifndef __CTree_h__
17426
 
#define __CTree_h__
17427
 
 
17428
 
namespace Puma {
17429
 
 
17430
 
 
17431
 
// Syntax tree node hierarchy:
17432
 
class CTree;
17433
 
class   CT_Statement;          
17434
 
class     CT_LabelStmt;
17435
 
class     CT_IfStmt;
17436
 
class     CT_IfElseStmt;
17437
 
class     CT_SwitchStmt;
17438
 
class     CT_BreakStmt;
17439
 
class     CT_ExprStmt;
17440
 
class     CT_WhileStmt;
17441
 
class     CT_DoStmt;
17442
 
class     CT_ForStmt;
17443
 
class     CT_ContinueStmt;
17444
 
class     CT_ReturnStmt;
17445
 
class     CT_GotoStmt;
17446
 
class     CT_DeclStmt;
17447
 
class     CT_CaseStmt;
17448
 
class     CT_DefaultStmt;
17449
 
class     CT_TryStmt;
17450
 
class   CT_Expression;
17451
 
class     CT_ThrowExpr;
17452
 
class     CT_NewExpr;
17453
 
class     CT_DeleteExpr;
17454
 
class     CT_ConstructExpr;
17455
 
class     CT_Integer;
17456
 
class     CT_Character;
17457
 
class       CT_WideCharacter;
17458
 
class     CT_Float;
17459
 
class     CT_Bool;
17460
 
class     CT_BracedExpr;
17461
 
class     CT_BinaryExpr;
17462
 
class       CT_MembPtrExpr;
17463
 
class         CT_MembRefExpr;
17464
 
class     CT_UnaryExpr;
17465
 
class       CT_PostfixExpr;
17466
 
class       CT_AddrExpr;
17467
 
class       CT_DerefExpr;
17468
 
class     CT_IfThenExpr;
17469
 
class     CT_CmpdLiteral;
17470
 
class     CT_IndexExpr;
17471
 
class     CT_CallExpr;
17472
 
class     CT_CastExpr;
17473
 
class     CT_StaticCast;
17474
 
class       CT_ConstCast;
17475
 
class       CT_ReintCast;
17476
 
class       CT_DynamicCast;
17477
 
class     CT_TypeidExpr;
17478
 
class     CT_SizeofExpr;
17479
 
class     CT_MembDesignator;
17480
 
class     CT_IndexDesignator;
17481
 
class     CT_ImplicitCast;
17482
 
class   CT_DeclSpec;
17483
 
class     CT_PrimDeclSpec;
17484
 
class     CT_NamedType;
17485
 
class     CT_ClassSpec;
17486
 
class       CT_UnionSpec;
17487
 
class       CT_EnumSpec;
17488
 
class     CT_ExceptionSpec;
17489
 
class   CT_Declarator;
17490
 
class     CT_InitDeclarator;
17491
 
class     CT_BracedDeclarator;
17492
 
class     CT_ArrayDeclarator;
17493
 
class     CT_FctDeclarator;
17494
 
class     CT_RefDeclarator;
17495
 
class     CT_PtrDeclarator;
17496
 
class     CT_MembPtrDeclarator;
17497
 
class     CT_BitFieldDeclarator;
17498
 
class   CT_Decl;
17499
 
class     CT_ObjDecl;
17500
 
class     CT_ArgDecl;
17501
 
class     CT_AccessDecl;
17502
 
class       CT_UsingDecl;
17503
 
class     CT_FctDef;
17504
 
class     CT_AsmDef;
17505
 
class     CT_EnumDef;
17506
 
class     CT_ClassDef;
17507
 
class       CT_UnionDef;
17508
 
class     CT_Enumerator;
17509
 
class     CT_LinkageSpec;
17510
 
class     CT_Handler;
17511
 
class     CT_TemplateDecl;
17512
 
class     CT_TemplateParamDecl;
17513
 
class       CT_TypeParamDecl;
17514
 
class       CT_NonTypeParamDecl;
17515
 
class     CT_NamespaceDef;
17516
 
class     CT_NamespaceAliasDef;
17517
 
class     CT_UsingDirective;
17518
 
class   CT_List;
17519
 
class     CT_CmpdStmt;
17520
 
class     CT_DeclSpecSeq;
17521
 
class     CT_HandlerSeq;
17522
 
class     CT_DesignatorSeq;
17523
 
class     CT_DeclList;
17524
 
class       CT_Program;
17525
 
class       CT_ArgDeclList;
17526
 
class         CT_ArgNameList;
17527
 
class       CT_ArgDeclSeq;
17528
 
class       CT_MembList;
17529
 
class     CT_ExprList;
17530
 
class     CT_DeclaratorList;
17531
 
class     CT_BaseSpecList;
17532
 
class     CT_MembInitList;
17533
 
class     CT_SimpleName;
17534
 
class       CT_SpecialName;
17535
 
class         CT_PrivateName;
17536
 
class         CT_OperatorName;
17537
 
class         CT_DestructorName;
17538
 
class         CT_ConversionName;
17539
 
class         CT_TemplateName;
17540
 
class       CT_QualName;
17541
 
class         CT_RootQualName;
17542
 
class     CT_String;
17543
 
class       CT_WideString;
17544
 
class     CT_TemplateParamList;
17545
 
class     CT_TemplateArgList;
17546
 
class   CT_Token;
17547
 
class   CT_Error;
17548
 
class   CT_Condition;
17549
 
class   CT_BaseSpec;
17550
 
class   CT_AccessSpec;
17551
 
class   CT_ArrayDelimiter;
17552
 
class   CT_Any;
17553
 
class   CT_AnyList;
17554
 
class   CT_AnyExtension;
17555
 
class   CT_AnyCondition;
17556
 
 
17557
 
 
17558
 
} // namespace Puma
17559
 
 
17560
 
#include "Puma/ErrorSeverity.h"
17561
 
#include "Puma/CSemObject.h"
17562
 
#include "Puma/CSemScope.h"
17563
 
#include "Puma/CSemValue.h"
17564
 
#include "Puma/CExprValue.h"
17565
 
#include "Puma/CStrLiteral.h"
17566
 
#include "Puma/CTypeInfo.h"
17567
 
#include "Puma/Printable.h"
17568
 
#include "Puma/CTokens.h"
17569
 
#include "Puma/Token.h"
17570
 
 
17571
 
#include <iostream>
17572
 
#include <string.h>
17573
 
using namespace std;
17574
 
 
17575
 
namespace Puma {
17576
 
 
17577
 
 
17578
 
class ErrorStream;
17579
 
class CObjectInfo;
17580
 
class CStructure;
17581
 
 
17582
 
/*****************************************************************************/
17583
 
/*                                                                           */
17584
 
/*                    S y n t a x  t r e e  n o d e s                        */
17585
 
/*                                                                           */
17586
 
/*****************************************************************************/
17587
 
 
17588
 
 
17589
 
#line 17590 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
17590
 
} // closed Puma
17591
 
class WinIfExists;
17592
 
class WinImportHandler;
17593
 
class WinMacros;
17594
 
class CMatchSyntax;
17595
 
class ExtGnu;
17596
 
class ExtAC;
17597
 
class ExtACBuilderCoupling;
17598
 
class ExtACSyntaxCoupling;
17599
 
class ExtACTree;
17600
 
class ExtACKeywords;
17601
 
class WinAsm;
17602
 
class WinDeclSpecs;
17603
 
class WinMemberExplSpec;
17604
 
class WinTypeKeywords;
17605
 
class PragmaOnceUnitState;
17606
 
class PragmaOnce;
17607
 
class CCExprResolve;
17608
 
class CExprResolve;
17609
 
namespace Puma {
17610
 
 
17611
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17612
 
class CTree {
17613
 
#line 17614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
17614
 
  friend class ::WinIfExists;
17615
 
  friend class ::WinImportHandler;
17616
 
  friend class ::WinMacros;
17617
 
  friend class ::CMatchSyntax;
17618
 
  friend class ::ExtGnu;
17619
 
  friend class ::ExtAC;
17620
 
  friend class ::ExtACBuilderCoupling;
17621
 
  friend class ::ExtACSyntaxCoupling;
17622
 
  friend class ::ExtACTree;
17623
 
  friend class ::ExtACKeywords;
17624
 
  friend class ::WinAsm;
17625
 
  friend class ::WinDeclSpecs;
17626
 
  friend class ::WinMemberExplSpec;
17627
 
  friend class ::WinTypeKeywords;
17628
 
  friend class ::PragmaOnceUnitState;
17629
 
  friend class ::PragmaOnce;
17630
 
  friend class ::CCExprResolve;
17631
 
  friend class ::CExprResolve;
17632
 
 
17633
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17634
 
 
17635
 
public:
17636
 
  /*DEBUG*/static int alloc;
17637
 
  /*DEBUG*/static int release;
17638
 
 
17639
 
protected:
17640
 
  CTree *Son (CTree * const *, int, int) const;
17641
 
  int Sons (CTree * const *, int) const;
17642
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
17643
 
  
17644
 
protected:
17645
 
  CTree () { /*DEBUG*/alloc++; }
17646
 
 
17647
 
public:
17648
 
  virtual ~CTree () { /*DEBUG*/release++; }
17649
 
  virtual int Sons () const = 0;
17650
 
  virtual CTree *Son (int n) const { return (CTree*)0; }
17651
 
  virtual const char *NodeName () const = 0;
17652
 
  virtual Token *token () const;
17653
 
  virtual Token *end_token () const;
17654
 
  virtual CT_Token *token_node () const;
17655
 
  virtual CT_Token *end_token_node () const;
17656
 
  virtual void ReplaceSon (CTree *, CTree *) {}
17657
 
 
17658
 
public: // semantic information
17659
 
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
17660
 
  virtual CExprValue *Value () const { return (CExprValue*)0; }
17661
 
  
17662
 
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
17663
 
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
17664
 
  
17665
 
public: // node classification function
17666
 
  virtual CT_SimpleName *IsSimpleName () { return 0; }
17667
 
  virtual CT_Declarator *IsDeclarator () { return 0; }
17668
 
   private:
17669
 
  typedef CTree CCExprResolveCTree;
17670
 
 
17671
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
17672
 
 public :
17673
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
17674
 
  typedef CTree CExprResolveCTree;
17675
 
 
17676
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
17677
 
 public :
17678
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
17679
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17680
 
};
17681
 
 
17682
 
 
17683
 
#line 17684 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
17684
 
} // closed Puma
17685
 
class WinIfExists;
17686
 
class WinImportHandler;
17687
 
class WinMacros;
17688
 
class CMatchSyntax;
17689
 
class ExtGnu;
17690
 
class ExtAC;
17691
 
class ExtACBuilderCoupling;
17692
 
class ExtACSyntaxCoupling;
17693
 
class ExtACTree;
17694
 
class ExtACKeywords;
17695
 
class WinAsm;
17696
 
class WinDeclSpecs;
17697
 
class WinMemberExplSpec;
17698
 
class WinTypeKeywords;
17699
 
class PragmaOnceUnitState;
17700
 
class PragmaOnce;
17701
 
class CCExprResolve;
17702
 
class CExprResolve;
17703
 
namespace Puma {
17704
 
 
17705
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17706
 
class CT_Error : public CTree {
17707
 
#line 17708 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
17708
 
  friend class ::WinIfExists;
17709
 
  friend class ::WinImportHandler;
17710
 
  friend class ::WinMacros;
17711
 
  friend class ::CMatchSyntax;
17712
 
  friend class ::ExtGnu;
17713
 
  friend class ::ExtAC;
17714
 
  friend class ::ExtACBuilderCoupling;
17715
 
  friend class ::ExtACSyntaxCoupling;
17716
 
  friend class ::ExtACTree;
17717
 
  friend class ::ExtACKeywords;
17718
 
  friend class ::WinAsm;
17719
 
  friend class ::WinDeclSpecs;
17720
 
  friend class ::WinMemberExplSpec;
17721
 
  friend class ::WinTypeKeywords;
17722
 
  friend class ::PragmaOnceUnitState;
17723
 
  friend class ::PragmaOnce;
17724
 
  friend class ::CCExprResolve;
17725
 
  friend class ::CExprResolve;
17726
 
 
17727
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17728
 
 
17729
 
public:
17730
 
  static const char *NodeId ();
17731
 
  const char *NodeName () const { return NodeId (); }
17732
 
  int Sons () const { return 0; }
17733
 
};
17734
 
 
17735
 
 
17736
 
#line 17737 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
17737
 
} // closed Puma
17738
 
class WinIfExists;
17739
 
class WinImportHandler;
17740
 
class WinMacros;
17741
 
class CMatchSyntax;
17742
 
class ExtGnu;
17743
 
class ExtAC;
17744
 
class ExtACBuilderCoupling;
17745
 
class ExtACSyntaxCoupling;
17746
 
class ExtACTree;
17747
 
class ExtACKeywords;
17748
 
class WinAsm;
17749
 
class WinDeclSpecs;
17750
 
class WinMemberExplSpec;
17751
 
class WinTypeKeywords;
17752
 
class PragmaOnceUnitState;
17753
 
class PragmaOnce;
17754
 
class CCExprResolve;
17755
 
class CExprResolve;
17756
 
namespace Puma {
17757
 
 
17758
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17759
 
class CT_Token : public CTree {
17760
 
#line 17761 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
17761
 
  friend class ::WinIfExists;
17762
 
  friend class ::WinImportHandler;
17763
 
  friend class ::WinMacros;
17764
 
  friend class ::CMatchSyntax;
17765
 
  friend class ::ExtGnu;
17766
 
  friend class ::ExtAC;
17767
 
  friend class ::ExtACBuilderCoupling;
17768
 
  friend class ::ExtACSyntaxCoupling;
17769
 
  friend class ::ExtACTree;
17770
 
  friend class ::ExtACKeywords;
17771
 
  friend class ::WinAsm;
17772
 
  friend class ::WinDeclSpecs;
17773
 
  friend class ::WinMemberExplSpec;
17774
 
  friend class ::WinTypeKeywords;
17775
 
  friend class ::PragmaOnceUnitState;
17776
 
  friend class ::PragmaOnce;
17777
 
  friend class ::CCExprResolve;
17778
 
  friend class ::CExprResolve;
17779
 
 
17780
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17781
 
 
17782
 
  Token *_token;
17783
 
  unsigned long int _number;
17784
 
  
17785
 
public:
17786
 
  CT_Token (Token *t, unsigned long int n = 0) : 
17787
 
    _token (t), _number (n) {}
17788
 
  static const char *NodeId ();
17789
 
  const char *NodeName () const { return NodeId (); }
17790
 
  int Sons () const { return 0; }
17791
 
  Token *token () const { return _token; }
17792
 
  Token *end_token () const { return _token; }
17793
 
  CT_Token *token_node () const { return (CT_Token*)this; }
17794
 
  CT_Token *end_token_node () const { return (CT_Token*)this; }
17795
 
  void Number (unsigned long int n) { _number = n; }
17796
 
  unsigned long int Number () const { return _number; }
17797
 
  // special new / delete with reusing memory
17798
 
  void *operator new (size_t);
17799
 
  void  operator delete (void *);
17800
 
};
17801
 
 
17802
 
/*****************************************************************************/
17803
 
/*                                                                           */
17804
 
/*                              List nodes                                   */
17805
 
/*                                                                           */
17806
 
/*****************************************************************************/
17807
 
 
17808
 
 
17809
 
#line 17810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
17810
 
} // closed Puma
17811
 
class WinIfExists;
17812
 
class WinImportHandler;
17813
 
class WinMacros;
17814
 
class CMatchSyntax;
17815
 
class ExtGnu;
17816
 
class ExtAC;
17817
 
class ExtACBuilderCoupling;
17818
 
class ExtACSyntaxCoupling;
17819
 
class ExtACTree;
17820
 
class ExtACKeywords;
17821
 
class WinAsm;
17822
 
class WinDeclSpecs;
17823
 
class WinMemberExplSpec;
17824
 
class WinTypeKeywords;
17825
 
class PragmaOnceUnitState;
17826
 
class PragmaOnce;
17827
 
class CCExprResolve;
17828
 
class CExprResolve;
17829
 
namespace Puma {
17830
 
 
17831
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17832
 
class CT_List : public CTree {
17833
 
#line 17834 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
17834
 
  friend class ::WinIfExists;
17835
 
  friend class ::WinImportHandler;
17836
 
  friend class ::WinMacros;
17837
 
  friend class ::CMatchSyntax;
17838
 
  friend class ::ExtGnu;
17839
 
  friend class ::ExtAC;
17840
 
  friend class ::ExtACBuilderCoupling;
17841
 
  friend class ::ExtACSyntaxCoupling;
17842
 
  friend class ::ExtACTree;
17843
 
  friend class ::ExtACKeywords;
17844
 
  friend class ::WinAsm;
17845
 
  friend class ::WinDeclSpecs;
17846
 
  friend class ::WinMemberExplSpec;
17847
 
  friend class ::WinTypeKeywords;
17848
 
  friend class ::PragmaOnceUnitState;
17849
 
  friend class ::PragmaOnce;
17850
 
  friend class ::CCExprResolve;
17851
 
  friend class ::CExprResolve;
17852
 
 
17853
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17854
 
 
17855
 
  Array<CTree*> _sons;
17856
 
  int _properties;
17857
 
 
17858
 
protected:
17859
 
  CT_List(int size = 5, int incr = 5, int props = 0) : 
17860
 
    _sons (size, incr), _properties (props) {}
17861
 
 
17862
 
public:
17863
 
  enum {
17864
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
17865
 
    CLOSE = 2,
17866
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
17867
 
    SEPARATORS = 4,   // the list has separators like ','
17868
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
17869
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
17870
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
17871
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
17872
 
  };
17873
 
 
17874
 
  int Entries () const;
17875
 
  CTree *Entry (int no) const;
17876
 
  int Sons () const { return _sons.length (); }
17877
 
  CTree *Son (int n) const { return _sons.lookup (n); }
17878
 
  int GetProperties () const { return _properties; }
17879
 
  void AddProperties (int p) { _properties |= p; }
17880
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
17881
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
17882
 
  void InsertSon (CTree *, CTree *);  // before given son
17883
 
  void ReplaceSon (CTree *, CTree *);
17884
 
  void RemoveSon (CTree *);
17885
 
  void InsertSon (int idx, CTree *s)
17886
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
17887
 
  void ReplaceSon (int idx, CTree *s) 
17888
 
   { if (idx < Sons ()) _sons[idx] = s; }
17889
 
  void RemoveSon (int idx) 
17890
 
   { if (idx < Sons ()) _sons.remove (idx); }
17891
 
};
17892
 
 
17893
 
 
17894
 
#line 17895 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
17895
 
} // closed Puma
17896
 
class WinIfExists;
17897
 
class WinImportHandler;
17898
 
class WinMacros;
17899
 
class CMatchSyntax;
17900
 
class ExtGnu;
17901
 
class ExtAC;
17902
 
class ExtACBuilderCoupling;
17903
 
class ExtACSyntaxCoupling;
17904
 
class ExtACTree;
17905
 
class ExtACKeywords;
17906
 
class WinAsm;
17907
 
class WinDeclSpecs;
17908
 
class WinMemberExplSpec;
17909
 
class WinTypeKeywords;
17910
 
class PragmaOnceUnitState;
17911
 
class PragmaOnce;
17912
 
class CCExprResolve;
17913
 
class CExprResolve;
17914
 
namespace Puma {
17915
 
 
17916
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17917
 
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
17918
 
#line 17919 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
17919
 
  friend class ::WinIfExists;
17920
 
  friend class ::WinImportHandler;
17921
 
  friend class ::WinMacros;
17922
 
  friend class ::CMatchSyntax;
17923
 
  friend class ::ExtGnu;
17924
 
  friend class ::ExtAC;
17925
 
  friend class ::ExtACBuilderCoupling;
17926
 
  friend class ::ExtACSyntaxCoupling;
17927
 
  friend class ::ExtACTree;
17928
 
  friend class ::ExtACKeywords;
17929
 
  friend class ::WinAsm;
17930
 
  friend class ::WinDeclSpecs;
17931
 
  friend class ::WinMemberExplSpec;
17932
 
  friend class ::WinTypeKeywords;
17933
 
  friend class ::PragmaOnceUnitState;
17934
 
  friend class ::PragmaOnce;
17935
 
  friend class ::CCExprResolve;
17936
 
  friend class ::CExprResolve;
17937
 
 
17938
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17939
 
 
17940
 
public:
17941
 
  CT_ExprList () { AddProperties (SEPARATORS); }
17942
 
  static const char *NodeId ();
17943
 
  const char *NodeName () const { return NodeId (); }
17944
 
 
17945
 
  CTypeInfo *Type () const { return type; }
17946
 
  CExprValue *Value () const { return value; }
17947
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
17948
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
17949
 
};
17950
 
 
17951
 
 
17952
 
#line 17953 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
17953
 
} // closed Puma
17954
 
class WinIfExists;
17955
 
class WinImportHandler;
17956
 
class WinMacros;
17957
 
class CMatchSyntax;
17958
 
class ExtGnu;
17959
 
class ExtAC;
17960
 
class ExtACBuilderCoupling;
17961
 
class ExtACSyntaxCoupling;
17962
 
class ExtACTree;
17963
 
class ExtACKeywords;
17964
 
class WinAsm;
17965
 
class WinDeclSpecs;
17966
 
class WinMemberExplSpec;
17967
 
class WinTypeKeywords;
17968
 
class PragmaOnceUnitState;
17969
 
class PragmaOnce;
17970
 
class CCExprResolve;
17971
 
class CExprResolve;
17972
 
namespace Puma {
17973
 
 
17974
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17975
 
class CT_DeclaratorList : public CT_List {
17976
 
#line 17977 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
17977
 
  friend class ::WinIfExists;
17978
 
  friend class ::WinImportHandler;
17979
 
  friend class ::WinMacros;
17980
 
  friend class ::CMatchSyntax;
17981
 
  friend class ::ExtGnu;
17982
 
  friend class ::ExtAC;
17983
 
  friend class ::ExtACBuilderCoupling;
17984
 
  friend class ::ExtACSyntaxCoupling;
17985
 
  friend class ::ExtACTree;
17986
 
  friend class ::ExtACKeywords;
17987
 
  friend class ::WinAsm;
17988
 
  friend class ::WinDeclSpecs;
17989
 
  friend class ::WinMemberExplSpec;
17990
 
  friend class ::WinTypeKeywords;
17991
 
  friend class ::PragmaOnceUnitState;
17992
 
  friend class ::PragmaOnce;
17993
 
  friend class ::CCExprResolve;
17994
 
  friend class ::CExprResolve;
17995
 
 
17996
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17997
 
 
17998
 
public:
17999
 
  static const char *NodeId ();
18000
 
  const char *NodeName () const { return NodeId (); }
18001
 
};
18002
 
 
18003
 
 
18004
 
#line 18005 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18005
 
} // closed Puma
18006
 
class WinIfExists;
18007
 
class WinImportHandler;
18008
 
class WinMacros;
18009
 
class CMatchSyntax;
18010
 
class ExtGnu;
18011
 
class ExtAC;
18012
 
class ExtACBuilderCoupling;
18013
 
class ExtACSyntaxCoupling;
18014
 
class ExtACTree;
18015
 
class ExtACKeywords;
18016
 
class WinAsm;
18017
 
class WinDeclSpecs;
18018
 
class WinMemberExplSpec;
18019
 
class WinTypeKeywords;
18020
 
class PragmaOnceUnitState;
18021
 
class PragmaOnce;
18022
 
class CCExprResolve;
18023
 
class CExprResolve;
18024
 
namespace Puma {
18025
 
 
18026
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18027
 
class CT_EnumeratorList : public CT_List {
18028
 
#line 18029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18029
 
  friend class ::WinIfExists;
18030
 
  friend class ::WinImportHandler;
18031
 
  friend class ::WinMacros;
18032
 
  friend class ::CMatchSyntax;
18033
 
  friend class ::ExtGnu;
18034
 
  friend class ::ExtAC;
18035
 
  friend class ::ExtACBuilderCoupling;
18036
 
  friend class ::ExtACSyntaxCoupling;
18037
 
  friend class ::ExtACTree;
18038
 
  friend class ::ExtACKeywords;
18039
 
  friend class ::WinAsm;
18040
 
  friend class ::WinDeclSpecs;
18041
 
  friend class ::WinMemberExplSpec;
18042
 
  friend class ::WinTypeKeywords;
18043
 
  friend class ::PragmaOnceUnitState;
18044
 
  friend class ::PragmaOnce;
18045
 
  friend class ::CCExprResolve;
18046
 
  friend class ::CExprResolve;
18047
 
 
18048
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18049
 
 
18050
 
public:
18051
 
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
18052
 
  static const char *NodeId ();
18053
 
  const char *NodeName () const { return NodeId (); }
18054
 
};
18055
 
   
18056
 
 
18057
 
#line 18058 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18058
 
} // closed Puma
18059
 
class WinIfExists;
18060
 
class WinImportHandler;
18061
 
class WinMacros;
18062
 
class CMatchSyntax;
18063
 
class ExtGnu;
18064
 
class ExtAC;
18065
 
class ExtACBuilderCoupling;
18066
 
class ExtACSyntaxCoupling;
18067
 
class ExtACTree;
18068
 
class ExtACKeywords;
18069
 
class WinAsm;
18070
 
class WinDeclSpecs;
18071
 
class WinMemberExplSpec;
18072
 
class WinTypeKeywords;
18073
 
class PragmaOnceUnitState;
18074
 
class PragmaOnce;
18075
 
class CCExprResolve;
18076
 
class CExprResolve;
18077
 
namespace Puma {
18078
 
 
18079
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18080
 
class CT_DeclList : public CT_List {
18081
 
#line 18082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18082
 
  friend class ::WinIfExists;
18083
 
  friend class ::WinImportHandler;
18084
 
  friend class ::WinMacros;
18085
 
  friend class ::CMatchSyntax;
18086
 
  friend class ::ExtGnu;
18087
 
  friend class ::ExtAC;
18088
 
  friend class ::ExtACBuilderCoupling;
18089
 
  friend class ::ExtACSyntaxCoupling;
18090
 
  friend class ::ExtACTree;
18091
 
  friend class ::ExtACKeywords;
18092
 
  friend class ::WinAsm;
18093
 
  friend class ::WinDeclSpecs;
18094
 
  friend class ::WinMemberExplSpec;
18095
 
  friend class ::WinTypeKeywords;
18096
 
  friend class ::PragmaOnceUnitState;
18097
 
  friend class ::PragmaOnce;
18098
 
  friend class ::CCExprResolve;
18099
 
  friend class ::CExprResolve;
18100
 
 
18101
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18102
 
 
18103
 
public:
18104
 
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
18105
 
  static const char *NodeId ();
18106
 
  const char *NodeName () const { return NodeId (); }
18107
 
  void Linkage (CT_LinkageSpec *l);
18108
 
};
18109
 
 
18110
 
 
18111
 
#line 18112 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18112
 
} // closed Puma
18113
 
class WinIfExists;
18114
 
class WinImportHandler;
18115
 
class WinMacros;
18116
 
class CMatchSyntax;
18117
 
class ExtGnu;
18118
 
class ExtAC;
18119
 
class ExtACBuilderCoupling;
18120
 
class ExtACSyntaxCoupling;
18121
 
class ExtACTree;
18122
 
class ExtACKeywords;
18123
 
class WinAsm;
18124
 
class WinDeclSpecs;
18125
 
class WinMemberExplSpec;
18126
 
class WinTypeKeywords;
18127
 
class PragmaOnceUnitState;
18128
 
class PragmaOnce;
18129
 
class CCExprResolve;
18130
 
class CExprResolve;
18131
 
namespace Puma {
18132
 
 
18133
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18134
 
class CT_DeclSpecSeq : public CT_List {
18135
 
#line 18136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18136
 
  friend class ::WinIfExists;
18137
 
  friend class ::WinImportHandler;
18138
 
  friend class ::WinMacros;
18139
 
  friend class ::CMatchSyntax;
18140
 
  friend class ::ExtGnu;
18141
 
  friend class ::ExtAC;
18142
 
  friend class ::ExtACBuilderCoupling;
18143
 
  friend class ::ExtACSyntaxCoupling;
18144
 
  friend class ::ExtACTree;
18145
 
  friend class ::ExtACKeywords;
18146
 
  friend class ::WinAsm;
18147
 
  friend class ::WinDeclSpecs;
18148
 
  friend class ::WinMemberExplSpec;
18149
 
  friend class ::WinTypeKeywords;
18150
 
  friend class ::PragmaOnceUnitState;
18151
 
  friend class ::PragmaOnce;
18152
 
  friend class ::CCExprResolve;
18153
 
  friend class ::CExprResolve;
18154
 
 
18155
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18156
 
 
18157
 
public:
18158
 
  static const char *NodeId ();
18159
 
  const char *NodeName () const { return NodeId (); }
18160
 
};
18161
 
 
18162
 
 
18163
 
#line 18164 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18164
 
} // closed Puma
18165
 
class WinIfExists;
18166
 
class WinImportHandler;
18167
 
class WinMacros;
18168
 
class CMatchSyntax;
18169
 
class ExtGnu;
18170
 
class ExtAC;
18171
 
class ExtACBuilderCoupling;
18172
 
class ExtACSyntaxCoupling;
18173
 
class ExtACTree;
18174
 
class ExtACKeywords;
18175
 
class WinAsm;
18176
 
class WinDeclSpecs;
18177
 
class WinMemberExplSpec;
18178
 
class WinTypeKeywords;
18179
 
class PragmaOnceUnitState;
18180
 
class PragmaOnce;
18181
 
class CCExprResolve;
18182
 
class CExprResolve;
18183
 
namespace Puma {
18184
 
 
18185
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18186
 
class CT_CmpdStmt : public CT_List, public CSemScope {
18187
 
#line 18188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18188
 
  friend class ::WinIfExists;
18189
 
  friend class ::WinImportHandler;
18190
 
  friend class ::WinMacros;
18191
 
  friend class ::CMatchSyntax;
18192
 
  friend class ::ExtGnu;
18193
 
  friend class ::ExtAC;
18194
 
  friend class ::ExtACBuilderCoupling;
18195
 
  friend class ::ExtACSyntaxCoupling;
18196
 
  friend class ::ExtACTree;
18197
 
  friend class ::ExtACKeywords;
18198
 
  friend class ::WinAsm;
18199
 
  friend class ::WinDeclSpecs;
18200
 
  friend class ::WinMemberExplSpec;
18201
 
  friend class ::WinTypeKeywords;
18202
 
  friend class ::PragmaOnceUnitState;
18203
 
  friend class ::PragmaOnce;
18204
 
  friend class ::CCExprResolve;
18205
 
  friend class ::CExprResolve;
18206
 
 
18207
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18208
 
 
18209
 
public:
18210
 
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
18211
 
  static const char *NodeId ();
18212
 
  const char *NodeName () const { return NodeId (); }
18213
 
};
18214
 
 
18215
 
 
18216
 
#line 18217 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18217
 
} // closed Puma
18218
 
class WinIfExists;
18219
 
class WinImportHandler;
18220
 
class WinMacros;
18221
 
class CMatchSyntax;
18222
 
class ExtGnu;
18223
 
class ExtAC;
18224
 
class ExtACBuilderCoupling;
18225
 
class ExtACSyntaxCoupling;
18226
 
class ExtACTree;
18227
 
class ExtACKeywords;
18228
 
class WinAsm;
18229
 
class WinDeclSpecs;
18230
 
class WinMemberExplSpec;
18231
 
class WinTypeKeywords;
18232
 
class PragmaOnceUnitState;
18233
 
class PragmaOnce;
18234
 
class CCExprResolve;
18235
 
class CExprResolve;
18236
 
namespace Puma {
18237
 
 
18238
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18239
 
class CT_HandlerSeq : public CT_List {
18240
 
#line 18241 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18241
 
  friend class ::WinIfExists;
18242
 
  friend class ::WinImportHandler;
18243
 
  friend class ::WinMacros;
18244
 
  friend class ::CMatchSyntax;
18245
 
  friend class ::ExtGnu;
18246
 
  friend class ::ExtAC;
18247
 
  friend class ::ExtACBuilderCoupling;
18248
 
  friend class ::ExtACSyntaxCoupling;
18249
 
  friend class ::ExtACTree;
18250
 
  friend class ::ExtACKeywords;
18251
 
  friend class ::WinAsm;
18252
 
  friend class ::WinDeclSpecs;
18253
 
  friend class ::WinMemberExplSpec;
18254
 
  friend class ::WinTypeKeywords;
18255
 
  friend class ::PragmaOnceUnitState;
18256
 
  friend class ::PragmaOnce;
18257
 
  friend class ::CCExprResolve;
18258
 
  friend class ::CExprResolve;
18259
 
 
18260
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18261
 
 
18262
 
public:
18263
 
  static const char *NodeId ();
18264
 
  const char *NodeName () const { return NodeId (); }
18265
 
};
18266
 
 
18267
 
 
18268
 
#line 18269 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18269
 
} // closed Puma
18270
 
class WinIfExists;
18271
 
class WinImportHandler;
18272
 
class WinMacros;
18273
 
class CMatchSyntax;
18274
 
class ExtGnu;
18275
 
class ExtAC;
18276
 
class ExtACBuilderCoupling;
18277
 
class ExtACSyntaxCoupling;
18278
 
class ExtACTree;
18279
 
class ExtACKeywords;
18280
 
class WinAsm;
18281
 
class WinDeclSpecs;
18282
 
class WinMemberExplSpec;
18283
 
class WinTypeKeywords;
18284
 
class PragmaOnceUnitState;
18285
 
class PragmaOnce;
18286
 
class CCExprResolve;
18287
 
class CExprResolve;
18288
 
namespace Puma {
18289
 
 
18290
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18291
 
class CT_TemplateParamList : public CT_List, public CSemScope {
18292
 
#line 18293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18293
 
  friend class ::WinIfExists;
18294
 
  friend class ::WinImportHandler;
18295
 
  friend class ::WinMacros;
18296
 
  friend class ::CMatchSyntax;
18297
 
  friend class ::ExtGnu;
18298
 
  friend class ::ExtAC;
18299
 
  friend class ::ExtACBuilderCoupling;
18300
 
  friend class ::ExtACSyntaxCoupling;
18301
 
  friend class ::ExtACTree;
18302
 
  friend class ::ExtACKeywords;
18303
 
  friend class ::WinAsm;
18304
 
  friend class ::WinDeclSpecs;
18305
 
  friend class ::WinMemberExplSpec;
18306
 
  friend class ::WinTypeKeywords;
18307
 
  friend class ::PragmaOnceUnitState;
18308
 
  friend class ::PragmaOnce;
18309
 
  friend class ::CCExprResolve;
18310
 
  friend class ::CExprResolve;
18311
 
 
18312
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18313
 
 
18314
 
public:
18315
 
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
18316
 
  static const char *NodeId ();
18317
 
  const char *NodeName () const { return NodeId (); }
18318
 
};
18319
 
 
18320
 
 
18321
 
#line 18322 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18322
 
} // closed Puma
18323
 
class WinIfExists;
18324
 
class WinImportHandler;
18325
 
class WinMacros;
18326
 
class CMatchSyntax;
18327
 
class ExtGnu;
18328
 
class ExtAC;
18329
 
class ExtACBuilderCoupling;
18330
 
class ExtACSyntaxCoupling;
18331
 
class ExtACTree;
18332
 
class ExtACKeywords;
18333
 
class WinAsm;
18334
 
class WinDeclSpecs;
18335
 
class WinMemberExplSpec;
18336
 
class WinTypeKeywords;
18337
 
class PragmaOnceUnitState;
18338
 
class PragmaOnce;
18339
 
class CCExprResolve;
18340
 
class CExprResolve;
18341
 
namespace Puma {
18342
 
 
18343
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18344
 
class CT_TemplateArgList : public CT_List {
18345
 
#line 18346 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18346
 
  friend class ::WinIfExists;
18347
 
  friend class ::WinImportHandler;
18348
 
  friend class ::WinMacros;
18349
 
  friend class ::CMatchSyntax;
18350
 
  friend class ::ExtGnu;
18351
 
  friend class ::ExtAC;
18352
 
  friend class ::ExtACBuilderCoupling;
18353
 
  friend class ::ExtACSyntaxCoupling;
18354
 
  friend class ::ExtACTree;
18355
 
  friend class ::ExtACKeywords;
18356
 
  friend class ::WinAsm;
18357
 
  friend class ::WinDeclSpecs;
18358
 
  friend class ::WinMemberExplSpec;
18359
 
  friend class ::WinTypeKeywords;
18360
 
  friend class ::PragmaOnceUnitState;
18361
 
  friend class ::PragmaOnce;
18362
 
  friend class ::CCExprResolve;
18363
 
  friend class ::CExprResolve;
18364
 
 
18365
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18366
 
 
18367
 
public:
18368
 
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
18369
 
  static const char *NodeId ();
18370
 
  const char *NodeName () const { return NodeId (); }
18371
 
};
18372
 
 
18373
 
/*****************************************************************************/
18374
 
/*                                                                           */
18375
 
/*                              Expressions                                  */
18376
 
/*                                                                           */
18377
 
/*****************************************************************************/
18378
 
 
18379
 
 
18380
 
#line 18381 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18381
 
} // closed Puma
18382
 
class WinIfExists;
18383
 
class WinImportHandler;
18384
 
class WinMacros;
18385
 
class CMatchSyntax;
18386
 
class ExtGnu;
18387
 
class ExtAC;
18388
 
class ExtACBuilderCoupling;
18389
 
class ExtACSyntaxCoupling;
18390
 
class ExtACTree;
18391
 
class ExtACKeywords;
18392
 
class WinAsm;
18393
 
class WinDeclSpecs;
18394
 
class WinMemberExplSpec;
18395
 
class WinTypeKeywords;
18396
 
class PragmaOnceUnitState;
18397
 
class PragmaOnce;
18398
 
class CCExprResolve;
18399
 
class CExprResolve;
18400
 
namespace Puma {
18401
 
 
18402
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18403
 
class CT_Expression : public CTree, public CSemValue {
18404
 
#line 18405 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18405
 
  friend class ::WinIfExists;
18406
 
  friend class ::WinImportHandler;
18407
 
  friend class ::WinMacros;
18408
 
  friend class ::CMatchSyntax;
18409
 
  friend class ::ExtGnu;
18410
 
  friend class ::ExtAC;
18411
 
  friend class ::ExtACBuilderCoupling;
18412
 
  friend class ::ExtACSyntaxCoupling;
18413
 
  friend class ::ExtACTree;
18414
 
  friend class ::ExtACKeywords;
18415
 
  friend class ::WinAsm;
18416
 
  friend class ::WinDeclSpecs;
18417
 
  friend class ::WinMemberExplSpec;
18418
 
  friend class ::WinTypeKeywords;
18419
 
  friend class ::PragmaOnceUnitState;
18420
 
  friend class ::PragmaOnce;
18421
 
  friend class ::CCExprResolve;
18422
 
  friend class ::CExprResolve;
18423
 
 
18424
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18425
 
 
18426
 
protected:
18427
 
  CT_Expression () {}
18428
 
 
18429
 
public:
18430
 
  static const char *NodeId ();
18431
 
  const char *NodeName () const { return NodeId (); }
18432
 
  CTypeInfo *Type () const { return type; }
18433
 
  CExprValue *Value () const { return value; }
18434
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
18435
 
   private:
18436
 
  typedef CT_Expression CCExprResolveExpr;
18437
 
 
18438
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18439
 
 public :
18440
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18441
 
  typedef CT_Expression CExprResolveExpr;
18442
 
 
18443
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18444
 
 public :
18445
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18446
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18447
 
};
18448
 
 
18449
 
 
18450
 
#line 18451 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18451
 
} // closed Puma
18452
 
class WinIfExists;
18453
 
class WinImportHandler;
18454
 
class WinMacros;
18455
 
class CMatchSyntax;
18456
 
class ExtGnu;
18457
 
class ExtAC;
18458
 
class ExtACBuilderCoupling;
18459
 
class ExtACSyntaxCoupling;
18460
 
class ExtACTree;
18461
 
class ExtACKeywords;
18462
 
class WinAsm;
18463
 
class WinDeclSpecs;
18464
 
class WinMemberExplSpec;
18465
 
class WinTypeKeywords;
18466
 
class PragmaOnceUnitState;
18467
 
class PragmaOnce;
18468
 
class CCExprResolve;
18469
 
class CExprResolve;
18470
 
namespace Puma {
18471
 
 
18472
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18473
 
class CT_String : public CT_List, public CSemValue {
18474
 
#line 18475 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18475
 
  friend class ::WinIfExists;
18476
 
  friend class ::WinImportHandler;
18477
 
  friend class ::WinMacros;
18478
 
  friend class ::CMatchSyntax;
18479
 
  friend class ::ExtGnu;
18480
 
  friend class ::ExtAC;
18481
 
  friend class ::ExtACBuilderCoupling;
18482
 
  friend class ::ExtACSyntaxCoupling;
18483
 
  friend class ::ExtACTree;
18484
 
  friend class ::ExtACKeywords;
18485
 
  friend class ::WinAsm;
18486
 
  friend class ::WinDeclSpecs;
18487
 
  friend class ::WinMemberExplSpec;
18488
 
  friend class ::WinTypeKeywords;
18489
 
  friend class ::PragmaOnceUnitState;
18490
 
  friend class ::PragmaOnce;
18491
 
  friend class ::CCExprResolve;
18492
 
  friend class ::CExprResolve;
18493
 
 
18494
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18495
 
 
18496
 
public:
18497
 
  CT_String (int size) : CT_List (size, 1) {}
18498
 
  static const char *NodeId ();
18499
 
  const char *NodeName () const { return NodeId (); }
18500
 
 
18501
 
  CTypeInfo *Type () const { return type; }
18502
 
  CExprValue *Value () const { return value; }
18503
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
18504
 
   private:
18505
 
  typedef CT_String CCExprResolveExpr;
18506
 
 
18507
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18508
 
 public :
18509
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18510
 
  typedef CT_String CExprResolveExpr;
18511
 
 
18512
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18513
 
 public :
18514
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18515
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18516
 
};
18517
 
 
18518
 
 
18519
 
#line 18520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18520
 
} // closed Puma
18521
 
class WinIfExists;
18522
 
class WinImportHandler;
18523
 
class WinMacros;
18524
 
class CMatchSyntax;
18525
 
class ExtGnu;
18526
 
class ExtAC;
18527
 
class ExtACBuilderCoupling;
18528
 
class ExtACSyntaxCoupling;
18529
 
class ExtACTree;
18530
 
class ExtACKeywords;
18531
 
class WinAsm;
18532
 
class WinDeclSpecs;
18533
 
class WinMemberExplSpec;
18534
 
class WinTypeKeywords;
18535
 
class PragmaOnceUnitState;
18536
 
class PragmaOnce;
18537
 
class CCExprResolve;
18538
 
class CExprResolve;
18539
 
namespace Puma {
18540
 
 
18541
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18542
 
class CT_WideString : public CT_String {
18543
 
#line 18544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18544
 
  friend class ::WinIfExists;
18545
 
  friend class ::WinImportHandler;
18546
 
  friend class ::WinMacros;
18547
 
  friend class ::CMatchSyntax;
18548
 
  friend class ::ExtGnu;
18549
 
  friend class ::ExtAC;
18550
 
  friend class ::ExtACBuilderCoupling;
18551
 
  friend class ::ExtACSyntaxCoupling;
18552
 
  friend class ::ExtACTree;
18553
 
  friend class ::ExtACKeywords;
18554
 
  friend class ::WinAsm;
18555
 
  friend class ::WinDeclSpecs;
18556
 
  friend class ::WinMemberExplSpec;
18557
 
  friend class ::WinTypeKeywords;
18558
 
  friend class ::PragmaOnceUnitState;
18559
 
  friend class ::PragmaOnce;
18560
 
  friend class ::CCExprResolve;
18561
 
  friend class ::CExprResolve;
18562
 
 
18563
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18564
 
 
18565
 
public:
18566
 
  CT_WideString (int size) : CT_String (size) {}
18567
 
  static const char *NodeId ();
18568
 
  const char *NodeName () const { return NodeId (); }
18569
 
   private:
18570
 
  typedef CT_WideString CCExprResolveExpr;
18571
 
 
18572
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18573
 
 public :
18574
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18575
 
  typedef CT_WideString CExprResolveExpr;
18576
 
 
18577
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18578
 
 public :
18579
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18580
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18581
 
};
18582
 
 
18583
 
 
18584
 
#line 18585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18585
 
} // closed Puma
18586
 
class WinIfExists;
18587
 
class WinImportHandler;
18588
 
class WinMacros;
18589
 
class CMatchSyntax;
18590
 
class ExtGnu;
18591
 
class ExtAC;
18592
 
class ExtACBuilderCoupling;
18593
 
class ExtACSyntaxCoupling;
18594
 
class ExtACTree;
18595
 
class ExtACKeywords;
18596
 
class WinAsm;
18597
 
class WinDeclSpecs;
18598
 
class WinMemberExplSpec;
18599
 
class WinTypeKeywords;
18600
 
class PragmaOnceUnitState;
18601
 
class PragmaOnce;
18602
 
class CCExprResolve;
18603
 
class CExprResolve;
18604
 
namespace Puma {
18605
 
 
18606
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18607
 
class CT_Integer : public CT_Expression {
18608
 
#line 18609 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18609
 
  friend class ::WinIfExists;
18610
 
  friend class ::WinImportHandler;
18611
 
  friend class ::WinMacros;
18612
 
  friend class ::CMatchSyntax;
18613
 
  friend class ::ExtGnu;
18614
 
  friend class ::ExtAC;
18615
 
  friend class ::ExtACBuilderCoupling;
18616
 
  friend class ::ExtACSyntaxCoupling;
18617
 
  friend class ::ExtACTree;
18618
 
  friend class ::ExtACKeywords;
18619
 
  friend class ::WinAsm;
18620
 
  friend class ::WinDeclSpecs;
18621
 
  friend class ::WinMemberExplSpec;
18622
 
  friend class ::WinTypeKeywords;
18623
 
  friend class ::PragmaOnceUnitState;
18624
 
  friend class ::PragmaOnce;
18625
 
  friend class ::CCExprResolve;
18626
 
  friend class ::CExprResolve;
18627
 
 
18628
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18629
 
 
18630
 
  CTree *_value;  // CT_Token
18631
 
 
18632
 
public:
18633
 
  CT_Integer (CTree *t) : _value (t) {}
18634
 
  static const char *NodeId ();
18635
 
  const char *NodeName () const { return NodeId (); }
18636
 
  int Sons () const { return _value ? 1 : 0; }
18637
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
18638
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
18639
 
   { if (old_son == _value) _value = new_son; }
18640
 
   private:
18641
 
  typedef CT_Integer CCExprResolveExpr;
18642
 
 
18643
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18644
 
 public :
18645
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18646
 
  typedef CT_Integer CExprResolveExpr;
18647
 
 
18648
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18649
 
 public :
18650
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18651
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18652
 
};
18653
 
 
18654
 
 
18655
 
#line 18656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18656
 
} // closed Puma
18657
 
class WinIfExists;
18658
 
class WinImportHandler;
18659
 
class WinMacros;
18660
 
class CMatchSyntax;
18661
 
class ExtGnu;
18662
 
class ExtAC;
18663
 
class ExtACBuilderCoupling;
18664
 
class ExtACSyntaxCoupling;
18665
 
class ExtACTree;
18666
 
class ExtACKeywords;
18667
 
class WinAsm;
18668
 
class WinDeclSpecs;
18669
 
class WinMemberExplSpec;
18670
 
class WinTypeKeywords;
18671
 
class PragmaOnceUnitState;
18672
 
class PragmaOnce;
18673
 
class CCExprResolve;
18674
 
class CExprResolve;
18675
 
namespace Puma {
18676
 
 
18677
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18678
 
class CT_Character : public CT_Expression {
18679
 
#line 18680 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18680
 
  friend class ::WinIfExists;
18681
 
  friend class ::WinImportHandler;
18682
 
  friend class ::WinMacros;
18683
 
  friend class ::CMatchSyntax;
18684
 
  friend class ::ExtGnu;
18685
 
  friend class ::ExtAC;
18686
 
  friend class ::ExtACBuilderCoupling;
18687
 
  friend class ::ExtACSyntaxCoupling;
18688
 
  friend class ::ExtACTree;
18689
 
  friend class ::ExtACKeywords;
18690
 
  friend class ::WinAsm;
18691
 
  friend class ::WinDeclSpecs;
18692
 
  friend class ::WinMemberExplSpec;
18693
 
  friend class ::WinTypeKeywords;
18694
 
  friend class ::PragmaOnceUnitState;
18695
 
  friend class ::PragmaOnce;
18696
 
  friend class ::CCExprResolve;
18697
 
  friend class ::CExprResolve;
18698
 
 
18699
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18700
 
 
18701
 
  CTree *_value;  // CT_Token
18702
 
 
18703
 
public:
18704
 
  CT_Character (CTree *t) : _value (t) {}
18705
 
  static const char *NodeId ();
18706
 
  const char *NodeName () const { return NodeId (); }
18707
 
  int Sons () const { return 1; }
18708
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
18709
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
18710
 
   { if (old_son == _value) _value = new_son; }
18711
 
   private:
18712
 
  typedef CT_Character CCExprResolveExpr;
18713
 
 
18714
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18715
 
 public :
18716
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18717
 
  typedef CT_Character CExprResolveExpr;
18718
 
 
18719
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18720
 
 public :
18721
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18722
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18723
 
};
18724
 
 
18725
 
 
18726
 
#line 18727 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18727
 
} // closed Puma
18728
 
class WinIfExists;
18729
 
class WinImportHandler;
18730
 
class WinMacros;
18731
 
class CMatchSyntax;
18732
 
class ExtGnu;
18733
 
class ExtAC;
18734
 
class ExtACBuilderCoupling;
18735
 
class ExtACSyntaxCoupling;
18736
 
class ExtACTree;
18737
 
class ExtACKeywords;
18738
 
class WinAsm;
18739
 
class WinDeclSpecs;
18740
 
class WinMemberExplSpec;
18741
 
class WinTypeKeywords;
18742
 
class PragmaOnceUnitState;
18743
 
class PragmaOnce;
18744
 
class CCExprResolve;
18745
 
class CExprResolve;
18746
 
namespace Puma {
18747
 
 
18748
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18749
 
class CT_WideCharacter : public CT_Character {
18750
 
#line 18751 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18751
 
  friend class ::WinIfExists;
18752
 
  friend class ::WinImportHandler;
18753
 
  friend class ::WinMacros;
18754
 
  friend class ::CMatchSyntax;
18755
 
  friend class ::ExtGnu;
18756
 
  friend class ::ExtAC;
18757
 
  friend class ::ExtACBuilderCoupling;
18758
 
  friend class ::ExtACSyntaxCoupling;
18759
 
  friend class ::ExtACTree;
18760
 
  friend class ::ExtACKeywords;
18761
 
  friend class ::WinAsm;
18762
 
  friend class ::WinDeclSpecs;
18763
 
  friend class ::WinMemberExplSpec;
18764
 
  friend class ::WinTypeKeywords;
18765
 
  friend class ::PragmaOnceUnitState;
18766
 
  friend class ::PragmaOnce;
18767
 
  friend class ::CCExprResolve;
18768
 
  friend class ::CExprResolve;
18769
 
 
18770
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18771
 
 
18772
 
  CTree *_value;  // CT_Token
18773
 
 
18774
 
public:
18775
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
18776
 
  static const char *NodeId ();
18777
 
  const char *NodeName () const { return NodeId (); }
18778
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
18779
 
   { if (old_son == _value) _value = new_son; }
18780
 
   private:
18781
 
  typedef CT_WideCharacter CCExprResolveExpr;
18782
 
 
18783
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18784
 
 public :
18785
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18786
 
  typedef CT_WideCharacter CExprResolveExpr;
18787
 
 
18788
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18789
 
 public :
18790
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18791
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18792
 
};
18793
 
 
18794
 
 
18795
 
#line 18796 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18796
 
} // closed Puma
18797
 
class WinIfExists;
18798
 
class WinImportHandler;
18799
 
class WinMacros;
18800
 
class CMatchSyntax;
18801
 
class ExtGnu;
18802
 
class ExtAC;
18803
 
class ExtACBuilderCoupling;
18804
 
class ExtACSyntaxCoupling;
18805
 
class ExtACTree;
18806
 
class ExtACKeywords;
18807
 
class WinAsm;
18808
 
class WinDeclSpecs;
18809
 
class WinMemberExplSpec;
18810
 
class WinTypeKeywords;
18811
 
class PragmaOnceUnitState;
18812
 
class PragmaOnce;
18813
 
class CCExprResolve;
18814
 
class CExprResolve;
18815
 
namespace Puma {
18816
 
 
18817
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18818
 
class CT_Float : public CT_Expression {
18819
 
#line 18820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18820
 
  friend class ::WinIfExists;
18821
 
  friend class ::WinImportHandler;
18822
 
  friend class ::WinMacros;
18823
 
  friend class ::CMatchSyntax;
18824
 
  friend class ::ExtGnu;
18825
 
  friend class ::ExtAC;
18826
 
  friend class ::ExtACBuilderCoupling;
18827
 
  friend class ::ExtACSyntaxCoupling;
18828
 
  friend class ::ExtACTree;
18829
 
  friend class ::ExtACKeywords;
18830
 
  friend class ::WinAsm;
18831
 
  friend class ::WinDeclSpecs;
18832
 
  friend class ::WinMemberExplSpec;
18833
 
  friend class ::WinTypeKeywords;
18834
 
  friend class ::PragmaOnceUnitState;
18835
 
  friend class ::PragmaOnce;
18836
 
  friend class ::CCExprResolve;
18837
 
  friend class ::CExprResolve;
18838
 
 
18839
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18840
 
 
18841
 
  CTree *_value;  // CT_Token
18842
 
 
18843
 
public:
18844
 
  CT_Float (CTree *t) : _value (t) {}
18845
 
  static const char *NodeId ();
18846
 
  const char *NodeName () const { return NodeId (); }
18847
 
  int Sons () const { return 1; }
18848
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
18849
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
18850
 
   { if (old_son == _value) _value = new_son; }
18851
 
   private:
18852
 
  typedef CT_Float CCExprResolveExpr;
18853
 
 
18854
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18855
 
 public :
18856
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18857
 
  typedef CT_Float CExprResolveExpr;
18858
 
 
18859
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18860
 
 public :
18861
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18862
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18863
 
};
18864
 
 
18865
 
 
18866
 
#line 18867 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18867
 
} // closed Puma
18868
 
class WinIfExists;
18869
 
class WinImportHandler;
18870
 
class WinMacros;
18871
 
class CMatchSyntax;
18872
 
class ExtGnu;
18873
 
class ExtAC;
18874
 
class ExtACBuilderCoupling;
18875
 
class ExtACSyntaxCoupling;
18876
 
class ExtACTree;
18877
 
class ExtACKeywords;
18878
 
class WinAsm;
18879
 
class WinDeclSpecs;
18880
 
class WinMemberExplSpec;
18881
 
class WinTypeKeywords;
18882
 
class PragmaOnceUnitState;
18883
 
class PragmaOnce;
18884
 
class CCExprResolve;
18885
 
class CExprResolve;
18886
 
namespace Puma {
18887
 
 
18888
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18889
 
class CT_Bool : public CT_Expression {
18890
 
#line 18891 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18891
 
  friend class ::WinIfExists;
18892
 
  friend class ::WinImportHandler;
18893
 
  friend class ::WinMacros;
18894
 
  friend class ::CMatchSyntax;
18895
 
  friend class ::ExtGnu;
18896
 
  friend class ::ExtAC;
18897
 
  friend class ::ExtACBuilderCoupling;
18898
 
  friend class ::ExtACSyntaxCoupling;
18899
 
  friend class ::ExtACTree;
18900
 
  friend class ::ExtACKeywords;
18901
 
  friend class ::WinAsm;
18902
 
  friend class ::WinDeclSpecs;
18903
 
  friend class ::WinMemberExplSpec;
18904
 
  friend class ::WinTypeKeywords;
18905
 
  friend class ::PragmaOnceUnitState;
18906
 
  friend class ::PragmaOnce;
18907
 
  friend class ::CCExprResolve;
18908
 
  friend class ::CExprResolve;
18909
 
 
18910
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18911
 
 
18912
 
  CTree *_value;  // CT_Token
18913
 
 
18914
 
public:
18915
 
  CT_Bool (CTree *t) : _value (t) {}
18916
 
  static const char *NodeId ();
18917
 
  const char *NodeName () const { return NodeId (); }
18918
 
  int Sons () const { return 1; }
18919
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
18920
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
18921
 
   { if (old_son == _value) _value = new_son; }
18922
 
   private:
18923
 
  typedef CT_Bool CCExprResolveExpr;
18924
 
 
18925
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18926
 
 public :
18927
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18928
 
  typedef CT_Bool CExprResolveExpr;
18929
 
 
18930
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18931
 
 public :
18932
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18933
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18934
 
};
18935
 
 
18936
 
 
18937
 
#line 18938 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18938
 
} // closed Puma
18939
 
class WinIfExists;
18940
 
class WinImportHandler;
18941
 
class WinMacros;
18942
 
class CMatchSyntax;
18943
 
class ExtGnu;
18944
 
class ExtAC;
18945
 
class ExtACBuilderCoupling;
18946
 
class ExtACSyntaxCoupling;
18947
 
class ExtACTree;
18948
 
class ExtACKeywords;
18949
 
class WinAsm;
18950
 
class WinDeclSpecs;
18951
 
class WinMemberExplSpec;
18952
 
class WinTypeKeywords;
18953
 
class PragmaOnceUnitState;
18954
 
class PragmaOnce;
18955
 
class CCExprResolve;
18956
 
class CExprResolve;
18957
 
namespace Puma {
18958
 
 
18959
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18960
 
class CT_BracedExpr : public CT_Expression {
18961
 
#line 18962 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
18962
 
  friend class ::WinIfExists;
18963
 
  friend class ::WinImportHandler;
18964
 
  friend class ::WinMacros;
18965
 
  friend class ::CMatchSyntax;
18966
 
  friend class ::ExtGnu;
18967
 
  friend class ::ExtAC;
18968
 
  friend class ::ExtACBuilderCoupling;
18969
 
  friend class ::ExtACSyntaxCoupling;
18970
 
  friend class ::ExtACTree;
18971
 
  friend class ::ExtACKeywords;
18972
 
  friend class ::WinAsm;
18973
 
  friend class ::WinDeclSpecs;
18974
 
  friend class ::WinMemberExplSpec;
18975
 
  friend class ::WinTypeKeywords;
18976
 
  friend class ::PragmaOnceUnitState;
18977
 
  friend class ::PragmaOnce;
18978
 
  friend class ::CCExprResolve;
18979
 
  friend class ::CExprResolve;
18980
 
 
18981
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18982
 
 
18983
 
  CTree *sons[3]; // open, expr, close
18984
 
 
18985
 
public:
18986
 
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
18987
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
18988
 
  }
18989
 
  static const char *NodeId ();
18990
 
  const char *NodeName () const { return NodeId (); }
18991
 
  int Sons () const { return 3; }
18992
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
18993
 
  CTree *Expr () const { return sons[1]; }
18994
 
  CTypeInfo *Type () const { return Expr ()->Type (); }
18995
 
  CExprValue *Value () const { return Expr ()->Value (); }
18996
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
18997
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
18998
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
18999
 
  }
19000
 
   private:
19001
 
  typedef CT_BracedExpr CCExprResolveExpr;
19002
 
 
19003
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19004
 
 public :
19005
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19006
 
  typedef CT_BracedExpr CExprResolveExpr;
19007
 
 
19008
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19009
 
 public :
19010
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19011
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19012
 
};
19013
 
 
19014
 
 
19015
 
#line 19016 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19016
 
} // closed Puma
19017
 
class WinIfExists;
19018
 
class WinImportHandler;
19019
 
class WinMacros;
19020
 
class CMatchSyntax;
19021
 
class ExtGnu;
19022
 
class ExtAC;
19023
 
class ExtACBuilderCoupling;
19024
 
class ExtACSyntaxCoupling;
19025
 
class ExtACTree;
19026
 
class ExtACKeywords;
19027
 
class WinAsm;
19028
 
class WinDeclSpecs;
19029
 
class WinMemberExplSpec;
19030
 
class WinTypeKeywords;
19031
 
class PragmaOnceUnitState;
19032
 
class PragmaOnce;
19033
 
class CCExprResolve;
19034
 
class CExprResolve;
19035
 
namespace Puma {
19036
 
 
19037
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19038
 
class CT_SimpleName : public CT_List, public Printable, 
19039
 
                      public CSemValue, public CSemObject {
19040
 
#line 19041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19041
 
  friend class ::WinIfExists;
19042
 
  friend class ::WinImportHandler;
19043
 
  friend class ::WinMacros;
19044
 
  friend class ::CMatchSyntax;
19045
 
  friend class ::ExtGnu;
19046
 
  friend class ::ExtAC;
19047
 
  friend class ::ExtACBuilderCoupling;
19048
 
  friend class ::ExtACSyntaxCoupling;
19049
 
  friend class ::ExtACTree;
19050
 
  friend class ::ExtACKeywords;
19051
 
  friend class ::WinAsm;
19052
 
  friend class ::WinDeclSpecs;
19053
 
  friend class ::WinMemberExplSpec;
19054
 
  friend class ::WinTypeKeywords;
19055
 
  friend class ::PragmaOnceUnitState;
19056
 
  friend class ::PragmaOnce;
19057
 
  friend class ::CCExprResolve;
19058
 
  friend class ::CExprResolve;
19059
 
 
19060
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19061
 
 
19062
 
protected:
19063
 
  CT_SimpleName (int size) : CT_List (size, 1) {}
19064
 
  CT_SimpleName (int size, int properties) : 
19065
 
    CT_List (size, 2, properties) {}
19066
 
  
19067
 
public:
19068
 
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
19069
 
  static const char *NodeId ();
19070
 
  const char *NodeName () const { return NodeId (); }
19071
 
  virtual const char *Text () const 
19072
 
   { return Son (Sons ()-1)->token ()->text (); }
19073
 
  virtual void print (ostream &os) const { os << Text (); }
19074
 
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
19075
 
  CTypeInfo *Type () const { return type; }
19076
 
  CExprValue *Value () const { return value; }
19077
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
19078
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
19079
 
  // special new / delete with reusing memory
19080
 
  void *operator new (size_t);
19081
 
  void  operator delete (void *);
19082
 
  // classification function
19083
 
  virtual CT_SimpleName *IsSimpleName () { return this; }  
19084
 
   private:
19085
 
  typedef CT_SimpleName CCExprResolveExpr;
19086
 
 
19087
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19088
 
 public :
19089
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19090
 
  typedef CT_SimpleName CExprResolveExpr;
19091
 
 
19092
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19093
 
 public :
19094
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19095
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19096
 
};
19097
 
 
19098
 
 
19099
 
#line 19100 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19100
 
} // closed Puma
19101
 
class WinIfExists;
19102
 
class WinImportHandler;
19103
 
class WinMacros;
19104
 
class CMatchSyntax;
19105
 
class ExtGnu;
19106
 
class ExtAC;
19107
 
class ExtACBuilderCoupling;
19108
 
class ExtACSyntaxCoupling;
19109
 
class ExtACTree;
19110
 
class ExtACKeywords;
19111
 
class WinAsm;
19112
 
class WinDeclSpecs;
19113
 
class WinMemberExplSpec;
19114
 
class WinTypeKeywords;
19115
 
class PragmaOnceUnitState;
19116
 
class PragmaOnce;
19117
 
class CCExprResolve;
19118
 
class CExprResolve;
19119
 
namespace Puma {
19120
 
 
19121
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19122
 
class CT_SpecialName : public CT_SimpleName {
19123
 
#line 19124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19124
 
  friend class ::WinIfExists;
19125
 
  friend class ::WinImportHandler;
19126
 
  friend class ::WinMacros;
19127
 
  friend class ::CMatchSyntax;
19128
 
  friend class ::ExtGnu;
19129
 
  friend class ::ExtAC;
19130
 
  friend class ::ExtACBuilderCoupling;
19131
 
  friend class ::ExtACSyntaxCoupling;
19132
 
  friend class ::ExtACTree;
19133
 
  friend class ::ExtACKeywords;
19134
 
  friend class ::WinAsm;
19135
 
  friend class ::WinDeclSpecs;
19136
 
  friend class ::WinMemberExplSpec;
19137
 
  friend class ::WinTypeKeywords;
19138
 
  friend class ::PragmaOnceUnitState;
19139
 
  friend class ::PragmaOnce;
19140
 
  friend class ::CCExprResolve;
19141
 
  friend class ::CExprResolve;
19142
 
 
19143
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19144
 
 
19145
 
  char *_name;
19146
 
  
19147
 
protected:
19148
 
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
19149
 
  
19150
 
public:
19151
 
  ~CT_SpecialName () { if (_name) delete[] _name; }
19152
 
  const char *Text () const { return _name; }
19153
 
  void Name (const char *n) { 
19154
 
    if (n) { 
19155
 
      _name = new char[strlen(n) + 1];
19156
 
      strcpy (_name,n);
19157
 
    }
19158
 
  }
19159
 
  // special new / delete with reusing memory
19160
 
  void *operator new (size_t);
19161
 
  void  operator delete (void *);
19162
 
   private:
19163
 
  typedef CT_SpecialName CCExprResolveExpr;
19164
 
 
19165
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19166
 
 public :
19167
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19168
 
  typedef CT_SpecialName CExprResolveExpr;
19169
 
 
19170
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19171
 
 public :
19172
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19173
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19174
 
};
19175
 
 
19176
 
 
19177
 
#line 19178 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19178
 
} // closed Puma
19179
 
class WinIfExists;
19180
 
class WinImportHandler;
19181
 
class WinMacros;
19182
 
class CMatchSyntax;
19183
 
class ExtGnu;
19184
 
class ExtAC;
19185
 
class ExtACBuilderCoupling;
19186
 
class ExtACSyntaxCoupling;
19187
 
class ExtACTree;
19188
 
class ExtACKeywords;
19189
 
class WinAsm;
19190
 
class WinDeclSpecs;
19191
 
class WinMemberExplSpec;
19192
 
class WinTypeKeywords;
19193
 
class PragmaOnceUnitState;
19194
 
class PragmaOnce;
19195
 
class CCExprResolve;
19196
 
class CExprResolve;
19197
 
namespace Puma {
19198
 
 
19199
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19200
 
class CT_PrivateName : public CT_SpecialName {
19201
 
#line 19202 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19202
 
  friend class ::WinIfExists;
19203
 
  friend class ::WinImportHandler;
19204
 
  friend class ::WinMacros;
19205
 
  friend class ::CMatchSyntax;
19206
 
  friend class ::ExtGnu;
19207
 
  friend class ::ExtAC;
19208
 
  friend class ::ExtACBuilderCoupling;
19209
 
  friend class ::ExtACSyntaxCoupling;
19210
 
  friend class ::ExtACTree;
19211
 
  friend class ::ExtACKeywords;
19212
 
  friend class ::WinAsm;
19213
 
  friend class ::WinDeclSpecs;
19214
 
  friend class ::WinMemberExplSpec;
19215
 
  friend class ::WinTypeKeywords;
19216
 
  friend class ::PragmaOnceUnitState;
19217
 
  friend class ::PragmaOnce;
19218
 
  friend class ::CCExprResolve;
19219
 
  friend class ::CExprResolve;
19220
 
 
19221
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19222
 
 
19223
 
public:
19224
 
  CT_PrivateName (const char *n) { Name (n); }
19225
 
  static const char *NodeId ();
19226
 
  const char *NodeName () const { return NodeId (); }
19227
 
  int Sons () const { return 0; }
19228
 
  CTree *Son (int n) const { return (CTree*)0; }
19229
 
  // special new / delete with reusing memory
19230
 
  void *operator new (size_t);
19231
 
  void  operator delete (void *);
19232
 
   private:
19233
 
  typedef CT_PrivateName CCExprResolveExpr;
19234
 
 
19235
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19236
 
 public :
19237
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19238
 
  typedef CT_PrivateName CExprResolveExpr;
19239
 
 
19240
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19241
 
 public :
19242
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19243
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19244
 
};
19245
 
 
19246
 
 
19247
 
#line 19248 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19248
 
} // closed Puma
19249
 
class WinIfExists;
19250
 
class WinImportHandler;
19251
 
class WinMacros;
19252
 
class CMatchSyntax;
19253
 
class ExtGnu;
19254
 
class ExtAC;
19255
 
class ExtACBuilderCoupling;
19256
 
class ExtACSyntaxCoupling;
19257
 
class ExtACTree;
19258
 
class ExtACKeywords;
19259
 
class WinAsm;
19260
 
class WinDeclSpecs;
19261
 
class WinMemberExplSpec;
19262
 
class WinTypeKeywords;
19263
 
class PragmaOnceUnitState;
19264
 
class PragmaOnce;
19265
 
class CCExprResolve;
19266
 
class CExprResolve;
19267
 
namespace Puma {
19268
 
 
19269
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19270
 
class CT_DestructorName : public CT_SpecialName {
19271
 
#line 19272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19272
 
  friend class ::WinIfExists;
19273
 
  friend class ::WinImportHandler;
19274
 
  friend class ::WinMacros;
19275
 
  friend class ::CMatchSyntax;
19276
 
  friend class ::ExtGnu;
19277
 
  friend class ::ExtAC;
19278
 
  friend class ::ExtACBuilderCoupling;
19279
 
  friend class ::ExtACSyntaxCoupling;
19280
 
  friend class ::ExtACTree;
19281
 
  friend class ::ExtACKeywords;
19282
 
  friend class ::WinAsm;
19283
 
  friend class ::WinDeclSpecs;
19284
 
  friend class ::WinMemberExplSpec;
19285
 
  friend class ::WinTypeKeywords;
19286
 
  friend class ::PragmaOnceUnitState;
19287
 
  friend class ::PragmaOnce;
19288
 
  friend class ::CCExprResolve;
19289
 
  friend class ::CExprResolve;
19290
 
 
19291
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19292
 
 
19293
 
public:
19294
 
  CT_DestructorName (CTree *, CTree *);
19295
 
  static const char *NodeId ();
19296
 
  const char *NodeName () const { return NodeId (); }
19297
 
  // special new / delete with reusing memory
19298
 
  void *operator new (size_t);
19299
 
  void  operator delete (void *);
19300
 
   private:
19301
 
  typedef CT_DestructorName CCExprResolveExpr;
19302
 
 
19303
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19304
 
 public :
19305
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19306
 
  typedef CT_DestructorName CExprResolveExpr;
19307
 
 
19308
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19309
 
 public :
19310
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19311
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19312
 
};
19313
 
 
19314
 
 
19315
 
#line 19316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19316
 
} // closed Puma
19317
 
class WinIfExists;
19318
 
class WinImportHandler;
19319
 
class WinMacros;
19320
 
class CMatchSyntax;
19321
 
class ExtGnu;
19322
 
class ExtAC;
19323
 
class ExtACBuilderCoupling;
19324
 
class ExtACSyntaxCoupling;
19325
 
class ExtACTree;
19326
 
class ExtACKeywords;
19327
 
class WinAsm;
19328
 
class WinDeclSpecs;
19329
 
class WinMemberExplSpec;
19330
 
class WinTypeKeywords;
19331
 
class PragmaOnceUnitState;
19332
 
class PragmaOnce;
19333
 
class CCExprResolve;
19334
 
class CExprResolve;
19335
 
namespace Puma {
19336
 
 
19337
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19338
 
class CT_TemplateName : public CT_SpecialName {
19339
 
#line 19340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19340
 
  friend class ::WinIfExists;
19341
 
  friend class ::WinImportHandler;
19342
 
  friend class ::WinMacros;
19343
 
  friend class ::CMatchSyntax;
19344
 
  friend class ::ExtGnu;
19345
 
  friend class ::ExtAC;
19346
 
  friend class ::ExtACBuilderCoupling;
19347
 
  friend class ::ExtACSyntaxCoupling;
19348
 
  friend class ::ExtACTree;
19349
 
  friend class ::ExtACKeywords;
19350
 
  friend class ::WinAsm;
19351
 
  friend class ::WinDeclSpecs;
19352
 
  friend class ::WinMemberExplSpec;
19353
 
  friend class ::WinTypeKeywords;
19354
 
  friend class ::PragmaOnceUnitState;
19355
 
  friend class ::PragmaOnce;
19356
 
  friend class ::CCExprResolve;
19357
 
  friend class ::CExprResolve;
19358
 
 
19359
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19360
 
 
19361
 
public:
19362
 
  CT_TemplateName (CTree *n, CTree *a) 
19363
 
   { AddSon (n); AddSon (a); }
19364
 
  static const char *NodeId ();
19365
 
  const char *NodeName () const { return NodeId (); }
19366
 
  CT_TemplateArgList *Arguments () const 
19367
 
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
19368
 
  CT_SimpleName *TemplateName () const 
19369
 
   { return (CT_SimpleName*)Son (Sons ()-2); }
19370
 
  // may change in the future
19371
 
  const char *Text () const { return TemplateName ()->Text (); }
19372
 
  // special new / delete with reusing memory
19373
 
  void *operator new (size_t);
19374
 
  void  operator delete (void *);
19375
 
   private:
19376
 
  typedef CT_TemplateName CCExprResolveExpr;
19377
 
 
19378
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19379
 
 public :
19380
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19381
 
  typedef CT_TemplateName CExprResolveExpr;
19382
 
 
19383
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19384
 
 public :
19385
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19386
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19387
 
};
19388
 
 
19389
 
 
19390
 
#line 19391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19391
 
} // closed Puma
19392
 
class WinIfExists;
19393
 
class WinImportHandler;
19394
 
class WinMacros;
19395
 
class CMatchSyntax;
19396
 
class ExtGnu;
19397
 
class ExtAC;
19398
 
class ExtACBuilderCoupling;
19399
 
class ExtACSyntaxCoupling;
19400
 
class ExtACTree;
19401
 
class ExtACKeywords;
19402
 
class WinAsm;
19403
 
class WinDeclSpecs;
19404
 
class WinMemberExplSpec;
19405
 
class WinTypeKeywords;
19406
 
class PragmaOnceUnitState;
19407
 
class PragmaOnce;
19408
 
class CCExprResolve;
19409
 
class CExprResolve;
19410
 
namespace Puma {
19411
 
 
19412
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19413
 
class CT_OperatorName : public CT_SpecialName {
19414
 
#line 19415 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19415
 
  friend class ::WinIfExists;
19416
 
  friend class ::WinImportHandler;
19417
 
  friend class ::WinMacros;
19418
 
  friend class ::CMatchSyntax;
19419
 
  friend class ::ExtGnu;
19420
 
  friend class ::ExtAC;
19421
 
  friend class ::ExtACBuilderCoupling;
19422
 
  friend class ::ExtACSyntaxCoupling;
19423
 
  friend class ::ExtACTree;
19424
 
  friend class ::ExtACKeywords;
19425
 
  friend class ::WinAsm;
19426
 
  friend class ::WinDeclSpecs;
19427
 
  friend class ::WinMemberExplSpec;
19428
 
  friend class ::WinTypeKeywords;
19429
 
  friend class ::PragmaOnceUnitState;
19430
 
  friend class ::PragmaOnce;
19431
 
  friend class ::CCExprResolve;
19432
 
  friend class ::CExprResolve;
19433
 
 
19434
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19435
 
 
19436
 
  int _oper;
19437
 
 
19438
 
public:
19439
 
  enum { // complex operators
19440
 
    FCT_CALL = -100,
19441
 
    SUBSCRIPT,
19442
 
    NEW_ARRAY,
19443
 
    DEL_ARRAY
19444
 
  };
19445
 
 
19446
 
public:
19447
 
  CT_OperatorName (CTree *);
19448
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
19449
 
  static const char *NodeId ();
19450
 
  const char *NodeName () const { return NodeId (); }
19451
 
  int Operator () const { return _oper; }
19452
 
  // special new / delete with reusing memory
19453
 
  void *operator new (size_t);
19454
 
  void  operator delete (void *);
19455
 
   private:
19456
 
  typedef CT_OperatorName CCExprResolveExpr;
19457
 
 
19458
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19459
 
 public :
19460
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19461
 
  typedef CT_OperatorName CExprResolveExpr;
19462
 
 
19463
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19464
 
 public :
19465
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19466
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19467
 
};
19468
 
 
19469
 
 
19470
 
#line 19471 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19471
 
} // closed Puma
19472
 
class WinIfExists;
19473
 
class WinImportHandler;
19474
 
class WinMacros;
19475
 
class CMatchSyntax;
19476
 
class ExtGnu;
19477
 
class ExtAC;
19478
 
class ExtACBuilderCoupling;
19479
 
class ExtACSyntaxCoupling;
19480
 
class ExtACTree;
19481
 
class ExtACKeywords;
19482
 
class WinAsm;
19483
 
class WinDeclSpecs;
19484
 
class WinMemberExplSpec;
19485
 
class WinTypeKeywords;
19486
 
class PragmaOnceUnitState;
19487
 
class PragmaOnce;
19488
 
class CCExprResolve;
19489
 
class CExprResolve;
19490
 
namespace Puma {
19491
 
 
19492
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19493
 
class CT_ConversionName : public CT_SpecialName {
19494
 
#line 19495 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19495
 
  friend class ::WinIfExists;
19496
 
  friend class ::WinImportHandler;
19497
 
  friend class ::WinMacros;
19498
 
  friend class ::CMatchSyntax;
19499
 
  friend class ::ExtGnu;
19500
 
  friend class ::ExtAC;
19501
 
  friend class ::ExtACBuilderCoupling;
19502
 
  friend class ::ExtACSyntaxCoupling;
19503
 
  friend class ::ExtACTree;
19504
 
  friend class ::ExtACKeywords;
19505
 
  friend class ::WinAsm;
19506
 
  friend class ::WinDeclSpecs;
19507
 
  friend class ::WinMemberExplSpec;
19508
 
  friend class ::WinTypeKeywords;
19509
 
  friend class ::PragmaOnceUnitState;
19510
 
  friend class ::PragmaOnce;
19511
 
  friend class ::CCExprResolve;
19512
 
  friend class ::CExprResolve;
19513
 
 
19514
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19515
 
 
19516
 
public:
19517
 
  CT_ConversionName (CTree *, CTree *);
19518
 
  static const char *NodeId ();
19519
 
  const char *NodeName () const { return NodeId (); }
19520
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
19521
 
  // special new / delete with reusing memory
19522
 
  void *operator new (size_t);
19523
 
  void  operator delete (void *);
19524
 
   private:
19525
 
  typedef CT_ConversionName CCExprResolveExpr;
19526
 
 
19527
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19528
 
 public :
19529
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19530
 
  typedef CT_ConversionName CExprResolveExpr;
19531
 
 
19532
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19533
 
 public :
19534
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19535
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19536
 
};
19537
 
 
19538
 
 
19539
 
#line 19540 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19540
 
} // closed Puma
19541
 
class WinIfExists;
19542
 
class WinImportHandler;
19543
 
class WinMacros;
19544
 
class CMatchSyntax;
19545
 
class ExtGnu;
19546
 
class ExtAC;
19547
 
class ExtACBuilderCoupling;
19548
 
class ExtACSyntaxCoupling;
19549
 
class ExtACTree;
19550
 
class ExtACKeywords;
19551
 
class WinAsm;
19552
 
class WinDeclSpecs;
19553
 
class WinMemberExplSpec;
19554
 
class WinTypeKeywords;
19555
 
class PragmaOnceUnitState;
19556
 
class PragmaOnce;
19557
 
class CCExprResolve;
19558
 
class CExprResolve;
19559
 
namespace Puma {
19560
 
 
19561
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19562
 
class CT_QualName : public CT_SimpleName {
19563
 
#line 19564 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19564
 
  friend class ::WinIfExists;
19565
 
  friend class ::WinImportHandler;
19566
 
  friend class ::WinMacros;
19567
 
  friend class ::CMatchSyntax;
19568
 
  friend class ::ExtGnu;
19569
 
  friend class ::ExtAC;
19570
 
  friend class ::ExtACBuilderCoupling;
19571
 
  friend class ::ExtACSyntaxCoupling;
19572
 
  friend class ::ExtACTree;
19573
 
  friend class ::ExtACKeywords;
19574
 
  friend class ::WinAsm;
19575
 
  friend class ::WinDeclSpecs;
19576
 
  friend class ::WinMemberExplSpec;
19577
 
  friend class ::WinTypeKeywords;
19578
 
  friend class ::PragmaOnceUnitState;
19579
 
  friend class ::PragmaOnce;
19580
 
  friend class ::CCExprResolve;
19581
 
  friend class ::CExprResolve;
19582
 
 
19583
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19584
 
 
19585
 
public:
19586
 
  CT_QualName (int size = 3) : 
19587
 
    CT_SimpleName (size, CT_List::SEPARATORS) {}
19588
 
  static const char *NodeId ();
19589
 
  const char *NodeName () const { return NodeId (); }
19590
 
  void print (ostream &) const;
19591
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
19592
 
  const char *Text () const { return Name ()->Text (); }
19593
 
  CTypeInfo *Type () const { return Name ()->Type (); }
19594
 
  CExprValue *Value () const { return Name ()->Value (); }
19595
 
  CSemValue *SemValue () const { return Name ()->SemValue (); }
19596
 
  CSemObject *SemObject () const { return Name ()->SemObject (); }
19597
 
  // special new / delete with reusing memory
19598
 
  void *operator new (size_t);
19599
 
  void  operator delete (void *);
19600
 
   private:
19601
 
  typedef CT_QualName CCExprResolveExpr;
19602
 
 
19603
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19604
 
 public :
19605
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19606
 
  typedef CT_QualName CExprResolveExpr;
19607
 
 
19608
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19609
 
 public :
19610
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19611
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19612
 
};
19613
 
 
19614
 
 
19615
 
#line 19616 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19616
 
} // closed Puma
19617
 
class WinIfExists;
19618
 
class WinImportHandler;
19619
 
class WinMacros;
19620
 
class CMatchSyntax;
19621
 
class ExtGnu;
19622
 
class ExtAC;
19623
 
class ExtACBuilderCoupling;
19624
 
class ExtACSyntaxCoupling;
19625
 
class ExtACTree;
19626
 
class ExtACKeywords;
19627
 
class WinAsm;
19628
 
class WinDeclSpecs;
19629
 
class WinMemberExplSpec;
19630
 
class WinTypeKeywords;
19631
 
class PragmaOnceUnitState;
19632
 
class PragmaOnce;
19633
 
class CCExprResolve;
19634
 
class CExprResolve;
19635
 
namespace Puma {
19636
 
 
19637
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19638
 
class CT_RootQualName : public CT_QualName {
19639
 
#line 19640 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19640
 
  friend class ::WinIfExists;
19641
 
  friend class ::WinImportHandler;
19642
 
  friend class ::WinMacros;
19643
 
  friend class ::CMatchSyntax;
19644
 
  friend class ::ExtGnu;
19645
 
  friend class ::ExtAC;
19646
 
  friend class ::ExtACBuilderCoupling;
19647
 
  friend class ::ExtACSyntaxCoupling;
19648
 
  friend class ::ExtACTree;
19649
 
  friend class ::ExtACKeywords;
19650
 
  friend class ::WinAsm;
19651
 
  friend class ::WinDeclSpecs;
19652
 
  friend class ::WinMemberExplSpec;
19653
 
  friend class ::WinTypeKeywords;
19654
 
  friend class ::PragmaOnceUnitState;
19655
 
  friend class ::PragmaOnce;
19656
 
  friend class ::CCExprResolve;
19657
 
  friend class ::CExprResolve;
19658
 
 
19659
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19660
 
 
19661
 
public:
19662
 
  CT_RootQualName (int size = 2) : 
19663
 
    CT_QualName (size) { AddProperties (INTRO); }
19664
 
  static const char *NodeId ();
19665
 
  const char *NodeName () const { return NodeId (); }
19666
 
  // special new / delete with reusing memory
19667
 
  void *operator new (size_t);
19668
 
  void  operator delete (void *);
19669
 
   private:
19670
 
  typedef CT_RootQualName CCExprResolveExpr;
19671
 
 
19672
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19673
 
 public :
19674
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19675
 
  typedef CT_RootQualName CExprResolveExpr;
19676
 
 
19677
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19678
 
 public :
19679
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19680
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19681
 
};
19682
 
 
19683
 
 
19684
 
#line 19685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19685
 
} // closed Puma
19686
 
class WinIfExists;
19687
 
class WinImportHandler;
19688
 
class WinMacros;
19689
 
class CMatchSyntax;
19690
 
class ExtGnu;
19691
 
class ExtAC;
19692
 
class ExtACBuilderCoupling;
19693
 
class ExtACSyntaxCoupling;
19694
 
class ExtACTree;
19695
 
class ExtACKeywords;
19696
 
class WinAsm;
19697
 
class WinDeclSpecs;
19698
 
class WinMemberExplSpec;
19699
 
class WinTypeKeywords;
19700
 
class PragmaOnceUnitState;
19701
 
class PragmaOnce;
19702
 
class CCExprResolve;
19703
 
class CExprResolve;
19704
 
namespace Puma {
19705
 
 
19706
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19707
 
class CT_BinaryExpr : public CT_Expression {
19708
 
#line 19709 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19709
 
  friend class ::WinIfExists;
19710
 
  friend class ::WinImportHandler;
19711
 
  friend class ::WinMacros;
19712
 
  friend class ::CMatchSyntax;
19713
 
  friend class ::ExtGnu;
19714
 
  friend class ::ExtAC;
19715
 
  friend class ::ExtACBuilderCoupling;
19716
 
  friend class ::ExtACSyntaxCoupling;
19717
 
  friend class ::ExtACTree;
19718
 
  friend class ::ExtACKeywords;
19719
 
  friend class ::WinAsm;
19720
 
  friend class ::WinDeclSpecs;
19721
 
  friend class ::WinMemberExplSpec;
19722
 
  friend class ::WinTypeKeywords;
19723
 
  friend class ::PragmaOnceUnitState;
19724
 
  friend class ::PragmaOnce;
19725
 
  friend class ::CCExprResolve;
19726
 
  friend class ::CExprResolve;
19727
 
 
19728
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19729
 
 
19730
 
  CTree *sons[3]; // expr, oper, expr
19731
 
 
19732
 
public:
19733
 
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
19734
 
    sons[0] = l; sons[1] = o; sons[2] = r;
19735
 
  }
19736
 
  static const char *NodeId ();
19737
 
  const char *NodeName () const { return NodeId (); }
19738
 
  int Sons () const { return 3; }
19739
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
19740
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19741
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
19742
 
  }
19743
 
   private:
19744
 
  typedef CT_BinaryExpr CCExprResolveExpr;
19745
 
 
19746
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19747
 
 public :
19748
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19749
 
  typedef CT_BinaryExpr CExprResolveExpr;
19750
 
 
19751
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19752
 
 public :
19753
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19754
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19755
 
};
19756
 
 
19757
 
 
19758
 
#line 19759 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19759
 
} // closed Puma
19760
 
class WinIfExists;
19761
 
class WinImportHandler;
19762
 
class WinMacros;
19763
 
class CMatchSyntax;
19764
 
class ExtGnu;
19765
 
class ExtAC;
19766
 
class ExtACBuilderCoupling;
19767
 
class ExtACSyntaxCoupling;
19768
 
class ExtACTree;
19769
 
class ExtACKeywords;
19770
 
class WinAsm;
19771
 
class WinDeclSpecs;
19772
 
class WinMemberExplSpec;
19773
 
class WinTypeKeywords;
19774
 
class PragmaOnceUnitState;
19775
 
class PragmaOnce;
19776
 
class CCExprResolve;
19777
 
class CExprResolve;
19778
 
namespace Puma {
19779
 
 
19780
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19781
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
19782
 
#line 19783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19783
 
  friend class ::WinIfExists;
19784
 
  friend class ::WinImportHandler;
19785
 
  friend class ::WinMacros;
19786
 
  friend class ::CMatchSyntax;
19787
 
  friend class ::ExtGnu;
19788
 
  friend class ::ExtAC;
19789
 
  friend class ::ExtACBuilderCoupling;
19790
 
  friend class ::ExtACSyntaxCoupling;
19791
 
  friend class ::ExtACTree;
19792
 
  friend class ::ExtACKeywords;
19793
 
  friend class ::WinAsm;
19794
 
  friend class ::WinDeclSpecs;
19795
 
  friend class ::WinMemberExplSpec;
19796
 
  friend class ::WinTypeKeywords;
19797
 
  friend class ::PragmaOnceUnitState;
19798
 
  friend class ::PragmaOnce;
19799
 
  friend class ::CCExprResolve;
19800
 
  friend class ::CExprResolve;
19801
 
 
19802
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19803
 
 
19804
 
public:
19805
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
19806
 
    CT_BinaryExpr (e, o, i) {}
19807
 
  static const char *NodeId ();
19808
 
  const char *NodeName () const { return NodeId (); }
19809
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
19810
 
   private:
19811
 
  typedef CT_MembPtrExpr CCExprResolveExpr;
19812
 
 
19813
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19814
 
 public :
19815
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19816
 
  typedef CT_MembPtrExpr CExprResolveExpr;
19817
 
 
19818
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19819
 
 public :
19820
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19821
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19822
 
};
19823
 
 
19824
 
 
19825
 
#line 19826 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19826
 
} // closed Puma
19827
 
class WinIfExists;
19828
 
class WinImportHandler;
19829
 
class WinMacros;
19830
 
class CMatchSyntax;
19831
 
class ExtGnu;
19832
 
class ExtAC;
19833
 
class ExtACBuilderCoupling;
19834
 
class ExtACSyntaxCoupling;
19835
 
class ExtACTree;
19836
 
class ExtACKeywords;
19837
 
class WinAsm;
19838
 
class WinDeclSpecs;
19839
 
class WinMemberExplSpec;
19840
 
class WinTypeKeywords;
19841
 
class PragmaOnceUnitState;
19842
 
class PragmaOnce;
19843
 
class CCExprResolve;
19844
 
class CExprResolve;
19845
 
namespace Puma {
19846
 
 
19847
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19848
 
class CT_MembRefExpr : public CT_MembPtrExpr {
19849
 
#line 19850 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19850
 
  friend class ::WinIfExists;
19851
 
  friend class ::WinImportHandler;
19852
 
  friend class ::WinMacros;
19853
 
  friend class ::CMatchSyntax;
19854
 
  friend class ::ExtGnu;
19855
 
  friend class ::ExtAC;
19856
 
  friend class ::ExtACBuilderCoupling;
19857
 
  friend class ::ExtACSyntaxCoupling;
19858
 
  friend class ::ExtACTree;
19859
 
  friend class ::ExtACKeywords;
19860
 
  friend class ::WinAsm;
19861
 
  friend class ::WinDeclSpecs;
19862
 
  friend class ::WinMemberExplSpec;
19863
 
  friend class ::WinTypeKeywords;
19864
 
  friend class ::PragmaOnceUnitState;
19865
 
  friend class ::PragmaOnce;
19866
 
  friend class ::CCExprResolve;
19867
 
  friend class ::CExprResolve;
19868
 
 
19869
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19870
 
 
19871
 
public:
19872
 
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
19873
 
    CT_MembPtrExpr (e, o, i) {}
19874
 
  static const char *NodeId ();
19875
 
  const char *NodeName () const { return NodeId (); }
19876
 
   private:
19877
 
  typedef CT_MembRefExpr CCExprResolveExpr;
19878
 
 
19879
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19880
 
 public :
19881
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19882
 
  typedef CT_MembRefExpr CExprResolveExpr;
19883
 
 
19884
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19885
 
 public :
19886
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19887
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19888
 
};
19889
 
 
19890
 
 
19891
 
#line 19892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19892
 
} // closed Puma
19893
 
class WinIfExists;
19894
 
class WinImportHandler;
19895
 
class WinMacros;
19896
 
class CMatchSyntax;
19897
 
class ExtGnu;
19898
 
class ExtAC;
19899
 
class ExtACBuilderCoupling;
19900
 
class ExtACSyntaxCoupling;
19901
 
class ExtACTree;
19902
 
class ExtACKeywords;
19903
 
class WinAsm;
19904
 
class WinDeclSpecs;
19905
 
class WinMemberExplSpec;
19906
 
class WinTypeKeywords;
19907
 
class PragmaOnceUnitState;
19908
 
class PragmaOnce;
19909
 
class CCExprResolve;
19910
 
class CExprResolve;
19911
 
namespace Puma {
19912
 
 
19913
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19914
 
class CT_UnaryExpr : public CT_Expression {
19915
 
#line 19916 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19916
 
  friend class ::WinIfExists;
19917
 
  friend class ::WinImportHandler;
19918
 
  friend class ::WinMacros;
19919
 
  friend class ::CMatchSyntax;
19920
 
  friend class ::ExtGnu;
19921
 
  friend class ::ExtAC;
19922
 
  friend class ::ExtACBuilderCoupling;
19923
 
  friend class ::ExtACSyntaxCoupling;
19924
 
  friend class ::ExtACTree;
19925
 
  friend class ::ExtACKeywords;
19926
 
  friend class ::WinAsm;
19927
 
  friend class ::WinDeclSpecs;
19928
 
  friend class ::WinMemberExplSpec;
19929
 
  friend class ::WinTypeKeywords;
19930
 
  friend class ::PragmaOnceUnitState;
19931
 
  friend class ::PragmaOnce;
19932
 
  friend class ::CCExprResolve;
19933
 
  friend class ::CExprResolve;
19934
 
 
19935
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19936
 
 
19937
 
  CTree *sons[2]; // oper, expr
19938
 
 
19939
 
public:
19940
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
19941
 
  static const char *NodeId ();
19942
 
  const char *NodeName () const { return NodeId (); }
19943
 
  int Sons () const { return 2; }
19944
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
19945
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19946
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
19947
 
  }
19948
 
  CTree *Expr () const { return sons[1]; }
19949
 
   private:
19950
 
  typedef CT_UnaryExpr CCExprResolveExpr;
19951
 
 
19952
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19953
 
 public :
19954
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19955
 
  typedef CT_UnaryExpr CExprResolveExpr;
19956
 
 
19957
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19958
 
 public :
19959
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19960
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19961
 
};
19962
 
 
19963
 
 
19964
 
#line 19965 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19965
 
} // closed Puma
19966
 
class WinIfExists;
19967
 
class WinImportHandler;
19968
 
class WinMacros;
19969
 
class CMatchSyntax;
19970
 
class ExtGnu;
19971
 
class ExtAC;
19972
 
class ExtACBuilderCoupling;
19973
 
class ExtACSyntaxCoupling;
19974
 
class ExtACTree;
19975
 
class ExtACKeywords;
19976
 
class WinAsm;
19977
 
class WinDeclSpecs;
19978
 
class WinMemberExplSpec;
19979
 
class WinTypeKeywords;
19980
 
class PragmaOnceUnitState;
19981
 
class PragmaOnce;
19982
 
class CCExprResolve;
19983
 
class CExprResolve;
19984
 
namespace Puma {
19985
 
 
19986
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19987
 
class CT_PostfixExpr : public CT_UnaryExpr {
19988
 
#line 19989 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
19989
 
  friend class ::WinIfExists;
19990
 
  friend class ::WinImportHandler;
19991
 
  friend class ::WinMacros;
19992
 
  friend class ::CMatchSyntax;
19993
 
  friend class ::ExtGnu;
19994
 
  friend class ::ExtAC;
19995
 
  friend class ::ExtACBuilderCoupling;
19996
 
  friend class ::ExtACSyntaxCoupling;
19997
 
  friend class ::ExtACTree;
19998
 
  friend class ::ExtACKeywords;
19999
 
  friend class ::WinAsm;
20000
 
  friend class ::WinDeclSpecs;
20001
 
  friend class ::WinMemberExplSpec;
20002
 
  friend class ::WinTypeKeywords;
20003
 
  friend class ::PragmaOnceUnitState;
20004
 
  friend class ::PragmaOnce;
20005
 
  friend class ::CCExprResolve;
20006
 
  friend class ::CExprResolve;
20007
 
 
20008
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20009
 
 
20010
 
public:
20011
 
  CT_PostfixExpr (CTree *e, CTree *o) :
20012
 
    CT_UnaryExpr (e, o) {}
20013
 
  static const char *NodeId ();
20014
 
  const char *NodeName () const { return NodeId (); }
20015
 
   private:
20016
 
  typedef CT_PostfixExpr CCExprResolveExpr;
20017
 
 
20018
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20019
 
 public :
20020
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20021
 
  typedef CT_PostfixExpr CExprResolveExpr;
20022
 
 
20023
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20024
 
 public :
20025
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20026
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20027
 
};
20028
 
 
20029
 
 
20030
 
#line 20031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20031
 
} // closed Puma
20032
 
class WinIfExists;
20033
 
class WinImportHandler;
20034
 
class WinMacros;
20035
 
class CMatchSyntax;
20036
 
class ExtGnu;
20037
 
class ExtAC;
20038
 
class ExtACBuilderCoupling;
20039
 
class ExtACSyntaxCoupling;
20040
 
class ExtACTree;
20041
 
class ExtACKeywords;
20042
 
class WinAsm;
20043
 
class WinDeclSpecs;
20044
 
class WinMemberExplSpec;
20045
 
class WinTypeKeywords;
20046
 
class PragmaOnceUnitState;
20047
 
class PragmaOnce;
20048
 
class CCExprResolve;
20049
 
class CExprResolve;
20050
 
namespace Puma {
20051
 
 
20052
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20053
 
class CT_AddrExpr : public CT_UnaryExpr {
20054
 
#line 20055 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20055
 
  friend class ::WinIfExists;
20056
 
  friend class ::WinImportHandler;
20057
 
  friend class ::WinMacros;
20058
 
  friend class ::CMatchSyntax;
20059
 
  friend class ::ExtGnu;
20060
 
  friend class ::ExtAC;
20061
 
  friend class ::ExtACBuilderCoupling;
20062
 
  friend class ::ExtACSyntaxCoupling;
20063
 
  friend class ::ExtACTree;
20064
 
  friend class ::ExtACKeywords;
20065
 
  friend class ::WinAsm;
20066
 
  friend class ::WinDeclSpecs;
20067
 
  friend class ::WinMemberExplSpec;
20068
 
  friend class ::WinTypeKeywords;
20069
 
  friend class ::PragmaOnceUnitState;
20070
 
  friend class ::PragmaOnce;
20071
 
  friend class ::CCExprResolve;
20072
 
  friend class ::CExprResolve;
20073
 
 
20074
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20075
 
 
20076
 
public:
20077
 
  CT_AddrExpr (CTree *o, CTree *e) :
20078
 
    CT_UnaryExpr (o, e) {}
20079
 
  static const char *NodeId ();
20080
 
  const char *NodeName () const { return NodeId (); }
20081
 
   private:
20082
 
  typedef CT_AddrExpr CCExprResolveExpr;
20083
 
 
20084
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20085
 
 public :
20086
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20087
 
  typedef CT_AddrExpr CExprResolveExpr;
20088
 
 
20089
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20090
 
 public :
20091
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20092
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20093
 
};
20094
 
 
20095
 
 
20096
 
#line 20097 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20097
 
} // closed Puma
20098
 
class WinIfExists;
20099
 
class WinImportHandler;
20100
 
class WinMacros;
20101
 
class CMatchSyntax;
20102
 
class ExtGnu;
20103
 
class ExtAC;
20104
 
class ExtACBuilderCoupling;
20105
 
class ExtACSyntaxCoupling;
20106
 
class ExtACTree;
20107
 
class ExtACKeywords;
20108
 
class WinAsm;
20109
 
class WinDeclSpecs;
20110
 
class WinMemberExplSpec;
20111
 
class WinTypeKeywords;
20112
 
class PragmaOnceUnitState;
20113
 
class PragmaOnce;
20114
 
class CCExprResolve;
20115
 
class CExprResolve;
20116
 
namespace Puma {
20117
 
 
20118
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20119
 
class CT_DerefExpr : public CT_UnaryExpr {
20120
 
#line 20121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20121
 
  friend class ::WinIfExists;
20122
 
  friend class ::WinImportHandler;
20123
 
  friend class ::WinMacros;
20124
 
  friend class ::CMatchSyntax;
20125
 
  friend class ::ExtGnu;
20126
 
  friend class ::ExtAC;
20127
 
  friend class ::ExtACBuilderCoupling;
20128
 
  friend class ::ExtACSyntaxCoupling;
20129
 
  friend class ::ExtACTree;
20130
 
  friend class ::ExtACKeywords;
20131
 
  friend class ::WinAsm;
20132
 
  friend class ::WinDeclSpecs;
20133
 
  friend class ::WinMemberExplSpec;
20134
 
  friend class ::WinTypeKeywords;
20135
 
  friend class ::PragmaOnceUnitState;
20136
 
  friend class ::PragmaOnce;
20137
 
  friend class ::CCExprResolve;
20138
 
  friend class ::CExprResolve;
20139
 
 
20140
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20141
 
 
20142
 
public:
20143
 
  CT_DerefExpr (CTree *o, CTree *e) :
20144
 
    CT_UnaryExpr (o, e) {}
20145
 
  static const char *NodeId ();
20146
 
  const char *NodeName () const { return NodeId (); }
20147
 
   private:
20148
 
  typedef CT_DerefExpr CCExprResolveExpr;
20149
 
 
20150
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20151
 
 public :
20152
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20153
 
  typedef CT_DerefExpr CExprResolveExpr;
20154
 
 
20155
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20156
 
 public :
20157
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20158
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20159
 
};
20160
 
 
20161
 
 
20162
 
#line 20163 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20163
 
} // closed Puma
20164
 
class WinIfExists;
20165
 
class WinImportHandler;
20166
 
class WinMacros;
20167
 
class CMatchSyntax;
20168
 
class ExtGnu;
20169
 
class ExtAC;
20170
 
class ExtACBuilderCoupling;
20171
 
class ExtACSyntaxCoupling;
20172
 
class ExtACTree;
20173
 
class ExtACKeywords;
20174
 
class WinAsm;
20175
 
class WinDeclSpecs;
20176
 
class WinMemberExplSpec;
20177
 
class WinTypeKeywords;
20178
 
class PragmaOnceUnitState;
20179
 
class PragmaOnce;
20180
 
class CCExprResolve;
20181
 
class CExprResolve;
20182
 
namespace Puma {
20183
 
 
20184
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20185
 
class CT_DeleteExpr : public CT_Expression, public CSemObject {
20186
 
#line 20187 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20187
 
  friend class ::WinIfExists;
20188
 
  friend class ::WinImportHandler;
20189
 
  friend class ::WinMacros;
20190
 
  friend class ::CMatchSyntax;
20191
 
  friend class ::ExtGnu;
20192
 
  friend class ::ExtAC;
20193
 
  friend class ::ExtACBuilderCoupling;
20194
 
  friend class ::ExtACSyntaxCoupling;
20195
 
  friend class ::ExtACTree;
20196
 
  friend class ::ExtACKeywords;
20197
 
  friend class ::WinAsm;
20198
 
  friend class ::WinDeclSpecs;
20199
 
  friend class ::WinMemberExplSpec;
20200
 
  friend class ::WinTypeKeywords;
20201
 
  friend class ::PragmaOnceUnitState;
20202
 
  friend class ::PragmaOnce;
20203
 
  friend class ::CCExprResolve;
20204
 
  friend class ::CExprResolve;
20205
 
 
20206
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20207
 
 
20208
 
  CTree *sons[2]; // oper, expr
20209
 
 
20210
 
public:
20211
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
20212
 
  static const char *NodeId ();
20213
 
  const char *NodeName () const { return NodeId (); }
20214
 
  int Sons () const { return 2; }
20215
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
20216
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20217
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
20218
 
  }
20219
 
  CTree *Expr () const { return sons[1]; }
20220
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
20221
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
20222
 
   private:
20223
 
  typedef CT_DeleteExpr CCExprResolveExpr;
20224
 
 
20225
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20226
 
 public :
20227
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20228
 
  typedef CT_DeleteExpr CExprResolveExpr;
20229
 
 
20230
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20231
 
 public :
20232
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20233
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20234
 
};
20235
 
 
20236
 
 
20237
 
#line 20238 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20238
 
} // closed Puma
20239
 
class WinIfExists;
20240
 
class WinImportHandler;
20241
 
class WinMacros;
20242
 
class CMatchSyntax;
20243
 
class ExtGnu;
20244
 
class ExtAC;
20245
 
class ExtACBuilderCoupling;
20246
 
class ExtACSyntaxCoupling;
20247
 
class ExtACTree;
20248
 
class ExtACKeywords;
20249
 
class WinAsm;
20250
 
class WinDeclSpecs;
20251
 
class WinMemberExplSpec;
20252
 
class WinTypeKeywords;
20253
 
class PragmaOnceUnitState;
20254
 
class PragmaOnce;
20255
 
class CCExprResolve;
20256
 
class CExprResolve;
20257
 
namespace Puma {
20258
 
 
20259
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20260
 
class CT_NewExpr : public CT_Expression, public CSemObject {
20261
 
#line 20262 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20262
 
  friend class ::WinIfExists;
20263
 
  friend class ::WinImportHandler;
20264
 
  friend class ::WinMacros;
20265
 
  friend class ::CMatchSyntax;
20266
 
  friend class ::ExtGnu;
20267
 
  friend class ::ExtAC;
20268
 
  friend class ::ExtACBuilderCoupling;
20269
 
  friend class ::ExtACSyntaxCoupling;
20270
 
  friend class ::ExtACTree;
20271
 
  friend class ::ExtACKeywords;
20272
 
  friend class ::WinAsm;
20273
 
  friend class ::WinDeclSpecs;
20274
 
  friend class ::WinMemberExplSpec;
20275
 
  friend class ::WinTypeKeywords;
20276
 
  friend class ::PragmaOnceUnitState;
20277
 
  friend class ::PragmaOnce;
20278
 
  friend class ::CCExprResolve;
20279
 
  friend class ::CExprResolve;
20280
 
 
20281
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20282
 
 
20283
 
  CTree *sons[6]; // oper, placement, open, type, close, init
20284
 
 
20285
 
public:
20286
 
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
20287
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
20288
 
  }
20289
 
  static const char *NodeId ();
20290
 
  const char *NodeName () const { return NodeId (); }
20291
 
  int Sons () const { return CTree::Sons (sons, 6); }
20292
 
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
20293
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20294
 
    CTree::ReplaceSon (sons, 6, old_son, new_son);
20295
 
  }
20296
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
20297
 
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
20298
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
20299
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
20300
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
20301
 
   private:
20302
 
  typedef CT_NewExpr CCExprResolveExpr;
20303
 
 
20304
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20305
 
 public :
20306
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20307
 
  typedef CT_NewExpr CExprResolveExpr;
20308
 
 
20309
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20310
 
 public :
20311
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20312
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20313
 
};
20314
 
 
20315
 
 
20316
 
#line 20317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20317
 
} // closed Puma
20318
 
class WinIfExists;
20319
 
class WinImportHandler;
20320
 
class WinMacros;
20321
 
class CMatchSyntax;
20322
 
class ExtGnu;
20323
 
class ExtAC;
20324
 
class ExtACBuilderCoupling;
20325
 
class ExtACSyntaxCoupling;
20326
 
class ExtACTree;
20327
 
class ExtACKeywords;
20328
 
class WinAsm;
20329
 
class WinDeclSpecs;
20330
 
class WinMemberExplSpec;
20331
 
class WinTypeKeywords;
20332
 
class PragmaOnceUnitState;
20333
 
class PragmaOnce;
20334
 
class CCExprResolve;
20335
 
class CExprResolve;
20336
 
namespace Puma {
20337
 
 
20338
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20339
 
class CT_IfThenExpr : public CT_Expression {
20340
 
#line 20341 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20341
 
  friend class ::WinIfExists;
20342
 
  friend class ::WinImportHandler;
20343
 
  friend class ::WinMacros;
20344
 
  friend class ::CMatchSyntax;
20345
 
  friend class ::ExtGnu;
20346
 
  friend class ::ExtAC;
20347
 
  friend class ::ExtACBuilderCoupling;
20348
 
  friend class ::ExtACSyntaxCoupling;
20349
 
  friend class ::ExtACTree;
20350
 
  friend class ::ExtACKeywords;
20351
 
  friend class ::WinAsm;
20352
 
  friend class ::WinDeclSpecs;
20353
 
  friend class ::WinMemberExplSpec;
20354
 
  friend class ::WinTypeKeywords;
20355
 
  friend class ::PragmaOnceUnitState;
20356
 
  friend class ::PragmaOnce;
20357
 
  friend class ::CCExprResolve;
20358
 
  friend class ::CExprResolve;
20359
 
 
20360
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20361
 
 
20362
 
  CTree *sons[5]; // cond, oper, left, colon, right
20363
 
 
20364
 
public:
20365
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
20366
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
20367
 
  }
20368
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
20369
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
20370
 
  }
20371
 
  static const char *NodeId ();
20372
 
  const char *NodeName () const { return NodeId (); }
20373
 
  int Sons () const { return CTree::Sons (sons, 5); }
20374
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
20375
 
  CTree *Condition () const { return sons[0]; }
20376
 
  CTree *LeftOperand () const { return sons[2]; }
20377
 
  CTree *RightOperand () const { return sons[4]; }
20378
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20379
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
20380
 
  }
20381
 
   private:
20382
 
  typedef CT_IfThenExpr CCExprResolveExpr;
20383
 
 
20384
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20385
 
 public :
20386
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20387
 
  typedef CT_IfThenExpr CExprResolveExpr;
20388
 
 
20389
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20390
 
 public :
20391
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20392
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20393
 
};
20394
 
 
20395
 
 
20396
 
#line 20397 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20397
 
} // closed Puma
20398
 
class WinIfExists;
20399
 
class WinImportHandler;
20400
 
class WinMacros;
20401
 
class CMatchSyntax;
20402
 
class ExtGnu;
20403
 
class ExtAC;
20404
 
class ExtACBuilderCoupling;
20405
 
class ExtACSyntaxCoupling;
20406
 
class ExtACTree;
20407
 
class ExtACKeywords;
20408
 
class WinAsm;
20409
 
class WinDeclSpecs;
20410
 
class WinMemberExplSpec;
20411
 
class WinTypeKeywords;
20412
 
class PragmaOnceUnitState;
20413
 
class PragmaOnce;
20414
 
class CCExprResolve;
20415
 
class CExprResolve;
20416
 
namespace Puma {
20417
 
 
20418
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20419
 
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
20420
 
#line 20421 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20421
 
  friend class ::WinIfExists;
20422
 
  friend class ::WinImportHandler;
20423
 
  friend class ::WinMacros;
20424
 
  friend class ::CMatchSyntax;
20425
 
  friend class ::ExtGnu;
20426
 
  friend class ::ExtAC;
20427
 
  friend class ::ExtACBuilderCoupling;
20428
 
  friend class ::ExtACSyntaxCoupling;
20429
 
  friend class ::ExtACTree;
20430
 
  friend class ::ExtACKeywords;
20431
 
  friend class ::WinAsm;
20432
 
  friend class ::WinDeclSpecs;
20433
 
  friend class ::WinMemberExplSpec;
20434
 
  friend class ::WinTypeKeywords;
20435
 
  friend class ::PragmaOnceUnitState;
20436
 
  friend class ::PragmaOnce;
20437
 
  friend class ::CCExprResolve;
20438
 
  friend class ::CExprResolve;
20439
 
 
20440
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20441
 
 
20442
 
  CTree *sons[4]; // open, type, close, init
20443
 
 
20444
 
public:
20445
 
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
20446
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
20447
 
  }
20448
 
  static const char *NodeId ();
20449
 
  const char *NodeName () const { return NodeId (); }
20450
 
  int Sons () const { return 4; }
20451
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
20452
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20453
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
20454
 
  }
20455
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
20456
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
20457
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
20458
 
   private:
20459
 
  typedef CT_CmpdLiteral CCExprResolveExpr;
20460
 
 
20461
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20462
 
 public :
20463
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20464
 
  typedef CT_CmpdLiteral CExprResolveExpr;
20465
 
 
20466
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20467
 
 public :
20468
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20469
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20470
 
};
20471
 
 
20472
 
 
20473
 
#line 20474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20474
 
} // closed Puma
20475
 
class WinIfExists;
20476
 
class WinImportHandler;
20477
 
class WinMacros;
20478
 
class CMatchSyntax;
20479
 
class ExtGnu;
20480
 
class ExtAC;
20481
 
class ExtACBuilderCoupling;
20482
 
class ExtACSyntaxCoupling;
20483
 
class ExtACTree;
20484
 
class ExtACKeywords;
20485
 
class WinAsm;
20486
 
class WinDeclSpecs;
20487
 
class WinMemberExplSpec;
20488
 
class WinTypeKeywords;
20489
 
class PragmaOnceUnitState;
20490
 
class PragmaOnce;
20491
 
class CCExprResolve;
20492
 
class CExprResolve;
20493
 
namespace Puma {
20494
 
 
20495
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20496
 
class CT_ConstructExpr : public CT_Expression, public CSemObject {
20497
 
#line 20498 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20498
 
  friend class ::WinIfExists;
20499
 
  friend class ::WinImportHandler;
20500
 
  friend class ::WinMacros;
20501
 
  friend class ::CMatchSyntax;
20502
 
  friend class ::ExtGnu;
20503
 
  friend class ::ExtAC;
20504
 
  friend class ::ExtACBuilderCoupling;
20505
 
  friend class ::ExtACSyntaxCoupling;
20506
 
  friend class ::ExtACTree;
20507
 
  friend class ::ExtACKeywords;
20508
 
  friend class ::WinAsm;
20509
 
  friend class ::WinDeclSpecs;
20510
 
  friend class ::WinMemberExplSpec;
20511
 
  friend class ::WinTypeKeywords;
20512
 
  friend class ::PragmaOnceUnitState;
20513
 
  friend class ::PragmaOnce;
20514
 
  friend class ::CCExprResolve;
20515
 
  friend class ::CExprResolve;
20516
 
 
20517
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20518
 
 
20519
 
  CTree *sons[2]; // type, init
20520
 
 
20521
 
public:
20522
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
20523
 
  static const char *NodeId ();
20524
 
  const char *NodeName () const { return NodeId (); }
20525
 
  int Sons () const { return 2; }
20526
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
20527
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20528
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
20529
 
  }
20530
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
20531
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
20532
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
20533
 
   private:
20534
 
  typedef CT_ConstructExpr CCExprResolveExpr;
20535
 
 
20536
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20537
 
 public :
20538
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20539
 
  typedef CT_ConstructExpr CExprResolveExpr;
20540
 
 
20541
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20542
 
 public :
20543
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20544
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20545
 
};
20546
 
 
20547
 
 
20548
 
#line 20549 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20549
 
} // closed Puma
20550
 
class WinIfExists;
20551
 
class WinImportHandler;
20552
 
class WinMacros;
20553
 
class CMatchSyntax;
20554
 
class ExtGnu;
20555
 
class ExtAC;
20556
 
class ExtACBuilderCoupling;
20557
 
class ExtACSyntaxCoupling;
20558
 
class ExtACTree;
20559
 
class ExtACKeywords;
20560
 
class WinAsm;
20561
 
class WinDeclSpecs;
20562
 
class WinMemberExplSpec;
20563
 
class WinTypeKeywords;
20564
 
class PragmaOnceUnitState;
20565
 
class PragmaOnce;
20566
 
class CCExprResolve;
20567
 
class CExprResolve;
20568
 
namespace Puma {
20569
 
 
20570
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20571
 
class CT_ThrowExpr : public CT_Expression {
20572
 
#line 20573 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20573
 
  friend class ::WinIfExists;
20574
 
  friend class ::WinImportHandler;
20575
 
  friend class ::WinMacros;
20576
 
  friend class ::CMatchSyntax;
20577
 
  friend class ::ExtGnu;
20578
 
  friend class ::ExtAC;
20579
 
  friend class ::ExtACBuilderCoupling;
20580
 
  friend class ::ExtACSyntaxCoupling;
20581
 
  friend class ::ExtACTree;
20582
 
  friend class ::ExtACKeywords;
20583
 
  friend class ::WinAsm;
20584
 
  friend class ::WinDeclSpecs;
20585
 
  friend class ::WinMemberExplSpec;
20586
 
  friend class ::WinTypeKeywords;
20587
 
  friend class ::PragmaOnceUnitState;
20588
 
  friend class ::PragmaOnce;
20589
 
  friend class ::CCExprResolve;
20590
 
  friend class ::CExprResolve;
20591
 
 
20592
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20593
 
 
20594
 
  CTree *sons[2]; // throw, expr
20595
 
 
20596
 
public:
20597
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
20598
 
  static const char *NodeId ();
20599
 
  const char *NodeName () const { return NodeId (); }
20600
 
  int Sons () const { return CTree::Sons (sons, 2); }
20601
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
20602
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20603
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
20604
 
  }
20605
 
  CTree *Expr () const { return sons[1]; }
20606
 
   private:
20607
 
  typedef CT_ThrowExpr CCExprResolveExpr;
20608
 
 
20609
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20610
 
 public :
20611
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20612
 
  typedef CT_ThrowExpr CExprResolveExpr;
20613
 
 
20614
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20615
 
 public :
20616
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20617
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20618
 
};
20619
 
 
20620
 
 
20621
 
#line 20622 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20622
 
} // closed Puma
20623
 
class WinIfExists;
20624
 
class WinImportHandler;
20625
 
class WinMacros;
20626
 
class CMatchSyntax;
20627
 
class ExtGnu;
20628
 
class ExtAC;
20629
 
class ExtACBuilderCoupling;
20630
 
class ExtACSyntaxCoupling;
20631
 
class ExtACTree;
20632
 
class ExtACKeywords;
20633
 
class WinAsm;
20634
 
class WinDeclSpecs;
20635
 
class WinMemberExplSpec;
20636
 
class WinTypeKeywords;
20637
 
class PragmaOnceUnitState;
20638
 
class PragmaOnce;
20639
 
class CCExprResolve;
20640
 
class CExprResolve;
20641
 
namespace Puma {
20642
 
 
20643
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20644
 
class CT_IndexExpr : public CT_Expression {
20645
 
#line 20646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20646
 
  friend class ::WinIfExists;
20647
 
  friend class ::WinImportHandler;
20648
 
  friend class ::WinMacros;
20649
 
  friend class ::CMatchSyntax;
20650
 
  friend class ::ExtGnu;
20651
 
  friend class ::ExtAC;
20652
 
  friend class ::ExtACBuilderCoupling;
20653
 
  friend class ::ExtACSyntaxCoupling;
20654
 
  friend class ::ExtACTree;
20655
 
  friend class ::ExtACKeywords;
20656
 
  friend class ::WinAsm;
20657
 
  friend class ::WinDeclSpecs;
20658
 
  friend class ::WinMemberExplSpec;
20659
 
  friend class ::WinTypeKeywords;
20660
 
  friend class ::PragmaOnceUnitState;
20661
 
  friend class ::PragmaOnce;
20662
 
  friend class ::CCExprResolve;
20663
 
  friend class ::CExprResolve;
20664
 
 
20665
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20666
 
 
20667
 
  CTree *sons[4]; // expr, open, index, close
20668
 
 
20669
 
public:
20670
 
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
20671
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
20672
 
  }
20673
 
  static const char *NodeId ();
20674
 
  const char *NodeName () const { return NodeId (); }
20675
 
  int Sons () const { return 4; }
20676
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
20677
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20678
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
20679
 
  }
20680
 
   private:
20681
 
  typedef CT_IndexExpr CCExprResolveExpr;
20682
 
 
20683
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20684
 
 public :
20685
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20686
 
  typedef CT_IndexExpr CExprResolveExpr;
20687
 
 
20688
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20689
 
 public :
20690
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20691
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20692
 
};
20693
 
 
20694
 
 
20695
 
#line 20696 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20696
 
} // closed Puma
20697
 
class WinIfExists;
20698
 
class WinImportHandler;
20699
 
class WinMacros;
20700
 
class CMatchSyntax;
20701
 
class ExtGnu;
20702
 
class ExtAC;
20703
 
class ExtACBuilderCoupling;
20704
 
class ExtACSyntaxCoupling;
20705
 
class ExtACTree;
20706
 
class ExtACKeywords;
20707
 
class WinAsm;
20708
 
class WinDeclSpecs;
20709
 
class WinMemberExplSpec;
20710
 
class WinTypeKeywords;
20711
 
class PragmaOnceUnitState;
20712
 
class PragmaOnce;
20713
 
class CCExprResolve;
20714
 
class CExprResolve;
20715
 
namespace Puma {
20716
 
 
20717
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20718
 
class CT_CallExpr : public CT_Expression, public CSemObject {
20719
 
#line 20720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20720
 
  friend class ::WinIfExists;
20721
 
  friend class ::WinImportHandler;
20722
 
  friend class ::WinMacros;
20723
 
  friend class ::CMatchSyntax;
20724
 
  friend class ::ExtGnu;
20725
 
  friend class ::ExtAC;
20726
 
  friend class ::ExtACBuilderCoupling;
20727
 
  friend class ::ExtACSyntaxCoupling;
20728
 
  friend class ::ExtACTree;
20729
 
  friend class ::ExtACKeywords;
20730
 
  friend class ::WinAsm;
20731
 
  friend class ::WinDeclSpecs;
20732
 
  friend class ::WinMemberExplSpec;
20733
 
  friend class ::WinTypeKeywords;
20734
 
  friend class ::PragmaOnceUnitState;
20735
 
  friend class ::PragmaOnce;
20736
 
  friend class ::CCExprResolve;
20737
 
  friend class ::CExprResolve;
20738
 
 
20739
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20740
 
 
20741
 
  CTree *sons[2]; // expr, args
20742
 
 
20743
 
public:
20744
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
20745
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
20746
 
  static const char *NodeId ();
20747
 
  const char *NodeName () const { return NodeId (); }
20748
 
  int Sons () const { return CTree::Sons (sons, 2); }
20749
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
20750
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20751
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
20752
 
  }
20753
 
  CTree *Expr () const { return sons[0]; }
20754
 
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
20755
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
20756
 
   private:
20757
 
  typedef CT_CallExpr CCExprResolveExpr;
20758
 
 
20759
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20760
 
 public :
20761
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20762
 
  typedef CT_CallExpr CExprResolveExpr;
20763
 
 
20764
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20765
 
 public :
20766
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20767
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20768
 
};
20769
 
 
20770
 
 
20771
 
#line 20772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20772
 
} // closed Puma
20773
 
class WinIfExists;
20774
 
class WinImportHandler;
20775
 
class WinMacros;
20776
 
class CMatchSyntax;
20777
 
class ExtGnu;
20778
 
class ExtAC;
20779
 
class ExtACBuilderCoupling;
20780
 
class ExtACSyntaxCoupling;
20781
 
class ExtACTree;
20782
 
class ExtACKeywords;
20783
 
class WinAsm;
20784
 
class WinDeclSpecs;
20785
 
class WinMemberExplSpec;
20786
 
class WinTypeKeywords;
20787
 
class PragmaOnceUnitState;
20788
 
class PragmaOnce;
20789
 
class CCExprResolve;
20790
 
class CExprResolve;
20791
 
namespace Puma {
20792
 
 
20793
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20794
 
class CT_CastExpr : public CT_Expression {
20795
 
#line 20796 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20796
 
  friend class ::WinIfExists;
20797
 
  friend class ::WinImportHandler;
20798
 
  friend class ::WinMacros;
20799
 
  friend class ::CMatchSyntax;
20800
 
  friend class ::ExtGnu;
20801
 
  friend class ::ExtAC;
20802
 
  friend class ::ExtACBuilderCoupling;
20803
 
  friend class ::ExtACSyntaxCoupling;
20804
 
  friend class ::ExtACTree;
20805
 
  friend class ::ExtACKeywords;
20806
 
  friend class ::WinAsm;
20807
 
  friend class ::WinDeclSpecs;
20808
 
  friend class ::WinMemberExplSpec;
20809
 
  friend class ::WinTypeKeywords;
20810
 
  friend class ::PragmaOnceUnitState;
20811
 
  friend class ::PragmaOnce;
20812
 
  friend class ::CCExprResolve;
20813
 
  friend class ::CExprResolve;
20814
 
 
20815
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20816
 
 
20817
 
  CTree *sons[4]; // open, type, close, expr
20818
 
 
20819
 
public:
20820
 
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
20821
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
20822
 
  }
20823
 
  static const char *NodeId ();
20824
 
  const char *NodeName () const { return NodeId (); }
20825
 
  int Sons () const { return 4; }
20826
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
20827
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20828
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
20829
 
  }
20830
 
  CTree *Expr () const { return sons[3]; }
20831
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
20832
 
   private:
20833
 
  typedef CT_CastExpr CCExprResolveExpr;
20834
 
 
20835
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20836
 
 public :
20837
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20838
 
  typedef CT_CastExpr CExprResolveExpr;
20839
 
 
20840
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20841
 
 public :
20842
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20843
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20844
 
};
20845
 
 
20846
 
 
20847
 
#line 20848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20848
 
} // closed Puma
20849
 
class WinIfExists;
20850
 
class WinImportHandler;
20851
 
class WinMacros;
20852
 
class CMatchSyntax;
20853
 
class ExtGnu;
20854
 
class ExtAC;
20855
 
class ExtACBuilderCoupling;
20856
 
class ExtACSyntaxCoupling;
20857
 
class ExtACTree;
20858
 
class ExtACKeywords;
20859
 
class WinAsm;
20860
 
class WinDeclSpecs;
20861
 
class WinMemberExplSpec;
20862
 
class WinTypeKeywords;
20863
 
class PragmaOnceUnitState;
20864
 
class PragmaOnce;
20865
 
class CCExprResolve;
20866
 
class CExprResolve;
20867
 
namespace Puma {
20868
 
 
20869
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20870
 
class CT_StaticCast : public CT_Expression {
20871
 
#line 20872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20872
 
  friend class ::WinIfExists;
20873
 
  friend class ::WinImportHandler;
20874
 
  friend class ::WinMacros;
20875
 
  friend class ::CMatchSyntax;
20876
 
  friend class ::ExtGnu;
20877
 
  friend class ::ExtAC;
20878
 
  friend class ::ExtACBuilderCoupling;
20879
 
  friend class ::ExtACSyntaxCoupling;
20880
 
  friend class ::ExtACTree;
20881
 
  friend class ::ExtACKeywords;
20882
 
  friend class ::WinAsm;
20883
 
  friend class ::WinDeclSpecs;
20884
 
  friend class ::WinMemberExplSpec;
20885
 
  friend class ::WinTypeKeywords;
20886
 
  friend class ::PragmaOnceUnitState;
20887
 
  friend class ::PragmaOnce;
20888
 
  friend class ::CCExprResolve;
20889
 
  friend class ::CExprResolve;
20890
 
 
20891
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20892
 
 
20893
 
  CTree *sons[5]; // cast, open, type, close, expr
20894
 
 
20895
 
public:
20896
 
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
20897
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
20898
 
  }
20899
 
  static const char *NodeId ();
20900
 
  const char *NodeName () const { return NodeId (); }
20901
 
  int Sons () const { return 5; }
20902
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
20903
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20904
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
20905
 
  }
20906
 
  CTree *Expr () const { return sons[4]; }
20907
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
20908
 
   private:
20909
 
  typedef CT_StaticCast CCExprResolveExpr;
20910
 
 
20911
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20912
 
 public :
20913
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20914
 
  typedef CT_StaticCast CExprResolveExpr;
20915
 
 
20916
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20917
 
 public :
20918
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20919
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20920
 
};
20921
 
 
20922
 
 
20923
 
#line 20924 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20924
 
} // closed Puma
20925
 
class WinIfExists;
20926
 
class WinImportHandler;
20927
 
class WinMacros;
20928
 
class CMatchSyntax;
20929
 
class ExtGnu;
20930
 
class ExtAC;
20931
 
class ExtACBuilderCoupling;
20932
 
class ExtACSyntaxCoupling;
20933
 
class ExtACTree;
20934
 
class ExtACKeywords;
20935
 
class WinAsm;
20936
 
class WinDeclSpecs;
20937
 
class WinMemberExplSpec;
20938
 
class WinTypeKeywords;
20939
 
class PragmaOnceUnitState;
20940
 
class PragmaOnce;
20941
 
class CCExprResolve;
20942
 
class CExprResolve;
20943
 
namespace Puma {
20944
 
 
20945
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20946
 
class CT_ConstCast : public CT_StaticCast {
20947
 
#line 20948 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20948
 
  friend class ::WinIfExists;
20949
 
  friend class ::WinImportHandler;
20950
 
  friend class ::WinMacros;
20951
 
  friend class ::CMatchSyntax;
20952
 
  friend class ::ExtGnu;
20953
 
  friend class ::ExtAC;
20954
 
  friend class ::ExtACBuilderCoupling;
20955
 
  friend class ::ExtACSyntaxCoupling;
20956
 
  friend class ::ExtACTree;
20957
 
  friend class ::ExtACKeywords;
20958
 
  friend class ::WinAsm;
20959
 
  friend class ::WinDeclSpecs;
20960
 
  friend class ::WinMemberExplSpec;
20961
 
  friend class ::WinTypeKeywords;
20962
 
  friend class ::PragmaOnceUnitState;
20963
 
  friend class ::PragmaOnce;
20964
 
  friend class ::CCExprResolve;
20965
 
  friend class ::CExprResolve;
20966
 
 
20967
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20968
 
 
20969
 
public:
20970
 
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
20971
 
    CT_StaticCast (cst, o, t, c, e) {}
20972
 
  static const char *NodeId ();
20973
 
  const char *NodeName () const { return NodeId (); }
20974
 
   private:
20975
 
  typedef CT_ConstCast CCExprResolveExpr;
20976
 
 
20977
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20978
 
 public :
20979
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20980
 
  typedef CT_ConstCast CExprResolveExpr;
20981
 
 
20982
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20983
 
 public :
20984
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20985
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20986
 
};
20987
 
 
20988
 
 
20989
 
#line 20990 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
20990
 
} // closed Puma
20991
 
class WinIfExists;
20992
 
class WinImportHandler;
20993
 
class WinMacros;
20994
 
class CMatchSyntax;
20995
 
class ExtGnu;
20996
 
class ExtAC;
20997
 
class ExtACBuilderCoupling;
20998
 
class ExtACSyntaxCoupling;
20999
 
class ExtACTree;
21000
 
class ExtACKeywords;
21001
 
class WinAsm;
21002
 
class WinDeclSpecs;
21003
 
class WinMemberExplSpec;
21004
 
class WinTypeKeywords;
21005
 
class PragmaOnceUnitState;
21006
 
class PragmaOnce;
21007
 
class CCExprResolve;
21008
 
class CExprResolve;
21009
 
namespace Puma {
21010
 
 
21011
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21012
 
class CT_ReintCast : public CT_StaticCast {
21013
 
#line 21014 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21014
 
  friend class ::WinIfExists;
21015
 
  friend class ::WinImportHandler;
21016
 
  friend class ::WinMacros;
21017
 
  friend class ::CMatchSyntax;
21018
 
  friend class ::ExtGnu;
21019
 
  friend class ::ExtAC;
21020
 
  friend class ::ExtACBuilderCoupling;
21021
 
  friend class ::ExtACSyntaxCoupling;
21022
 
  friend class ::ExtACTree;
21023
 
  friend class ::ExtACKeywords;
21024
 
  friend class ::WinAsm;
21025
 
  friend class ::WinDeclSpecs;
21026
 
  friend class ::WinMemberExplSpec;
21027
 
  friend class ::WinTypeKeywords;
21028
 
  friend class ::PragmaOnceUnitState;
21029
 
  friend class ::PragmaOnce;
21030
 
  friend class ::CCExprResolve;
21031
 
  friend class ::CExprResolve;
21032
 
 
21033
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21034
 
 
21035
 
public:
21036
 
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
21037
 
    CT_StaticCast (cst, o, t, c, e) {}
21038
 
  static const char *NodeId ();
21039
 
  const char *NodeName () const { return NodeId (); }
21040
 
   private:
21041
 
  typedef CT_ReintCast CCExprResolveExpr;
21042
 
 
21043
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21044
 
 public :
21045
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
21046
 
  typedef CT_ReintCast CExprResolveExpr;
21047
 
 
21048
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21049
 
 public :
21050
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21051
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21052
 
};
21053
 
 
21054
 
 
21055
 
#line 21056 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21056
 
} // closed Puma
21057
 
class WinIfExists;
21058
 
class WinImportHandler;
21059
 
class WinMacros;
21060
 
class CMatchSyntax;
21061
 
class ExtGnu;
21062
 
class ExtAC;
21063
 
class ExtACBuilderCoupling;
21064
 
class ExtACSyntaxCoupling;
21065
 
class ExtACTree;
21066
 
class ExtACKeywords;
21067
 
class WinAsm;
21068
 
class WinDeclSpecs;
21069
 
class WinMemberExplSpec;
21070
 
class WinTypeKeywords;
21071
 
class PragmaOnceUnitState;
21072
 
class PragmaOnce;
21073
 
class CCExprResolve;
21074
 
class CExprResolve;
21075
 
namespace Puma {
21076
 
 
21077
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21078
 
class CT_DynamicCast : public CT_StaticCast {
21079
 
#line 21080 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21080
 
  friend class ::WinIfExists;
21081
 
  friend class ::WinImportHandler;
21082
 
  friend class ::WinMacros;
21083
 
  friend class ::CMatchSyntax;
21084
 
  friend class ::ExtGnu;
21085
 
  friend class ::ExtAC;
21086
 
  friend class ::ExtACBuilderCoupling;
21087
 
  friend class ::ExtACSyntaxCoupling;
21088
 
  friend class ::ExtACTree;
21089
 
  friend class ::ExtACKeywords;
21090
 
  friend class ::WinAsm;
21091
 
  friend class ::WinDeclSpecs;
21092
 
  friend class ::WinMemberExplSpec;
21093
 
  friend class ::WinTypeKeywords;
21094
 
  friend class ::PragmaOnceUnitState;
21095
 
  friend class ::PragmaOnce;
21096
 
  friend class ::CCExprResolve;
21097
 
  friend class ::CExprResolve;
21098
 
 
21099
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21100
 
 
21101
 
public:
21102
 
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
21103
 
    CT_StaticCast (cst, o, t, c, e) {}
21104
 
  static const char *NodeId ();
21105
 
  const char *NodeName () const { return NodeId (); }
21106
 
   private:
21107
 
  typedef CT_DynamicCast CCExprResolveExpr;
21108
 
 
21109
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21110
 
 public :
21111
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
21112
 
  typedef CT_DynamicCast CExprResolveExpr;
21113
 
 
21114
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21115
 
 public :
21116
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21117
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21118
 
};
21119
 
 
21120
 
 
21121
 
#line 21122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21122
 
} // closed Puma
21123
 
class WinIfExists;
21124
 
class WinImportHandler;
21125
 
class WinMacros;
21126
 
class CMatchSyntax;
21127
 
class ExtGnu;
21128
 
class ExtAC;
21129
 
class ExtACBuilderCoupling;
21130
 
class ExtACSyntaxCoupling;
21131
 
class ExtACTree;
21132
 
class ExtACKeywords;
21133
 
class WinAsm;
21134
 
class WinDeclSpecs;
21135
 
class WinMemberExplSpec;
21136
 
class WinTypeKeywords;
21137
 
class PragmaOnceUnitState;
21138
 
class PragmaOnce;
21139
 
class CCExprResolve;
21140
 
class CExprResolve;
21141
 
namespace Puma {
21142
 
 
21143
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21144
 
class CT_ImplicitCast : public CT_Expression {
21145
 
#line 21146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21146
 
  friend class ::WinIfExists;
21147
 
  friend class ::WinImportHandler;
21148
 
  friend class ::WinMacros;
21149
 
  friend class ::CMatchSyntax;
21150
 
  friend class ::ExtGnu;
21151
 
  friend class ::ExtAC;
21152
 
  friend class ::ExtACBuilderCoupling;
21153
 
  friend class ::ExtACSyntaxCoupling;
21154
 
  friend class ::ExtACTree;
21155
 
  friend class ::ExtACKeywords;
21156
 
  friend class ::WinAsm;
21157
 
  friend class ::WinDeclSpecs;
21158
 
  friend class ::WinMemberExplSpec;
21159
 
  friend class ::WinTypeKeywords;
21160
 
  friend class ::PragmaOnceUnitState;
21161
 
  friend class ::PragmaOnce;
21162
 
  friend class ::CCExprResolve;
21163
 
  friend class ::CExprResolve;
21164
 
 
21165
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21166
 
 
21167
 
  CTree *_expr; // casted expression
21168
 
 
21169
 
public:
21170
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
21171
 
  static const char *NodeId ();
21172
 
  const char *NodeName () const { return NodeId (); }
21173
 
  int Sons () const { return 1; }
21174
 
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
21175
 
  CTree *Expr () const { return _expr; }
21176
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
21177
 
   { if (old_son == _expr) _expr = new_son; }
21178
 
   private:
21179
 
  typedef CT_ImplicitCast CCExprResolveExpr;
21180
 
 
21181
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21182
 
 public :
21183
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
21184
 
  typedef CT_ImplicitCast CExprResolveExpr;
21185
 
 
21186
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21187
 
 public :
21188
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21189
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21190
 
};
21191
 
 
21192
 
 
21193
 
#line 21194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21194
 
} // closed Puma
21195
 
class WinIfExists;
21196
 
class WinImportHandler;
21197
 
class WinMacros;
21198
 
class CMatchSyntax;
21199
 
class ExtGnu;
21200
 
class ExtAC;
21201
 
class ExtACBuilderCoupling;
21202
 
class ExtACSyntaxCoupling;
21203
 
class ExtACTree;
21204
 
class ExtACKeywords;
21205
 
class WinAsm;
21206
 
class WinDeclSpecs;
21207
 
class WinMemberExplSpec;
21208
 
class WinTypeKeywords;
21209
 
class PragmaOnceUnitState;
21210
 
class PragmaOnce;
21211
 
class CCExprResolve;
21212
 
class CExprResolve;
21213
 
namespace Puma {
21214
 
 
21215
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21216
 
class CT_TypeidExpr : public CT_Expression {
21217
 
#line 21218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21218
 
  friend class ::WinIfExists;
21219
 
  friend class ::WinImportHandler;
21220
 
  friend class ::WinMacros;
21221
 
  friend class ::CMatchSyntax;
21222
 
  friend class ::ExtGnu;
21223
 
  friend class ::ExtAC;
21224
 
  friend class ::ExtACBuilderCoupling;
21225
 
  friend class ::ExtACSyntaxCoupling;
21226
 
  friend class ::ExtACTree;
21227
 
  friend class ::ExtACKeywords;
21228
 
  friend class ::WinAsm;
21229
 
  friend class ::WinDeclSpecs;
21230
 
  friend class ::WinMemberExplSpec;
21231
 
  friend class ::WinTypeKeywords;
21232
 
  friend class ::PragmaOnceUnitState;
21233
 
  friend class ::PragmaOnce;
21234
 
  friend class ::CCExprResolve;
21235
 
  friend class ::CExprResolve;
21236
 
 
21237
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21238
 
 
21239
 
  CTree *sons[4]; // typeid, open, type_id/expr, close
21240
 
 
21241
 
public:
21242
 
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
21243
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
21244
 
  }
21245
 
  static const char *NodeId ();
21246
 
  const char *NodeName () const { return NodeId (); }
21247
 
  int Sons () const { return 4; }
21248
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
21249
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21250
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
21251
 
  }
21252
 
  CTree *Arg () const { return sons[2]; }
21253
 
   private:
21254
 
  typedef CT_TypeidExpr CCExprResolveExpr;
21255
 
 
21256
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21257
 
 public :
21258
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
21259
 
  typedef CT_TypeidExpr CExprResolveExpr;
21260
 
 
21261
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21262
 
 public :
21263
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21264
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21265
 
};
21266
 
 
21267
 
 
21268
 
#line 21269 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21269
 
} // closed Puma
21270
 
class WinIfExists;
21271
 
class WinImportHandler;
21272
 
class WinMacros;
21273
 
class CMatchSyntax;
21274
 
class ExtGnu;
21275
 
class ExtAC;
21276
 
class ExtACBuilderCoupling;
21277
 
class ExtACSyntaxCoupling;
21278
 
class ExtACTree;
21279
 
class ExtACKeywords;
21280
 
class WinAsm;
21281
 
class WinDeclSpecs;
21282
 
class WinMemberExplSpec;
21283
 
class WinTypeKeywords;
21284
 
class PragmaOnceUnitState;
21285
 
class PragmaOnce;
21286
 
class CCExprResolve;
21287
 
class CExprResolve;
21288
 
namespace Puma {
21289
 
 
21290
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21291
 
class CT_SizeofExpr : public CT_Expression {
21292
 
#line 21293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21293
 
  friend class ::WinIfExists;
21294
 
  friend class ::WinImportHandler;
21295
 
  friend class ::WinMacros;
21296
 
  friend class ::CMatchSyntax;
21297
 
  friend class ::ExtGnu;
21298
 
  friend class ::ExtAC;
21299
 
  friend class ::ExtACBuilderCoupling;
21300
 
  friend class ::ExtACSyntaxCoupling;
21301
 
  friend class ::ExtACTree;
21302
 
  friend class ::ExtACKeywords;
21303
 
  friend class ::WinAsm;
21304
 
  friend class ::WinDeclSpecs;
21305
 
  friend class ::WinMemberExplSpec;
21306
 
  friend class ::WinTypeKeywords;
21307
 
  friend class ::PragmaOnceUnitState;
21308
 
  friend class ::PragmaOnce;
21309
 
  friend class ::CCExprResolve;
21310
 
  friend class ::CExprResolve;
21311
 
 
21312
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21313
 
 
21314
 
  CTree *sons[5]; // key, open, type, close, expr
21315
 
 
21316
 
public:
21317
 
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
21318
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
21319
 
  }
21320
 
  CT_SizeofExpr (CTree *k, CTree *e) {
21321
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
21322
 
  }
21323
 
  static const char *NodeId ();
21324
 
  const char *NodeName () const { return NodeId (); }
21325
 
  int Sons () const { return CTree::Sons (sons, 5); }
21326
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
21327
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21328
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
21329
 
  }
21330
 
  CTree *Expr () const { return sons[4]; }
21331
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
21332
 
   private:
21333
 
  typedef CT_SizeofExpr CCExprResolveExpr;
21334
 
 
21335
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21336
 
 public :
21337
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
21338
 
  typedef CT_SizeofExpr CExprResolveExpr;
21339
 
 
21340
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21341
 
 public :
21342
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21343
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21344
 
};
21345
 
 
21346
 
 
21347
 
#line 21348 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21348
 
} // closed Puma
21349
 
class WinIfExists;
21350
 
class WinImportHandler;
21351
 
class WinMacros;
21352
 
class CMatchSyntax;
21353
 
class ExtGnu;
21354
 
class ExtAC;
21355
 
class ExtACBuilderCoupling;
21356
 
class ExtACSyntaxCoupling;
21357
 
class ExtACTree;
21358
 
class ExtACKeywords;
21359
 
class WinAsm;
21360
 
class WinDeclSpecs;
21361
 
class WinMemberExplSpec;
21362
 
class WinTypeKeywords;
21363
 
class PragmaOnceUnitState;
21364
 
class PragmaOnce;
21365
 
class CCExprResolve;
21366
 
class CExprResolve;
21367
 
namespace Puma {
21368
 
 
21369
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21370
 
class CT_IndexDesignator : public CT_Expression {
21371
 
#line 21372 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21372
 
  friend class ::WinIfExists;
21373
 
  friend class ::WinImportHandler;
21374
 
  friend class ::WinMacros;
21375
 
  friend class ::CMatchSyntax;
21376
 
  friend class ::ExtGnu;
21377
 
  friend class ::ExtAC;
21378
 
  friend class ::ExtACBuilderCoupling;
21379
 
  friend class ::ExtACSyntaxCoupling;
21380
 
  friend class ::ExtACTree;
21381
 
  friend class ::ExtACKeywords;
21382
 
  friend class ::WinAsm;
21383
 
  friend class ::WinDeclSpecs;
21384
 
  friend class ::WinMemberExplSpec;
21385
 
  friend class ::WinTypeKeywords;
21386
 
  friend class ::PragmaOnceUnitState;
21387
 
  friend class ::PragmaOnce;
21388
 
  friend class ::CCExprResolve;
21389
 
  friend class ::CExprResolve;
21390
 
 
21391
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21392
 
 
21393
 
  CTree *sons[3]; // open, index, close
21394
 
 
21395
 
public:
21396
 
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
21397
 
    sons[0] = o; sons[1] = i; sons[2] = c;
21398
 
  }
21399
 
  static const char *NodeId ();
21400
 
  const char *NodeName () const { return NodeId (); }
21401
 
  int Sons () const { return 3; }
21402
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
21403
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21404
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
21405
 
  }
21406
 
   private:
21407
 
  typedef CT_IndexDesignator CCExprResolveExpr;
21408
 
 
21409
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21410
 
 public :
21411
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
21412
 
  typedef CT_IndexDesignator CExprResolveExpr;
21413
 
 
21414
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21415
 
 public :
21416
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21417
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21418
 
};
21419
 
 
21420
 
 
21421
 
#line 21422 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21422
 
} // closed Puma
21423
 
class WinIfExists;
21424
 
class WinImportHandler;
21425
 
class WinMacros;
21426
 
class CMatchSyntax;
21427
 
class ExtGnu;
21428
 
class ExtAC;
21429
 
class ExtACBuilderCoupling;
21430
 
class ExtACSyntaxCoupling;
21431
 
class ExtACTree;
21432
 
class ExtACKeywords;
21433
 
class WinAsm;
21434
 
class WinDeclSpecs;
21435
 
class WinMemberExplSpec;
21436
 
class WinTypeKeywords;
21437
 
class PragmaOnceUnitState;
21438
 
class PragmaOnce;
21439
 
class CCExprResolve;
21440
 
class CExprResolve;
21441
 
namespace Puma {
21442
 
 
21443
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21444
 
class CT_MembDesignator : public CT_Expression {
21445
 
#line 21446 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21446
 
  friend class ::WinIfExists;
21447
 
  friend class ::WinImportHandler;
21448
 
  friend class ::WinMacros;
21449
 
  friend class ::CMatchSyntax;
21450
 
  friend class ::ExtGnu;
21451
 
  friend class ::ExtAC;
21452
 
  friend class ::ExtACBuilderCoupling;
21453
 
  friend class ::ExtACSyntaxCoupling;
21454
 
  friend class ::ExtACTree;
21455
 
  friend class ::ExtACKeywords;
21456
 
  friend class ::WinAsm;
21457
 
  friend class ::WinDeclSpecs;
21458
 
  friend class ::WinMemberExplSpec;
21459
 
  friend class ::WinTypeKeywords;
21460
 
  friend class ::PragmaOnceUnitState;
21461
 
  friend class ::PragmaOnce;
21462
 
  friend class ::CCExprResolve;
21463
 
  friend class ::CExprResolve;
21464
 
 
21465
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21466
 
 
21467
 
  CTree *sons[2]; // dot, member
21468
 
 
21469
 
public:
21470
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
21471
 
  static const char *NodeId ();
21472
 
  const char *NodeName () const { return NodeId (); }
21473
 
  int Sons () const { return 2; }
21474
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
21475
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21476
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
21477
 
  }
21478
 
   private:
21479
 
  typedef CT_MembDesignator CCExprResolveExpr;
21480
 
 
21481
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21482
 
 public :
21483
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
21484
 
  typedef CT_MembDesignator CExprResolveExpr;
21485
 
 
21486
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21487
 
 public :
21488
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21489
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21490
 
};
21491
 
 
21492
 
 
21493
 
#line 21494 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21494
 
} // closed Puma
21495
 
class WinIfExists;
21496
 
class WinImportHandler;
21497
 
class WinMacros;
21498
 
class CMatchSyntax;
21499
 
class ExtGnu;
21500
 
class ExtAC;
21501
 
class ExtACBuilderCoupling;
21502
 
class ExtACSyntaxCoupling;
21503
 
class ExtACTree;
21504
 
class ExtACKeywords;
21505
 
class WinAsm;
21506
 
class WinDeclSpecs;
21507
 
class WinMemberExplSpec;
21508
 
class WinTypeKeywords;
21509
 
class PragmaOnceUnitState;
21510
 
class PragmaOnce;
21511
 
class CCExprResolve;
21512
 
class CExprResolve;
21513
 
namespace Puma {
21514
 
 
21515
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21516
 
class CT_DesignatorSeq : public CT_List, public CSemValue {
21517
 
#line 21518 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21518
 
  friend class ::WinIfExists;
21519
 
  friend class ::WinImportHandler;
21520
 
  friend class ::WinMacros;
21521
 
  friend class ::CMatchSyntax;
21522
 
  friend class ::ExtGnu;
21523
 
  friend class ::ExtAC;
21524
 
  friend class ::ExtACBuilderCoupling;
21525
 
  friend class ::ExtACSyntaxCoupling;
21526
 
  friend class ::ExtACTree;
21527
 
  friend class ::ExtACKeywords;
21528
 
  friend class ::WinAsm;
21529
 
  friend class ::WinDeclSpecs;
21530
 
  friend class ::WinMemberExplSpec;
21531
 
  friend class ::WinTypeKeywords;
21532
 
  friend class ::PragmaOnceUnitState;
21533
 
  friend class ::PragmaOnce;
21534
 
  friend class ::CCExprResolve;
21535
 
  friend class ::CExprResolve;
21536
 
 
21537
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21538
 
 
21539
 
public:
21540
 
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
21541
 
  static const char *NodeId ();
21542
 
  const char *NodeName () const { return NodeId (); }
21543
 
 
21544
 
  CTypeInfo *Type () const { return type; }
21545
 
  CExprValue *Value () const { return value; }
21546
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
21547
 
};
21548
 
 
21549
 
/*****************************************************************************/
21550
 
/*                                                                           */
21551
 
/*                         Declaration specifiers                            */
21552
 
/*                                                                           */
21553
 
/*****************************************************************************/
21554
 
 
21555
 
 
21556
 
#line 21557 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21557
 
} // closed Puma
21558
 
class WinIfExists;
21559
 
class WinImportHandler;
21560
 
class WinMacros;
21561
 
class CMatchSyntax;
21562
 
class ExtGnu;
21563
 
class ExtAC;
21564
 
class ExtACBuilderCoupling;
21565
 
class ExtACSyntaxCoupling;
21566
 
class ExtACTree;
21567
 
class ExtACKeywords;
21568
 
class WinAsm;
21569
 
class WinDeclSpecs;
21570
 
class WinMemberExplSpec;
21571
 
class WinTypeKeywords;
21572
 
class PragmaOnceUnitState;
21573
 
class PragmaOnce;
21574
 
class CCExprResolve;
21575
 
class CExprResolve;
21576
 
namespace Puma {
21577
 
 
21578
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21579
 
class CT_DeclSpec : public CTree {
21580
 
#line 21581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21581
 
  friend class ::WinIfExists;
21582
 
  friend class ::WinImportHandler;
21583
 
  friend class ::WinMacros;
21584
 
  friend class ::CMatchSyntax;
21585
 
  friend class ::ExtGnu;
21586
 
  friend class ::ExtAC;
21587
 
  friend class ::ExtACBuilderCoupling;
21588
 
  friend class ::ExtACSyntaxCoupling;
21589
 
  friend class ::ExtACTree;
21590
 
  friend class ::ExtACKeywords;
21591
 
  friend class ::WinAsm;
21592
 
  friend class ::WinDeclSpecs;
21593
 
  friend class ::WinMemberExplSpec;
21594
 
  friend class ::WinTypeKeywords;
21595
 
  friend class ::PragmaOnceUnitState;
21596
 
  friend class ::PragmaOnce;
21597
 
  friend class ::CCExprResolve;
21598
 
  friend class ::CExprResolve;
21599
 
 
21600
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21601
 
 
21602
 
protected:
21603
 
  CT_DeclSpec () {}
21604
 
};
21605
 
 
21606
 
 
21607
 
#line 21608 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21608
 
} // closed Puma
21609
 
class WinIfExists;
21610
 
class WinImportHandler;
21611
 
class WinMacros;
21612
 
class CMatchSyntax;
21613
 
class ExtGnu;
21614
 
class ExtAC;
21615
 
class ExtACBuilderCoupling;
21616
 
class ExtACSyntaxCoupling;
21617
 
class ExtACTree;
21618
 
class ExtACKeywords;
21619
 
class WinAsm;
21620
 
class WinDeclSpecs;
21621
 
class WinMemberExplSpec;
21622
 
class WinTypeKeywords;
21623
 
class PragmaOnceUnitState;
21624
 
class PragmaOnce;
21625
 
class CCExprResolve;
21626
 
class CExprResolve;
21627
 
namespace Puma {
21628
 
 
21629
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21630
 
class CT_PrimDeclSpec : public CT_DeclSpec {
21631
 
#line 21632 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21632
 
  friend class ::WinIfExists;
21633
 
  friend class ::WinImportHandler;
21634
 
  friend class ::WinMacros;
21635
 
  friend class ::CMatchSyntax;
21636
 
  friend class ::ExtGnu;
21637
 
  friend class ::ExtAC;
21638
 
  friend class ::ExtACBuilderCoupling;
21639
 
  friend class ::ExtACSyntaxCoupling;
21640
 
  friend class ::ExtACTree;
21641
 
  friend class ::ExtACKeywords;
21642
 
  friend class ::WinAsm;
21643
 
  friend class ::WinDeclSpecs;
21644
 
  friend class ::WinMemberExplSpec;
21645
 
  friend class ::WinTypeKeywords;
21646
 
  friend class ::PragmaOnceUnitState;
21647
 
  friend class ::PragmaOnce;
21648
 
  friend class ::CCExprResolve;
21649
 
  friend class ::CExprResolve;
21650
 
 
21651
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21652
 
 
21653
 
public:
21654
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
21655
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
21656
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
21657
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
21658
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
21659
 
              // AspectC++ specific type specifier
21660
 
              PDS_UNKNOWN_T,
21661
 
              // Win specific declaration specifiers
21662
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
21663
 
              PDS_UNKNOWN, PDS_NUM };
21664
 
 
21665
 
private:
21666
 
  Type _type;
21667
 
  CT_Token *_token;
21668
 
 
21669
 
  void determine_type ();
21670
 
 
21671
 
public:
21672
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
21673
 
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
21674
 
  static const char *NodeId ();
21675
 
  const char *NodeName () const { return NodeId (); }
21676
 
  int Sons () const { return _token ? 1 : 0; }
21677
 
  CTree *Son (int n) const 
21678
 
   { return (n == 0) ? _token : (CTree*)0; }
21679
 
  const char *SpecText () const 
21680
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
21681
 
  Type SpecType () const { return _type; }
21682
 
  static const int NumTypes = PDS_NUM;
21683
 
};
21684
 
 
21685
 
 
21686
 
#line 21687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21687
 
} // closed Puma
21688
 
class WinIfExists;
21689
 
class WinImportHandler;
21690
 
class WinMacros;
21691
 
class CMatchSyntax;
21692
 
class ExtGnu;
21693
 
class ExtAC;
21694
 
class ExtACBuilderCoupling;
21695
 
class ExtACSyntaxCoupling;
21696
 
class ExtACTree;
21697
 
class ExtACKeywords;
21698
 
class WinAsm;
21699
 
class WinDeclSpecs;
21700
 
class WinMemberExplSpec;
21701
 
class WinTypeKeywords;
21702
 
class PragmaOnceUnitState;
21703
 
class PragmaOnce;
21704
 
class CCExprResolve;
21705
 
class CExprResolve;
21706
 
namespace Puma {
21707
 
 
21708
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21709
 
class CT_NamedType : public CT_DeclSpec, public CSemObject {
21710
 
#line 21711 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21711
 
  friend class ::WinIfExists;
21712
 
  friend class ::WinImportHandler;
21713
 
  friend class ::WinMacros;
21714
 
  friend class ::CMatchSyntax;
21715
 
  friend class ::ExtGnu;
21716
 
  friend class ::ExtAC;
21717
 
  friend class ::ExtACBuilderCoupling;
21718
 
  friend class ::ExtACSyntaxCoupling;
21719
 
  friend class ::ExtACTree;
21720
 
  friend class ::ExtACKeywords;
21721
 
  friend class ::WinAsm;
21722
 
  friend class ::WinDeclSpecs;
21723
 
  friend class ::WinMemberExplSpec;
21724
 
  friend class ::WinTypeKeywords;
21725
 
  friend class ::PragmaOnceUnitState;
21726
 
  friend class ::PragmaOnce;
21727
 
  friend class ::CCExprResolve;
21728
 
  friend class ::CExprResolve;
21729
 
 
21730
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21731
 
 
21732
 
  CTree *sons[2]; // declspecs, declarator
21733
 
 
21734
 
public:
21735
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
21736
 
  static const char *NodeId ();
21737
 
  const char *NodeName () const { return NodeId (); }
21738
 
  int Sons () const { return CTree::Sons (sons, 2); }
21739
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
21740
 
  CTree *Declarator () const { return sons[1]; }
21741
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21742
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
21743
 
  }
21744
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
21745
 
};
21746
 
      
21747
 
 
21748
 
#line 21749 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21749
 
} // closed Puma
21750
 
class WinIfExists;
21751
 
class WinImportHandler;
21752
 
class WinMacros;
21753
 
class CMatchSyntax;
21754
 
class ExtGnu;
21755
 
class ExtAC;
21756
 
class ExtACBuilderCoupling;
21757
 
class ExtACSyntaxCoupling;
21758
 
class ExtACTree;
21759
 
class ExtACKeywords;
21760
 
class WinAsm;
21761
 
class WinDeclSpecs;
21762
 
class WinMemberExplSpec;
21763
 
class WinTypeKeywords;
21764
 
class PragmaOnceUnitState;
21765
 
class PragmaOnce;
21766
 
class CCExprResolve;
21767
 
class CExprResolve;
21768
 
namespace Puma {
21769
 
 
21770
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21771
 
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
21772
 
#line 21773 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21773
 
  friend class ::WinIfExists;
21774
 
  friend class ::WinImportHandler;
21775
 
  friend class ::WinMacros;
21776
 
  friend class ::CMatchSyntax;
21777
 
  friend class ::ExtGnu;
21778
 
  friend class ::ExtAC;
21779
 
  friend class ::ExtACBuilderCoupling;
21780
 
  friend class ::ExtACSyntaxCoupling;
21781
 
  friend class ::ExtACTree;
21782
 
  friend class ::ExtACKeywords;
21783
 
  friend class ::WinAsm;
21784
 
  friend class ::WinDeclSpecs;
21785
 
  friend class ::WinMemberExplSpec;
21786
 
  friend class ::WinTypeKeywords;
21787
 
  friend class ::PragmaOnceUnitState;
21788
 
  friend class ::PragmaOnce;
21789
 
  friend class ::CCExprResolve;
21790
 
  friend class ::CExprResolve;
21791
 
 
21792
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21793
 
 
21794
 
  CTree *sons[2]; // key, name
21795
 
  
21796
 
public:
21797
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
21798
 
  static const char *NodeId ();
21799
 
  const char *NodeName () const { return NodeId (); }
21800
 
  int Sons () const { return 2; }
21801
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
21802
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
21803
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
21804
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21805
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
21806
 
  }
21807
 
};
21808
 
 
21809
 
 
21810
 
#line 21811 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21811
 
} // closed Puma
21812
 
class WinIfExists;
21813
 
class WinImportHandler;
21814
 
class WinMacros;
21815
 
class CMatchSyntax;
21816
 
class ExtGnu;
21817
 
class ExtAC;
21818
 
class ExtACBuilderCoupling;
21819
 
class ExtACSyntaxCoupling;
21820
 
class ExtACTree;
21821
 
class ExtACKeywords;
21822
 
class WinAsm;
21823
 
class WinDeclSpecs;
21824
 
class WinMemberExplSpec;
21825
 
class WinTypeKeywords;
21826
 
class PragmaOnceUnitState;
21827
 
class PragmaOnce;
21828
 
class CCExprResolve;
21829
 
class CExprResolve;
21830
 
namespace Puma {
21831
 
 
21832
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21833
 
class CT_UnionSpec : public CT_ClassSpec {
21834
 
#line 21835 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21835
 
  friend class ::WinIfExists;
21836
 
  friend class ::WinImportHandler;
21837
 
  friend class ::WinMacros;
21838
 
  friend class ::CMatchSyntax;
21839
 
  friend class ::ExtGnu;
21840
 
  friend class ::ExtAC;
21841
 
  friend class ::ExtACBuilderCoupling;
21842
 
  friend class ::ExtACSyntaxCoupling;
21843
 
  friend class ::ExtACTree;
21844
 
  friend class ::ExtACKeywords;
21845
 
  friend class ::WinAsm;
21846
 
  friend class ::WinDeclSpecs;
21847
 
  friend class ::WinMemberExplSpec;
21848
 
  friend class ::WinTypeKeywords;
21849
 
  friend class ::PragmaOnceUnitState;
21850
 
  friend class ::PragmaOnce;
21851
 
  friend class ::CCExprResolve;
21852
 
  friend class ::CExprResolve;
21853
 
 
21854
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21855
 
 
21856
 
public:
21857
 
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
21858
 
  static const char *NodeId ();
21859
 
  const char *NodeName () const { return NodeId (); }
21860
 
};
21861
 
 
21862
 
 
21863
 
#line 21864 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21864
 
} // closed Puma
21865
 
class WinIfExists;
21866
 
class WinImportHandler;
21867
 
class WinMacros;
21868
 
class CMatchSyntax;
21869
 
class ExtGnu;
21870
 
class ExtAC;
21871
 
class ExtACBuilderCoupling;
21872
 
class ExtACSyntaxCoupling;
21873
 
class ExtACTree;
21874
 
class ExtACKeywords;
21875
 
class WinAsm;
21876
 
class WinDeclSpecs;
21877
 
class WinMemberExplSpec;
21878
 
class WinTypeKeywords;
21879
 
class PragmaOnceUnitState;
21880
 
class PragmaOnce;
21881
 
class CCExprResolve;
21882
 
class CExprResolve;
21883
 
namespace Puma {
21884
 
 
21885
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21886
 
class CT_EnumSpec : public CT_ClassSpec {
21887
 
#line 21888 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21888
 
  friend class ::WinIfExists;
21889
 
  friend class ::WinImportHandler;
21890
 
  friend class ::WinMacros;
21891
 
  friend class ::CMatchSyntax;
21892
 
  friend class ::ExtGnu;
21893
 
  friend class ::ExtAC;
21894
 
  friend class ::ExtACBuilderCoupling;
21895
 
  friend class ::ExtACSyntaxCoupling;
21896
 
  friend class ::ExtACTree;
21897
 
  friend class ::ExtACKeywords;
21898
 
  friend class ::WinAsm;
21899
 
  friend class ::WinDeclSpecs;
21900
 
  friend class ::WinMemberExplSpec;
21901
 
  friend class ::WinTypeKeywords;
21902
 
  friend class ::PragmaOnceUnitState;
21903
 
  friend class ::PragmaOnce;
21904
 
  friend class ::CCExprResolve;
21905
 
  friend class ::CExprResolve;
21906
 
 
21907
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21908
 
 
21909
 
public:
21910
 
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
21911
 
  static const char *NodeId ();
21912
 
  const char *NodeName () const { return NodeId (); }
21913
 
};
21914
 
 
21915
 
 
21916
 
#line 21917 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21917
 
} // closed Puma
21918
 
class WinIfExists;
21919
 
class WinImportHandler;
21920
 
class WinMacros;
21921
 
class CMatchSyntax;
21922
 
class ExtGnu;
21923
 
class ExtAC;
21924
 
class ExtACBuilderCoupling;
21925
 
class ExtACSyntaxCoupling;
21926
 
class ExtACTree;
21927
 
class ExtACKeywords;
21928
 
class WinAsm;
21929
 
class WinDeclSpecs;
21930
 
class WinMemberExplSpec;
21931
 
class WinTypeKeywords;
21932
 
class PragmaOnceUnitState;
21933
 
class PragmaOnce;
21934
 
class CCExprResolve;
21935
 
class CExprResolve;
21936
 
namespace Puma {
21937
 
 
21938
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21939
 
class CT_ExceptionSpec : public CT_DeclSpec {
21940
 
#line 21941 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21941
 
  friend class ::WinIfExists;
21942
 
  friend class ::WinImportHandler;
21943
 
  friend class ::WinMacros;
21944
 
  friend class ::CMatchSyntax;
21945
 
  friend class ::ExtGnu;
21946
 
  friend class ::ExtAC;
21947
 
  friend class ::ExtACBuilderCoupling;
21948
 
  friend class ::ExtACSyntaxCoupling;
21949
 
  friend class ::ExtACTree;
21950
 
  friend class ::ExtACKeywords;
21951
 
  friend class ::WinAsm;
21952
 
  friend class ::WinDeclSpecs;
21953
 
  friend class ::WinMemberExplSpec;
21954
 
  friend class ::WinTypeKeywords;
21955
 
  friend class ::PragmaOnceUnitState;
21956
 
  friend class ::PragmaOnce;
21957
 
  friend class ::CCExprResolve;
21958
 
  friend class ::CExprResolve;
21959
 
 
21960
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21961
 
 
21962
 
  CTree *sons[2]; // throw, type_id_list
21963
 
  
21964
 
public:
21965
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
21966
 
  static const char *NodeId ();
21967
 
  const char *NodeName () const { return NodeId (); }
21968
 
  int Sons () const { return 2; }
21969
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
21970
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
21971
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21972
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
21973
 
  }
21974
 
};
21975
 
 
21976
 
/*****************************************************************************/
21977
 
/*                                                                           */
21978
 
/*                              Declarations                                 */
21979
 
/*                                                                           */
21980
 
/*****************************************************************************/
21981
 
 
21982
 
 
21983
 
#line 21984 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
21984
 
} // closed Puma
21985
 
class WinIfExists;
21986
 
class WinImportHandler;
21987
 
class WinMacros;
21988
 
class CMatchSyntax;
21989
 
class ExtGnu;
21990
 
class ExtAC;
21991
 
class ExtACBuilderCoupling;
21992
 
class ExtACSyntaxCoupling;
21993
 
class ExtACTree;
21994
 
class ExtACKeywords;
21995
 
class WinAsm;
21996
 
class WinDeclSpecs;
21997
 
class WinMemberExplSpec;
21998
 
class WinTypeKeywords;
21999
 
class PragmaOnceUnitState;
22000
 
class PragmaOnce;
22001
 
class CCExprResolve;
22002
 
class CExprResolve;
22003
 
namespace Puma {
22004
 
 
22005
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22006
 
class CT_Decl : public CTree {
22007
 
#line 22008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22008
 
  friend class ::WinIfExists;
22009
 
  friend class ::WinImportHandler;
22010
 
  friend class ::WinMacros;
22011
 
  friend class ::CMatchSyntax;
22012
 
  friend class ::ExtGnu;
22013
 
  friend class ::ExtAC;
22014
 
  friend class ::ExtACBuilderCoupling;
22015
 
  friend class ::ExtACSyntaxCoupling;
22016
 
  friend class ::ExtACTree;
22017
 
  friend class ::ExtACKeywords;
22018
 
  friend class ::WinAsm;
22019
 
  friend class ::WinDeclSpecs;
22020
 
  friend class ::WinMemberExplSpec;
22021
 
  friend class ::WinTypeKeywords;
22022
 
  friend class ::PragmaOnceUnitState;
22023
 
  friend class ::PragmaOnce;
22024
 
  friend class ::CCExprResolve;
22025
 
  friend class ::CExprResolve;
22026
 
 
22027
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22028
 
 
22029
 
  CT_LinkageSpec *_linkage;
22030
 
protected:
22031
 
  CT_Decl () : _linkage (0) {}
22032
 
public:
22033
 
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
22034
 
  CT_LinkageSpec *Linkage () const { return _linkage; }
22035
 
};
22036
 
 
22037
 
 
22038
 
#line 22039 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22039
 
} // closed Puma
22040
 
class WinIfExists;
22041
 
class WinImportHandler;
22042
 
class WinMacros;
22043
 
class CMatchSyntax;
22044
 
class ExtGnu;
22045
 
class ExtAC;
22046
 
class ExtACBuilderCoupling;
22047
 
class ExtACSyntaxCoupling;
22048
 
class ExtACTree;
22049
 
class ExtACKeywords;
22050
 
class WinAsm;
22051
 
class WinDeclSpecs;
22052
 
class WinMemberExplSpec;
22053
 
class WinTypeKeywords;
22054
 
class PragmaOnceUnitState;
22055
 
class PragmaOnce;
22056
 
class CCExprResolve;
22057
 
class CExprResolve;
22058
 
namespace Puma {
22059
 
 
22060
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22061
 
class CT_Program : public CT_DeclList, public CSemScope {
22062
 
#line 22063 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22063
 
  friend class ::WinIfExists;
22064
 
  friend class ::WinImportHandler;
22065
 
  friend class ::WinMacros;
22066
 
  friend class ::CMatchSyntax;
22067
 
  friend class ::ExtGnu;
22068
 
  friend class ::ExtAC;
22069
 
  friend class ::ExtACBuilderCoupling;
22070
 
  friend class ::ExtACSyntaxCoupling;
22071
 
  friend class ::ExtACTree;
22072
 
  friend class ::ExtACKeywords;
22073
 
  friend class ::WinAsm;
22074
 
  friend class ::WinDeclSpecs;
22075
 
  friend class ::WinMemberExplSpec;
22076
 
  friend class ::WinTypeKeywords;
22077
 
  friend class ::PragmaOnceUnitState;
22078
 
  friend class ::PragmaOnce;
22079
 
  friend class ::CCExprResolve;
22080
 
  friend class ::CExprResolve;
22081
 
 
22082
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22083
 
 
22084
 
public:
22085
 
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
22086
 
  static const char *NodeId ();
22087
 
  const char *NodeName () const { return NodeId (); }
22088
 
};
22089
 
   
22090
 
 
22091
 
#line 22092 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22092
 
} // closed Puma
22093
 
class WinIfExists;
22094
 
class WinImportHandler;
22095
 
class WinMacros;
22096
 
class CMatchSyntax;
22097
 
class ExtGnu;
22098
 
class ExtAC;
22099
 
class ExtACBuilderCoupling;
22100
 
class ExtACSyntaxCoupling;
22101
 
class ExtACTree;
22102
 
class ExtACKeywords;
22103
 
class WinAsm;
22104
 
class WinDeclSpecs;
22105
 
class WinMemberExplSpec;
22106
 
class WinTypeKeywords;
22107
 
class PragmaOnceUnitState;
22108
 
class PragmaOnce;
22109
 
class CCExprResolve;
22110
 
class CExprResolve;
22111
 
namespace Puma {
22112
 
 
22113
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22114
 
class CT_ObjDecl : public CT_Decl {
22115
 
#line 22116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22116
 
  friend class ::WinIfExists;
22117
 
  friend class ::WinImportHandler;
22118
 
  friend class ::WinMacros;
22119
 
  friend class ::CMatchSyntax;
22120
 
  friend class ::ExtGnu;
22121
 
  friend class ::ExtAC;
22122
 
  friend class ::ExtACBuilderCoupling;
22123
 
  friend class ::ExtACSyntaxCoupling;
22124
 
  friend class ::ExtACTree;
22125
 
  friend class ::ExtACKeywords;
22126
 
  friend class ::WinAsm;
22127
 
  friend class ::WinDeclSpecs;
22128
 
  friend class ::WinMemberExplSpec;
22129
 
  friend class ::WinTypeKeywords;
22130
 
  friend class ::PragmaOnceUnitState;
22131
 
  friend class ::PragmaOnce;
22132
 
  friend class ::CCExprResolve;
22133
 
  friend class ::CExprResolve;
22134
 
 
22135
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22136
 
 
22137
 
  CTree *sons[3]; // declspecs, declarators, colon
22138
 
 
22139
 
public:
22140
 
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
22141
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
22142
 
  }
22143
 
  static const char *NodeId ();
22144
 
  const char *NodeName () const { return NodeId (); }
22145
 
  int Sons () const { return 3; }
22146
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
22147
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
22148
 
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
22149
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22150
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
22151
 
  }
22152
 
};
22153
 
 
22154
 
 
22155
 
#line 22156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22156
 
} // closed Puma
22157
 
class WinIfExists;
22158
 
class WinImportHandler;
22159
 
class WinMacros;
22160
 
class CMatchSyntax;
22161
 
class ExtGnu;
22162
 
class ExtAC;
22163
 
class ExtACBuilderCoupling;
22164
 
class ExtACSyntaxCoupling;
22165
 
class ExtACTree;
22166
 
class ExtACKeywords;
22167
 
class WinAsm;
22168
 
class WinDeclSpecs;
22169
 
class WinMemberExplSpec;
22170
 
class WinTypeKeywords;
22171
 
class PragmaOnceUnitState;
22172
 
class PragmaOnce;
22173
 
class CCExprResolve;
22174
 
class CExprResolve;
22175
 
namespace Puma {
22176
 
 
22177
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22178
 
class CT_TemplateDecl : public CT_Decl, public CSemScope {
22179
 
#line 22180 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22180
 
  friend class ::WinIfExists;
22181
 
  friend class ::WinImportHandler;
22182
 
  friend class ::WinMacros;
22183
 
  friend class ::CMatchSyntax;
22184
 
  friend class ::ExtGnu;
22185
 
  friend class ::ExtAC;
22186
 
  friend class ::ExtACBuilderCoupling;
22187
 
  friend class ::ExtACSyntaxCoupling;
22188
 
  friend class ::ExtACTree;
22189
 
  friend class ::ExtACKeywords;
22190
 
  friend class ::WinAsm;
22191
 
  friend class ::WinDeclSpecs;
22192
 
  friend class ::WinMemberExplSpec;
22193
 
  friend class ::WinTypeKeywords;
22194
 
  friend class ::PragmaOnceUnitState;
22195
 
  friend class ::PragmaOnce;
22196
 
  friend class ::CCExprResolve;
22197
 
  friend class ::CExprResolve;
22198
 
 
22199
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22200
 
 
22201
 
  CTree *sons[3]; // export, param_list, decl
22202
 
 
22203
 
public:
22204
 
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
22205
 
    sons[0] = e; sons[1] = p; sons[2] = d;
22206
 
  }
22207
 
  static const char *NodeId ();
22208
 
  const char *NodeName () const { return NodeId (); }
22209
 
  int Sons () const { return CTree::Sons (sons, 3); }
22210
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
22211
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22212
 
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
22213
 
  }
22214
 
  CTree *Export () const { return sons[0]; }
22215
 
  CT_TemplateParamList *Parameters () const { 
22216
 
    return (CT_TemplateParamList*)sons[1]; 
22217
 
  }
22218
 
  CTree *Declaration () const { return sons[2]; }
22219
 
};
22220
 
 
22221
 
 
22222
 
#line 22223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22223
 
} // closed Puma
22224
 
class WinIfExists;
22225
 
class WinImportHandler;
22226
 
class WinMacros;
22227
 
class CMatchSyntax;
22228
 
class ExtGnu;
22229
 
class ExtAC;
22230
 
class ExtACBuilderCoupling;
22231
 
class ExtACSyntaxCoupling;
22232
 
class ExtACTree;
22233
 
class ExtACKeywords;
22234
 
class WinAsm;
22235
 
class WinDeclSpecs;
22236
 
class WinMemberExplSpec;
22237
 
class WinTypeKeywords;
22238
 
class PragmaOnceUnitState;
22239
 
class PragmaOnce;
22240
 
class CCExprResolve;
22241
 
class CExprResolve;
22242
 
namespace Puma {
22243
 
 
22244
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22245
 
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
22246
 
#line 22247 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22247
 
  friend class ::WinIfExists;
22248
 
  friend class ::WinImportHandler;
22249
 
  friend class ::WinMacros;
22250
 
  friend class ::CMatchSyntax;
22251
 
  friend class ::ExtGnu;
22252
 
  friend class ::ExtAC;
22253
 
  friend class ::ExtACBuilderCoupling;
22254
 
  friend class ::ExtACSyntaxCoupling;
22255
 
  friend class ::ExtACTree;
22256
 
  friend class ::ExtACKeywords;
22257
 
  friend class ::WinAsm;
22258
 
  friend class ::WinDeclSpecs;
22259
 
  friend class ::WinMemberExplSpec;
22260
 
  friend class ::WinTypeKeywords;
22261
 
  friend class ::PragmaOnceUnitState;
22262
 
  friend class ::PragmaOnce;
22263
 
  friend class ::CCExprResolve;
22264
 
  friend class ::CExprResolve;
22265
 
 
22266
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22267
 
 
22268
 
protected:
22269
 
  CT_TemplateParamDecl () {}
22270
 
  
22271
 
public:
22272
 
  virtual CT_ExprList *DefaultArgument () const = 0;
22273
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
22274
 
};
22275
 
 
22276
 
 
22277
 
#line 22278 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22278
 
} // closed Puma
22279
 
class WinIfExists;
22280
 
class WinImportHandler;
22281
 
class WinMacros;
22282
 
class CMatchSyntax;
22283
 
class ExtGnu;
22284
 
class ExtAC;
22285
 
class ExtACBuilderCoupling;
22286
 
class ExtACSyntaxCoupling;
22287
 
class ExtACTree;
22288
 
class ExtACKeywords;
22289
 
class WinAsm;
22290
 
class WinDeclSpecs;
22291
 
class WinMemberExplSpec;
22292
 
class WinTypeKeywords;
22293
 
class PragmaOnceUnitState;
22294
 
class PragmaOnce;
22295
 
class CCExprResolve;
22296
 
class CExprResolve;
22297
 
namespace Puma {
22298
 
 
22299
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22300
 
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
22301
 
#line 22302 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22302
 
  friend class ::WinIfExists;
22303
 
  friend class ::WinImportHandler;
22304
 
  friend class ::WinMacros;
22305
 
  friend class ::CMatchSyntax;
22306
 
  friend class ::ExtGnu;
22307
 
  friend class ::ExtAC;
22308
 
  friend class ::ExtACBuilderCoupling;
22309
 
  friend class ::ExtACSyntaxCoupling;
22310
 
  friend class ::ExtACTree;
22311
 
  friend class ::ExtACKeywords;
22312
 
  friend class ::WinAsm;
22313
 
  friend class ::WinDeclSpecs;
22314
 
  friend class ::WinMemberExplSpec;
22315
 
  friend class ::WinTypeKeywords;
22316
 
  friend class ::PragmaOnceUnitState;
22317
 
  friend class ::PragmaOnce;
22318
 
  friend class ::CCExprResolve;
22319
 
  friend class ::CExprResolve;
22320
 
 
22321
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22322
 
 
22323
 
  CTree *sons[3]; // declspecs, declarator, init
22324
 
 
22325
 
public:
22326
 
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
22327
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
22328
 
  }
22329
 
  static const char *NodeId ();
22330
 
  const char *NodeName () const { return NodeId (); }
22331
 
  int Sons () const { return CTree::Sons (sons, 3); }
22332
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
22333
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
22334
 
  CTree *Declarator () const { return sons[1]; }
22335
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
22336
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
22337
 
  void Initializer (CTree *i) { sons[2] = i; }
22338
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22339
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
22340
 
  }
22341
 
};
22342
 
 
22343
 
 
22344
 
#line 22345 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22345
 
} // closed Puma
22346
 
class WinIfExists;
22347
 
class WinImportHandler;
22348
 
class WinMacros;
22349
 
class CMatchSyntax;
22350
 
class ExtGnu;
22351
 
class ExtAC;
22352
 
class ExtACBuilderCoupling;
22353
 
class ExtACSyntaxCoupling;
22354
 
class ExtACTree;
22355
 
class ExtACKeywords;
22356
 
class WinAsm;
22357
 
class WinDeclSpecs;
22358
 
class WinMemberExplSpec;
22359
 
class WinTypeKeywords;
22360
 
class PragmaOnceUnitState;
22361
 
class PragmaOnce;
22362
 
class CCExprResolve;
22363
 
class CExprResolve;
22364
 
namespace Puma {
22365
 
 
22366
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22367
 
class CT_TypeParamDecl : public CT_TemplateParamDecl {
22368
 
#line 22369 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22369
 
  friend class ::WinIfExists;
22370
 
  friend class ::WinImportHandler;
22371
 
  friend class ::WinMacros;
22372
 
  friend class ::CMatchSyntax;
22373
 
  friend class ::ExtGnu;
22374
 
  friend class ::ExtAC;
22375
 
  friend class ::ExtACBuilderCoupling;
22376
 
  friend class ::ExtACSyntaxCoupling;
22377
 
  friend class ::ExtACTree;
22378
 
  friend class ::ExtACKeywords;
22379
 
  friend class ::WinAsm;
22380
 
  friend class ::WinDeclSpecs;
22381
 
  friend class ::WinMemberExplSpec;
22382
 
  friend class ::WinTypeKeywords;
22383
 
  friend class ::PragmaOnceUnitState;
22384
 
  friend class ::PragmaOnce;
22385
 
  friend class ::CCExprResolve;
22386
 
  friend class ::CExprResolve;
22387
 
 
22388
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22389
 
 
22390
 
  CTree *sons[4]; // params, key, id, init
22391
 
 
22392
 
public:
22393
 
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
22394
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
22395
 
  }
22396
 
  static const char *NodeId ();
22397
 
  const char *NodeName () const { return NodeId (); }
22398
 
  int Sons () const { return CTree::Sons (sons, 4); }
22399
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
22400
 
  CT_TemplateParamList *Parameters () const { 
22401
 
    return (CT_TemplateParamList*)sons[0]; 
22402
 
  }
22403
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
22404
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
22405
 
  void Initializer (CTree *i) { sons[3] = i; }
22406
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22407
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
22408
 
  }
22409
 
};
22410
 
 
22411
 
 
22412
 
#line 22413 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22413
 
} // closed Puma
22414
 
class WinIfExists;
22415
 
class WinImportHandler;
22416
 
class WinMacros;
22417
 
class CMatchSyntax;
22418
 
class ExtGnu;
22419
 
class ExtAC;
22420
 
class ExtACBuilderCoupling;
22421
 
class ExtACSyntaxCoupling;
22422
 
class ExtACTree;
22423
 
class ExtACKeywords;
22424
 
class WinAsm;
22425
 
class WinDeclSpecs;
22426
 
class WinMemberExplSpec;
22427
 
class WinTypeKeywords;
22428
 
class PragmaOnceUnitState;
22429
 
class PragmaOnce;
22430
 
class CCExprResolve;
22431
 
class CExprResolve;
22432
 
namespace Puma {
22433
 
 
22434
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22435
 
class CT_EnumDef : public CT_Decl, public CSemObject {
22436
 
#line 22437 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22437
 
  friend class ::WinIfExists;
22438
 
  friend class ::WinImportHandler;
22439
 
  friend class ::WinMacros;
22440
 
  friend class ::CMatchSyntax;
22441
 
  friend class ::ExtGnu;
22442
 
  friend class ::ExtAC;
22443
 
  friend class ::ExtACBuilderCoupling;
22444
 
  friend class ::ExtACSyntaxCoupling;
22445
 
  friend class ::ExtACTree;
22446
 
  friend class ::ExtACKeywords;
22447
 
  friend class ::WinAsm;
22448
 
  friend class ::WinDeclSpecs;
22449
 
  friend class ::WinMemberExplSpec;
22450
 
  friend class ::WinTypeKeywords;
22451
 
  friend class ::PragmaOnceUnitState;
22452
 
  friend class ::PragmaOnce;
22453
 
  friend class ::CCExprResolve;
22454
 
  friend class ::CExprResolve;
22455
 
 
22456
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22457
 
 
22458
 
  CTree *sons[3]; // key, name, enumerators
22459
 
 
22460
 
public:
22461
 
  CT_EnumDef (CTree *k, CTree *n) {
22462
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
22463
 
  }
22464
 
  static const char *NodeId ();
22465
 
  const char *NodeName () const { return NodeId (); }
22466
 
  int Sons () const { return CTree::Sons (sons, 3); }
22467
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
22468
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
22469
 
  void Enumerators (CTree *el) { sons[2] = el; }
22470
 
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
22471
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22472
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
22473
 
  }
22474
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
22475
 
};
22476
 
 
22477
 
 
22478
 
#line 22479 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22479
 
} // closed Puma
22480
 
class WinIfExists;
22481
 
class WinImportHandler;
22482
 
class WinMacros;
22483
 
class CMatchSyntax;
22484
 
class ExtGnu;
22485
 
class ExtAC;
22486
 
class ExtACBuilderCoupling;
22487
 
class ExtACSyntaxCoupling;
22488
 
class ExtACTree;
22489
 
class ExtACKeywords;
22490
 
class WinAsm;
22491
 
class WinDeclSpecs;
22492
 
class WinMemberExplSpec;
22493
 
class WinTypeKeywords;
22494
 
class PragmaOnceUnitState;
22495
 
class PragmaOnce;
22496
 
class CCExprResolve;
22497
 
class CExprResolve;
22498
 
namespace Puma {
22499
 
 
22500
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22501
 
class CT_Enumerator : public CT_Decl, public CSemObject {
22502
 
#line 22503 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22503
 
  friend class ::WinIfExists;
22504
 
  friend class ::WinImportHandler;
22505
 
  friend class ::WinMacros;
22506
 
  friend class ::CMatchSyntax;
22507
 
  friend class ::ExtGnu;
22508
 
  friend class ::ExtAC;
22509
 
  friend class ::ExtACBuilderCoupling;
22510
 
  friend class ::ExtACSyntaxCoupling;
22511
 
  friend class ::ExtACTree;
22512
 
  friend class ::ExtACKeywords;
22513
 
  friend class ::WinAsm;
22514
 
  friend class ::WinDeclSpecs;
22515
 
  friend class ::WinMemberExplSpec;
22516
 
  friend class ::WinTypeKeywords;
22517
 
  friend class ::PragmaOnceUnitState;
22518
 
  friend class ::PragmaOnce;
22519
 
  friend class ::CCExprResolve;
22520
 
  friend class ::CExprResolve;
22521
 
 
22522
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22523
 
 
22524
 
  CTree *sons[2]; // name, init
22525
 
 
22526
 
public:
22527
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
22528
 
  static const char *NodeId ();
22529
 
  const char *NodeName () const { return NodeId (); }
22530
 
  int Sons () const { return CTree::Sons (sons, 2); }
22531
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
22532
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
22533
 
  void Initializer (CTree *i) { sons[1] = i; }
22534
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
22535
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22536
 
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
22537
 
  }
22538
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
22539
 
};
22540
 
 
22541
 
 
22542
 
#line 22543 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22543
 
} // closed Puma
22544
 
class WinIfExists;
22545
 
class WinImportHandler;
22546
 
class WinMacros;
22547
 
class CMatchSyntax;
22548
 
class ExtGnu;
22549
 
class ExtAC;
22550
 
class ExtACBuilderCoupling;
22551
 
class ExtACSyntaxCoupling;
22552
 
class ExtACTree;
22553
 
class ExtACKeywords;
22554
 
class WinAsm;
22555
 
class WinDeclSpecs;
22556
 
class WinMemberExplSpec;
22557
 
class WinTypeKeywords;
22558
 
class PragmaOnceUnitState;
22559
 
class PragmaOnce;
22560
 
class CCExprResolve;
22561
 
class CExprResolve;
22562
 
namespace Puma {
22563
 
 
22564
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22565
 
class CT_FctDef : public CT_Decl, public CSemObject {
22566
 
#line 22567 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22567
 
  friend class ::WinIfExists;
22568
 
  friend class ::WinImportHandler;
22569
 
  friend class ::WinMacros;
22570
 
  friend class ::CMatchSyntax;
22571
 
  friend class ::ExtGnu;
22572
 
  friend class ::ExtAC;
22573
 
  friend class ::ExtACBuilderCoupling;
22574
 
  friend class ::ExtACSyntaxCoupling;
22575
 
  friend class ::ExtACTree;
22576
 
  friend class ::ExtACKeywords;
22577
 
  friend class ::WinAsm;
22578
 
  friend class ::WinDeclSpecs;
22579
 
  friend class ::WinMemberExplSpec;
22580
 
  friend class ::WinTypeKeywords;
22581
 
  friend class ::PragmaOnceUnitState;
22582
 
  friend class ::PragmaOnce;
22583
 
  friend class ::CCExprResolve;
22584
 
  friend class ::CExprResolve;
22585
 
 
22586
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22587
 
 
22588
 
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
22589
 
 
22590
 
public:
22591
 
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
22592
 
             CTree *b, CTree *hs) {
22593
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
22594
 
    sons[5] = b; sons[6] = hs; 
22595
 
  }
22596
 
  static const char *NodeId ();
22597
 
  const char *NodeName () const { return NodeId (); }
22598
 
  int Sons () const { return CTree::Sons (sons, 7); }
22599
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
22600
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
22601
 
  CTree *Declarator () const { return sons[1]; }
22602
 
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
22603
 
  CTree *CtorInit () const { return sons[3]; }
22604
 
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
22605
 
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
22606
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
22607
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
22608
 
  void CtorInit (CTree *i) { sons[3] = i; }
22609
 
  void Body (CTree *b) { sons[5] = b; }
22610
 
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
22611
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
22612
 
  }
22613
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22614
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
22615
 
  }
22616
 
};
22617
 
 
22618
 
 
22619
 
#line 22620 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22620
 
} // closed Puma
22621
 
class WinIfExists;
22622
 
class WinImportHandler;
22623
 
class WinMacros;
22624
 
class CMatchSyntax;
22625
 
class ExtGnu;
22626
 
class ExtAC;
22627
 
class ExtACBuilderCoupling;
22628
 
class ExtACSyntaxCoupling;
22629
 
class ExtACTree;
22630
 
class ExtACKeywords;
22631
 
class WinAsm;
22632
 
class WinDeclSpecs;
22633
 
class WinMemberExplSpec;
22634
 
class WinTypeKeywords;
22635
 
class PragmaOnceUnitState;
22636
 
class PragmaOnce;
22637
 
class CCExprResolve;
22638
 
class CExprResolve;
22639
 
namespace Puma {
22640
 
 
22641
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22642
 
class CT_AsmDef : public CT_Decl {
22643
 
#line 22644 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22644
 
  friend class ::WinIfExists;
22645
 
  friend class ::WinImportHandler;
22646
 
  friend class ::WinMacros;
22647
 
  friend class ::CMatchSyntax;
22648
 
  friend class ::ExtGnu;
22649
 
  friend class ::ExtAC;
22650
 
  friend class ::ExtACBuilderCoupling;
22651
 
  friend class ::ExtACSyntaxCoupling;
22652
 
  friend class ::ExtACTree;
22653
 
  friend class ::ExtACKeywords;
22654
 
  friend class ::WinAsm;
22655
 
  friend class ::WinDeclSpecs;
22656
 
  friend class ::WinMemberExplSpec;
22657
 
  friend class ::WinTypeKeywords;
22658
 
  friend class ::PragmaOnceUnitState;
22659
 
  friend class ::PragmaOnce;
22660
 
  friend class ::CCExprResolve;
22661
 
  friend class ::CExprResolve;
22662
 
 
22663
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22664
 
 
22665
 
  CTree *sons[5]; // asm, open, str, close, semi_colon
22666
 
 
22667
 
public:
22668
 
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
22669
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
22670
 
  }
22671
 
  static const char *NodeId ();
22672
 
  const char *NodeName () const { return NodeId (); }
22673
 
  int Sons () const { return 5; }
22674
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
22675
 
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
22676
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22677
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
22678
 
  }
22679
 
};
22680
 
 
22681
 
 
22682
 
#line 22683 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22683
 
} // closed Puma
22684
 
class WinIfExists;
22685
 
class WinImportHandler;
22686
 
class WinMacros;
22687
 
class CMatchSyntax;
22688
 
class ExtGnu;
22689
 
class ExtAC;
22690
 
class ExtACBuilderCoupling;
22691
 
class ExtACSyntaxCoupling;
22692
 
class ExtACTree;
22693
 
class ExtACKeywords;
22694
 
class WinAsm;
22695
 
class WinDeclSpecs;
22696
 
class WinMemberExplSpec;
22697
 
class WinTypeKeywords;
22698
 
class PragmaOnceUnitState;
22699
 
class PragmaOnce;
22700
 
class CCExprResolve;
22701
 
class CExprResolve;
22702
 
namespace Puma {
22703
 
 
22704
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22705
 
class CT_Handler : public CT_Decl, public CSemScope {
22706
 
#line 22707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22707
 
  friend class ::WinIfExists;
22708
 
  friend class ::WinImportHandler;
22709
 
  friend class ::WinMacros;
22710
 
  friend class ::CMatchSyntax;
22711
 
  friend class ::ExtGnu;
22712
 
  friend class ::ExtAC;
22713
 
  friend class ::ExtACBuilderCoupling;
22714
 
  friend class ::ExtACSyntaxCoupling;
22715
 
  friend class ::ExtACTree;
22716
 
  friend class ::ExtACKeywords;
22717
 
  friend class ::WinAsm;
22718
 
  friend class ::WinDeclSpecs;
22719
 
  friend class ::WinMemberExplSpec;
22720
 
  friend class ::WinTypeKeywords;
22721
 
  friend class ::PragmaOnceUnitState;
22722
 
  friend class ::PragmaOnce;
22723
 
  friend class ::CCExprResolve;
22724
 
  friend class ::CExprResolve;
22725
 
 
22726
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22727
 
 
22728
 
  CTree *sons[3]; // catch, exception_decl, stmt
22729
 
 
22730
 
public:
22731
 
  CT_Handler (CTree *c, CTree *e, CTree *s) {
22732
 
    sons[0] = c; sons[1] = e; sons[2] = s;
22733
 
  }
22734
 
  static const char *NodeId ();
22735
 
  const char *NodeName () const { return NodeId (); }
22736
 
  int Sons () const { return 3; }
22737
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
22738
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
22739
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
22740
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22741
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
22742
 
  }
22743
 
};
22744
 
 
22745
 
 
22746
 
#line 22747 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22747
 
} // closed Puma
22748
 
class WinIfExists;
22749
 
class WinImportHandler;
22750
 
class WinMacros;
22751
 
class CMatchSyntax;
22752
 
class ExtGnu;
22753
 
class ExtAC;
22754
 
class ExtACBuilderCoupling;
22755
 
class ExtACSyntaxCoupling;
22756
 
class ExtACTree;
22757
 
class ExtACKeywords;
22758
 
class WinAsm;
22759
 
class WinDeclSpecs;
22760
 
class WinMemberExplSpec;
22761
 
class WinTypeKeywords;
22762
 
class PragmaOnceUnitState;
22763
 
class PragmaOnce;
22764
 
class CCExprResolve;
22765
 
class CExprResolve;
22766
 
namespace Puma {
22767
 
 
22768
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22769
 
class CT_LinkageSpec : public CT_Decl {
22770
 
#line 22771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22771
 
  friend class ::WinIfExists;
22772
 
  friend class ::WinImportHandler;
22773
 
  friend class ::WinMacros;
22774
 
  friend class ::CMatchSyntax;
22775
 
  friend class ::ExtGnu;
22776
 
  friend class ::ExtAC;
22777
 
  friend class ::ExtACBuilderCoupling;
22778
 
  friend class ::ExtACSyntaxCoupling;
22779
 
  friend class ::ExtACTree;
22780
 
  friend class ::ExtACKeywords;
22781
 
  friend class ::WinAsm;
22782
 
  friend class ::WinDeclSpecs;
22783
 
  friend class ::WinMemberExplSpec;
22784
 
  friend class ::WinTypeKeywords;
22785
 
  friend class ::PragmaOnceUnitState;
22786
 
  friend class ::PragmaOnce;
22787
 
  friend class ::CCExprResolve;
22788
 
  friend class ::CExprResolve;
22789
 
 
22790
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22791
 
 
22792
 
  CTree *sons[5]; // extern, str, open, decls, close
22793
 
 
22794
 
public:
22795
 
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
22796
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
22797
 
    if (isList ())
22798
 
      ((CT_DeclList*)Decls ())->Linkage (this);
22799
 
    else
22800
 
      ((CT_Decl*)Decls ())->Linkage (this);
22801
 
  }
22802
 
  static const char *NodeId ();
22803
 
  const char *NodeName () const { return NodeId (); }
22804
 
  int Sons () const { return CTree::Sons (sons, 5); }
22805
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
22806
 
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
22807
 
  CTree *Decls () const { return sons[3]; }
22808
 
  bool isList () const {
22809
 
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
22810
 
  }
22811
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22812
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
22813
 
  }
22814
 
};
22815
 
 
22816
 
 
22817
 
#line 22818 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22818
 
} // closed Puma
22819
 
class WinIfExists;
22820
 
class WinImportHandler;
22821
 
class WinMacros;
22822
 
class CMatchSyntax;
22823
 
class ExtGnu;
22824
 
class ExtAC;
22825
 
class ExtACBuilderCoupling;
22826
 
class ExtACSyntaxCoupling;
22827
 
class ExtACTree;
22828
 
class ExtACKeywords;
22829
 
class WinAsm;
22830
 
class WinDeclSpecs;
22831
 
class WinMemberExplSpec;
22832
 
class WinTypeKeywords;
22833
 
class PragmaOnceUnitState;
22834
 
class PragmaOnce;
22835
 
class CCExprResolve;
22836
 
class CExprResolve;
22837
 
namespace Puma {
22838
 
 
22839
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22840
 
class CT_ArgDecl : public CT_Decl, public CSemObject {
22841
 
#line 22842 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22842
 
  friend class ::WinIfExists;
22843
 
  friend class ::WinImportHandler;
22844
 
  friend class ::WinMacros;
22845
 
  friend class ::CMatchSyntax;
22846
 
  friend class ::ExtGnu;
22847
 
  friend class ::ExtAC;
22848
 
  friend class ::ExtACBuilderCoupling;
22849
 
  friend class ::ExtACSyntaxCoupling;
22850
 
  friend class ::ExtACTree;
22851
 
  friend class ::ExtACKeywords;
22852
 
  friend class ::WinAsm;
22853
 
  friend class ::WinDeclSpecs;
22854
 
  friend class ::WinMemberExplSpec;
22855
 
  friend class ::WinTypeKeywords;
22856
 
  friend class ::PragmaOnceUnitState;
22857
 
  friend class ::PragmaOnce;
22858
 
  friend class ::CCExprResolve;
22859
 
  friend class ::CExprResolve;
22860
 
 
22861
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22862
 
 
22863
 
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
22864
 
 
22865
 
public:
22866
 
  CT_ArgDecl (CTree *dsl, CTree *d) {
22867
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
22868
 
  }
22869
 
  CT_ArgDecl (CTree *ellipsis) {
22870
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
22871
 
  }
22872
 
  static const char *NodeId ();
22873
 
  const char *NodeName () const { return NodeId (); }
22874
 
  int Sons () const { return CTree::Sons (sons, 4); }
22875
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
22876
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
22877
 
  CTree *Declarator () const { return sons[1]; }
22878
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
22879
 
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
22880
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
22881
 
  void Initializer (CTree *i) { sons[2] = i; }
22882
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22883
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
22884
 
  }
22885
 
};
22886
 
 
22887
 
 
22888
 
#line 22889 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22889
 
} // closed Puma
22890
 
class WinIfExists;
22891
 
class WinImportHandler;
22892
 
class WinMacros;
22893
 
class CMatchSyntax;
22894
 
class ExtGnu;
22895
 
class ExtAC;
22896
 
class ExtACBuilderCoupling;
22897
 
class ExtACSyntaxCoupling;
22898
 
class ExtACTree;
22899
 
class ExtACKeywords;
22900
 
class WinAsm;
22901
 
class WinDeclSpecs;
22902
 
class WinMemberExplSpec;
22903
 
class WinTypeKeywords;
22904
 
class PragmaOnceUnitState;
22905
 
class PragmaOnce;
22906
 
class CCExprResolve;
22907
 
class CExprResolve;
22908
 
namespace Puma {
22909
 
 
22910
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22911
 
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
22912
 
#line 22913 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22913
 
  friend class ::WinIfExists;
22914
 
  friend class ::WinImportHandler;
22915
 
  friend class ::WinMacros;
22916
 
  friend class ::CMatchSyntax;
22917
 
  friend class ::ExtGnu;
22918
 
  friend class ::ExtAC;
22919
 
  friend class ::ExtACBuilderCoupling;
22920
 
  friend class ::ExtACSyntaxCoupling;
22921
 
  friend class ::ExtACTree;
22922
 
  friend class ::ExtACKeywords;
22923
 
  friend class ::WinAsm;
22924
 
  friend class ::WinDeclSpecs;
22925
 
  friend class ::WinMemberExplSpec;
22926
 
  friend class ::WinTypeKeywords;
22927
 
  friend class ::PragmaOnceUnitState;
22928
 
  friend class ::PragmaOnce;
22929
 
  friend class ::CCExprResolve;
22930
 
  friend class ::CExprResolve;
22931
 
 
22932
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22933
 
 
22934
 
public:
22935
 
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
22936
 
   CT_DeclList (size, 2) { AddProperties (props); }
22937
 
  static const char *NodeId ();
22938
 
  const char *NodeName () const { return NodeId (); }
22939
 
};
22940
 
 
22941
 
 
22942
 
#line 22943 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22943
 
} // closed Puma
22944
 
class WinIfExists;
22945
 
class WinImportHandler;
22946
 
class WinMacros;
22947
 
class CMatchSyntax;
22948
 
class ExtGnu;
22949
 
class ExtAC;
22950
 
class ExtACBuilderCoupling;
22951
 
class ExtACSyntaxCoupling;
22952
 
class ExtACTree;
22953
 
class ExtACKeywords;
22954
 
class WinAsm;
22955
 
class WinDeclSpecs;
22956
 
class WinMemberExplSpec;
22957
 
class WinTypeKeywords;
22958
 
class PragmaOnceUnitState;
22959
 
class PragmaOnce;
22960
 
class CCExprResolve;
22961
 
class CExprResolve;
22962
 
namespace Puma {
22963
 
 
22964
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22965
 
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
22966
 
#line 22967 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22967
 
  friend class ::WinIfExists;
22968
 
  friend class ::WinImportHandler;
22969
 
  friend class ::WinMacros;
22970
 
  friend class ::CMatchSyntax;
22971
 
  friend class ::ExtGnu;
22972
 
  friend class ::ExtAC;
22973
 
  friend class ::ExtACBuilderCoupling;
22974
 
  friend class ::ExtACSyntaxCoupling;
22975
 
  friend class ::ExtACTree;
22976
 
  friend class ::ExtACKeywords;
22977
 
  friend class ::WinAsm;
22978
 
  friend class ::WinDeclSpecs;
22979
 
  friend class ::WinMemberExplSpec;
22980
 
  friend class ::WinTypeKeywords;
22981
 
  friend class ::PragmaOnceUnitState;
22982
 
  friend class ::PragmaOnce;
22983
 
  friend class ::CCExprResolve;
22984
 
  friend class ::CExprResolve;
22985
 
 
22986
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22987
 
 
22988
 
public:
22989
 
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
22990
 
  static const char *NodeId ();
22991
 
  const char *NodeName () const { return NodeId (); }
22992
 
};
22993
 
 
22994
 
 
22995
 
#line 22996 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
22996
 
} // closed Puma
22997
 
class WinIfExists;
22998
 
class WinImportHandler;
22999
 
class WinMacros;
23000
 
class CMatchSyntax;
23001
 
class ExtGnu;
23002
 
class ExtAC;
23003
 
class ExtACBuilderCoupling;
23004
 
class ExtACSyntaxCoupling;
23005
 
class ExtACTree;
23006
 
class ExtACKeywords;
23007
 
class WinAsm;
23008
 
class WinDeclSpecs;
23009
 
class WinMemberExplSpec;
23010
 
class WinTypeKeywords;
23011
 
class PragmaOnceUnitState;
23012
 
class PragmaOnce;
23013
 
class CCExprResolve;
23014
 
class CExprResolve;
23015
 
namespace Puma {
23016
 
 
23017
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23018
 
class CT_ArgNameList : public CT_ArgDeclList {
23019
 
#line 23020 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23020
 
  friend class ::WinIfExists;
23021
 
  friend class ::WinImportHandler;
23022
 
  friend class ::WinMacros;
23023
 
  friend class ::CMatchSyntax;
23024
 
  friend class ::ExtGnu;
23025
 
  friend class ::ExtAC;
23026
 
  friend class ::ExtACBuilderCoupling;
23027
 
  friend class ::ExtACSyntaxCoupling;
23028
 
  friend class ::ExtACTree;
23029
 
  friend class ::ExtACKeywords;
23030
 
  friend class ::WinAsm;
23031
 
  friend class ::WinDeclSpecs;
23032
 
  friend class ::WinMemberExplSpec;
23033
 
  friend class ::WinTypeKeywords;
23034
 
  friend class ::PragmaOnceUnitState;
23035
 
  friend class ::PragmaOnce;
23036
 
  friend class ::CCExprResolve;
23037
 
  friend class ::CExprResolve;
23038
 
 
23039
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23040
 
 
23041
 
public:
23042
 
  CT_ArgNameList () : CT_ArgDeclList () {}
23043
 
  static const char *NodeId ();
23044
 
  const char *NodeName () const { return NodeId (); }
23045
 
};
23046
 
 
23047
 
 
23048
 
#line 23049 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23049
 
} // closed Puma
23050
 
class WinIfExists;
23051
 
class WinImportHandler;
23052
 
class WinMacros;
23053
 
class CMatchSyntax;
23054
 
class ExtGnu;
23055
 
class ExtAC;
23056
 
class ExtACBuilderCoupling;
23057
 
class ExtACSyntaxCoupling;
23058
 
class ExtACTree;
23059
 
class ExtACKeywords;
23060
 
class WinAsm;
23061
 
class WinDeclSpecs;
23062
 
class WinMemberExplSpec;
23063
 
class WinTypeKeywords;
23064
 
class PragmaOnceUnitState;
23065
 
class PragmaOnce;
23066
 
class CCExprResolve;
23067
 
class CExprResolve;
23068
 
namespace Puma {
23069
 
 
23070
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23071
 
class CT_NamespaceDef : public CT_Decl, public CSemObject {
23072
 
#line 23073 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23073
 
  friend class ::WinIfExists;
23074
 
  friend class ::WinImportHandler;
23075
 
  friend class ::WinMacros;
23076
 
  friend class ::CMatchSyntax;
23077
 
  friend class ::ExtGnu;
23078
 
  friend class ::ExtAC;
23079
 
  friend class ::ExtACBuilderCoupling;
23080
 
  friend class ::ExtACSyntaxCoupling;
23081
 
  friend class ::ExtACTree;
23082
 
  friend class ::ExtACKeywords;
23083
 
  friend class ::WinAsm;
23084
 
  friend class ::WinDeclSpecs;
23085
 
  friend class ::WinMemberExplSpec;
23086
 
  friend class ::WinTypeKeywords;
23087
 
  friend class ::PragmaOnceUnitState;
23088
 
  friend class ::PragmaOnce;
23089
 
  friend class ::CCExprResolve;
23090
 
  friend class ::CExprResolve;
23091
 
 
23092
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23093
 
 
23094
 
  CTree *sons[3]; // ns, name, members
23095
 
 
23096
 
public:
23097
 
  CT_NamespaceDef (CTree *n, CTree *nm) {
23098
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
23099
 
  }
23100
 
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
23101
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
23102
 
  }
23103
 
  static const char *NodeId ();
23104
 
  const char *NodeName () const { return NodeId (); }
23105
 
  int Sons () const { return CTree::Sons (sons, 3); }
23106
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
23107
 
  void Members (CTree *m) { sons[2] = m; }
23108
 
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
23109
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
23110
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
23111
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23112
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
23113
 
  }
23114
 
};
23115
 
 
23116
 
 
23117
 
#line 23118 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23118
 
} // closed Puma
23119
 
class WinIfExists;
23120
 
class WinImportHandler;
23121
 
class WinMacros;
23122
 
class CMatchSyntax;
23123
 
class ExtGnu;
23124
 
class ExtAC;
23125
 
class ExtACBuilderCoupling;
23126
 
class ExtACSyntaxCoupling;
23127
 
class ExtACTree;
23128
 
class ExtACKeywords;
23129
 
class WinAsm;
23130
 
class WinDeclSpecs;
23131
 
class WinMemberExplSpec;
23132
 
class WinTypeKeywords;
23133
 
class PragmaOnceUnitState;
23134
 
class PragmaOnce;
23135
 
class CCExprResolve;
23136
 
class CExprResolve;
23137
 
namespace Puma {
23138
 
 
23139
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23140
 
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
23141
 
#line 23142 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23142
 
  friend class ::WinIfExists;
23143
 
  friend class ::WinImportHandler;
23144
 
  friend class ::WinMacros;
23145
 
  friend class ::CMatchSyntax;
23146
 
  friend class ::ExtGnu;
23147
 
  friend class ::ExtAC;
23148
 
  friend class ::ExtACBuilderCoupling;
23149
 
  friend class ::ExtACSyntaxCoupling;
23150
 
  friend class ::ExtACTree;
23151
 
  friend class ::ExtACKeywords;
23152
 
  friend class ::WinAsm;
23153
 
  friend class ::WinDeclSpecs;
23154
 
  friend class ::WinMemberExplSpec;
23155
 
  friend class ::WinTypeKeywords;
23156
 
  friend class ::PragmaOnceUnitState;
23157
 
  friend class ::PragmaOnce;
23158
 
  friend class ::CCExprResolve;
23159
 
  friend class ::CExprResolve;
23160
 
 
23161
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23162
 
 
23163
 
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
23164
 
 
23165
 
public:
23166
 
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
23167
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
23168
 
  }
23169
 
  static const char *NodeId ();
23170
 
  const char *NodeName () const { return NodeId (); }
23171
 
  int Sons () const { return 5; }
23172
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
23173
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
23174
 
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
23175
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
23176
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23177
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
23178
 
  }
23179
 
};
23180
 
 
23181
 
 
23182
 
#line 23183 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23183
 
} // closed Puma
23184
 
class WinIfExists;
23185
 
class WinImportHandler;
23186
 
class WinMacros;
23187
 
class CMatchSyntax;
23188
 
class ExtGnu;
23189
 
class ExtAC;
23190
 
class ExtACBuilderCoupling;
23191
 
class ExtACSyntaxCoupling;
23192
 
class ExtACTree;
23193
 
class ExtACKeywords;
23194
 
class WinAsm;
23195
 
class WinDeclSpecs;
23196
 
class WinMemberExplSpec;
23197
 
class WinTypeKeywords;
23198
 
class PragmaOnceUnitState;
23199
 
class PragmaOnce;
23200
 
class CCExprResolve;
23201
 
class CExprResolve;
23202
 
namespace Puma {
23203
 
 
23204
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23205
 
class CT_UsingDirective : public CT_Decl {
23206
 
#line 23207 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23207
 
  friend class ::WinIfExists;
23208
 
  friend class ::WinImportHandler;
23209
 
  friend class ::WinMacros;
23210
 
  friend class ::CMatchSyntax;
23211
 
  friend class ::ExtGnu;
23212
 
  friend class ::ExtAC;
23213
 
  friend class ::ExtACBuilderCoupling;
23214
 
  friend class ::ExtACSyntaxCoupling;
23215
 
  friend class ::ExtACTree;
23216
 
  friend class ::ExtACKeywords;
23217
 
  friend class ::WinAsm;
23218
 
  friend class ::WinDeclSpecs;
23219
 
  friend class ::WinMemberExplSpec;
23220
 
  friend class ::WinTypeKeywords;
23221
 
  friend class ::PragmaOnceUnitState;
23222
 
  friend class ::PragmaOnce;
23223
 
  friend class ::CCExprResolve;
23224
 
  friend class ::CExprResolve;
23225
 
 
23226
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23227
 
 
23228
 
  CTree *sons[4]; // using, ns, name, semi_colon
23229
 
 
23230
 
public:
23231
 
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
23232
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
23233
 
  }
23234
 
  static const char *NodeId ();
23235
 
  const char *NodeName () const { return NodeId (); }
23236
 
  int Sons () const { return 4; }
23237
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
23238
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
23239
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23240
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
23241
 
  }
23242
 
};
23243
 
 
23244
 
/*****************************************************************************/
23245
 
/*                                                                           */
23246
 
/*                              Declarators                                  */
23247
 
/*                                                                           */
23248
 
/*****************************************************************************/
23249
 
 
23250
 
 
23251
 
#line 23252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23252
 
} // closed Puma
23253
 
class WinIfExists;
23254
 
class WinImportHandler;
23255
 
class WinMacros;
23256
 
class CMatchSyntax;
23257
 
class ExtGnu;
23258
 
class ExtAC;
23259
 
class ExtACBuilderCoupling;
23260
 
class ExtACSyntaxCoupling;
23261
 
class ExtACTree;
23262
 
class ExtACKeywords;
23263
 
class WinAsm;
23264
 
class WinDeclSpecs;
23265
 
class WinMemberExplSpec;
23266
 
class WinTypeKeywords;
23267
 
class PragmaOnceUnitState;
23268
 
class PragmaOnce;
23269
 
class CCExprResolve;
23270
 
class CExprResolve;
23271
 
namespace Puma {
23272
 
 
23273
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23274
 
class CT_Declarator : public CTree {
23275
 
#line 23276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23276
 
  friend class ::WinIfExists;
23277
 
  friend class ::WinImportHandler;
23278
 
  friend class ::WinMacros;
23279
 
  friend class ::CMatchSyntax;
23280
 
  friend class ::ExtGnu;
23281
 
  friend class ::ExtAC;
23282
 
  friend class ::ExtACBuilderCoupling;
23283
 
  friend class ::ExtACSyntaxCoupling;
23284
 
  friend class ::ExtACTree;
23285
 
  friend class ::ExtACKeywords;
23286
 
  friend class ::WinAsm;
23287
 
  friend class ::WinDeclSpecs;
23288
 
  friend class ::WinMemberExplSpec;
23289
 
  friend class ::WinTypeKeywords;
23290
 
  friend class ::PragmaOnceUnitState;
23291
 
  friend class ::PragmaOnce;
23292
 
  friend class ::CCExprResolve;
23293
 
  friend class ::CExprResolve;
23294
 
 
23295
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23296
 
 
23297
 
protected:
23298
 
  CT_Declarator () {}
23299
 
 
23300
 
public:
23301
 
  virtual CTree *Declarator () const = 0;
23302
 
  //classification function
23303
 
  virtual CT_Declarator *IsDeclarator () { return this; }
23304
 
  // locate the name node
23305
 
  CT_SimpleName *Name ();
23306
 
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
23307
 
};
23308
 
 
23309
 
 
23310
 
#line 23311 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23311
 
} // closed Puma
23312
 
class WinIfExists;
23313
 
class WinImportHandler;
23314
 
class WinMacros;
23315
 
class CMatchSyntax;
23316
 
class ExtGnu;
23317
 
class ExtAC;
23318
 
class ExtACBuilderCoupling;
23319
 
class ExtACSyntaxCoupling;
23320
 
class ExtACTree;
23321
 
class ExtACKeywords;
23322
 
class WinAsm;
23323
 
class WinDeclSpecs;
23324
 
class WinMemberExplSpec;
23325
 
class WinTypeKeywords;
23326
 
class PragmaOnceUnitState;
23327
 
class PragmaOnce;
23328
 
class CCExprResolve;
23329
 
class CExprResolve;
23330
 
namespace Puma {
23331
 
 
23332
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23333
 
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
23334
 
#line 23335 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23335
 
  friend class ::WinIfExists;
23336
 
  friend class ::WinImportHandler;
23337
 
  friend class ::WinMacros;
23338
 
  friend class ::CMatchSyntax;
23339
 
  friend class ::ExtGnu;
23340
 
  friend class ::ExtAC;
23341
 
  friend class ::ExtACBuilderCoupling;
23342
 
  friend class ::ExtACSyntaxCoupling;
23343
 
  friend class ::ExtACTree;
23344
 
  friend class ::ExtACKeywords;
23345
 
  friend class ::WinAsm;
23346
 
  friend class ::WinDeclSpecs;
23347
 
  friend class ::WinMemberExplSpec;
23348
 
  friend class ::WinTypeKeywords;
23349
 
  friend class ::PragmaOnceUnitState;
23350
 
  friend class ::PragmaOnce;
23351
 
  friend class ::CCExprResolve;
23352
 
  friend class ::CExprResolve;
23353
 
 
23354
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23355
 
 
23356
 
  CTree *sons[2]; // declarator, init
23357
 
  CTree *obj_decl;
23358
 
 
23359
 
public:
23360
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
23361
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
23362
 
  }
23363
 
  static const char *NodeId ();
23364
 
  const char *NodeName () const { return NodeId (); }
23365
 
  int Sons () const { return CTree::Sons (sons, 2); }
23366
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
23367
 
  CTree *Declarator () const { return sons[0]; }
23368
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
23369
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
23370
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
23371
 
  void Initializer (CTree* i) { sons[1] = i; }
23372
 
  void ObjDecl (CTree *od) { obj_decl = od; }
23373
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23374
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
23375
 
  }
23376
 
};
23377
 
 
23378
 
 
23379
 
#line 23380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23380
 
} // closed Puma
23381
 
class WinIfExists;
23382
 
class WinImportHandler;
23383
 
class WinMacros;
23384
 
class CMatchSyntax;
23385
 
class ExtGnu;
23386
 
class ExtAC;
23387
 
class ExtACBuilderCoupling;
23388
 
class ExtACSyntaxCoupling;
23389
 
class ExtACTree;
23390
 
class ExtACKeywords;
23391
 
class WinAsm;
23392
 
class WinDeclSpecs;
23393
 
class WinMemberExplSpec;
23394
 
class WinTypeKeywords;
23395
 
class PragmaOnceUnitState;
23396
 
class PragmaOnce;
23397
 
class CCExprResolve;
23398
 
class CExprResolve;
23399
 
namespace Puma {
23400
 
 
23401
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23402
 
class CT_BracedDeclarator : public CT_Declarator {
23403
 
#line 23404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23404
 
  friend class ::WinIfExists;
23405
 
  friend class ::WinImportHandler;
23406
 
  friend class ::WinMacros;
23407
 
  friend class ::CMatchSyntax;
23408
 
  friend class ::ExtGnu;
23409
 
  friend class ::ExtAC;
23410
 
  friend class ::ExtACBuilderCoupling;
23411
 
  friend class ::ExtACSyntaxCoupling;
23412
 
  friend class ::ExtACTree;
23413
 
  friend class ::ExtACKeywords;
23414
 
  friend class ::WinAsm;
23415
 
  friend class ::WinDeclSpecs;
23416
 
  friend class ::WinMemberExplSpec;
23417
 
  friend class ::WinTypeKeywords;
23418
 
  friend class ::PragmaOnceUnitState;
23419
 
  friend class ::PragmaOnce;
23420
 
  friend class ::CCExprResolve;
23421
 
  friend class ::CExprResolve;
23422
 
 
23423
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23424
 
 
23425
 
  CTree *sons[4]; // open, win_specs, declarator, close
23426
 
 
23427
 
public:
23428
 
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
23429
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
23430
 
  }
23431
 
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
23432
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
23433
 
  }
23434
 
  static const char *NodeId ();
23435
 
  const char *NodeName () const { return NodeId (); }
23436
 
  int Sons () const { return CTree::Sons (sons, 4); }
23437
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
23438
 
  CTree *Declarator () const { return sons[2]; }
23439
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23440
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
23441
 
  }
23442
 
};
23443
 
 
23444
 
 
23445
 
#line 23446 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23446
 
} // closed Puma
23447
 
class WinIfExists;
23448
 
class WinImportHandler;
23449
 
class WinMacros;
23450
 
class CMatchSyntax;
23451
 
class ExtGnu;
23452
 
class ExtAC;
23453
 
class ExtACBuilderCoupling;
23454
 
class ExtACSyntaxCoupling;
23455
 
class ExtACTree;
23456
 
class ExtACKeywords;
23457
 
class WinAsm;
23458
 
class WinDeclSpecs;
23459
 
class WinMemberExplSpec;
23460
 
class WinTypeKeywords;
23461
 
class PragmaOnceUnitState;
23462
 
class PragmaOnce;
23463
 
class CCExprResolve;
23464
 
class CExprResolve;
23465
 
namespace Puma {
23466
 
 
23467
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23468
 
class CT_ArrayDelimiter : public CTree {
23469
 
#line 23470 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23470
 
  friend class ::WinIfExists;
23471
 
  friend class ::WinImportHandler;
23472
 
  friend class ::WinMacros;
23473
 
  friend class ::CMatchSyntax;
23474
 
  friend class ::ExtGnu;
23475
 
  friend class ::ExtAC;
23476
 
  friend class ::ExtACBuilderCoupling;
23477
 
  friend class ::ExtACSyntaxCoupling;
23478
 
  friend class ::ExtACTree;
23479
 
  friend class ::ExtACKeywords;
23480
 
  friend class ::WinAsm;
23481
 
  friend class ::WinDeclSpecs;
23482
 
  friend class ::WinMemberExplSpec;
23483
 
  friend class ::WinTypeKeywords;
23484
 
  friend class ::PragmaOnceUnitState;
23485
 
  friend class ::PragmaOnce;
23486
 
  friend class ::CCExprResolve;
23487
 
  friend class ::CExprResolve;
23488
 
 
23489
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23490
 
 
23491
 
  CTree *sons[4]; // star, static, quals, expr
23492
 
  bool pos0;
23493
 
 
23494
 
public:
23495
 
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
23496
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
23497
 
  }
23498
 
  static const char *NodeId ();
23499
 
  const char *NodeName () const { return NodeId (); }
23500
 
  int Sons () const { return CTree::Sons (sons, 4); }
23501
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
23502
 
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
23503
 
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
23504
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
23505
 
  CTree *Expr () const { return sons[3]; }
23506
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23507
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
23508
 
  }
23509
 
};
23510
 
 
23511
 
 
23512
 
#line 23513 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23513
 
} // closed Puma
23514
 
class WinIfExists;
23515
 
class WinImportHandler;
23516
 
class WinMacros;
23517
 
class CMatchSyntax;
23518
 
class ExtGnu;
23519
 
class ExtAC;
23520
 
class ExtACBuilderCoupling;
23521
 
class ExtACSyntaxCoupling;
23522
 
class ExtACTree;
23523
 
class ExtACKeywords;
23524
 
class WinAsm;
23525
 
class WinDeclSpecs;
23526
 
class WinMemberExplSpec;
23527
 
class WinTypeKeywords;
23528
 
class PragmaOnceUnitState;
23529
 
class PragmaOnce;
23530
 
class CCExprResolve;
23531
 
class CExprResolve;
23532
 
namespace Puma {
23533
 
 
23534
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23535
 
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
23536
 
#line 23537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23537
 
  friend class ::WinIfExists;
23538
 
  friend class ::WinImportHandler;
23539
 
  friend class ::WinMacros;
23540
 
  friend class ::CMatchSyntax;
23541
 
  friend class ::ExtGnu;
23542
 
  friend class ::ExtAC;
23543
 
  friend class ::ExtACBuilderCoupling;
23544
 
  friend class ::ExtACSyntaxCoupling;
23545
 
  friend class ::ExtACTree;
23546
 
  friend class ::ExtACKeywords;
23547
 
  friend class ::WinAsm;
23548
 
  friend class ::WinDeclSpecs;
23549
 
  friend class ::WinMemberExplSpec;
23550
 
  friend class ::WinTypeKeywords;
23551
 
  friend class ::PragmaOnceUnitState;
23552
 
  friend class ::PragmaOnce;
23553
 
  friend class ::CCExprResolve;
23554
 
  friend class ::CExprResolve;
23555
 
 
23556
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23557
 
 
23558
 
  CTree *sons[4]; // declarator, open, delim, close
23559
 
 
23560
 
public:
23561
 
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
23562
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
23563
 
  }
23564
 
  static const char *NodeId ();
23565
 
  const char *NodeName () const { return NodeId (); }
23566
 
  int Sons () const { return 4; }
23567
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
23568
 
  CTree *Declarator () const { return sons[0]; }
23569
 
  CT_ArrayDelimiter *Delimiter () const 
23570
 
   { return (CT_ArrayDelimiter*)sons[2]; }
23571
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23572
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
23573
 
  }
23574
 
  CTypeInfo *Type () const { return type; }
23575
 
  CExprValue *Value () const { return value; }
23576
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
23577
 
};
23578
 
 
23579
 
 
23580
 
#line 23581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23581
 
} // closed Puma
23582
 
class WinIfExists;
23583
 
class WinImportHandler;
23584
 
class WinMacros;
23585
 
class CMatchSyntax;
23586
 
class ExtGnu;
23587
 
class ExtAC;
23588
 
class ExtACBuilderCoupling;
23589
 
class ExtACSyntaxCoupling;
23590
 
class ExtACTree;
23591
 
class ExtACKeywords;
23592
 
class WinAsm;
23593
 
class WinDeclSpecs;
23594
 
class WinMemberExplSpec;
23595
 
class WinTypeKeywords;
23596
 
class PragmaOnceUnitState;
23597
 
class PragmaOnce;
23598
 
class CCExprResolve;
23599
 
class CExprResolve;
23600
 
namespace Puma {
23601
 
 
23602
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23603
 
class CT_FctDeclarator : public CT_Declarator {
23604
 
#line 23605 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23605
 
  friend class ::WinIfExists;
23606
 
  friend class ::WinImportHandler;
23607
 
  friend class ::WinMacros;
23608
 
  friend class ::CMatchSyntax;
23609
 
  friend class ::ExtGnu;
23610
 
  friend class ::ExtAC;
23611
 
  friend class ::ExtACBuilderCoupling;
23612
 
  friend class ::ExtACSyntaxCoupling;
23613
 
  friend class ::ExtACTree;
23614
 
  friend class ::ExtACKeywords;
23615
 
  friend class ::WinAsm;
23616
 
  friend class ::WinDeclSpecs;
23617
 
  friend class ::WinMemberExplSpec;
23618
 
  friend class ::WinTypeKeywords;
23619
 
  friend class ::PragmaOnceUnitState;
23620
 
  friend class ::PragmaOnce;
23621
 
  friend class ::CCExprResolve;
23622
 
  friend class ::CExprResolve;
23623
 
 
23624
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23625
 
 
23626
 
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
23627
 
 
23628
 
public:
23629
 
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
23630
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
23631
 
  }
23632
 
  static const char *NodeId ();
23633
 
  const char *NodeName () const { return NodeId (); }
23634
 
  int Sons () const { return CTree::Sons (sons, 4); }
23635
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
23636
 
  CTree *Declarator () const { return sons[0]; }
23637
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
23638
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
23639
 
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
23640
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23641
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
23642
 
  }
23643
 
};
23644
 
 
23645
 
 
23646
 
#line 23647 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23647
 
} // closed Puma
23648
 
class WinIfExists;
23649
 
class WinImportHandler;
23650
 
class WinMacros;
23651
 
class CMatchSyntax;
23652
 
class ExtGnu;
23653
 
class ExtAC;
23654
 
class ExtACBuilderCoupling;
23655
 
class ExtACSyntaxCoupling;
23656
 
class ExtACTree;
23657
 
class ExtACKeywords;
23658
 
class WinAsm;
23659
 
class WinDeclSpecs;
23660
 
class WinMemberExplSpec;
23661
 
class WinTypeKeywords;
23662
 
class PragmaOnceUnitState;
23663
 
class PragmaOnce;
23664
 
class CCExprResolve;
23665
 
class CExprResolve;
23666
 
namespace Puma {
23667
 
 
23668
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23669
 
class CT_RefDeclarator : public CT_Declarator {
23670
 
#line 23671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23671
 
  friend class ::WinIfExists;
23672
 
  friend class ::WinImportHandler;
23673
 
  friend class ::WinMacros;
23674
 
  friend class ::CMatchSyntax;
23675
 
  friend class ::ExtGnu;
23676
 
  friend class ::ExtAC;
23677
 
  friend class ::ExtACBuilderCoupling;
23678
 
  friend class ::ExtACSyntaxCoupling;
23679
 
  friend class ::ExtACTree;
23680
 
  friend class ::ExtACKeywords;
23681
 
  friend class ::WinAsm;
23682
 
  friend class ::WinDeclSpecs;
23683
 
  friend class ::WinMemberExplSpec;
23684
 
  friend class ::WinTypeKeywords;
23685
 
  friend class ::PragmaOnceUnitState;
23686
 
  friend class ::PragmaOnce;
23687
 
  friend class ::CCExprResolve;
23688
 
  friend class ::CExprResolve;
23689
 
 
23690
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23691
 
 
23692
 
  CTree *sons[2]; // ref, declarator
23693
 
 
23694
 
public:
23695
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
23696
 
  static const char *NodeId ();
23697
 
  const char *NodeName () const { return NodeId (); }
23698
 
  int Sons () const { return 2; }
23699
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
23700
 
  CTree *Declarator () const { return sons[1]; }
23701
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
23702
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
23703
 
  }
23704
 
};
23705
 
 
23706
 
 
23707
 
#line 23708 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23708
 
} // closed Puma
23709
 
class WinIfExists;
23710
 
class WinImportHandler;
23711
 
class WinMacros;
23712
 
class CMatchSyntax;
23713
 
class ExtGnu;
23714
 
class ExtAC;
23715
 
class ExtACBuilderCoupling;
23716
 
class ExtACSyntaxCoupling;
23717
 
class ExtACTree;
23718
 
class ExtACKeywords;
23719
 
class WinAsm;
23720
 
class WinDeclSpecs;
23721
 
class WinMemberExplSpec;
23722
 
class WinTypeKeywords;
23723
 
class PragmaOnceUnitState;
23724
 
class PragmaOnce;
23725
 
class CCExprResolve;
23726
 
class CExprResolve;
23727
 
namespace Puma {
23728
 
 
23729
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23730
 
class CT_PtrDeclarator : public CT_Declarator {
23731
 
#line 23732 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23732
 
  friend class ::WinIfExists;
23733
 
  friend class ::WinImportHandler;
23734
 
  friend class ::WinMacros;
23735
 
  friend class ::CMatchSyntax;
23736
 
  friend class ::ExtGnu;
23737
 
  friend class ::ExtAC;
23738
 
  friend class ::ExtACBuilderCoupling;
23739
 
  friend class ::ExtACSyntaxCoupling;
23740
 
  friend class ::ExtACTree;
23741
 
  friend class ::ExtACKeywords;
23742
 
  friend class ::WinAsm;
23743
 
  friend class ::WinDeclSpecs;
23744
 
  friend class ::WinMemberExplSpec;
23745
 
  friend class ::WinTypeKeywords;
23746
 
  friend class ::PragmaOnceUnitState;
23747
 
  friend class ::PragmaOnce;
23748
 
  friend class ::CCExprResolve;
23749
 
  friend class ::CExprResolve;
23750
 
 
23751
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23752
 
 
23753
 
  CTree *sons[3]; // ptr, cv_quals, declarator
23754
 
 
23755
 
public:
23756
 
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
23757
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
23758
 
  }
23759
 
  static const char *NodeId ();
23760
 
  const char *NodeName () const { return NodeId (); }
23761
 
  int Sons () const { return CTree::Sons (sons, 3); }
23762
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
23763
 
  CTree *Declarator () const { return sons[2]; }
23764
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
23765
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23766
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
23767
 
  }
23768
 
};
23769
 
 
23770
 
 
23771
 
#line 23772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23772
 
} // closed Puma
23773
 
class WinIfExists;
23774
 
class WinImportHandler;
23775
 
class WinMacros;
23776
 
class CMatchSyntax;
23777
 
class ExtGnu;
23778
 
class ExtAC;
23779
 
class ExtACBuilderCoupling;
23780
 
class ExtACSyntaxCoupling;
23781
 
class ExtACTree;
23782
 
class ExtACKeywords;
23783
 
class WinAsm;
23784
 
class WinDeclSpecs;
23785
 
class WinMemberExplSpec;
23786
 
class WinTypeKeywords;
23787
 
class PragmaOnceUnitState;
23788
 
class PragmaOnce;
23789
 
class CCExprResolve;
23790
 
class CExprResolve;
23791
 
namespace Puma {
23792
 
 
23793
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23794
 
class CT_MembPtrDeclarator : public CT_Declarator {
23795
 
#line 23796 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23796
 
  friend class ::WinIfExists;
23797
 
  friend class ::WinImportHandler;
23798
 
  friend class ::WinMacros;
23799
 
  friend class ::CMatchSyntax;
23800
 
  friend class ::ExtGnu;
23801
 
  friend class ::ExtAC;
23802
 
  friend class ::ExtACBuilderCoupling;
23803
 
  friend class ::ExtACSyntaxCoupling;
23804
 
  friend class ::ExtACTree;
23805
 
  friend class ::ExtACKeywords;
23806
 
  friend class ::WinAsm;
23807
 
  friend class ::WinDeclSpecs;
23808
 
  friend class ::WinMemberExplSpec;
23809
 
  friend class ::WinTypeKeywords;
23810
 
  friend class ::PragmaOnceUnitState;
23811
 
  friend class ::PragmaOnce;
23812
 
  friend class ::CCExprResolve;
23813
 
  friend class ::CExprResolve;
23814
 
 
23815
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23816
 
 
23817
 
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
23818
 
 
23819
 
public:
23820
 
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
23821
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
23822
 
  }
23823
 
  static const char *NodeId ();
23824
 
  const char *NodeName () const { return NodeId (); }
23825
 
  int Sons () const { return CTree::Sons (sons, 5); }
23826
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
23827
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
23828
 
  CTree *Declarator () const { return sons[4]; }
23829
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
23830
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23831
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
23832
 
  }
23833
 
};
23834
 
 
23835
 
 
23836
 
#line 23837 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23837
 
} // closed Puma
23838
 
class WinIfExists;
23839
 
class WinImportHandler;
23840
 
class WinMacros;
23841
 
class CMatchSyntax;
23842
 
class ExtGnu;
23843
 
class ExtAC;
23844
 
class ExtACBuilderCoupling;
23845
 
class ExtACSyntaxCoupling;
23846
 
class ExtACTree;
23847
 
class ExtACKeywords;
23848
 
class WinAsm;
23849
 
class WinDeclSpecs;
23850
 
class WinMemberExplSpec;
23851
 
class WinTypeKeywords;
23852
 
class PragmaOnceUnitState;
23853
 
class PragmaOnce;
23854
 
class CCExprResolve;
23855
 
class CExprResolve;
23856
 
namespace Puma {
23857
 
 
23858
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23859
 
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
23860
 
#line 23861 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23861
 
  friend class ::WinIfExists;
23862
 
  friend class ::WinImportHandler;
23863
 
  friend class ::WinMacros;
23864
 
  friend class ::CMatchSyntax;
23865
 
  friend class ::ExtGnu;
23866
 
  friend class ::ExtAC;
23867
 
  friend class ::ExtACBuilderCoupling;
23868
 
  friend class ::ExtACSyntaxCoupling;
23869
 
  friend class ::ExtACTree;
23870
 
  friend class ::ExtACKeywords;
23871
 
  friend class ::WinAsm;
23872
 
  friend class ::WinDeclSpecs;
23873
 
  friend class ::WinMemberExplSpec;
23874
 
  friend class ::WinTypeKeywords;
23875
 
  friend class ::PragmaOnceUnitState;
23876
 
  friend class ::PragmaOnce;
23877
 
  friend class ::CCExprResolve;
23878
 
  friend class ::CExprResolve;
23879
 
 
23880
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23881
 
 
23882
 
  CTree *sons[3]; // declarator, colon, expr
23883
 
 
23884
 
public:
23885
 
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
23886
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
23887
 
  }
23888
 
  static const char *NodeId ();
23889
 
  const char *NodeName () const { return NodeId (); }
23890
 
  int Sons () const { return CTree::Sons (sons, 3); }
23891
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
23892
 
  CTree *Declarator () const { return sons[0]; }
23893
 
  CTree *Expr () const { return sons[2]; }
23894
 
  void FieldSize (CTree *s) { sons[2] = s; }
23895
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
23896
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23897
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
23898
 
  }
23899
 
};
23900
 
 
23901
 
/*****************************************************************************/
23902
 
/*                                                                           */
23903
 
/*                              Statements                                   */
23904
 
/*                                                                           */
23905
 
/*****************************************************************************/
23906
 
 
23907
 
 
23908
 
#line 23909 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23909
 
} // closed Puma
23910
 
class WinIfExists;
23911
 
class WinImportHandler;
23912
 
class WinMacros;
23913
 
class CMatchSyntax;
23914
 
class ExtGnu;
23915
 
class ExtAC;
23916
 
class ExtACBuilderCoupling;
23917
 
class ExtACSyntaxCoupling;
23918
 
class ExtACTree;
23919
 
class ExtACKeywords;
23920
 
class WinAsm;
23921
 
class WinDeclSpecs;
23922
 
class WinMemberExplSpec;
23923
 
class WinTypeKeywords;
23924
 
class PragmaOnceUnitState;
23925
 
class PragmaOnce;
23926
 
class CCExprResolve;
23927
 
class CExprResolve;
23928
 
namespace Puma {
23929
 
 
23930
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23931
 
class CT_Statement : public CTree {
23932
 
#line 23933 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23933
 
  friend class ::WinIfExists;
23934
 
  friend class ::WinImportHandler;
23935
 
  friend class ::WinMacros;
23936
 
  friend class ::CMatchSyntax;
23937
 
  friend class ::ExtGnu;
23938
 
  friend class ::ExtAC;
23939
 
  friend class ::ExtACBuilderCoupling;
23940
 
  friend class ::ExtACSyntaxCoupling;
23941
 
  friend class ::ExtACTree;
23942
 
  friend class ::ExtACKeywords;
23943
 
  friend class ::WinAsm;
23944
 
  friend class ::WinDeclSpecs;
23945
 
  friend class ::WinMemberExplSpec;
23946
 
  friend class ::WinTypeKeywords;
23947
 
  friend class ::PragmaOnceUnitState;
23948
 
  friend class ::PragmaOnce;
23949
 
  friend class ::CCExprResolve;
23950
 
  friend class ::CExprResolve;
23951
 
 
23952
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23953
 
 
23954
 
protected:
23955
 
  CT_Statement () {}
23956
 
};
23957
 
 
23958
 
 
23959
 
#line 23960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23960
 
} // closed Puma
23961
 
class WinIfExists;
23962
 
class WinImportHandler;
23963
 
class WinMacros;
23964
 
class CMatchSyntax;
23965
 
class ExtGnu;
23966
 
class ExtAC;
23967
 
class ExtACBuilderCoupling;
23968
 
class ExtACSyntaxCoupling;
23969
 
class ExtACTree;
23970
 
class ExtACKeywords;
23971
 
class WinAsm;
23972
 
class WinDeclSpecs;
23973
 
class WinMemberExplSpec;
23974
 
class WinTypeKeywords;
23975
 
class PragmaOnceUnitState;
23976
 
class PragmaOnce;
23977
 
class CCExprResolve;
23978
 
class CExprResolve;
23979
 
namespace Puma {
23980
 
 
23981
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23982
 
class CT_LabelStmt : public CT_Statement {
23983
 
#line 23984 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
23984
 
  friend class ::WinIfExists;
23985
 
  friend class ::WinImportHandler;
23986
 
  friend class ::WinMacros;
23987
 
  friend class ::CMatchSyntax;
23988
 
  friend class ::ExtGnu;
23989
 
  friend class ::ExtAC;
23990
 
  friend class ::ExtACBuilderCoupling;
23991
 
  friend class ::ExtACSyntaxCoupling;
23992
 
  friend class ::ExtACTree;
23993
 
  friend class ::ExtACKeywords;
23994
 
  friend class ::WinAsm;
23995
 
  friend class ::WinDeclSpecs;
23996
 
  friend class ::WinMemberExplSpec;
23997
 
  friend class ::WinTypeKeywords;
23998
 
  friend class ::PragmaOnceUnitState;
23999
 
  friend class ::PragmaOnce;
24000
 
  friend class ::CCExprResolve;
24001
 
  friend class ::CExprResolve;
24002
 
 
24003
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24004
 
 
24005
 
  CTree *sons[3]; // id, colon, stmt
24006
 
 
24007
 
public:
24008
 
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
24009
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
24010
 
  }
24011
 
  static const char *NodeId ();
24012
 
  const char *NodeName () const { return NodeId (); }
24013
 
  int Sons () const { return 3; }
24014
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
24015
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
24016
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
24017
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24018
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24019
 
  }
24020
 
};
24021
 
 
24022
 
 
24023
 
#line 24024 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24024
 
} // closed Puma
24025
 
class WinIfExists;
24026
 
class WinImportHandler;
24027
 
class WinMacros;
24028
 
class CMatchSyntax;
24029
 
class ExtGnu;
24030
 
class ExtAC;
24031
 
class ExtACBuilderCoupling;
24032
 
class ExtACSyntaxCoupling;
24033
 
class ExtACTree;
24034
 
class ExtACKeywords;
24035
 
class WinAsm;
24036
 
class WinDeclSpecs;
24037
 
class WinMemberExplSpec;
24038
 
class WinTypeKeywords;
24039
 
class PragmaOnceUnitState;
24040
 
class PragmaOnce;
24041
 
class CCExprResolve;
24042
 
class CExprResolve;
24043
 
namespace Puma {
24044
 
 
24045
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24046
 
class CT_DefaultStmt : public CT_Statement {
24047
 
#line 24048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24048
 
  friend class ::WinIfExists;
24049
 
  friend class ::WinImportHandler;
24050
 
  friend class ::WinMacros;
24051
 
  friend class ::CMatchSyntax;
24052
 
  friend class ::ExtGnu;
24053
 
  friend class ::ExtAC;
24054
 
  friend class ::ExtACBuilderCoupling;
24055
 
  friend class ::ExtACSyntaxCoupling;
24056
 
  friend class ::ExtACTree;
24057
 
  friend class ::ExtACKeywords;
24058
 
  friend class ::WinAsm;
24059
 
  friend class ::WinDeclSpecs;
24060
 
  friend class ::WinMemberExplSpec;
24061
 
  friend class ::WinTypeKeywords;
24062
 
  friend class ::PragmaOnceUnitState;
24063
 
  friend class ::PragmaOnce;
24064
 
  friend class ::CCExprResolve;
24065
 
  friend class ::CExprResolve;
24066
 
 
24067
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24068
 
 
24069
 
  CTree *sons[3]; // keyword, colon, stmt
24070
 
 
24071
 
public:
24072
 
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
24073
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
24074
 
  }
24075
 
  static const char *NodeId ();
24076
 
  const char *NodeName () const { return NodeId (); }
24077
 
  int Sons () const { return 3; }
24078
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
24079
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
24080
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24081
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24082
 
  }
24083
 
};
24084
 
 
24085
 
 
24086
 
#line 24087 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24087
 
} // closed Puma
24088
 
class WinIfExists;
24089
 
class WinImportHandler;
24090
 
class WinMacros;
24091
 
class CMatchSyntax;
24092
 
class ExtGnu;
24093
 
class ExtAC;
24094
 
class ExtACBuilderCoupling;
24095
 
class ExtACSyntaxCoupling;
24096
 
class ExtACTree;
24097
 
class ExtACKeywords;
24098
 
class WinAsm;
24099
 
class WinDeclSpecs;
24100
 
class WinMemberExplSpec;
24101
 
class WinTypeKeywords;
24102
 
class PragmaOnceUnitState;
24103
 
class PragmaOnce;
24104
 
class CCExprResolve;
24105
 
class CExprResolve;
24106
 
namespace Puma {
24107
 
 
24108
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24109
 
class CT_TryStmt : public CT_Statement {
24110
 
#line 24111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24111
 
  friend class ::WinIfExists;
24112
 
  friend class ::WinImportHandler;
24113
 
  friend class ::WinMacros;
24114
 
  friend class ::CMatchSyntax;
24115
 
  friend class ::ExtGnu;
24116
 
  friend class ::ExtAC;
24117
 
  friend class ::ExtACBuilderCoupling;
24118
 
  friend class ::ExtACSyntaxCoupling;
24119
 
  friend class ::ExtACTree;
24120
 
  friend class ::ExtACKeywords;
24121
 
  friend class ::WinAsm;
24122
 
  friend class ::WinDeclSpecs;
24123
 
  friend class ::WinMemberExplSpec;
24124
 
  friend class ::WinTypeKeywords;
24125
 
  friend class ::PragmaOnceUnitState;
24126
 
  friend class ::PragmaOnce;
24127
 
  friend class ::CCExprResolve;
24128
 
  friend class ::CExprResolve;
24129
 
 
24130
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24131
 
 
24132
 
  CTree *sons[3]; // try, stmt, handlers
24133
 
 
24134
 
public:
24135
 
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
24136
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
24137
 
  }
24138
 
  static const char *NodeId ();
24139
 
  const char *NodeName () const { return NodeId (); }
24140
 
  int Sons () const { return 3; }
24141
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
24142
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
24143
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
24144
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24145
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24146
 
  }
24147
 
};
24148
 
 
24149
 
 
24150
 
#line 24151 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24151
 
} // closed Puma
24152
 
class WinIfExists;
24153
 
class WinImportHandler;
24154
 
class WinMacros;
24155
 
class CMatchSyntax;
24156
 
class ExtGnu;
24157
 
class ExtAC;
24158
 
class ExtACBuilderCoupling;
24159
 
class ExtACSyntaxCoupling;
24160
 
class ExtACTree;
24161
 
class ExtACKeywords;
24162
 
class WinAsm;
24163
 
class WinDeclSpecs;
24164
 
class WinMemberExplSpec;
24165
 
class WinTypeKeywords;
24166
 
class PragmaOnceUnitState;
24167
 
class PragmaOnce;
24168
 
class CCExprResolve;
24169
 
class CExprResolve;
24170
 
namespace Puma {
24171
 
 
24172
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24173
 
class CT_CaseStmt : public CT_Statement {
24174
 
#line 24175 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24175
 
  friend class ::WinIfExists;
24176
 
  friend class ::WinImportHandler;
24177
 
  friend class ::WinMacros;
24178
 
  friend class ::CMatchSyntax;
24179
 
  friend class ::ExtGnu;
24180
 
  friend class ::ExtAC;
24181
 
  friend class ::ExtACBuilderCoupling;
24182
 
  friend class ::ExtACSyntaxCoupling;
24183
 
  friend class ::ExtACTree;
24184
 
  friend class ::ExtACKeywords;
24185
 
  friend class ::WinAsm;
24186
 
  friend class ::WinDeclSpecs;
24187
 
  friend class ::WinMemberExplSpec;
24188
 
  friend class ::WinTypeKeywords;
24189
 
  friend class ::PragmaOnceUnitState;
24190
 
  friend class ::PragmaOnce;
24191
 
  friend class ::CCExprResolve;
24192
 
  friend class ::CExprResolve;
24193
 
 
24194
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24195
 
 
24196
 
  CTree *sons[4]; // keyword, expr, colon, stmt
24197
 
 
24198
 
public:
24199
 
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
24200
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
24201
 
  }
24202
 
  static const char *NodeId ();
24203
 
  const char *NodeName () const { return NodeId (); }
24204
 
  int Sons () const { return 4; }
24205
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
24206
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
24207
 
  CTree *Expr () const { return sons[1]; }
24208
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24209
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
24210
 
  }
24211
 
};
24212
 
 
24213
 
 
24214
 
#line 24215 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24215
 
} // closed Puma
24216
 
class WinIfExists;
24217
 
class WinImportHandler;
24218
 
class WinMacros;
24219
 
class CMatchSyntax;
24220
 
class ExtGnu;
24221
 
class ExtAC;
24222
 
class ExtACBuilderCoupling;
24223
 
class ExtACSyntaxCoupling;
24224
 
class ExtACTree;
24225
 
class ExtACKeywords;
24226
 
class WinAsm;
24227
 
class WinDeclSpecs;
24228
 
class WinMemberExplSpec;
24229
 
class WinTypeKeywords;
24230
 
class PragmaOnceUnitState;
24231
 
class PragmaOnce;
24232
 
class CCExprResolve;
24233
 
class CExprResolve;
24234
 
namespace Puma {
24235
 
 
24236
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24237
 
class CT_ExprStmt : public CT_Statement {
24238
 
#line 24239 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24239
 
  friend class ::WinIfExists;
24240
 
  friend class ::WinImportHandler;
24241
 
  friend class ::WinMacros;
24242
 
  friend class ::CMatchSyntax;
24243
 
  friend class ::ExtGnu;
24244
 
  friend class ::ExtAC;
24245
 
  friend class ::ExtACBuilderCoupling;
24246
 
  friend class ::ExtACSyntaxCoupling;
24247
 
  friend class ::ExtACTree;
24248
 
  friend class ::ExtACKeywords;
24249
 
  friend class ::WinAsm;
24250
 
  friend class ::WinDeclSpecs;
24251
 
  friend class ::WinMemberExplSpec;
24252
 
  friend class ::WinTypeKeywords;
24253
 
  friend class ::PragmaOnceUnitState;
24254
 
  friend class ::PragmaOnce;
24255
 
  friend class ::CCExprResolve;
24256
 
  friend class ::CExprResolve;
24257
 
 
24258
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24259
 
 
24260
 
  CTree *sons[2]; // expr, semi_colon
24261
 
 
24262
 
public:
24263
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
24264
 
  static const char *NodeId ();
24265
 
  const char *NodeName () const { return NodeId (); }
24266
 
  int Sons () const { return CTree::Sons (sons, 2); }
24267
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
24268
 
  CTree *Expr () const { return sons[0]; }
24269
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24270
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
24271
 
  }
24272
 
};
24273
 
 
24274
 
 
24275
 
#line 24276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24276
 
} // closed Puma
24277
 
class WinIfExists;
24278
 
class WinImportHandler;
24279
 
class WinMacros;
24280
 
class CMatchSyntax;
24281
 
class ExtGnu;
24282
 
class ExtAC;
24283
 
class ExtACBuilderCoupling;
24284
 
class ExtACSyntaxCoupling;
24285
 
class ExtACTree;
24286
 
class ExtACKeywords;
24287
 
class WinAsm;
24288
 
class WinDeclSpecs;
24289
 
class WinMemberExplSpec;
24290
 
class WinTypeKeywords;
24291
 
class PragmaOnceUnitState;
24292
 
class PragmaOnce;
24293
 
class CCExprResolve;
24294
 
class CExprResolve;
24295
 
namespace Puma {
24296
 
 
24297
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24298
 
class CT_DeclStmt : public CT_Statement {
24299
 
#line 24300 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24300
 
  friend class ::WinIfExists;
24301
 
  friend class ::WinImportHandler;
24302
 
  friend class ::WinMacros;
24303
 
  friend class ::CMatchSyntax;
24304
 
  friend class ::ExtGnu;
24305
 
  friend class ::ExtAC;
24306
 
  friend class ::ExtACBuilderCoupling;
24307
 
  friend class ::ExtACSyntaxCoupling;
24308
 
  friend class ::ExtACTree;
24309
 
  friend class ::ExtACKeywords;
24310
 
  friend class ::WinAsm;
24311
 
  friend class ::WinDeclSpecs;
24312
 
  friend class ::WinMemberExplSpec;
24313
 
  friend class ::WinTypeKeywords;
24314
 
  friend class ::PragmaOnceUnitState;
24315
 
  friend class ::PragmaOnce;
24316
 
  friend class ::CCExprResolve;
24317
 
  friend class ::CExprResolve;
24318
 
 
24319
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24320
 
 
24321
 
  CTree *_decl;
24322
 
 
24323
 
public:
24324
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
24325
 
  static const char *NodeId ();
24326
 
  const char *NodeName () const { return NodeId (); }
24327
 
  int Sons () const { return 1; }
24328
 
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
24329
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
24330
 
   { if (old_son == _decl) _decl = new_son; }
24331
 
};
24332
 
 
24333
 
 
24334
 
#line 24335 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24335
 
} // closed Puma
24336
 
class WinIfExists;
24337
 
class WinImportHandler;
24338
 
class WinMacros;
24339
 
class CMatchSyntax;
24340
 
class ExtGnu;
24341
 
class ExtAC;
24342
 
class ExtACBuilderCoupling;
24343
 
class ExtACSyntaxCoupling;
24344
 
class ExtACTree;
24345
 
class ExtACKeywords;
24346
 
class WinAsm;
24347
 
class WinDeclSpecs;
24348
 
class WinMemberExplSpec;
24349
 
class WinTypeKeywords;
24350
 
class PragmaOnceUnitState;
24351
 
class PragmaOnce;
24352
 
class CCExprResolve;
24353
 
class CExprResolve;
24354
 
namespace Puma {
24355
 
 
24356
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24357
 
class CT_SwitchStmt : public CT_Statement, public CSemScope {
24358
 
#line 24359 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24359
 
  friend class ::WinIfExists;
24360
 
  friend class ::WinImportHandler;
24361
 
  friend class ::WinMacros;
24362
 
  friend class ::CMatchSyntax;
24363
 
  friend class ::ExtGnu;
24364
 
  friend class ::ExtAC;
24365
 
  friend class ::ExtACBuilderCoupling;
24366
 
  friend class ::ExtACSyntaxCoupling;
24367
 
  friend class ::ExtACTree;
24368
 
  friend class ::ExtACKeywords;
24369
 
  friend class ::WinAsm;
24370
 
  friend class ::WinDeclSpecs;
24371
 
  friend class ::WinMemberExplSpec;
24372
 
  friend class ::WinTypeKeywords;
24373
 
  friend class ::PragmaOnceUnitState;
24374
 
  friend class ::PragmaOnce;
24375
 
  friend class ::CCExprResolve;
24376
 
  friend class ::CExprResolve;
24377
 
 
24378
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24379
 
 
24380
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
24381
 
 
24382
 
public:
24383
 
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
24384
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
24385
 
  }
24386
 
  static const char *NodeId ();
24387
 
  const char *NodeName () const { return NodeId (); }
24388
 
  int Sons () const { return 5; }
24389
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
24390
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
24391
 
  CTree *Condition () const { return sons[2]; }
24392
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24393
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
24394
 
  }
24395
 
};
24396
 
 
24397
 
 
24398
 
#line 24399 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24399
 
} // closed Puma
24400
 
class WinIfExists;
24401
 
class WinImportHandler;
24402
 
class WinMacros;
24403
 
class CMatchSyntax;
24404
 
class ExtGnu;
24405
 
class ExtAC;
24406
 
class ExtACBuilderCoupling;
24407
 
class ExtACSyntaxCoupling;
24408
 
class ExtACTree;
24409
 
class ExtACKeywords;
24410
 
class WinAsm;
24411
 
class WinDeclSpecs;
24412
 
class WinMemberExplSpec;
24413
 
class WinTypeKeywords;
24414
 
class PragmaOnceUnitState;
24415
 
class PragmaOnce;
24416
 
class CCExprResolve;
24417
 
class CExprResolve;
24418
 
namespace Puma {
24419
 
 
24420
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24421
 
class CT_IfStmt : public CT_Statement, public CSemScope {
24422
 
#line 24423 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24423
 
  friend class ::WinIfExists;
24424
 
  friend class ::WinImportHandler;
24425
 
  friend class ::WinMacros;
24426
 
  friend class ::CMatchSyntax;
24427
 
  friend class ::ExtGnu;
24428
 
  friend class ::ExtAC;
24429
 
  friend class ::ExtACBuilderCoupling;
24430
 
  friend class ::ExtACSyntaxCoupling;
24431
 
  friend class ::ExtACTree;
24432
 
  friend class ::ExtACKeywords;
24433
 
  friend class ::WinAsm;
24434
 
  friend class ::WinDeclSpecs;
24435
 
  friend class ::WinMemberExplSpec;
24436
 
  friend class ::WinTypeKeywords;
24437
 
  friend class ::PragmaOnceUnitState;
24438
 
  friend class ::PragmaOnce;
24439
 
  friend class ::CCExprResolve;
24440
 
  friend class ::CExprResolve;
24441
 
 
24442
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24443
 
 
24444
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
24445
 
 
24446
 
public:
24447
 
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
24448
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
24449
 
  }
24450
 
  static const char *NodeId ();
24451
 
  const char *NodeName () const { return NodeId (); }
24452
 
  int Sons () const { return 5; }
24453
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
24454
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
24455
 
  CTree *Condition () const { return sons[2]; }
24456
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24457
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
24458
 
  }
24459
 
};
24460
 
 
24461
 
 
24462
 
#line 24463 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24463
 
} // closed Puma
24464
 
class WinIfExists;
24465
 
class WinImportHandler;
24466
 
class WinMacros;
24467
 
class CMatchSyntax;
24468
 
class ExtGnu;
24469
 
class ExtAC;
24470
 
class ExtACBuilderCoupling;
24471
 
class ExtACSyntaxCoupling;
24472
 
class ExtACTree;
24473
 
class ExtACKeywords;
24474
 
class WinAsm;
24475
 
class WinDeclSpecs;
24476
 
class WinMemberExplSpec;
24477
 
class WinTypeKeywords;
24478
 
class PragmaOnceUnitState;
24479
 
class PragmaOnce;
24480
 
class CCExprResolve;
24481
 
class CExprResolve;
24482
 
namespace Puma {
24483
 
 
24484
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24485
 
class CT_IfElseStmt : public CT_Statement, public CSemScope {
24486
 
#line 24487 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24487
 
  friend class ::WinIfExists;
24488
 
  friend class ::WinImportHandler;
24489
 
  friend class ::WinMacros;
24490
 
  friend class ::CMatchSyntax;
24491
 
  friend class ::ExtGnu;
24492
 
  friend class ::ExtAC;
24493
 
  friend class ::ExtACBuilderCoupling;
24494
 
  friend class ::ExtACSyntaxCoupling;
24495
 
  friend class ::ExtACTree;
24496
 
  friend class ::ExtACKeywords;
24497
 
  friend class ::WinAsm;
24498
 
  friend class ::WinDeclSpecs;
24499
 
  friend class ::WinMemberExplSpec;
24500
 
  friend class ::WinTypeKeywords;
24501
 
  friend class ::PragmaOnceUnitState;
24502
 
  friend class ::PragmaOnce;
24503
 
  friend class ::CCExprResolve;
24504
 
  friend class ::CExprResolve;
24505
 
 
24506
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24507
 
 
24508
 
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
24509
 
 
24510
 
public:
24511
 
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
24512
 
                 CTree *is, CTree *e, CTree *es) {
24513
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
24514
 
    sons[5] = e; sons[6] = es; 
24515
 
  }
24516
 
  static const char *NodeId ();
24517
 
  const char *NodeName () const { return NodeId (); }
24518
 
  int Sons () const { return 7; }
24519
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
24520
 
  CTree *Condition () const { return sons[2]; }
24521
 
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
24522
 
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
24523
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24524
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
24525
 
  }
24526
 
};
24527
 
 
24528
 
 
24529
 
#line 24530 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24530
 
} // closed Puma
24531
 
class WinIfExists;
24532
 
class WinImportHandler;
24533
 
class WinMacros;
24534
 
class CMatchSyntax;
24535
 
class ExtGnu;
24536
 
class ExtAC;
24537
 
class ExtACBuilderCoupling;
24538
 
class ExtACSyntaxCoupling;
24539
 
class ExtACTree;
24540
 
class ExtACKeywords;
24541
 
class WinAsm;
24542
 
class WinDeclSpecs;
24543
 
class WinMemberExplSpec;
24544
 
class WinTypeKeywords;
24545
 
class PragmaOnceUnitState;
24546
 
class PragmaOnce;
24547
 
class CCExprResolve;
24548
 
class CExprResolve;
24549
 
namespace Puma {
24550
 
 
24551
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24552
 
class CT_BreakStmt : public CT_Statement {
24553
 
#line 24554 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24554
 
  friend class ::WinIfExists;
24555
 
  friend class ::WinImportHandler;
24556
 
  friend class ::WinMacros;
24557
 
  friend class ::CMatchSyntax;
24558
 
  friend class ::ExtGnu;
24559
 
  friend class ::ExtAC;
24560
 
  friend class ::ExtACBuilderCoupling;
24561
 
  friend class ::ExtACSyntaxCoupling;
24562
 
  friend class ::ExtACTree;
24563
 
  friend class ::ExtACKeywords;
24564
 
  friend class ::WinAsm;
24565
 
  friend class ::WinDeclSpecs;
24566
 
  friend class ::WinMemberExplSpec;
24567
 
  friend class ::WinTypeKeywords;
24568
 
  friend class ::PragmaOnceUnitState;
24569
 
  friend class ::PragmaOnce;
24570
 
  friend class ::CCExprResolve;
24571
 
  friend class ::CExprResolve;
24572
 
 
24573
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24574
 
 
24575
 
  CTree *sons[2]; // key, semi_colon
24576
 
 
24577
 
public:
24578
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
24579
 
  static const char *NodeId ();
24580
 
  const char *NodeName () const { return NodeId (); }
24581
 
  int Sons () const { return 2; }
24582
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
24583
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24584
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
24585
 
  }
24586
 
};
24587
 
 
24588
 
 
24589
 
#line 24590 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24590
 
} // closed Puma
24591
 
class WinIfExists;
24592
 
class WinImportHandler;
24593
 
class WinMacros;
24594
 
class CMatchSyntax;
24595
 
class ExtGnu;
24596
 
class ExtAC;
24597
 
class ExtACBuilderCoupling;
24598
 
class ExtACSyntaxCoupling;
24599
 
class ExtACTree;
24600
 
class ExtACKeywords;
24601
 
class WinAsm;
24602
 
class WinDeclSpecs;
24603
 
class WinMemberExplSpec;
24604
 
class WinTypeKeywords;
24605
 
class PragmaOnceUnitState;
24606
 
class PragmaOnce;
24607
 
class CCExprResolve;
24608
 
class CExprResolve;
24609
 
namespace Puma {
24610
 
 
24611
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24612
 
class CT_ContinueStmt : public CT_Statement {
24613
 
#line 24614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24614
 
  friend class ::WinIfExists;
24615
 
  friend class ::WinImportHandler;
24616
 
  friend class ::WinMacros;
24617
 
  friend class ::CMatchSyntax;
24618
 
  friend class ::ExtGnu;
24619
 
  friend class ::ExtAC;
24620
 
  friend class ::ExtACBuilderCoupling;
24621
 
  friend class ::ExtACSyntaxCoupling;
24622
 
  friend class ::ExtACTree;
24623
 
  friend class ::ExtACKeywords;
24624
 
  friend class ::WinAsm;
24625
 
  friend class ::WinDeclSpecs;
24626
 
  friend class ::WinMemberExplSpec;
24627
 
  friend class ::WinTypeKeywords;
24628
 
  friend class ::PragmaOnceUnitState;
24629
 
  friend class ::PragmaOnce;
24630
 
  friend class ::CCExprResolve;
24631
 
  friend class ::CExprResolve;
24632
 
 
24633
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24634
 
 
24635
 
  CTree *sons[2]; // key, semi_colon
24636
 
 
24637
 
public:
24638
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
24639
 
  static const char *NodeId ();
24640
 
  const char *NodeName () const { return NodeId (); }
24641
 
  int Sons () const { return 2; }
24642
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
24643
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24644
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
24645
 
  }
24646
 
};
24647
 
 
24648
 
 
24649
 
#line 24650 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24650
 
} // closed Puma
24651
 
class WinIfExists;
24652
 
class WinImportHandler;
24653
 
class WinMacros;
24654
 
class CMatchSyntax;
24655
 
class ExtGnu;
24656
 
class ExtAC;
24657
 
class ExtACBuilderCoupling;
24658
 
class ExtACSyntaxCoupling;
24659
 
class ExtACTree;
24660
 
class ExtACKeywords;
24661
 
class WinAsm;
24662
 
class WinDeclSpecs;
24663
 
class WinMemberExplSpec;
24664
 
class WinTypeKeywords;
24665
 
class PragmaOnceUnitState;
24666
 
class PragmaOnce;
24667
 
class CCExprResolve;
24668
 
class CExprResolve;
24669
 
namespace Puma {
24670
 
 
24671
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24672
 
class CT_GotoStmt : public CT_Statement {
24673
 
#line 24674 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24674
 
  friend class ::WinIfExists;
24675
 
  friend class ::WinImportHandler;
24676
 
  friend class ::WinMacros;
24677
 
  friend class ::CMatchSyntax;
24678
 
  friend class ::ExtGnu;
24679
 
  friend class ::ExtAC;
24680
 
  friend class ::ExtACBuilderCoupling;
24681
 
  friend class ::ExtACSyntaxCoupling;
24682
 
  friend class ::ExtACTree;
24683
 
  friend class ::ExtACKeywords;
24684
 
  friend class ::WinAsm;
24685
 
  friend class ::WinDeclSpecs;
24686
 
  friend class ::WinMemberExplSpec;
24687
 
  friend class ::WinTypeKeywords;
24688
 
  friend class ::PragmaOnceUnitState;
24689
 
  friend class ::PragmaOnce;
24690
 
  friend class ::CCExprResolve;
24691
 
  friend class ::CExprResolve;
24692
 
 
24693
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24694
 
 
24695
 
  CTree *sons[3]; // key, label, semi_colon
24696
 
 
24697
 
public:
24698
 
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
24699
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
24700
 
  }
24701
 
  static const char *NodeId ();
24702
 
  const char *NodeName () const { return NodeId (); }
24703
 
  int Sons () const { return 3; }
24704
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
24705
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
24706
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24707
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24708
 
  }
24709
 
};
24710
 
 
24711
 
 
24712
 
#line 24713 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24713
 
} // closed Puma
24714
 
class WinIfExists;
24715
 
class WinImportHandler;
24716
 
class WinMacros;
24717
 
class CMatchSyntax;
24718
 
class ExtGnu;
24719
 
class ExtAC;
24720
 
class ExtACBuilderCoupling;
24721
 
class ExtACSyntaxCoupling;
24722
 
class ExtACTree;
24723
 
class ExtACKeywords;
24724
 
class WinAsm;
24725
 
class WinDeclSpecs;
24726
 
class WinMemberExplSpec;
24727
 
class WinTypeKeywords;
24728
 
class PragmaOnceUnitState;
24729
 
class PragmaOnce;
24730
 
class CCExprResolve;
24731
 
class CExprResolve;
24732
 
namespace Puma {
24733
 
 
24734
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24735
 
class CT_ReturnStmt : public CT_Statement {
24736
 
#line 24737 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24737
 
  friend class ::WinIfExists;
24738
 
  friend class ::WinImportHandler;
24739
 
  friend class ::WinMacros;
24740
 
  friend class ::CMatchSyntax;
24741
 
  friend class ::ExtGnu;
24742
 
  friend class ::ExtAC;
24743
 
  friend class ::ExtACBuilderCoupling;
24744
 
  friend class ::ExtACSyntaxCoupling;
24745
 
  friend class ::ExtACTree;
24746
 
  friend class ::ExtACKeywords;
24747
 
  friend class ::WinAsm;
24748
 
  friend class ::WinDeclSpecs;
24749
 
  friend class ::WinMemberExplSpec;
24750
 
  friend class ::WinTypeKeywords;
24751
 
  friend class ::PragmaOnceUnitState;
24752
 
  friend class ::PragmaOnce;
24753
 
  friend class ::CCExprResolve;
24754
 
  friend class ::CExprResolve;
24755
 
 
24756
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24757
 
 
24758
 
  CTree *sons[3]; // key, expr, semi_colon
24759
 
 
24760
 
public:
24761
 
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
24762
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
24763
 
  }
24764
 
  static const char *NodeId ();
24765
 
  const char *NodeName () const { return NodeId (); }
24766
 
  int Sons () const { return CTree::Sons (sons, 3); }
24767
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
24768
 
  CTree *Expr () const { return sons[1]; }
24769
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24770
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24771
 
  }
24772
 
};
24773
 
 
24774
 
 
24775
 
#line 24776 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24776
 
} // closed Puma
24777
 
class WinIfExists;
24778
 
class WinImportHandler;
24779
 
class WinMacros;
24780
 
class CMatchSyntax;
24781
 
class ExtGnu;
24782
 
class ExtAC;
24783
 
class ExtACBuilderCoupling;
24784
 
class ExtACSyntaxCoupling;
24785
 
class ExtACTree;
24786
 
class ExtACKeywords;
24787
 
class WinAsm;
24788
 
class WinDeclSpecs;
24789
 
class WinMemberExplSpec;
24790
 
class WinTypeKeywords;
24791
 
class PragmaOnceUnitState;
24792
 
class PragmaOnce;
24793
 
class CCExprResolve;
24794
 
class CExprResolve;
24795
 
namespace Puma {
24796
 
 
24797
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24798
 
class CT_WhileStmt : public CT_Statement, public CSemScope {
24799
 
#line 24800 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24800
 
  friend class ::WinIfExists;
24801
 
  friend class ::WinImportHandler;
24802
 
  friend class ::WinMacros;
24803
 
  friend class ::CMatchSyntax;
24804
 
  friend class ::ExtGnu;
24805
 
  friend class ::ExtAC;
24806
 
  friend class ::ExtACBuilderCoupling;
24807
 
  friend class ::ExtACSyntaxCoupling;
24808
 
  friend class ::ExtACTree;
24809
 
  friend class ::ExtACKeywords;
24810
 
  friend class ::WinAsm;
24811
 
  friend class ::WinDeclSpecs;
24812
 
  friend class ::WinMemberExplSpec;
24813
 
  friend class ::WinTypeKeywords;
24814
 
  friend class ::PragmaOnceUnitState;
24815
 
  friend class ::PragmaOnce;
24816
 
  friend class ::CCExprResolve;
24817
 
  friend class ::CExprResolve;
24818
 
 
24819
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24820
 
 
24821
 
  CTree *sons[5]; // key, open, cond, close, stmt
24822
 
 
24823
 
public:
24824
 
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
24825
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
24826
 
  }
24827
 
  static const char *NodeId ();
24828
 
  const char *NodeName () const { return NodeId (); }
24829
 
  int Sons () const { return 5; }
24830
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
24831
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
24832
 
  CTree *Condition () const { return sons[2]; }
24833
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24834
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
24835
 
  }
24836
 
};
24837
 
 
24838
 
 
24839
 
#line 24840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24840
 
} // closed Puma
24841
 
class WinIfExists;
24842
 
class WinImportHandler;
24843
 
class WinMacros;
24844
 
class CMatchSyntax;
24845
 
class ExtGnu;
24846
 
class ExtAC;
24847
 
class ExtACBuilderCoupling;
24848
 
class ExtACSyntaxCoupling;
24849
 
class ExtACTree;
24850
 
class ExtACKeywords;
24851
 
class WinAsm;
24852
 
class WinDeclSpecs;
24853
 
class WinMemberExplSpec;
24854
 
class WinTypeKeywords;
24855
 
class PragmaOnceUnitState;
24856
 
class PragmaOnce;
24857
 
class CCExprResolve;
24858
 
class CExprResolve;
24859
 
namespace Puma {
24860
 
 
24861
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24862
 
class CT_DoStmt : public CT_Statement {
24863
 
#line 24864 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24864
 
  friend class ::WinIfExists;
24865
 
  friend class ::WinImportHandler;
24866
 
  friend class ::WinMacros;
24867
 
  friend class ::CMatchSyntax;
24868
 
  friend class ::ExtGnu;
24869
 
  friend class ::ExtAC;
24870
 
  friend class ::ExtACBuilderCoupling;
24871
 
  friend class ::ExtACSyntaxCoupling;
24872
 
  friend class ::ExtACTree;
24873
 
  friend class ::ExtACKeywords;
24874
 
  friend class ::WinAsm;
24875
 
  friend class ::WinDeclSpecs;
24876
 
  friend class ::WinMemberExplSpec;
24877
 
  friend class ::WinTypeKeywords;
24878
 
  friend class ::PragmaOnceUnitState;
24879
 
  friend class ::PragmaOnce;
24880
 
  friend class ::CCExprResolve;
24881
 
  friend class ::CExprResolve;
24882
 
 
24883
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24884
 
 
24885
 
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
24886
 
 
24887
 
public:
24888
 
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
24889
 
             CTree *c, CTree *sc) {
24890
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
24891
 
    sons[5] = c; sons[6] = sc; 
24892
 
  }
24893
 
  static const char *NodeId ();
24894
 
  const char *NodeName () const { return NodeId (); }
24895
 
  int Sons () const { return 7; }
24896
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
24897
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
24898
 
  CTree *Expr () const { return sons[4]; }
24899
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24900
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
24901
 
  }
24902
 
};
24903
 
 
24904
 
 
24905
 
#line 24906 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24906
 
} // closed Puma
24907
 
class WinIfExists;
24908
 
class WinImportHandler;
24909
 
class WinMacros;
24910
 
class CMatchSyntax;
24911
 
class ExtGnu;
24912
 
class ExtAC;
24913
 
class ExtACBuilderCoupling;
24914
 
class ExtACSyntaxCoupling;
24915
 
class ExtACTree;
24916
 
class ExtACKeywords;
24917
 
class WinAsm;
24918
 
class WinDeclSpecs;
24919
 
class WinMemberExplSpec;
24920
 
class WinTypeKeywords;
24921
 
class PragmaOnceUnitState;
24922
 
class PragmaOnce;
24923
 
class CCExprResolve;
24924
 
class CExprResolve;
24925
 
namespace Puma {
24926
 
 
24927
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24928
 
class CT_ForStmt : public CT_Statement, public CSemScope {
24929
 
#line 24930 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24930
 
  friend class ::WinIfExists;
24931
 
  friend class ::WinImportHandler;
24932
 
  friend class ::WinMacros;
24933
 
  friend class ::CMatchSyntax;
24934
 
  friend class ::ExtGnu;
24935
 
  friend class ::ExtAC;
24936
 
  friend class ::ExtACBuilderCoupling;
24937
 
  friend class ::ExtACSyntaxCoupling;
24938
 
  friend class ::ExtACTree;
24939
 
  friend class ::ExtACKeywords;
24940
 
  friend class ::WinAsm;
24941
 
  friend class ::WinDeclSpecs;
24942
 
  friend class ::WinMemberExplSpec;
24943
 
  friend class ::WinTypeKeywords;
24944
 
  friend class ::PragmaOnceUnitState;
24945
 
  friend class ::PragmaOnce;
24946
 
  friend class ::CCExprResolve;
24947
 
  friend class ::CExprResolve;
24948
 
 
24949
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24950
 
 
24951
 
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
24952
 
 
24953
 
public:
24954
 
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
24955
 
              CTree *e, CTree *c, CTree *stmt) {
24956
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
24957
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
24958
 
  }
24959
 
  static const char *NodeId ();
24960
 
  const char *NodeName () const { return NodeId (); }
24961
 
  int Sons () const { return CTree::Sons (sons, 8); }
24962
 
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
24963
 
  CTree *InitStmt () const { return sons[2]; }
24964
 
  CTree *Condition () const { return sons[3]; }
24965
 
  CTree *Expr () const { return sons[5]; }
24966
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
24967
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24968
 
    CTree::ReplaceSon (sons, 8, old_son, new_son);
24969
 
  }
24970
 
};
24971
 
 
24972
 
 
24973
 
#line 24974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24974
 
} // closed Puma
24975
 
class WinIfExists;
24976
 
class WinImportHandler;
24977
 
class WinMacros;
24978
 
class CMatchSyntax;
24979
 
class ExtGnu;
24980
 
class ExtAC;
24981
 
class ExtACBuilderCoupling;
24982
 
class ExtACSyntaxCoupling;
24983
 
class ExtACTree;
24984
 
class ExtACKeywords;
24985
 
class WinAsm;
24986
 
class WinDeclSpecs;
24987
 
class WinMemberExplSpec;
24988
 
class WinTypeKeywords;
24989
 
class PragmaOnceUnitState;
24990
 
class PragmaOnce;
24991
 
class CCExprResolve;
24992
 
class CExprResolve;
24993
 
namespace Puma {
24994
 
 
24995
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24996
 
class CT_Condition : public CT_Decl, public CSemObject {
24997
 
#line 24998 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
24998
 
  friend class ::WinIfExists;
24999
 
  friend class ::WinImportHandler;
25000
 
  friend class ::WinMacros;
25001
 
  friend class ::CMatchSyntax;
25002
 
  friend class ::ExtGnu;
25003
 
  friend class ::ExtAC;
25004
 
  friend class ::ExtACBuilderCoupling;
25005
 
  friend class ::ExtACSyntaxCoupling;
25006
 
  friend class ::ExtACTree;
25007
 
  friend class ::ExtACKeywords;
25008
 
  friend class ::WinAsm;
25009
 
  friend class ::WinDeclSpecs;
25010
 
  friend class ::WinMemberExplSpec;
25011
 
  friend class ::WinTypeKeywords;
25012
 
  friend class ::PragmaOnceUnitState;
25013
 
  friend class ::PragmaOnce;
25014
 
  friend class ::CCExprResolve;
25015
 
  friend class ::CExprResolve;
25016
 
 
25017
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25018
 
 
25019
 
  CTree *sons[3]; // declspecs, declarator, init
25020
 
 
25021
 
public:
25022
 
  CT_Condition (CTree *dsl, CTree *d) {
25023
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
25024
 
  }
25025
 
  static const char *NodeId ();
25026
 
  const char *NodeName () const { return NodeId (); }
25027
 
  int Sons () const { return CTree::Sons (sons, 3); }
25028
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
25029
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
25030
 
  CTree *Declarator () const { return sons[1]; }
25031
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
25032
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
25033
 
  void Initializer (CTree *i) { sons[2] = i; }
25034
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25035
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
25036
 
  }
25037
 
};
25038
 
 
25039
 
/*****************************************************************************/
25040
 
/*                                                                           */
25041
 
/*                              Classes                                      */
25042
 
/*                                                                           */
25043
 
/*****************************************************************************/
25044
 
 
25045
 
 
25046
 
#line 25047 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25047
 
} // closed Puma
25048
 
class WinIfExists;
25049
 
class WinImportHandler;
25050
 
class WinMacros;
25051
 
class CMatchSyntax;
25052
 
class ExtGnu;
25053
 
class ExtAC;
25054
 
class ExtACBuilderCoupling;
25055
 
class ExtACSyntaxCoupling;
25056
 
class ExtACTree;
25057
 
class ExtACKeywords;
25058
 
class WinAsm;
25059
 
class WinDeclSpecs;
25060
 
class WinMemberExplSpec;
25061
 
class WinTypeKeywords;
25062
 
class PragmaOnceUnitState;
25063
 
class PragmaOnce;
25064
 
class CCExprResolve;
25065
 
class CExprResolve;
25066
 
namespace Puma {
25067
 
 
25068
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25069
 
class CT_ClassDef : public CT_Decl, public CSemObject {
25070
 
#line 25071 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25071
 
  friend class ::WinIfExists;
25072
 
  friend class ::WinImportHandler;
25073
 
  friend class ::WinMacros;
25074
 
  friend class ::CMatchSyntax;
25075
 
  friend class ::ExtGnu;
25076
 
  friend class ::ExtAC;
25077
 
  friend class ::ExtACBuilderCoupling;
25078
 
  friend class ::ExtACSyntaxCoupling;
25079
 
  friend class ::ExtACTree;
25080
 
  friend class ::ExtACKeywords;
25081
 
  friend class ::WinAsm;
25082
 
  friend class ::WinDeclSpecs;
25083
 
  friend class ::WinMemberExplSpec;
25084
 
  friend class ::WinTypeKeywords;
25085
 
  friend class ::PragmaOnceUnitState;
25086
 
  friend class ::PragmaOnce;
25087
 
  friend class ::CCExprResolve;
25088
 
  friend class ::CExprResolve;
25089
 
 
25090
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25091
 
 
25092
 
   
25093
 
#line 25094 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25094
 
 
25095
 
  struct __ac_wrapper_sons {
25096
 
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
25097
 
    operator A& () { return _data; }
25098
 
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
25099
 
    operator const A& () { return _data; }
25100
 
    operator const A& () const { return _data; }
25101
 
    operator void* () { return _data; }
25102
 
    operator void* () const { return (void*)_data; }
25103
 
    operator const void* () { return _data; }
25104
 
    operator const void* () const { return _data; }
25105
 
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
25106
 
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
25107
 
  } sons
25108
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25109
 
 
25110
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25111
 
; // key, name, bases, members
25112
 
  CTree *obj_decl;
25113
 
 
25114
 
public:
25115
 
  
25116
 
#line 25117 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25117
 
 
25118
 
 
25119
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
25120
 
  typedef void Result;
25121
 
  typedef ::Puma::CT_ClassDef That;
25122
 
  typedef ::Puma::CT_ClassDef Target;
25123
 
  static const int JPID = 4;
25124
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
25125
 
  struct Res {
25126
 
    typedef void Type;
25127
 
    typedef void ReferredType;
25128
 
  };
25129
 
  enum { ARGS = 3 };
25130
 
  template <int I, int DUMMY = 0> struct Arg {
25131
 
    typedef void Type;
25132
 
    typedef void ReferredType;
25133
 
  };
25134
 
  template <int DUMMY> struct Arg<0, DUMMY> {
25135
 
    typedef ::Puma::CTree * Type;
25136
 
    typedef ::Puma::CTree * ReferredType;
25137
 
  };
25138
 
  template <int DUMMY> struct Arg<1, DUMMY> {
25139
 
    typedef ::Puma::CTree * Type;
25140
 
    typedef ::Puma::CTree * ReferredType;
25141
 
  };
25142
 
  template <int DUMMY> struct Arg<2, DUMMY> {
25143
 
    typedef ::Puma::CTree * Type;
25144
 
    typedef ::Puma::CTree * ReferredType;
25145
 
  };
25146
 
 
25147
 
  That *_that;
25148
 
 
25149
 
  inline That *that() {return (That*)_that;}
25150
 
 
25151
 
};
25152
 
 
25153
 
 
25154
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25155
 
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
25156
 
#line 25157 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25157
 
{
25158
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
25159
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
25160
 
this->__exec_old_C1(arg0, arg1, arg2);
25161
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
25162
 
 
25163
 
}
25164
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
25165
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25166
 
{
25167
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
25168
 
  }
25169
 
  static const char *NodeId ();
25170
 
  const char *NodeName () const { return NodeId (); }
25171
 
  int Sons () const { return CTree::Sons (sons, 4); }
25172
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
25173
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
25174
 
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
25175
 
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
25176
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
25177
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
25178
 
  void Members (CTree *m) { sons[3] = m; }
25179
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
25180
 
  void ObjDecl (CTree *od) { obj_decl = od; }
25181
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
25182
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
25183
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
25184
 
  }
25185
 
   private:
25186
 
 
25187
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
25188
 
 CTree * _intro_members ;
25189
 
public :
25190
 
CTree * IntroMembers ( ) const { return _intro_members ; }
25191
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
25192
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25193
 
 
25194
 
#line 25195 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25195
 
 
25196
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
25197
 
  typedef void Result;
25198
 
  typedef ::Puma::CT_ClassDef That;
25199
 
  typedef ::Puma::CT_ClassDef Target;
25200
 
  static const int JPID = 4;
25201
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
25202
 
  struct Res {
25203
 
    typedef void Type;
25204
 
    typedef void ReferredType;
25205
 
  };
25206
 
  enum { ARGS = 1 };
25207
 
  template <int I, int DUMMY = 0> struct Arg {
25208
 
    typedef void Type;
25209
 
    typedef void ReferredType;
25210
 
  };
25211
 
  template <int DUMMY> struct Arg<0, DUMMY> {
25212
 
    typedef const ::Puma::CT_ClassDef & Type;
25213
 
    typedef const ::Puma::CT_ClassDef ReferredType;
25214
 
  };
25215
 
 
25216
 
  That *_that;
25217
 
 
25218
 
  inline That *that() {return (That*)_that;}
25219
 
 
25220
 
};
25221
 
 
25222
 
 
25223
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25224
 
 
25225
 
#line 25226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25226
 
 
25227
 
public:
25228
 
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) {
25229
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
25230
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
25231
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
25232
 
 
25233
 
}
25234
 
 
25235
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25236
 
 
25237
 
#line 25238 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25238
 
 
25239
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
25240
 
  typedef void Result;
25241
 
  typedef ::Puma::CT_ClassDef That;
25242
 
  typedef ::Puma::CT_ClassDef Target;
25243
 
  static const int JPID = 4;
25244
 
  static const AC::JPType JPTYPE = (AC::JPType)32;
25245
 
  struct Res {
25246
 
    typedef void Type;
25247
 
    typedef void ReferredType;
25248
 
  };
25249
 
  enum { ARGS = 0 };
25250
 
  template <int I, int DUMMY = 0> struct Arg {
25251
 
    typedef void Type;
25252
 
    typedef void ReferredType;
25253
 
  };
25254
 
 
25255
 
  That *_that;
25256
 
 
25257
 
  inline That *that() {return (That*)_that;}
25258
 
 
25259
 
};
25260
 
 
25261
 
 
25262
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25263
 
 
25264
 
#line 25265 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25265
 
 
25266
 
public:
25267
 
inline ~CT_ClassDef () {
25268
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
25269
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
25270
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
25271
 
 
25272
 
}
25273
 
 
25274
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25275
 
};
25276
 
      
25277
 
 
25278
 
#line 25279 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25279
 
} // closed Puma
25280
 
class WinIfExists;
25281
 
class WinImportHandler;
25282
 
class WinMacros;
25283
 
class CMatchSyntax;
25284
 
class ExtGnu;
25285
 
class ExtAC;
25286
 
class ExtACBuilderCoupling;
25287
 
class ExtACSyntaxCoupling;
25288
 
class ExtACTree;
25289
 
class ExtACKeywords;
25290
 
class WinAsm;
25291
 
class WinDeclSpecs;
25292
 
class WinMemberExplSpec;
25293
 
class WinTypeKeywords;
25294
 
class PragmaOnceUnitState;
25295
 
class PragmaOnce;
25296
 
class CCExprResolve;
25297
 
class CExprResolve;
25298
 
namespace Puma {
25299
 
 
25300
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25301
 
class CT_UnionDef : public CT_ClassDef {
25302
 
#line 25303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25303
 
  friend class ::WinIfExists;
25304
 
  friend class ::WinImportHandler;
25305
 
  friend class ::WinMacros;
25306
 
  friend class ::CMatchSyntax;
25307
 
  friend class ::ExtGnu;
25308
 
  friend class ::ExtAC;
25309
 
  friend class ::ExtACBuilderCoupling;
25310
 
  friend class ::ExtACSyntaxCoupling;
25311
 
  friend class ::ExtACTree;
25312
 
  friend class ::ExtACKeywords;
25313
 
  friend class ::WinAsm;
25314
 
  friend class ::WinDeclSpecs;
25315
 
  friend class ::WinMemberExplSpec;
25316
 
  friend class ::WinTypeKeywords;
25317
 
  friend class ::PragmaOnceUnitState;
25318
 
  friend class ::PragmaOnce;
25319
 
  friend class ::CCExprResolve;
25320
 
  friend class ::CExprResolve;
25321
 
 
25322
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25323
 
 
25324
 
public:
25325
 
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
25326
 
  static const char *NodeId ();
25327
 
  const char *NodeName () const { return NodeId (); }
25328
 
};
25329
 
      
25330
 
 
25331
 
#line 25332 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25332
 
} // closed Puma
25333
 
class WinIfExists;
25334
 
class WinImportHandler;
25335
 
class WinMacros;
25336
 
class CMatchSyntax;
25337
 
class ExtGnu;
25338
 
class ExtAC;
25339
 
class ExtACBuilderCoupling;
25340
 
class ExtACSyntaxCoupling;
25341
 
class ExtACTree;
25342
 
class ExtACKeywords;
25343
 
class WinAsm;
25344
 
class WinDeclSpecs;
25345
 
class WinMemberExplSpec;
25346
 
class WinTypeKeywords;
25347
 
class PragmaOnceUnitState;
25348
 
class PragmaOnce;
25349
 
class CCExprResolve;
25350
 
class CExprResolve;
25351
 
namespace Puma {
25352
 
 
25353
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25354
 
class CT_MembList : public CT_DeclList, public CSemScope {
25355
 
#line 25356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25356
 
  friend class ::WinIfExists;
25357
 
  friend class ::WinImportHandler;
25358
 
  friend class ::WinMacros;
25359
 
  friend class ::CMatchSyntax;
25360
 
  friend class ::ExtGnu;
25361
 
  friend class ::ExtAC;
25362
 
  friend class ::ExtACBuilderCoupling;
25363
 
  friend class ::ExtACSyntaxCoupling;
25364
 
  friend class ::ExtACTree;
25365
 
  friend class ::ExtACKeywords;
25366
 
  friend class ::WinAsm;
25367
 
  friend class ::WinDeclSpecs;
25368
 
  friend class ::WinMemberExplSpec;
25369
 
  friend class ::WinTypeKeywords;
25370
 
  friend class ::PragmaOnceUnitState;
25371
 
  friend class ::PragmaOnce;
25372
 
  friend class ::CCExprResolve;
25373
 
  friend class ::CExprResolve;
25374
 
 
25375
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25376
 
 
25377
 
public:
25378
 
  CT_MembList (int size = 10, int incr = 10) : 
25379
 
    CT_DeclList (size, incr) {}
25380
 
  static const char *NodeId ();
25381
 
  const char *NodeName () const { return NodeId (); }
25382
 
};
25383
 
 
25384
 
 
25385
 
#line 25386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25386
 
} // closed Puma
25387
 
class WinIfExists;
25388
 
class WinImportHandler;
25389
 
class WinMacros;
25390
 
class CMatchSyntax;
25391
 
class ExtGnu;
25392
 
class ExtAC;
25393
 
class ExtACBuilderCoupling;
25394
 
class ExtACSyntaxCoupling;
25395
 
class ExtACTree;
25396
 
class ExtACKeywords;
25397
 
class WinAsm;
25398
 
class WinDeclSpecs;
25399
 
class WinMemberExplSpec;
25400
 
class WinTypeKeywords;
25401
 
class PragmaOnceUnitState;
25402
 
class PragmaOnce;
25403
 
class CCExprResolve;
25404
 
class CExprResolve;
25405
 
namespace Puma {
25406
 
 
25407
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25408
 
class CT_MembInitList : public CT_List, public CSemScope {
25409
 
#line 25410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25410
 
  friend class ::WinIfExists;
25411
 
  friend class ::WinImportHandler;
25412
 
  friend class ::WinMacros;
25413
 
  friend class ::CMatchSyntax;
25414
 
  friend class ::ExtGnu;
25415
 
  friend class ::ExtAC;
25416
 
  friend class ::ExtACBuilderCoupling;
25417
 
  friend class ::ExtACSyntaxCoupling;
25418
 
  friend class ::ExtACTree;
25419
 
  friend class ::ExtACKeywords;
25420
 
  friend class ::WinAsm;
25421
 
  friend class ::WinDeclSpecs;
25422
 
  friend class ::WinMemberExplSpec;
25423
 
  friend class ::WinTypeKeywords;
25424
 
  friend class ::PragmaOnceUnitState;
25425
 
  friend class ::PragmaOnce;
25426
 
  friend class ::CCExprResolve;
25427
 
  friend class ::CExprResolve;
25428
 
 
25429
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25430
 
 
25431
 
public:
25432
 
  CT_MembInitList (int size = 2) : 
25433
 
    CT_List (size, 2, CT_List::OPEN) {}
25434
 
  static const char *NodeId ();
25435
 
  const char *NodeName () const { return NodeId (); }
25436
 
};
25437
 
 
25438
 
 
25439
 
#line 25440 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25440
 
} // closed Puma
25441
 
class WinIfExists;
25442
 
class WinImportHandler;
25443
 
class WinMacros;
25444
 
class CMatchSyntax;
25445
 
class ExtGnu;
25446
 
class ExtAC;
25447
 
class ExtACBuilderCoupling;
25448
 
class ExtACSyntaxCoupling;
25449
 
class ExtACTree;
25450
 
class ExtACKeywords;
25451
 
class WinAsm;
25452
 
class WinDeclSpecs;
25453
 
class WinMemberExplSpec;
25454
 
class WinTypeKeywords;
25455
 
class PragmaOnceUnitState;
25456
 
class PragmaOnce;
25457
 
class CCExprResolve;
25458
 
class CExprResolve;
25459
 
namespace Puma {
25460
 
 
25461
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25462
 
class CT_MembInit : public CT_Expression, public CSemObject {
25463
 
#line 25464 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25464
 
  friend class ::WinIfExists;
25465
 
  friend class ::WinImportHandler;
25466
 
  friend class ::WinMacros;
25467
 
  friend class ::CMatchSyntax;
25468
 
  friend class ::ExtGnu;
25469
 
  friend class ::ExtAC;
25470
 
  friend class ::ExtACBuilderCoupling;
25471
 
  friend class ::ExtACSyntaxCoupling;
25472
 
  friend class ::ExtACTree;
25473
 
  friend class ::ExtACKeywords;
25474
 
  friend class ::WinAsm;
25475
 
  friend class ::WinDeclSpecs;
25476
 
  friend class ::WinMemberExplSpec;
25477
 
  friend class ::WinTypeKeywords;
25478
 
  friend class ::PragmaOnceUnitState;
25479
 
  friend class ::PragmaOnce;
25480
 
  friend class ::CCExprResolve;
25481
 
  friend class ::CExprResolve;
25482
 
 
25483
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25484
 
 
25485
 
  CTree *sons[2]; // name, init
25486
 
 
25487
 
public:
25488
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
25489
 
  static const char *NodeId ();
25490
 
  const char *NodeName () const { return NodeId (); }
25491
 
  int Sons () const { return 2; }
25492
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
25493
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25494
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
25495
 
  }
25496
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
25497
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
25498
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
25499
 
   private:
25500
 
  typedef CT_MembInit CCExprResolveExpr;
25501
 
 
25502
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
25503
 
 public :
25504
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
25505
 
  typedef CT_MembInit CExprResolveExpr;
25506
 
 
25507
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
25508
 
 public :
25509
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
25510
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25511
 
};
25512
 
 
25513
 
 
25514
 
#line 25515 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25515
 
} // closed Puma
25516
 
class WinIfExists;
25517
 
class WinImportHandler;
25518
 
class WinMacros;
25519
 
class CMatchSyntax;
25520
 
class ExtGnu;
25521
 
class ExtAC;
25522
 
class ExtACBuilderCoupling;
25523
 
class ExtACSyntaxCoupling;
25524
 
class ExtACTree;
25525
 
class ExtACKeywords;
25526
 
class WinAsm;
25527
 
class WinDeclSpecs;
25528
 
class WinMemberExplSpec;
25529
 
class WinTypeKeywords;
25530
 
class PragmaOnceUnitState;
25531
 
class PragmaOnce;
25532
 
class CCExprResolve;
25533
 
class CExprResolve;
25534
 
namespace Puma {
25535
 
 
25536
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25537
 
class CT_BaseSpecList : public CT_List {
25538
 
#line 25539 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25539
 
  friend class ::WinIfExists;
25540
 
  friend class ::WinImportHandler;
25541
 
  friend class ::WinMacros;
25542
 
  friend class ::CMatchSyntax;
25543
 
  friend class ::ExtGnu;
25544
 
  friend class ::ExtAC;
25545
 
  friend class ::ExtACBuilderCoupling;
25546
 
  friend class ::ExtACSyntaxCoupling;
25547
 
  friend class ::ExtACTree;
25548
 
  friend class ::ExtACKeywords;
25549
 
  friend class ::WinAsm;
25550
 
  friend class ::WinDeclSpecs;
25551
 
  friend class ::WinMemberExplSpec;
25552
 
  friend class ::WinTypeKeywords;
25553
 
  friend class ::PragmaOnceUnitState;
25554
 
  friend class ::PragmaOnce;
25555
 
  friend class ::CCExprResolve;
25556
 
  friend class ::CExprResolve;
25557
 
 
25558
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25559
 
 
25560
 
public:
25561
 
  CT_BaseSpecList (int size = 2) : 
25562
 
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
25563
 
  static const char *NodeId ();
25564
 
  const char *NodeName () const { return NodeId (); }
25565
 
};
25566
 
 
25567
 
 
25568
 
#line 25569 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25569
 
} // closed Puma
25570
 
class WinIfExists;
25571
 
class WinImportHandler;
25572
 
class WinMacros;
25573
 
class CMatchSyntax;
25574
 
class ExtGnu;
25575
 
class ExtAC;
25576
 
class ExtACBuilderCoupling;
25577
 
class ExtACSyntaxCoupling;
25578
 
class ExtACTree;
25579
 
class ExtACKeywords;
25580
 
class WinAsm;
25581
 
class WinDeclSpecs;
25582
 
class WinMemberExplSpec;
25583
 
class WinTypeKeywords;
25584
 
class PragmaOnceUnitState;
25585
 
class PragmaOnce;
25586
 
class CCExprResolve;
25587
 
class CExprResolve;
25588
 
namespace Puma {
25589
 
 
25590
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25591
 
class CT_AccessSpec : public CTree {
25592
 
#line 25593 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25593
 
  friend class ::WinIfExists;
25594
 
  friend class ::WinImportHandler;
25595
 
  friend class ::WinMacros;
25596
 
  friend class ::CMatchSyntax;
25597
 
  friend class ::ExtGnu;
25598
 
  friend class ::ExtAC;
25599
 
  friend class ::ExtACBuilderCoupling;
25600
 
  friend class ::ExtACSyntaxCoupling;
25601
 
  friend class ::ExtACTree;
25602
 
  friend class ::ExtACKeywords;
25603
 
  friend class ::WinAsm;
25604
 
  friend class ::WinDeclSpecs;
25605
 
  friend class ::WinMemberExplSpec;
25606
 
  friend class ::WinTypeKeywords;
25607
 
  friend class ::PragmaOnceUnitState;
25608
 
  friend class ::PragmaOnce;
25609
 
  friend class ::CCExprResolve;
25610
 
  friend class ::CExprResolve;
25611
 
 
25612
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25613
 
 
25614
 
  CTree *sons[2]; // access, colon
25615
 
 
25616
 
public:
25617
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
25618
 
  static const char *NodeId ();
25619
 
  const char *NodeName () const { return NodeId (); }
25620
 
  int Sons () const { return 2; }
25621
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
25622
 
  int Access () const { return sons[0]->token ()->type (); }
25623
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25624
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
25625
 
  }
25626
 
};
25627
 
 
25628
 
 
25629
 
#line 25630 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25630
 
} // closed Puma
25631
 
class WinIfExists;
25632
 
class WinImportHandler;
25633
 
class WinMacros;
25634
 
class CMatchSyntax;
25635
 
class ExtGnu;
25636
 
class ExtAC;
25637
 
class ExtACBuilderCoupling;
25638
 
class ExtACSyntaxCoupling;
25639
 
class ExtACTree;
25640
 
class ExtACKeywords;
25641
 
class WinAsm;
25642
 
class WinDeclSpecs;
25643
 
class WinMemberExplSpec;
25644
 
class WinTypeKeywords;
25645
 
class PragmaOnceUnitState;
25646
 
class PragmaOnce;
25647
 
class CCExprResolve;
25648
 
class CExprResolve;
25649
 
namespace Puma {
25650
 
 
25651
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25652
 
class CT_BaseSpec : public CTree {
25653
 
#line 25654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25654
 
  friend class ::WinIfExists;
25655
 
  friend class ::WinImportHandler;
25656
 
  friend class ::WinMacros;
25657
 
  friend class ::CMatchSyntax;
25658
 
  friend class ::ExtGnu;
25659
 
  friend class ::ExtAC;
25660
 
  friend class ::ExtACBuilderCoupling;
25661
 
  friend class ::ExtACSyntaxCoupling;
25662
 
  friend class ::ExtACTree;
25663
 
  friend class ::ExtACKeywords;
25664
 
  friend class ::WinAsm;
25665
 
  friend class ::WinDeclSpecs;
25666
 
  friend class ::WinMemberExplSpec;
25667
 
  friend class ::WinTypeKeywords;
25668
 
  friend class ::PragmaOnceUnitState;
25669
 
  friend class ::PragmaOnce;
25670
 
  friend class ::CCExprResolve;
25671
 
  friend class ::CExprResolve;
25672
 
 
25673
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25674
 
 
25675
 
  CTree *sons[3]; // virtual, access, name
25676
 
 
25677
 
public:
25678
 
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
25679
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
25680
 
  }
25681
 
  static const char *NodeId ();
25682
 
  const char *NodeName () const { return NodeId (); }
25683
 
  int Sons () const { return CTree::Sons (sons, 3); }
25684
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
25685
 
  int Access () const { return sons[1]->token ()->type (); }
25686
 
  CTree *AccessSpec () const { return sons[1]; }
25687
 
  CTree *Virtual () const { return sons[0]; }
25688
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
25689
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25690
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
25691
 
  }
25692
 
};
25693
 
 
25694
 
 
25695
 
#line 25696 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25696
 
} // closed Puma
25697
 
class WinIfExists;
25698
 
class WinImportHandler;
25699
 
class WinMacros;
25700
 
class CMatchSyntax;
25701
 
class ExtGnu;
25702
 
class ExtAC;
25703
 
class ExtACBuilderCoupling;
25704
 
class ExtACSyntaxCoupling;
25705
 
class ExtACTree;
25706
 
class ExtACKeywords;
25707
 
class WinAsm;
25708
 
class WinDeclSpecs;
25709
 
class WinMemberExplSpec;
25710
 
class WinTypeKeywords;
25711
 
class PragmaOnceUnitState;
25712
 
class PragmaOnce;
25713
 
class CCExprResolve;
25714
 
class CExprResolve;
25715
 
namespace Puma {
25716
 
 
25717
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25718
 
class CT_AccessDecl : public CT_Decl {
25719
 
#line 25720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25720
 
  friend class ::WinIfExists;
25721
 
  friend class ::WinImportHandler;
25722
 
  friend class ::WinMacros;
25723
 
  friend class ::CMatchSyntax;
25724
 
  friend class ::ExtGnu;
25725
 
  friend class ::ExtAC;
25726
 
  friend class ::ExtACBuilderCoupling;
25727
 
  friend class ::ExtACSyntaxCoupling;
25728
 
  friend class ::ExtACTree;
25729
 
  friend class ::ExtACKeywords;
25730
 
  friend class ::WinAsm;
25731
 
  friend class ::WinDeclSpecs;
25732
 
  friend class ::WinMemberExplSpec;
25733
 
  friend class ::WinTypeKeywords;
25734
 
  friend class ::PragmaOnceUnitState;
25735
 
  friend class ::PragmaOnce;
25736
 
  friend class ::CCExprResolve;
25737
 
  friend class ::CExprResolve;
25738
 
 
25739
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25740
 
 
25741
 
  CTree *sons[2]; // name, semi_colon
25742
 
 
25743
 
public:
25744
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
25745
 
  static const char *NodeId ();
25746
 
  const char *NodeName () const { return NodeId (); }
25747
 
  int Sons () const { return 2; }
25748
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
25749
 
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
25750
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25751
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
25752
 
  }
25753
 
};
25754
 
 
25755
 
 
25756
 
#line 25757 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25757
 
} // closed Puma
25758
 
class WinIfExists;
25759
 
class WinImportHandler;
25760
 
class WinMacros;
25761
 
class CMatchSyntax;
25762
 
class ExtGnu;
25763
 
class ExtAC;
25764
 
class ExtACBuilderCoupling;
25765
 
class ExtACSyntaxCoupling;
25766
 
class ExtACTree;
25767
 
class ExtACKeywords;
25768
 
class WinAsm;
25769
 
class WinDeclSpecs;
25770
 
class WinMemberExplSpec;
25771
 
class WinTypeKeywords;
25772
 
class PragmaOnceUnitState;
25773
 
class PragmaOnce;
25774
 
class CCExprResolve;
25775
 
class CExprResolve;
25776
 
namespace Puma {
25777
 
 
25778
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25779
 
class CT_UsingDecl : public CT_AccessDecl {
25780
 
#line 25781 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25781
 
  friend class ::WinIfExists;
25782
 
  friend class ::WinImportHandler;
25783
 
  friend class ::WinMacros;
25784
 
  friend class ::CMatchSyntax;
25785
 
  friend class ::ExtGnu;
25786
 
  friend class ::ExtAC;
25787
 
  friend class ::ExtACBuilderCoupling;
25788
 
  friend class ::ExtACSyntaxCoupling;
25789
 
  friend class ::ExtACTree;
25790
 
  friend class ::ExtACKeywords;
25791
 
  friend class ::WinAsm;
25792
 
  friend class ::WinDeclSpecs;
25793
 
  friend class ::WinMemberExplSpec;
25794
 
  friend class ::WinTypeKeywords;
25795
 
  friend class ::PragmaOnceUnitState;
25796
 
  friend class ::PragmaOnce;
25797
 
  friend class ::CCExprResolve;
25798
 
  friend class ::CExprResolve;
25799
 
 
25800
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25801
 
 
25802
 
  CTree *sons[2]; // using, typename
25803
 
 
25804
 
public:
25805
 
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
25806
 
    sons[0] = u; sons[1] = 0; 
25807
 
  }
25808
 
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
25809
 
    sons[0] = u; sons[1] = t; 
25810
 
  }
25811
 
  static const char *NodeId ();
25812
 
  const char *NodeName () const { return NodeId (); }
25813
 
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
25814
 
  CTree *Son (int n) const {
25815
 
    int num = CTree::Sons (sons, 2);
25816
 
    CTree *result = CTree::Son (sons, 2, n);
25817
 
    return result ? result : CT_AccessDecl::Son (n-num);
25818
 
  }
25819
 
  CTree *Typename () const { return sons[1]; }
25820
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25821
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
25822
 
    CT_AccessDecl::ReplaceSon (old_son, new_son);
25823
 
  }
25824
 
};
25825
 
 
25826
 
/*****************************************************************************/
25827
 
/*                                                                           */
25828
 
/*                              Wildcards                                    */
25829
 
/*                                                                           */
25830
 
/*****************************************************************************/
25831
 
 
25832
 
 
25833
 
#line 25834 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25834
 
} // closed Puma
25835
 
class WinIfExists;
25836
 
class WinImportHandler;
25837
 
class WinMacros;
25838
 
class CMatchSyntax;
25839
 
class ExtGnu;
25840
 
class ExtAC;
25841
 
class ExtACBuilderCoupling;
25842
 
class ExtACSyntaxCoupling;
25843
 
class ExtACTree;
25844
 
class ExtACKeywords;
25845
 
class WinAsm;
25846
 
class WinDeclSpecs;
25847
 
class WinMemberExplSpec;
25848
 
class WinTypeKeywords;
25849
 
class PragmaOnceUnitState;
25850
 
class PragmaOnce;
25851
 
class CCExprResolve;
25852
 
class CExprResolve;
25853
 
namespace Puma {
25854
 
 
25855
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25856
 
class CT_Any : public CTree {
25857
 
#line 25858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25858
 
  friend class ::WinIfExists;
25859
 
  friend class ::WinImportHandler;
25860
 
  friend class ::WinMacros;
25861
 
  friend class ::CMatchSyntax;
25862
 
  friend class ::ExtGnu;
25863
 
  friend class ::ExtAC;
25864
 
  friend class ::ExtACBuilderCoupling;
25865
 
  friend class ::ExtACSyntaxCoupling;
25866
 
  friend class ::ExtACTree;
25867
 
  friend class ::ExtACKeywords;
25868
 
  friend class ::WinAsm;
25869
 
  friend class ::WinDeclSpecs;
25870
 
  friend class ::WinMemberExplSpec;
25871
 
  friend class ::WinTypeKeywords;
25872
 
  friend class ::PragmaOnceUnitState;
25873
 
  friend class ::PragmaOnce;
25874
 
  friend class ::CCExprResolve;
25875
 
  friend class ::CExprResolve;
25876
 
 
25877
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25878
 
 
25879
 
  CTree *sons[2]; // keyword, extension
25880
 
 
25881
 
public:
25882
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
25883
 
  static const char *NodeId ();
25884
 
  const char *NodeName () const { return NodeId (); }
25885
 
  int Sons () const { return CTree::Sons (sons, 2); }
25886
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
25887
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25888
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
25889
 
  }
25890
 
  int AnyType () const { return sons[0]->token ()->type (); }
25891
 
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
25892
 
};
25893
 
 
25894
 
 
25895
 
#line 25896 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25896
 
} // closed Puma
25897
 
class WinIfExists;
25898
 
class WinImportHandler;
25899
 
class WinMacros;
25900
 
class CMatchSyntax;
25901
 
class ExtGnu;
25902
 
class ExtAC;
25903
 
class ExtACBuilderCoupling;
25904
 
class ExtACSyntaxCoupling;
25905
 
class ExtACTree;
25906
 
class ExtACKeywords;
25907
 
class WinAsm;
25908
 
class WinDeclSpecs;
25909
 
class WinMemberExplSpec;
25910
 
class WinTypeKeywords;
25911
 
class PragmaOnceUnitState;
25912
 
class PragmaOnce;
25913
 
class CCExprResolve;
25914
 
class CExprResolve;
25915
 
namespace Puma {
25916
 
 
25917
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25918
 
class CT_AnyList : public CT_Any {
25919
 
#line 25920 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25920
 
  friend class ::WinIfExists;
25921
 
  friend class ::WinImportHandler;
25922
 
  friend class ::WinMacros;
25923
 
  friend class ::CMatchSyntax;
25924
 
  friend class ::ExtGnu;
25925
 
  friend class ::ExtAC;
25926
 
  friend class ::ExtACBuilderCoupling;
25927
 
  friend class ::ExtACSyntaxCoupling;
25928
 
  friend class ::ExtACTree;
25929
 
  friend class ::ExtACKeywords;
25930
 
  friend class ::WinAsm;
25931
 
  friend class ::WinDeclSpecs;
25932
 
  friend class ::WinMemberExplSpec;
25933
 
  friend class ::WinTypeKeywords;
25934
 
  friend class ::PragmaOnceUnitState;
25935
 
  friend class ::PragmaOnce;
25936
 
  friend class ::CCExprResolve;
25937
 
  friend class ::CExprResolve;
25938
 
 
25939
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25940
 
 
25941
 
public:
25942
 
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
25943
 
  static const char *NodeId ();
25944
 
  const char *NodeName () const { return NodeId (); }
25945
 
};
25946
 
 
25947
 
 
25948
 
#line 25949 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25949
 
} // closed Puma
25950
 
class WinIfExists;
25951
 
class WinImportHandler;
25952
 
class WinMacros;
25953
 
class CMatchSyntax;
25954
 
class ExtGnu;
25955
 
class ExtAC;
25956
 
class ExtACBuilderCoupling;
25957
 
class ExtACSyntaxCoupling;
25958
 
class ExtACTree;
25959
 
class ExtACKeywords;
25960
 
class WinAsm;
25961
 
class WinDeclSpecs;
25962
 
class WinMemberExplSpec;
25963
 
class WinTypeKeywords;
25964
 
class PragmaOnceUnitState;
25965
 
class PragmaOnce;
25966
 
class CCExprResolve;
25967
 
class CExprResolve;
25968
 
namespace Puma {
25969
 
 
25970
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25971
 
class CT_AnyExtension : public CTree, public CSemValue {
25972
 
#line 25973 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
25973
 
  friend class ::WinIfExists;
25974
 
  friend class ::WinImportHandler;
25975
 
  friend class ::WinMacros;
25976
 
  friend class ::CMatchSyntax;
25977
 
  friend class ::ExtGnu;
25978
 
  friend class ::ExtAC;
25979
 
  friend class ::ExtACBuilderCoupling;
25980
 
  friend class ::ExtACSyntaxCoupling;
25981
 
  friend class ::ExtACTree;
25982
 
  friend class ::ExtACKeywords;
25983
 
  friend class ::WinAsm;
25984
 
  friend class ::WinDeclSpecs;
25985
 
  friend class ::WinMemberExplSpec;
25986
 
  friend class ::WinTypeKeywords;
25987
 
  friend class ::PragmaOnceUnitState;
25988
 
  friend class ::PragmaOnce;
25989
 
  friend class ::CCExprResolve;
25990
 
  friend class ::CExprResolve;
25991
 
 
25992
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25993
 
 
25994
 
  CTree *sons[5]; // open, string, comma, cond, close
25995
 
 
25996
 
public:
25997
 
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
25998
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
25999
 
  }
26000
 
  static const char *NodeId ();
26001
 
  const char *NodeName () const { return NodeId (); }
26002
 
  int Sons () const { return CTree::Sons (sons, 5); }
26003
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
26004
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26005
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
26006
 
  }
26007
 
  CTree *Condition () const { return sons[3]; }
26008
 
  CT_Token *String () const { return (CT_Token*)sons[1]; }
26009
 
  const char *Name () const { 
26010
 
    return value ? value->StrLiteral ()->String () : (const char*)0; }
26011
 
 
26012
 
  CExprValue *Value () const { return value; }
26013
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
26014
 
};
26015
 
 
26016
 
 
26017
 
#line 26018 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
26018
 
} // closed Puma
26019
 
class WinIfExists;
26020
 
class WinImportHandler;
26021
 
class WinMacros;
26022
 
class CMatchSyntax;
26023
 
class ExtGnu;
26024
 
class ExtAC;
26025
 
class ExtACBuilderCoupling;
26026
 
class ExtACSyntaxCoupling;
26027
 
class ExtACTree;
26028
 
class ExtACKeywords;
26029
 
class WinAsm;
26030
 
class WinDeclSpecs;
26031
 
class WinMemberExplSpec;
26032
 
class WinTypeKeywords;
26033
 
class PragmaOnceUnitState;
26034
 
class PragmaOnce;
26035
 
class CCExprResolve;
26036
 
class CExprResolve;
26037
 
namespace Puma {
26038
 
 
26039
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26040
 
class CT_AnyCondition : public CTree {
26041
 
#line 26042 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
26042
 
  friend class ::WinIfExists;
26043
 
  friend class ::WinImportHandler;
26044
 
  friend class ::WinMacros;
26045
 
  friend class ::CMatchSyntax;
26046
 
  friend class ::ExtGnu;
26047
 
  friend class ::ExtAC;
26048
 
  friend class ::ExtACBuilderCoupling;
26049
 
  friend class ::ExtACSyntaxCoupling;
26050
 
  friend class ::ExtACTree;
26051
 
  friend class ::ExtACKeywords;
26052
 
  friend class ::WinAsm;
26053
 
  friend class ::WinDeclSpecs;
26054
 
  friend class ::WinMemberExplSpec;
26055
 
  friend class ::WinTypeKeywords;
26056
 
  friend class ::PragmaOnceUnitState;
26057
 
  friend class ::PragmaOnce;
26058
 
  friend class ::CCExprResolve;
26059
 
  friend class ::CExprResolve;
26060
 
 
26061
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26062
 
 
26063
 
  CTree *sons[3]; // arg1, arg2, arg3
26064
 
 
26065
 
public:
26066
 
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
26067
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
26068
 
  }
26069
 
  static const char *NodeId ();
26070
 
  const char *NodeName () const { return NodeId (); }
26071
 
  int Sons () const { return CTree::Sons (sons, 3); }
26072
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
26073
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26074
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
26075
 
  }
26076
 
};
26077
 
 
26078
 
 
26079
 
} // namespace Puma
26080
 
 
26081
 
#endif /* __CTree_h__ */
26082
 
 
26083
 
#line 26084 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
26084
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
26085
 
 
26086
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26087
 
 
26088
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
44039
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Stack.h"
 
44040
// This file is part of PUMA.
 
44041
// Copyright (C) 1999-2003  The PUMA developer team.
 
44042
//                                                                
 
44043
// This program is free software;  you can redistribute it and/or 
 
44044
// modify it under the terms of the GNU General Public License as 
 
44045
// published by the Free Software Foundation; either version 2 of 
 
44046
// the License, or (at your option) any later version.            
 
44047
//                                                                
 
44048
// This program is distributed in the hope that it will be useful,
 
44049
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
44050
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
44051
// GNU General Public License for more details.                   
 
44052
//                                                                
 
44053
// You should have received a copy of the GNU General Public      
 
44054
// License along with this program; if not, write to the Free     
 
44055
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
44056
// MA  02111-1307  USA                                            
 
44057
 
 
44058
#ifndef __stack_h__
 
44059
#define __stack_h__
 
44060
 
 
44061
 
 
44062
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Stack.h"
 
44063
namespace Puma {
 
44064
 
 
44065
template <class Item>
 
44066
class Stack : private Array<Item> {
 
44067
public:
 
44068
  Stack (long is = 8192, long incr = 8192) :
 
44069
    Array<Item> (is, incr) {}
 
44070
  void push (Item f) { Array<Item>::append (f); }
 
44071
  Item &top () const { long len = Array<Item>::length ()-1; 
 
44072
                       return Array<Item>::lookup (len >= 0 ? len : 0); }
 
44073
  void pop () { Array<Item>::remove (Array<Item>::length () - 1); }
 
44074
  long length () const { return Array<Item>::length (); }
 
44075
  void reset () { Array<Item>::reset (); }
 
44076
};
 
44077
 
 
44078
} // namespace Puma
 
44079
 
 
44080
#endif /* __stack_h__ */
 
44081
 
 
44082
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44083
 
 
44084
#line 44085 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44085
 
 
44086
#ifndef __ac_fwd_ExtACTree__
 
44087
#define __ac_fwd_ExtACTree__
 
44088
class ExtACTree;
 
44089
namespace AC {
 
44090
  template <class JoinPoint>
 
44091
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
44092
  template <class JoinPoint>
 
44093
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
44094
}
 
44095
#endif
 
44096
 
 
44097
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44098
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44099
#endif
 
44100
 
 
44101
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44102
// This file is part of PUMA.
 
44103
// Copyright (C) 1999-2003  The PUMA developer team.
 
44104
//                                                                
 
44105
// This program is free software;  you can redistribute it and/or 
 
44106
// modify it under the terms of the GNU General Public License as 
 
44107
// published by the Free Software Foundation; either version 2 of 
 
44108
// the License, or (at your option) any later version.            
 
44109
//                                                                
 
44110
// This program is distributed in the hope that it will be useful,
 
44111
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
44112
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
44113
// GNU General Public License for more details.                   
 
44114
//                                                                
 
44115
// You should have received a copy of the GNU General Public      
 
44116
// License along with this program; if not, write to the Free     
 
44117
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
44118
// MA  02111-1307  USA                                            
 
44119
 
 
44120
#ifndef __CTree_h__
 
44121
#define __CTree_h__
 
44122
 
 
44123
namespace Puma {
 
44124
 
 
44125
 
 
44126
// Syntax tree node hierarchy:
 
44127
class CTree;
 
44128
class   CT_Statement;          
 
44129
class     CT_LabelStmt;
 
44130
class     CT_IfStmt;
 
44131
class     CT_IfElseStmt;
 
44132
class     CT_SwitchStmt;
 
44133
class     CT_BreakStmt;
 
44134
class     CT_ExprStmt;
 
44135
class     CT_WhileStmt;
 
44136
class     CT_DoStmt;
 
44137
class     CT_ForStmt;
 
44138
class     CT_ContinueStmt;
 
44139
class     CT_ReturnStmt;
 
44140
class     CT_GotoStmt;
 
44141
class     CT_DeclStmt;
 
44142
class     CT_CaseStmt;
 
44143
class     CT_DefaultStmt;
 
44144
class     CT_TryStmt;
 
44145
class   CT_Expression;
 
44146
class     CT_Call;
 
44147
class       CT_CallExpr;
 
44148
class       CT_ImplicitCall;
 
44149
class     CT_ThrowExpr;
 
44150
class     CT_NewExpr;
 
44151
class     CT_DeleteExpr;
 
44152
class     CT_ConstructExpr;
 
44153
class     CT_Integer;
 
44154
class     CT_Character;
 
44155
class       CT_WideCharacter;
 
44156
class     CT_Float;
 
44157
class     CT_Bool;
 
44158
class     CT_BracedExpr;
 
44159
class     CT_BinaryExpr;
 
44160
class       CT_MembPtrExpr;
 
44161
class         CT_MembRefExpr;
 
44162
class     CT_UnaryExpr;
 
44163
class       CT_PostfixExpr;
 
44164
class       CT_AddrExpr;
 
44165
class       CT_DerefExpr;
 
44166
class     CT_IfThenExpr;
 
44167
class     CT_CmpdLiteral;
 
44168
class     CT_IndexExpr;
 
44169
class     CT_CastExpr;
 
44170
class     CT_StaticCast;
 
44171
class       CT_ConstCast;
 
44172
class       CT_ReintCast;
 
44173
class       CT_DynamicCast;
 
44174
class     CT_TypeidExpr;
 
44175
class     CT_SizeofExpr;
 
44176
class     CT_MembDesignator;
 
44177
class     CT_IndexDesignator;
 
44178
class     CT_ImplicitCast;
 
44179
class   CT_DeclSpec;
 
44180
class     CT_PrimDeclSpec;
 
44181
class     CT_NamedType;
 
44182
class     CT_ClassSpec;
 
44183
class       CT_UnionSpec;
 
44184
class       CT_EnumSpec;
 
44185
class     CT_ExceptionSpec;
 
44186
class   CT_Declarator;
 
44187
class     CT_InitDeclarator;
 
44188
class     CT_BracedDeclarator;
 
44189
class     CT_ArrayDeclarator;
 
44190
class     CT_FctDeclarator;
 
44191
class     CT_RefDeclarator;
 
44192
class     CT_PtrDeclarator;
 
44193
class     CT_MembPtrDeclarator;
 
44194
class     CT_BitFieldDeclarator;
 
44195
class   CT_Decl;
 
44196
class     CT_ObjDecl;
 
44197
class     CT_ArgDecl;
 
44198
class     CT_AccessDecl;
 
44199
class       CT_UsingDecl;
 
44200
class     CT_FctDef;
 
44201
class     CT_AsmDef;
 
44202
class     CT_EnumDef;
 
44203
class     CT_ClassDef;
 
44204
class       CT_UnionDef;
 
44205
class     CT_Enumerator;
 
44206
class     CT_LinkageSpec;
 
44207
class     CT_Handler;
 
44208
class     CT_TemplateDecl;
 
44209
class     CT_TemplateParamDecl;
 
44210
class       CT_TypeParamDecl;
 
44211
class       CT_NonTypeParamDecl;
 
44212
class     CT_NamespaceDef;
 
44213
class     CT_NamespaceAliasDef;
 
44214
class     CT_UsingDirective;
 
44215
class     CT_Condition;
 
44216
class   CT_List;
 
44217
class     CT_CmpdStmt;
 
44218
class     CT_DeclSpecSeq;
 
44219
class     CT_HandlerSeq;
 
44220
class     CT_DesignatorSeq;
 
44221
class     CT_DeclList;
 
44222
class       CT_Program;
 
44223
class       CT_ArgDeclList;
 
44224
class         CT_ArgNameList;
 
44225
class       CT_ArgDeclSeq;
 
44226
class       CT_MembList;
 
44227
class     CT_ExprList;
 
44228
class     CT_DeclaratorList;
 
44229
class     CT_BaseSpecList;
 
44230
class     CT_MembInitList;
 
44231
class     CT_SimpleName;
 
44232
class       CT_SpecialName;
 
44233
class         CT_PrivateName;
 
44234
class         CT_OperatorName;
 
44235
class         CT_DestructorName;
 
44236
class         CT_ConversionName;
 
44237
class         CT_TemplateName;
 
44238
class       CT_QualName;
 
44239
class         CT_RootQualName;
 
44240
class     CT_String;
 
44241
class       CT_WideString;
 
44242
class     CT_TemplateParamList;
 
44243
class     CT_TemplateArgList;
 
44244
class   CT_Token;
 
44245
class   CT_Error;
 
44246
class   CT_BaseSpec;
 
44247
class   CT_AccessSpec;
 
44248
class   CT_ArrayDelimiter;
 
44249
class   CT_Any;
 
44250
class   CT_AnyList;
 
44251
class   CT_AnyExtension;
 
44252
class   CT_AnyCondition;
 
44253
 
 
44254
 
 
44255
} // namespace Puma
 
44256
 
 
44257
#include "Puma/ErrorSeverity.h"
 
44258
#include "Puma/CSemObject.h"
 
44259
#include "Puma/CSemScope.h"
 
44260
#include "Puma/CSemValue.h"
 
44261
#include "Puma/CExprValue.h"
 
44262
#include "Puma/CStrLiteral.h"
 
44263
#include "Puma/CTypeInfo.h"
 
44264
#include "Puma/Printable.h"
 
44265
#include "Puma/CTokens.h"
 
44266
#include "Puma/Token.h"
 
44267
 
 
44268
#include <iostream>
 
44269
#include <string.h>
 
44270
using namespace std;
 
44271
 
 
44272
namespace Puma {
 
44273
 
 
44274
 
 
44275
class ErrorStream;
 
44276
class CObjectInfo;
 
44277
class CStructure;
 
44278
 
 
44279
/*****************************************************************************/
 
44280
/*                                                                           */
 
44281
/*                    S y n t a x  t r e e  n o d e s                        */
 
44282
/*                                                                           */
 
44283
/*****************************************************************************/
 
44284
 
 
44285
/** \file
 
44286
 *  C/C++ syntax tree classes.
 
44287
 *  \see Puma::CTree */
 
44288
 
 
44289
/** \class CTree CTree.h Puma/CTree.h
 
44290
 *  Base class for all C/C++ syntax tree classes. */
 
44291
 
 
44292
#line 44293 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44293
} // closed Puma
 
44294
class CCExprResolve;
 
44295
class CExprResolve;
 
44296
class WinIfExists;
 
44297
class WinImportHandler;
 
44298
class WinMacros;
 
44299
class WinAsm;
 
44300
class WinDeclSpecs;
 
44301
class WinMemberExplSpec;
 
44302
class WinTypeKeywords;
 
44303
class WinFriend;
 
44304
class ExtAC;
 
44305
class ExtACBuilderCoupling;
 
44306
class ExtACSyntaxCoupling;
 
44307
class ExtACTree;
 
44308
class ExtACKeywords;
 
44309
class ExtGnu;
 
44310
class PragmaOnceUnitState;
 
44311
class PragmaOnce;
 
44312
class CMatchSyntax;
 
44313
namespace Puma {
 
44314
 
 
44315
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44316
 
 
44317
#line 44318 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44318
} // closed Puma
 
44319
 
 
44320
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44321
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44322
#include "CCExprResolveH.ah"
 
44323
#endif
 
44324
namespace Puma {
 
44325
 
 
44326
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44327
 
 
44328
#line 44329 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44329
} // closed Puma
 
44330
 
 
44331
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44332
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44333
#include "CExprResolveH.ah"
 
44334
#endif
 
44335
namespace Puma {
 
44336
 
 
44337
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44338
class CTree {
 
44339
#line 44340 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44340
  friend class ::CCExprResolve;
 
44341
  friend class ::CExprResolve;
 
44342
  friend class ::WinIfExists;
 
44343
  friend class ::WinImportHandler;
 
44344
  friend class ::WinMacros;
 
44345
  friend class ::WinAsm;
 
44346
  friend class ::WinDeclSpecs;
 
44347
  friend class ::WinMemberExplSpec;
 
44348
  friend class ::WinTypeKeywords;
 
44349
  friend class ::WinFriend;
 
44350
  friend class ::ExtAC;
 
44351
  friend class ::ExtACBuilderCoupling;
 
44352
  friend class ::ExtACSyntaxCoupling;
 
44353
  friend class ::ExtACTree;
 
44354
  friend class ::ExtACKeywords;
 
44355
  friend class ::ExtGnu;
 
44356
  friend class ::PragmaOnceUnitState;
 
44357
  friend class ::PragmaOnce;
 
44358
  friend class ::CMatchSyntax;
 
44359
 
 
44360
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44361
 
 
44362
  CTree * _parent;
 
44363
 
 
44364
public:
 
44365
  /*DEBUG*/static int alloc;
 
44366
  /*DEBUG*/static int release;
 
44367
 
 
44368
protected:
 
44369
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
44370
   *  \param sons The sons array.
 
44371
   *  \param len Length of the sons array.
 
44372
   *  \param n Index of the son.
 
44373
   *  \return The n-th son or NULL. */
 
44374
  CTree *Son (CTree * const *sons, int len, int n) const;
 
44375
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
44376
   *  \param sons The sons array.
 
44377
   *  \param len Length of the sons array. */
 
44378
  int Sons (CTree * const *sons, int len) const;
 
44379
  /** Replace a son.
 
44380
   *  \param sons The sons array.
 
44381
   *  \param len Length of the sons array.
 
44382
   *  \param old_son The son to replace.
 
44383
   *  \param new_son The new son. */
 
44384
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
44385
  /** Replace a son if it equals the given son.
 
44386
   *  \param son The actual son.
 
44387
   *  \param old_son The son to replace, must match the actual son.
 
44388
   *  \param new_son The new son, overwrites the actual son. */
 
44389
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
44390
  /** Add a new son.
 
44391
   *  \param son The actual son.
 
44392
   *  \param new_son The new son, overwrites the actual son. */
 
44393
  void AddSon (CTree *&son, CTree *new_son);
 
44394
  /** Set the parent tree node.
 
44395
   *  \param parent The new parent tree node. */
 
44396
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
44397
  /** Set the parent tree node of the given tree node.
 
44398
   *  \param node The tree node.
 
44399
   *  \param parent The new parent. */
 
44400
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
 
44401
  
 
44402
protected:
 
44403
  /** Default constructor. */
 
44404
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
 
44405
 
 
44406
public:
 
44407
  /** Destructor. */
 
44408
  virtual ~CTree () { /*DEBUG*/release++; }
 
44409
  /** Get the number of sons. */
 
44410
  virtual int Sons () const = 0;
 
44411
  /** Get the n-th son.
 
44412
   *  \param n The index of the son.
 
44413
   *  \return The n-th son or NULL. */
 
44414
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
44415
  /** Get the node name (node identifier). */
 
44416
  virtual const char *NodeName () const = 0;
 
44417
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
44418
   *  \return The token or NULL. */
 
44419
  virtual Token *token () const;
 
44420
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
44421
   *  \return The token or NULL. */
 
44422
  virtual Token *end_token () const;
 
44423
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
44424
   *  \return The token node or NULL. */
 
44425
  virtual CT_Token *token_node () const;
 
44426
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
44427
   *  \return The token node or NULL. */
 
44428
  virtual CT_Token *end_token_node () const;
 
44429
  /** Replace a son.
 
44430
   *  \param old_son The son to replace.
 
44431
   *  \param new_son The son with which to replace. */
 
44432
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
44433
  /** Get the parent node.
 
44434
   *  \return The parent node or NULL. */
 
44435
  virtual CTree *Parent () const { return (CTree*)_parent; }
 
44436
 
 
44437
public: // semantic information
 
44438
  /** Get the semantic type of the node.
 
44439
   *  \return The type object or NULL. */
 
44440
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
44441
  /** Get the calculated value of the expression.
 
44442
   *  \return The value object or NULL. */
 
44443
  virtual CExprValue *Value () const { return (CExprValue*)0; }
 
44444
  
 
44445
  /** Get the semantic scope of the node.
 
44446
   *  \return The scope object or NULL. */
 
44447
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
44448
  /** Get the semantic value of the node.
 
44449
   *  \return The value object or NULL. */
 
44450
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
44451
  /** Get the semantic object of the node.
 
44452
   *  \return The semantic object or NULL. */
 
44453
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
 
44454
  
 
44455
public: // node classification function
 
44456
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
44457
   *  \return The CT_SimpleName node or NULL. */
 
44458
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
44459
  /** Get a pointer to CT_String if the current node represents a string.
 
44460
   *  \return The CT_String node or NULL. */
 
44461
  virtual CT_String *IsString () { return 0; }
 
44462
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
44463
   *  \return The CT_Declarator pointer or NULL. */
 
44464
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
44465
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
44466
   *  \return The CT_Statement pointer or NULL. */
 
44467
  virtual CT_Statement *IsStatement () { return 0; }
 
44468
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
44469
   *  \return The CT_Expression pointer or NULL. */
 
44470
  virtual CT_Expression *IsExpression () { return 0; }
 
44471
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
44472
   *  \return The CT_Decl pointer or NULL. */
 
44473
  virtual CT_Decl *IsDeclaration () { return 0; }
 
44474
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
44475
   *  \return The CT_Call pointer or NULL. */
 
44476
  virtual CT_Call *IsCall () { return 0; }
 
44477
   private:
 
44478
  typedef CTree CCExprResolveCTree;
 
44479
 
 
44480
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
44481
 public :
 
44482
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
44483
  typedef CTree CExprResolveCTree;
 
44484
 
 
44485
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
44486
 public :
 
44487
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
44488
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44489
};
 
44490
 
 
44491
/** \class CT_Error CTree.h Puma/CTree.h
 
44492
 *  Error tree node that is inserted into the tree for syntactic constructs
 
44493
 *  that could not be parsed. */
 
44494
 
 
44495
#line 44496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44496
} // closed Puma
 
44497
class CCExprResolve;
 
44498
class CExprResolve;
 
44499
class WinIfExists;
 
44500
class WinImportHandler;
 
44501
class WinMacros;
 
44502
class WinAsm;
 
44503
class WinDeclSpecs;
 
44504
class WinMemberExplSpec;
 
44505
class WinTypeKeywords;
 
44506
class WinFriend;
 
44507
class ExtAC;
 
44508
class ExtACBuilderCoupling;
 
44509
class ExtACSyntaxCoupling;
 
44510
class ExtACTree;
 
44511
class ExtACKeywords;
 
44512
class ExtGnu;
 
44513
class PragmaOnceUnitState;
 
44514
class PragmaOnce;
 
44515
class CMatchSyntax;
 
44516
namespace Puma {
 
44517
 
 
44518
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44519
class CT_Error : public CTree {
 
44520
#line 44521 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44521
  friend class ::CCExprResolve;
 
44522
  friend class ::CExprResolve;
 
44523
  friend class ::WinIfExists;
 
44524
  friend class ::WinImportHandler;
 
44525
  friend class ::WinMacros;
 
44526
  friend class ::WinAsm;
 
44527
  friend class ::WinDeclSpecs;
 
44528
  friend class ::WinMemberExplSpec;
 
44529
  friend class ::WinTypeKeywords;
 
44530
  friend class ::WinFriend;
 
44531
  friend class ::ExtAC;
 
44532
  friend class ::ExtACBuilderCoupling;
 
44533
  friend class ::ExtACSyntaxCoupling;
 
44534
  friend class ::ExtACTree;
 
44535
  friend class ::ExtACKeywords;
 
44536
  friend class ::ExtGnu;
 
44537
  friend class ::PragmaOnceUnitState;
 
44538
  friend class ::PragmaOnce;
 
44539
  friend class ::CMatchSyntax;
 
44540
 
 
44541
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44542
 
 
44543
public:
 
44544
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
44545
  static const char *NodeId ();
 
44546
  /** Get the name of the node. Can be compared with NodeId(). */
 
44547
  const char *NodeName () const { return NodeId (); }
 
44548
  /** Get the number of sons. */
 
44549
  int Sons () const { return 0; }
 
44550
};
 
44551
 
 
44552
/** \class CT_Token CTree.h Puma/CTree.h
 
44553
 *  Tree node representing a single token in the source code. */
 
44554
 
 
44555
#line 44556 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44556
} // closed Puma
 
44557
class CCExprResolve;
 
44558
class CExprResolve;
 
44559
class WinIfExists;
 
44560
class WinImportHandler;
 
44561
class WinMacros;
 
44562
class WinAsm;
 
44563
class WinDeclSpecs;
 
44564
class WinMemberExplSpec;
 
44565
class WinTypeKeywords;
 
44566
class WinFriend;
 
44567
class ExtAC;
 
44568
class ExtACBuilderCoupling;
 
44569
class ExtACSyntaxCoupling;
 
44570
class ExtACTree;
 
44571
class ExtACKeywords;
 
44572
class ExtGnu;
 
44573
class PragmaOnceUnitState;
 
44574
class PragmaOnce;
 
44575
class CMatchSyntax;
 
44576
namespace Puma {
 
44577
 
 
44578
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44579
class CT_Token : public CTree {
 
44580
#line 44581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44581
  friend class ::CCExprResolve;
 
44582
  friend class ::CExprResolve;
 
44583
  friend class ::WinIfExists;
 
44584
  friend class ::WinImportHandler;
 
44585
  friend class ::WinMacros;
 
44586
  friend class ::WinAsm;
 
44587
  friend class ::WinDeclSpecs;
 
44588
  friend class ::WinMemberExplSpec;
 
44589
  friend class ::WinTypeKeywords;
 
44590
  friend class ::WinFriend;
 
44591
  friend class ::ExtAC;
 
44592
  friend class ::ExtACBuilderCoupling;
 
44593
  friend class ::ExtACSyntaxCoupling;
 
44594
  friend class ::ExtACTree;
 
44595
  friend class ::ExtACKeywords;
 
44596
  friend class ::ExtGnu;
 
44597
  friend class ::PragmaOnceUnitState;
 
44598
  friend class ::PragmaOnce;
 
44599
  friend class ::CMatchSyntax;
 
44600
 
 
44601
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44602
 
 
44603
  Token *_token;
 
44604
  unsigned long int _number;
 
44605
  
 
44606
public:
 
44607
  /** Constructor. 
 
44608
   *  \param token The represented token.
 
44609
   *  \param number The token number (a consecutive number). */
 
44610
  CT_Token (Token *token, unsigned long int number = 0) : 
 
44611
    _token (token), _number (number) {}
 
44612
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
44613
  static const char *NodeId ();
 
44614
  /** Get the name of the node. Can be compared with NodeId(). */
 
44615
  const char *NodeName () const { return NodeId (); }
 
44616
  /** Get the number of sons. */
 
44617
  int Sons () const { return 0; }
 
44618
  /** Get the represented token. */
 
44619
  Token *token () const { return _token; }
 
44620
  /** Get the represented token. */
 
44621
  Token *end_token () const { return _token; }
 
44622
  /** Get this. */
 
44623
  CT_Token *token_node () const { return (CT_Token*)this; }
 
44624
  /** Get this. */
 
44625
  CT_Token *end_token_node () const { return (CT_Token*)this; }
 
44626
  /** Set the token number. 
 
44627
   *  \param number The token number. */ 
 
44628
  void Number (unsigned long int number) { _number = number; }
 
44629
  /** Get the token number. Can be used to indentify this token. */
 
44630
  unsigned long int Number () const { return _number; }
 
44631
  
 
44632
public:
 
44633
  /** Own new operator reusing memory. */
 
44634
  void *operator new (size_t);
 
44635
  /** Own delete operator. */
 
44636
  void operator delete (void *);
 
44637
};
 
44638
 
 
44639
/*****************************************************************************/
 
44640
/*                                                                           */
 
44641
/*                              List nodes                                   */
 
44642
/*                                                                           */
 
44643
/*****************************************************************************/
 
44644
 
 
44645
/** \class CT_List CTree.h Puma/CTree.h
 
44646
 *  Base class for tree nodes representing lists. */
 
44647
 
 
44648
#line 44649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44649
} // closed Puma
 
44650
class CCExprResolve;
 
44651
class CExprResolve;
 
44652
class WinIfExists;
 
44653
class WinImportHandler;
 
44654
class WinMacros;
 
44655
class WinAsm;
 
44656
class WinDeclSpecs;
 
44657
class WinMemberExplSpec;
 
44658
class WinTypeKeywords;
 
44659
class WinFriend;
 
44660
class ExtAC;
 
44661
class ExtACBuilderCoupling;
 
44662
class ExtACSyntaxCoupling;
 
44663
class ExtACTree;
 
44664
class ExtACKeywords;
 
44665
class ExtGnu;
 
44666
class PragmaOnceUnitState;
 
44667
class PragmaOnce;
 
44668
class CMatchSyntax;
 
44669
namespace Puma {
 
44670
 
 
44671
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44672
class CT_List : public CTree {
 
44673
#line 44674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44674
  friend class ::CCExprResolve;
 
44675
  friend class ::CExprResolve;
 
44676
  friend class ::WinIfExists;
 
44677
  friend class ::WinImportHandler;
 
44678
  friend class ::WinMacros;
 
44679
  friend class ::WinAsm;
 
44680
  friend class ::WinDeclSpecs;
 
44681
  friend class ::WinMemberExplSpec;
 
44682
  friend class ::WinTypeKeywords;
 
44683
  friend class ::WinFriend;
 
44684
  friend class ::ExtAC;
 
44685
  friend class ::ExtACBuilderCoupling;
 
44686
  friend class ::ExtACSyntaxCoupling;
 
44687
  friend class ::ExtACTree;
 
44688
  friend class ::ExtACKeywords;
 
44689
  friend class ::ExtGnu;
 
44690
  friend class ::PragmaOnceUnitState;
 
44691
  friend class ::PragmaOnce;
 
44692
  friend class ::CMatchSyntax;
 
44693
 
 
44694
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44695
 
 
44696
  Array<CTree*> _sons;
 
44697
  int _properties;
 
44698
 
 
44699
protected:
 
44700
  /** Constructor.
 
44701
   *  \param size The initial list size.
 
44702
   *  \param incr The initial increment count. 
 
44703
   *  \param props The list properties (bit array). */
 
44704
  CT_List(int size = 5, int incr = 5, int props = 0) : 
 
44705
    _sons (size, incr), _properties (props) {}
 
44706
 
 
44707
public:
 
44708
  /** List properties. */
 
44709
  enum {
 
44710
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
44711
    CLOSE = 2,        /** List has an end token */
 
44712
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
44713
    SEPARATORS = 4,   /** List has separators, like ',' */
 
44714
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
44715
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
44716
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
44717
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
 
44718
  };
 
44719
 
 
44720
  /** Get the number of list entries. */
 
44721
  int Entries () const;
 
44722
  /** Get the n-th list entry.
 
44723
   *  \param n The index of the entry. 
 
44724
   *  \return The list entry or NULL. */
 
44725
  CTree *Entry (int n) const;
 
44726
  /** Get the number of sons. */
 
44727
  int Sons () const { return _sons.length (); }
 
44728
  /** Get the n-th son.
 
44729
   *  \param n The index of the son. 
 
44730
   *  \return The n-th son or NULL. */
 
44731
  CTree *Son (int n) const { return _sons.lookup (n); }
 
44732
  /** Get the list properties. */
 
44733
  int GetProperties () const { return _properties; }
 
44734
  /** Add a list property.
 
44735
   *  \param p The property to add. */
 
44736
  void AddProperties (int p) { _properties |= p; }
 
44737
  /** Add a son.
 
44738
   *  \param s The son to add. */
 
44739
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
44740
  /** Prepend a son.
 
44741
   *  \param s The son to prepend. */
 
44742
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
44743
  /** Insert a son before another son.
 
44744
   *  \param before The son to insert the new son before.
 
44745
   *  \param son The son to insert. */
 
44746
  void InsertSon (CTree *before, CTree *son); 
 
44747
  /** Replace a son.
 
44748
   *  \param old_son The son to replace.
 
44749
   *  \param new_son The new son. */
 
44750
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
44751
  /** Remove a son.
 
44752
   *  \param son The son to remove. */
 
44753
  void RemoveSon (CTree *son);
 
44754
  /** Insert a son at the given index. 
 
44755
   *  \param idx The index at which to insert.
 
44756
   *  \param s The son to insert. */
 
44757
  void InsertSon (int idx, CTree *s)
 
44758
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
44759
  /** Replace the son at the given index.
 
44760
   *  \param idx The index of the son to replace.
 
44761
   *  \param s The new son. */
 
44762
  void ReplaceSon (int idx, CTree *s) 
 
44763
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
44764
  /** Remove the son at the given index. 
 
44765
   *  \param idx The index of the son to remove. */
 
44766
  void RemoveSon (int idx) 
 
44767
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
 
44768
};
 
44769
 
 
44770
/** \class CT_ExprList CTree.h Puma/CTree.h
 
44771
 *  Tree node representing an expression list. */
 
44772
 
 
44773
#line 44774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44774
} // closed Puma
 
44775
class CCExprResolve;
 
44776
class CExprResolve;
 
44777
class WinIfExists;
 
44778
class WinImportHandler;
 
44779
class WinMacros;
 
44780
class WinAsm;
 
44781
class WinDeclSpecs;
 
44782
class WinMemberExplSpec;
 
44783
class WinTypeKeywords;
 
44784
class WinFriend;
 
44785
class ExtAC;
 
44786
class ExtACBuilderCoupling;
 
44787
class ExtACSyntaxCoupling;
 
44788
class ExtACTree;
 
44789
class ExtACKeywords;
 
44790
class ExtGnu;
 
44791
class PragmaOnceUnitState;
 
44792
class PragmaOnce;
 
44793
class CMatchSyntax;
 
44794
namespace Puma {
 
44795
 
 
44796
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44797
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
 
44798
#line 44799 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44799
  friend class ::CCExprResolve;
 
44800
  friend class ::CExprResolve;
 
44801
  friend class ::WinIfExists;
 
44802
  friend class ::WinImportHandler;
 
44803
  friend class ::WinMacros;
 
44804
  friend class ::WinAsm;
 
44805
  friend class ::WinDeclSpecs;
 
44806
  friend class ::WinMemberExplSpec;
 
44807
  friend class ::WinTypeKeywords;
 
44808
  friend class ::WinFriend;
 
44809
  friend class ::ExtAC;
 
44810
  friend class ::ExtACBuilderCoupling;
 
44811
  friend class ::ExtACSyntaxCoupling;
 
44812
  friend class ::ExtACTree;
 
44813
  friend class ::ExtACKeywords;
 
44814
  friend class ::ExtGnu;
 
44815
  friend class ::PragmaOnceUnitState;
 
44816
  friend class ::PragmaOnce;
 
44817
  friend class ::CMatchSyntax;
 
44818
 
 
44819
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44820
 
 
44821
public:
 
44822
  /** Constructor. */
 
44823
  CT_ExprList () { AddProperties (SEPARATORS); }
 
44824
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
44825
  static const char *NodeId ();
 
44826
  /** Get the name of the node. Can be compared with NodeId(). */
 
44827
  const char *NodeName () const { return NodeId (); }
 
44828
 
 
44829
  /** Get the type of the last expression in the expression list.
 
44830
   *  \return The type or NULL. */
 
44831
  CTypeInfo *Type () const { return type; }
 
44832
  /** Get the value of the last expression in the expression list.
 
44833
   *  \return The value of NULL. */
 
44834
  CExprValue *Value () const { return value; }
 
44835
  /** Get the semantic value of the node. */
 
44836
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
44837
  /** Get the semantic object of the node. */
 
44838
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
44839
};
 
44840
 
 
44841
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
44842
 *  Tree node representing a list of declarators. */
 
44843
 
 
44844
#line 44845 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44845
} // closed Puma
 
44846
class CCExprResolve;
 
44847
class CExprResolve;
 
44848
class WinIfExists;
 
44849
class WinImportHandler;
 
44850
class WinMacros;
 
44851
class WinAsm;
 
44852
class WinDeclSpecs;
 
44853
class WinMemberExplSpec;
 
44854
class WinTypeKeywords;
 
44855
class WinFriend;
 
44856
class ExtAC;
 
44857
class ExtACBuilderCoupling;
 
44858
class ExtACSyntaxCoupling;
 
44859
class ExtACTree;
 
44860
class ExtACKeywords;
 
44861
class ExtGnu;
 
44862
class PragmaOnceUnitState;
 
44863
class PragmaOnce;
 
44864
class CMatchSyntax;
 
44865
namespace Puma {
 
44866
 
 
44867
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44868
class CT_DeclaratorList : public CT_List {
 
44869
#line 44870 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44870
  friend class ::CCExprResolve;
 
44871
  friend class ::CExprResolve;
 
44872
  friend class ::WinIfExists;
 
44873
  friend class ::WinImportHandler;
 
44874
  friend class ::WinMacros;
 
44875
  friend class ::WinAsm;
 
44876
  friend class ::WinDeclSpecs;
 
44877
  friend class ::WinMemberExplSpec;
 
44878
  friend class ::WinTypeKeywords;
 
44879
  friend class ::WinFriend;
 
44880
  friend class ::ExtAC;
 
44881
  friend class ::ExtACBuilderCoupling;
 
44882
  friend class ::ExtACSyntaxCoupling;
 
44883
  friend class ::ExtACTree;
 
44884
  friend class ::ExtACKeywords;
 
44885
  friend class ::ExtGnu;
 
44886
  friend class ::PragmaOnceUnitState;
 
44887
  friend class ::PragmaOnce;
 
44888
  friend class ::CMatchSyntax;
 
44889
 
 
44890
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44891
 
 
44892
public:
 
44893
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
44894
  static const char *NodeId ();
 
44895
  /** Get the name of the node. Can be compared with NodeId(). */
 
44896
  const char *NodeName () const { return NodeId (); }
 
44897
};
 
44898
 
 
44899
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
44900
 *  Tree node representing a list of enumerator constants. */
 
44901
 
 
44902
#line 44903 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44903
} // closed Puma
 
44904
class CCExprResolve;
 
44905
class CExprResolve;
 
44906
class WinIfExists;
 
44907
class WinImportHandler;
 
44908
class WinMacros;
 
44909
class WinAsm;
 
44910
class WinDeclSpecs;
 
44911
class WinMemberExplSpec;
 
44912
class WinTypeKeywords;
 
44913
class WinFriend;
 
44914
class ExtAC;
 
44915
class ExtACBuilderCoupling;
 
44916
class ExtACSyntaxCoupling;
 
44917
class ExtACTree;
 
44918
class ExtACKeywords;
 
44919
class ExtGnu;
 
44920
class PragmaOnceUnitState;
 
44921
class PragmaOnce;
 
44922
class CMatchSyntax;
 
44923
namespace Puma {
 
44924
 
 
44925
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44926
class CT_EnumeratorList : public CT_List {
 
44927
#line 44928 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44928
  friend class ::CCExprResolve;
 
44929
  friend class ::CExprResolve;
 
44930
  friend class ::WinIfExists;
 
44931
  friend class ::WinImportHandler;
 
44932
  friend class ::WinMacros;
 
44933
  friend class ::WinAsm;
 
44934
  friend class ::WinDeclSpecs;
 
44935
  friend class ::WinMemberExplSpec;
 
44936
  friend class ::WinTypeKeywords;
 
44937
  friend class ::WinFriend;
 
44938
  friend class ::ExtAC;
 
44939
  friend class ::ExtACBuilderCoupling;
 
44940
  friend class ::ExtACSyntaxCoupling;
 
44941
  friend class ::ExtACTree;
 
44942
  friend class ::ExtACKeywords;
 
44943
  friend class ::ExtGnu;
 
44944
  friend class ::PragmaOnceUnitState;
 
44945
  friend class ::PragmaOnce;
 
44946
  friend class ::CMatchSyntax;
 
44947
 
 
44948
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44949
 
 
44950
public:
 
44951
  /** Constructor. */
 
44952
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
44953
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
44954
  static const char *NodeId ();
 
44955
  /** Get the name of the node. Can be compared with NodeId(). */
 
44956
  const char *NodeName () const { return NodeId (); }
 
44957
};
 
44958
   
 
44959
/** \class CT_DeclList CTree.h Puma/CTree.h
 
44960
 *  Tree node representing a list of declarations. */
 
44961
 
 
44962
#line 44963 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44963
} // closed Puma
 
44964
class CCExprResolve;
 
44965
class CExprResolve;
 
44966
class WinIfExists;
 
44967
class WinImportHandler;
 
44968
class WinMacros;
 
44969
class WinAsm;
 
44970
class WinDeclSpecs;
 
44971
class WinMemberExplSpec;
 
44972
class WinTypeKeywords;
 
44973
class WinFriend;
 
44974
class ExtAC;
 
44975
class ExtACBuilderCoupling;
 
44976
class ExtACSyntaxCoupling;
 
44977
class ExtACTree;
 
44978
class ExtACKeywords;
 
44979
class ExtGnu;
 
44980
class PragmaOnceUnitState;
 
44981
class PragmaOnce;
 
44982
class CMatchSyntax;
 
44983
namespace Puma {
 
44984
 
 
44985
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44986
class CT_DeclList : public CT_List {
 
44987
#line 44988 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
44988
  friend class ::CCExprResolve;
 
44989
  friend class ::CExprResolve;
 
44990
  friend class ::WinIfExists;
 
44991
  friend class ::WinImportHandler;
 
44992
  friend class ::WinMacros;
 
44993
  friend class ::WinAsm;
 
44994
  friend class ::WinDeclSpecs;
 
44995
  friend class ::WinMemberExplSpec;
 
44996
  friend class ::WinTypeKeywords;
 
44997
  friend class ::WinFriend;
 
44998
  friend class ::ExtAC;
 
44999
  friend class ::ExtACBuilderCoupling;
 
45000
  friend class ::ExtACSyntaxCoupling;
 
45001
  friend class ::ExtACTree;
 
45002
  friend class ::ExtACKeywords;
 
45003
  friend class ::ExtGnu;
 
45004
  friend class ::PragmaOnceUnitState;
 
45005
  friend class ::PragmaOnce;
 
45006
  friend class ::CMatchSyntax;
 
45007
 
 
45008
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45009
 
 
45010
public:
 
45011
  /** Constructor. 
 
45012
   *  \param size The initial size of the list.
 
45013
   *  \param incr The initial increment count of the list. */
 
45014
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
45015
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45016
  static const char *NodeId ();
 
45017
  /** Get the name of the node. Can be compared with NodeId(). */
 
45018
  const char *NodeName () const { return NodeId (); }
 
45019
  /** Set the linkage specifiers to each declaration in the list.
 
45020
   *  \param l The linkage specifiers node. */
 
45021
  void Linkage (CT_LinkageSpec *l);
 
45022
};
 
45023
 
 
45024
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
45025
 *  Tree node representing a sequence of declaration specifiers. */
 
45026
 
 
45027
#line 45028 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45028
} // closed Puma
 
45029
class CCExprResolve;
 
45030
class CExprResolve;
 
45031
class WinIfExists;
 
45032
class WinImportHandler;
 
45033
class WinMacros;
 
45034
class WinAsm;
 
45035
class WinDeclSpecs;
 
45036
class WinMemberExplSpec;
 
45037
class WinTypeKeywords;
 
45038
class WinFriend;
 
45039
class ExtAC;
 
45040
class ExtACBuilderCoupling;
 
45041
class ExtACSyntaxCoupling;
 
45042
class ExtACTree;
 
45043
class ExtACKeywords;
 
45044
class ExtGnu;
 
45045
class PragmaOnceUnitState;
 
45046
class PragmaOnce;
 
45047
class CMatchSyntax;
 
45048
namespace Puma {
 
45049
 
 
45050
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45051
class CT_DeclSpecSeq : public CT_List {
 
45052
#line 45053 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45053
  friend class ::CCExprResolve;
 
45054
  friend class ::CExprResolve;
 
45055
  friend class ::WinIfExists;
 
45056
  friend class ::WinImportHandler;
 
45057
  friend class ::WinMacros;
 
45058
  friend class ::WinAsm;
 
45059
  friend class ::WinDeclSpecs;
 
45060
  friend class ::WinMemberExplSpec;
 
45061
  friend class ::WinTypeKeywords;
 
45062
  friend class ::WinFriend;
 
45063
  friend class ::ExtAC;
 
45064
  friend class ::ExtACBuilderCoupling;
 
45065
  friend class ::ExtACSyntaxCoupling;
 
45066
  friend class ::ExtACTree;
 
45067
  friend class ::ExtACKeywords;
 
45068
  friend class ::ExtGnu;
 
45069
  friend class ::PragmaOnceUnitState;
 
45070
  friend class ::PragmaOnce;
 
45071
  friend class ::CMatchSyntax;
 
45072
 
 
45073
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45074
 
 
45075
public:
 
45076
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45077
  static const char *NodeId ();
 
45078
  /** Get the name of the node. Can be compared with NodeId(). */
 
45079
  const char *NodeName () const { return NodeId (); }
 
45080
};
 
45081
 
 
45082
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
45083
 *  Tree node representing a compound statement. */
 
45084
 
 
45085
#line 45086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45086
} // closed Puma
 
45087
class CCExprResolve;
 
45088
class CExprResolve;
 
45089
class WinIfExists;
 
45090
class WinImportHandler;
 
45091
class WinMacros;
 
45092
class WinAsm;
 
45093
class WinDeclSpecs;
 
45094
class WinMemberExplSpec;
 
45095
class WinTypeKeywords;
 
45096
class WinFriend;
 
45097
class ExtAC;
 
45098
class ExtACBuilderCoupling;
 
45099
class ExtACSyntaxCoupling;
 
45100
class ExtACTree;
 
45101
class ExtACKeywords;
 
45102
class ExtGnu;
 
45103
class PragmaOnceUnitState;
 
45104
class PragmaOnce;
 
45105
class CMatchSyntax;
 
45106
namespace Puma {
 
45107
 
 
45108
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45109
class CT_CmpdStmt : public CT_List, public CSemScope {
 
45110
#line 45111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45111
  friend class ::CCExprResolve;
 
45112
  friend class ::CExprResolve;
 
45113
  friend class ::WinIfExists;
 
45114
  friend class ::WinImportHandler;
 
45115
  friend class ::WinMacros;
 
45116
  friend class ::WinAsm;
 
45117
  friend class ::WinDeclSpecs;
 
45118
  friend class ::WinMemberExplSpec;
 
45119
  friend class ::WinTypeKeywords;
 
45120
  friend class ::WinFriend;
 
45121
  friend class ::ExtAC;
 
45122
  friend class ::ExtACBuilderCoupling;
 
45123
  friend class ::ExtACSyntaxCoupling;
 
45124
  friend class ::ExtACTree;
 
45125
  friend class ::ExtACKeywords;
 
45126
  friend class ::ExtGnu;
 
45127
  friend class ::PragmaOnceUnitState;
 
45128
  friend class ::PragmaOnce;
 
45129
  friend class ::CMatchSyntax;
 
45130
 
 
45131
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45132
 
 
45133
public:
 
45134
  /* Constructor. */
 
45135
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
45136
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45137
  static const char *NodeId ();
 
45138
  /** Get the name of the node. Can be compared with NodeId(). */
 
45139
  const char *NodeName () const { return NodeId (); }
 
45140
  /** Get the local scope of the compound statement. */
 
45141
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
45142
};
 
45143
 
 
45144
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
45145
 *  Tree node representing an exception handler sequence. */
 
45146
 
 
45147
#line 45148 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45148
} // closed Puma
 
45149
class CCExprResolve;
 
45150
class CExprResolve;
 
45151
class WinIfExists;
 
45152
class WinImportHandler;
 
45153
class WinMacros;
 
45154
class WinAsm;
 
45155
class WinDeclSpecs;
 
45156
class WinMemberExplSpec;
 
45157
class WinTypeKeywords;
 
45158
class WinFriend;
 
45159
class ExtAC;
 
45160
class ExtACBuilderCoupling;
 
45161
class ExtACSyntaxCoupling;
 
45162
class ExtACTree;
 
45163
class ExtACKeywords;
 
45164
class ExtGnu;
 
45165
class PragmaOnceUnitState;
 
45166
class PragmaOnce;
 
45167
class CMatchSyntax;
 
45168
namespace Puma {
 
45169
 
 
45170
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45171
class CT_HandlerSeq : public CT_List {
 
45172
#line 45173 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45173
  friend class ::CCExprResolve;
 
45174
  friend class ::CExprResolve;
 
45175
  friend class ::WinIfExists;
 
45176
  friend class ::WinImportHandler;
 
45177
  friend class ::WinMacros;
 
45178
  friend class ::WinAsm;
 
45179
  friend class ::WinDeclSpecs;
 
45180
  friend class ::WinMemberExplSpec;
 
45181
  friend class ::WinTypeKeywords;
 
45182
  friend class ::WinFriend;
 
45183
  friend class ::ExtAC;
 
45184
  friend class ::ExtACBuilderCoupling;
 
45185
  friend class ::ExtACSyntaxCoupling;
 
45186
  friend class ::ExtACTree;
 
45187
  friend class ::ExtACKeywords;
 
45188
  friend class ::ExtGnu;
 
45189
  friend class ::PragmaOnceUnitState;
 
45190
  friend class ::PragmaOnce;
 
45191
  friend class ::CMatchSyntax;
 
45192
 
 
45193
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45194
 
 
45195
public:
 
45196
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45197
  static const char *NodeId ();
 
45198
  /** Get the name of the node. Can be compared with NodeId(). */
 
45199
  const char *NodeName () const { return NodeId (); }
 
45200
};
 
45201
 
 
45202
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
45203
 *  Tree node representing a template parameter list. */
 
45204
 
 
45205
#line 45206 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45206
} // closed Puma
 
45207
class CCExprResolve;
 
45208
class CExprResolve;
 
45209
class WinIfExists;
 
45210
class WinImportHandler;
 
45211
class WinMacros;
 
45212
class WinAsm;
 
45213
class WinDeclSpecs;
 
45214
class WinMemberExplSpec;
 
45215
class WinTypeKeywords;
 
45216
class WinFriend;
 
45217
class ExtAC;
 
45218
class ExtACBuilderCoupling;
 
45219
class ExtACSyntaxCoupling;
 
45220
class ExtACTree;
 
45221
class ExtACKeywords;
 
45222
class ExtGnu;
 
45223
class PragmaOnceUnitState;
 
45224
class PragmaOnce;
 
45225
class CMatchSyntax;
 
45226
namespace Puma {
 
45227
 
 
45228
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45229
class CT_TemplateParamList : public CT_List, public CSemScope {
 
45230
#line 45231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45231
  friend class ::CCExprResolve;
 
45232
  friend class ::CExprResolve;
 
45233
  friend class ::WinIfExists;
 
45234
  friend class ::WinImportHandler;
 
45235
  friend class ::WinMacros;
 
45236
  friend class ::WinAsm;
 
45237
  friend class ::WinDeclSpecs;
 
45238
  friend class ::WinMemberExplSpec;
 
45239
  friend class ::WinTypeKeywords;
 
45240
  friend class ::WinFriend;
 
45241
  friend class ::ExtAC;
 
45242
  friend class ::ExtACBuilderCoupling;
 
45243
  friend class ::ExtACSyntaxCoupling;
 
45244
  friend class ::ExtACTree;
 
45245
  friend class ::ExtACKeywords;
 
45246
  friend class ::ExtGnu;
 
45247
  friend class ::PragmaOnceUnitState;
 
45248
  friend class ::PragmaOnce;
 
45249
  friend class ::CMatchSyntax;
 
45250
 
 
45251
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45252
 
 
45253
public:
 
45254
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
45255
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45256
  static const char *NodeId ();
 
45257
  /** Get the name of the node. Can be compared with NodeId(). */
 
45258
  const char *NodeName () const { return NodeId (); }
 
45259
  /** Get the scope of the template parameter list. */
 
45260
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
45261
};
 
45262
 
 
45263
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
45264
 *  Tree node representing a template argument list. */
 
45265
 
 
45266
#line 45267 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45267
} // closed Puma
 
45268
class CCExprResolve;
 
45269
class CExprResolve;
 
45270
class WinIfExists;
 
45271
class WinImportHandler;
 
45272
class WinMacros;
 
45273
class WinAsm;
 
45274
class WinDeclSpecs;
 
45275
class WinMemberExplSpec;
 
45276
class WinTypeKeywords;
 
45277
class WinFriend;
 
45278
class ExtAC;
 
45279
class ExtACBuilderCoupling;
 
45280
class ExtACSyntaxCoupling;
 
45281
class ExtACTree;
 
45282
class ExtACKeywords;
 
45283
class ExtGnu;
 
45284
class PragmaOnceUnitState;
 
45285
class PragmaOnce;
 
45286
class CMatchSyntax;
 
45287
namespace Puma {
 
45288
 
 
45289
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45290
class CT_TemplateArgList : public CT_List {
 
45291
#line 45292 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45292
  friend class ::CCExprResolve;
 
45293
  friend class ::CExprResolve;
 
45294
  friend class ::WinIfExists;
 
45295
  friend class ::WinImportHandler;
 
45296
  friend class ::WinMacros;
 
45297
  friend class ::WinAsm;
 
45298
  friend class ::WinDeclSpecs;
 
45299
  friend class ::WinMemberExplSpec;
 
45300
  friend class ::WinTypeKeywords;
 
45301
  friend class ::WinFriend;
 
45302
  friend class ::ExtAC;
 
45303
  friend class ::ExtACBuilderCoupling;
 
45304
  friend class ::ExtACSyntaxCoupling;
 
45305
  friend class ::ExtACTree;
 
45306
  friend class ::ExtACKeywords;
 
45307
  friend class ::ExtGnu;
 
45308
  friend class ::PragmaOnceUnitState;
 
45309
  friend class ::PragmaOnce;
 
45310
  friend class ::CMatchSyntax;
 
45311
 
 
45312
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45313
 
 
45314
public:
 
45315
  /** Constructor. */
 
45316
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
45317
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45318
  static const char *NodeId ();
 
45319
  /** Get the name of the node. Can be compared with NodeId(). */
 
45320
  const char *NodeName () const { return NodeId (); }
 
45321
};
 
45322
 
 
45323
/*****************************************************************************/
 
45324
/*                                                                           */
 
45325
/*                              Expressions                                  */
 
45326
/*                                                                           */
 
45327
/*****************************************************************************/
 
45328
 
 
45329
/** \class CT_Expression CTree.h Puma/CTree.h
 
45330
 *  Base class for all expression tree nodes. */
 
45331
 
 
45332
#line 45333 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45333
} // closed Puma
 
45334
class CCExprResolve;
 
45335
class CExprResolve;
 
45336
class WinIfExists;
 
45337
class WinImportHandler;
 
45338
class WinMacros;
 
45339
class WinAsm;
 
45340
class WinDeclSpecs;
 
45341
class WinMemberExplSpec;
 
45342
class WinTypeKeywords;
 
45343
class WinFriend;
 
45344
class ExtAC;
 
45345
class ExtACBuilderCoupling;
 
45346
class ExtACSyntaxCoupling;
 
45347
class ExtACTree;
 
45348
class ExtACKeywords;
 
45349
class ExtGnu;
 
45350
class PragmaOnceUnitState;
 
45351
class PragmaOnce;
 
45352
class CMatchSyntax;
 
45353
namespace Puma {
 
45354
 
 
45355
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45356
 
 
45357
#line 45358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45358
} // closed Puma
 
45359
 
 
45360
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45361
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45362
#include "CCExprResolveH.ah"
 
45363
#endif
 
45364
namespace Puma {
 
45365
 
 
45366
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45367
 
 
45368
#line 45369 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45369
} // closed Puma
 
45370
 
 
45371
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45372
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45373
#include "CExprResolveH.ah"
 
45374
#endif
 
45375
namespace Puma {
 
45376
 
 
45377
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45378
class CT_Expression : public CTree, public CSemValue {
 
45379
#line 45380 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45380
  friend class ::CCExprResolve;
 
45381
  friend class ::CExprResolve;
 
45382
  friend class ::WinIfExists;
 
45383
  friend class ::WinImportHandler;
 
45384
  friend class ::WinMacros;
 
45385
  friend class ::WinAsm;
 
45386
  friend class ::WinDeclSpecs;
 
45387
  friend class ::WinMemberExplSpec;
 
45388
  friend class ::WinTypeKeywords;
 
45389
  friend class ::WinFriend;
 
45390
  friend class ::ExtAC;
 
45391
  friend class ::ExtACBuilderCoupling;
 
45392
  friend class ::ExtACSyntaxCoupling;
 
45393
  friend class ::ExtACTree;
 
45394
  friend class ::ExtACKeywords;
 
45395
  friend class ::ExtGnu;
 
45396
  friend class ::PragmaOnceUnitState;
 
45397
  friend class ::PragmaOnce;
 
45398
  friend class ::CMatchSyntax;
 
45399
 
 
45400
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45401
 
 
45402
protected:
 
45403
  /** Constructor. */
 
45404
  CT_Expression () {}
 
45405
 
 
45406
public:
 
45407
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45408
  static const char *NodeId ();
 
45409
  /** Get the name of the node. Can be compared with NodeId(). */
 
45410
  const char *NodeName () const { return NodeId (); }
 
45411
  /** Get the type of the expression.
 
45412
   *  \return The type information object or NULL. */
 
45413
  CTypeInfo *Type () const { return type; }
 
45414
  /** Get the value of the expression.
 
45415
   *  \return The value object or NULL. */
 
45416
  CExprValue *Value () const { return value; }
 
45417
  /** Get the semantic value information of the expression.
 
45418
   *  \return The value object or NULL. */
 
45419
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
45420
  /** Get this. */
 
45421
  virtual CT_Expression *IsExpression () { return this; }
 
45422
   private:
 
45423
  typedef CT_Expression CCExprResolveExpr;
 
45424
 
 
45425
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
45426
 public :
 
45427
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
45428
  typedef CT_Expression CExprResolveExpr;
 
45429
 
 
45430
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
45431
 public :
 
45432
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
45433
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45434
};
 
45435
 
 
45436
/** \class CT_Call CTree.h Puma/CTree.h
 
45437
 *  Tree node representing explicit or implicit function calls 
 
45438
 *  including built-in or user-defined functions and overloaded
 
45439
 *  operators. */
 
45440
 
 
45441
#line 45442 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45442
} // closed Puma
 
45443
class CCExprResolve;
 
45444
class CExprResolve;
 
45445
class WinIfExists;
 
45446
class WinImportHandler;
 
45447
class WinMacros;
 
45448
class WinAsm;
 
45449
class WinDeclSpecs;
 
45450
class WinMemberExplSpec;
 
45451
class WinTypeKeywords;
 
45452
class WinFriend;
 
45453
class ExtAC;
 
45454
class ExtACBuilderCoupling;
 
45455
class ExtACSyntaxCoupling;
 
45456
class ExtACTree;
 
45457
class ExtACKeywords;
 
45458
class ExtGnu;
 
45459
class PragmaOnceUnitState;
 
45460
class PragmaOnce;
 
45461
class CMatchSyntax;
 
45462
namespace Puma {
 
45463
 
 
45464
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45465
 
 
45466
#line 45467 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45467
} // closed Puma
 
45468
 
 
45469
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45470
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45471
#include "CCExprResolveH.ah"
 
45472
#endif
 
45473
namespace Puma {
 
45474
 
 
45475
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45476
 
 
45477
#line 45478 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45478
} // closed Puma
 
45479
 
 
45480
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45481
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45482
#include "CExprResolveH.ah"
 
45483
#endif
 
45484
namespace Puma {
 
45485
 
 
45486
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45487
class CT_Call : public CT_Expression, public CSemObject {
 
45488
#line 45489 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45489
  friend class ::CCExprResolve;
 
45490
  friend class ::CExprResolve;
 
45491
  friend class ::WinIfExists;
 
45492
  friend class ::WinImportHandler;
 
45493
  friend class ::WinMacros;
 
45494
  friend class ::WinAsm;
 
45495
  friend class ::WinDeclSpecs;
 
45496
  friend class ::WinMemberExplSpec;
 
45497
  friend class ::WinTypeKeywords;
 
45498
  friend class ::WinFriend;
 
45499
  friend class ::ExtAC;
 
45500
  friend class ::ExtACBuilderCoupling;
 
45501
  friend class ::ExtACSyntaxCoupling;
 
45502
  friend class ::ExtACTree;
 
45503
  friend class ::ExtACKeywords;
 
45504
  friend class ::ExtGnu;
 
45505
  friend class ::PragmaOnceUnitState;
 
45506
  friend class ::PragmaOnce;
 
45507
  friend class ::CMatchSyntax;
 
45508
 
 
45509
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45510
 
 
45511
protected:
 
45512
  /** Constructor. */
 
45513
  CT_Call () {}
 
45514
  
 
45515
public:
 
45516
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45517
  static const char *NodeId ();
 
45518
  /** Get the name of the node. Can be compared with NodeId(). */
 
45519
  const char *NodeName () const { return NodeId (); }
 
45520
  /** Get the semantic information of the call.
 
45521
   *  \return The semantic information or NULL. */
 
45522
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
45523
  /** Get this. */
 
45524
  CT_Call *IsCall () { return this; }
 
45525
   private:
 
45526
  typedef CT_Call CCExprResolveExpr;
 
45527
 
 
45528
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
45529
 public :
 
45530
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
45531
  typedef CT_Call CExprResolveExpr;
 
45532
 
 
45533
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
45534
 public :
 
45535
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
45536
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45537
};
 
45538
 
 
45539
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
45540
 *  Tree node representing implicit function calls detected by
 
45541
 *  the semantic analysis. */
 
45542
 
 
45543
#line 45544 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45544
} // closed Puma
 
45545
class CCExprResolve;
 
45546
class CExprResolve;
 
45547
class WinIfExists;
 
45548
class WinImportHandler;
 
45549
class WinMacros;
 
45550
class WinAsm;
 
45551
class WinDeclSpecs;
 
45552
class WinMemberExplSpec;
 
45553
class WinTypeKeywords;
 
45554
class WinFriend;
 
45555
class ExtAC;
 
45556
class ExtACBuilderCoupling;
 
45557
class ExtACSyntaxCoupling;
 
45558
class ExtACTree;
 
45559
class ExtACKeywords;
 
45560
class ExtGnu;
 
45561
class PragmaOnceUnitState;
 
45562
class PragmaOnce;
 
45563
class CMatchSyntax;
 
45564
namespace Puma {
 
45565
 
 
45566
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45567
 
 
45568
#line 45569 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45569
} // closed Puma
 
45570
 
 
45571
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45572
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45573
#include "CCExprResolveH.ah"
 
45574
#endif
 
45575
namespace Puma {
 
45576
 
 
45577
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45578
 
 
45579
#line 45580 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45580
} // closed Puma
 
45581
 
 
45582
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45583
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45584
#include "CExprResolveH.ah"
 
45585
#endif
 
45586
namespace Puma {
 
45587
 
 
45588
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45589
class CT_ImplicitCall : public CT_Call {
 
45590
#line 45591 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45591
  friend class ::CCExprResolve;
 
45592
  friend class ::CExprResolve;
 
45593
  friend class ::WinIfExists;
 
45594
  friend class ::WinImportHandler;
 
45595
  friend class ::WinMacros;
 
45596
  friend class ::WinAsm;
 
45597
  friend class ::WinDeclSpecs;
 
45598
  friend class ::WinMemberExplSpec;
 
45599
  friend class ::WinTypeKeywords;
 
45600
  friend class ::WinFriend;
 
45601
  friend class ::ExtAC;
 
45602
  friend class ::ExtACBuilderCoupling;
 
45603
  friend class ::ExtACSyntaxCoupling;
 
45604
  friend class ::ExtACTree;
 
45605
  friend class ::ExtACKeywords;
 
45606
  friend class ::ExtGnu;
 
45607
  friend class ::PragmaOnceUnitState;
 
45608
  friend class ::PragmaOnce;
 
45609
  friend class ::CMatchSyntax;
 
45610
 
 
45611
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45612
 
 
45613
  CTree *_arg;
 
45614
 
 
45615
public:
 
45616
  /** Constructor.
 
45617
   *  \param arg The call argument. */
 
45618
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
45619
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45620
  static const char *NodeId ();
 
45621
  /** Get the name of the node. Can be compared with NodeId(). */
 
45622
  const char *NodeName () const { return NodeId (); }
 
45623
  /** Get the number of sons. */
 
45624
  int Sons () const { return 1; }
 
45625
  /** Get the n-th son.
 
45626
   *  \param n The index of the son.
 
45627
   *  \return The n-th son or NULL. */
 
45628
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
45629
  /** Replace a son.
 
45630
   *  \param old_son The son to replace.
 
45631
   *  \param new_son The new son. */
 
45632
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
45633
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
45634
   private:
 
45635
  typedef CT_ImplicitCall CCExprResolveExpr;
 
45636
 
 
45637
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
45638
 public :
 
45639
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
45640
  typedef CT_ImplicitCall CExprResolveExpr;
 
45641
 
 
45642
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
45643
 public :
 
45644
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
45645
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45646
};
 
45647
 
 
45648
/** \class CT_String CTree.h Puma/CTree.h
 
45649
 *  Tree node representing a string literal. */
 
45650
 
 
45651
#line 45652 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45652
} // closed Puma
 
45653
class CCExprResolve;
 
45654
class CExprResolve;
 
45655
class WinIfExists;
 
45656
class WinImportHandler;
 
45657
class WinMacros;
 
45658
class WinAsm;
 
45659
class WinDeclSpecs;
 
45660
class WinMemberExplSpec;
 
45661
class WinTypeKeywords;
 
45662
class WinFriend;
 
45663
class ExtAC;
 
45664
class ExtACBuilderCoupling;
 
45665
class ExtACSyntaxCoupling;
 
45666
class ExtACTree;
 
45667
class ExtACKeywords;
 
45668
class ExtGnu;
 
45669
class PragmaOnceUnitState;
 
45670
class PragmaOnce;
 
45671
class CMatchSyntax;
 
45672
namespace Puma {
 
45673
 
 
45674
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45675
 
 
45676
#line 45677 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45677
} // closed Puma
 
45678
 
 
45679
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45680
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45681
#include "CCExprResolveH.ah"
 
45682
#endif
 
45683
namespace Puma {
 
45684
 
 
45685
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45686
 
 
45687
#line 45688 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45688
} // closed Puma
 
45689
 
 
45690
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45691
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45692
#include "CExprResolveH.ah"
 
45693
#endif
 
45694
namespace Puma {
 
45695
 
 
45696
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45697
class CT_String : public CT_List, public CSemValue {
 
45698
#line 45699 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45699
  friend class ::CCExprResolve;
 
45700
  friend class ::CExprResolve;
 
45701
  friend class ::WinIfExists;
 
45702
  friend class ::WinImportHandler;
 
45703
  friend class ::WinMacros;
 
45704
  friend class ::WinAsm;
 
45705
  friend class ::WinDeclSpecs;
 
45706
  friend class ::WinMemberExplSpec;
 
45707
  friend class ::WinTypeKeywords;
 
45708
  friend class ::WinFriend;
 
45709
  friend class ::ExtAC;
 
45710
  friend class ::ExtACBuilderCoupling;
 
45711
  friend class ::ExtACSyntaxCoupling;
 
45712
  friend class ::ExtACTree;
 
45713
  friend class ::ExtACKeywords;
 
45714
  friend class ::ExtGnu;
 
45715
  friend class ::PragmaOnceUnitState;
 
45716
  friend class ::PragmaOnce;
 
45717
  friend class ::CMatchSyntax;
 
45718
 
 
45719
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45720
 
 
45721
public:
 
45722
  /** Constructor. 
 
45723
   *  \param size The number of sub-strings. */
 
45724
  CT_String (int size) : CT_List (size, 1) {}
 
45725
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45726
  static const char *NodeId ();
 
45727
  /** Get the name of the node. Can be compared with NodeId(). */
 
45728
  const char *NodeName () const { return NodeId (); }
 
45729
 
 
45730
  /** Get the type of the string. 
 
45731
   *  \return The type or NULL. */
 
45732
  CTypeInfo *Type () const { return type; }
 
45733
  /** Get the string value.
 
45734
   *  \return The value or NULL. */
 
45735
  CExprValue *Value () const { return value; }
 
45736
  /** Get the semantic value info object.
 
45737
   *  \return The semantic value object or NULL. */
 
45738
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
45739
  /** Get this. */
 
45740
  virtual CT_String *IsString () { return this; }
 
45741
   private:
 
45742
  typedef CT_String CCExprResolveExpr;
 
45743
 
 
45744
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
45745
 public :
 
45746
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
45747
  typedef CT_String CExprResolveExpr;
 
45748
 
 
45749
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
45750
 public :
 
45751
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
45752
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45753
};
 
45754
 
 
45755
/** \class CT_WideString CTree.h Puma/CTree.h
 
45756
 *  Tree node representing a wide string literal. */
 
45757
 
 
45758
#line 45759 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45759
} // closed Puma
 
45760
class CCExprResolve;
 
45761
class CExprResolve;
 
45762
class WinIfExists;
 
45763
class WinImportHandler;
 
45764
class WinMacros;
 
45765
class WinAsm;
 
45766
class WinDeclSpecs;
 
45767
class WinMemberExplSpec;
 
45768
class WinTypeKeywords;
 
45769
class WinFriend;
 
45770
class ExtAC;
 
45771
class ExtACBuilderCoupling;
 
45772
class ExtACSyntaxCoupling;
 
45773
class ExtACTree;
 
45774
class ExtACKeywords;
 
45775
class ExtGnu;
 
45776
class PragmaOnceUnitState;
 
45777
class PragmaOnce;
 
45778
class CMatchSyntax;
 
45779
namespace Puma {
 
45780
 
 
45781
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45782
 
 
45783
#line 45784 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45784
} // closed Puma
 
45785
 
 
45786
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45787
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45788
#include "CCExprResolveH.ah"
 
45789
#endif
 
45790
namespace Puma {
 
45791
 
 
45792
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45793
 
 
45794
#line 45795 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45795
} // closed Puma
 
45796
 
 
45797
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45798
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45799
#include "CExprResolveH.ah"
 
45800
#endif
 
45801
namespace Puma {
 
45802
 
 
45803
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45804
class CT_WideString : public CT_String {
 
45805
#line 45806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45806
  friend class ::CCExprResolve;
 
45807
  friend class ::CExprResolve;
 
45808
  friend class ::WinIfExists;
 
45809
  friend class ::WinImportHandler;
 
45810
  friend class ::WinMacros;
 
45811
  friend class ::WinAsm;
 
45812
  friend class ::WinDeclSpecs;
 
45813
  friend class ::WinMemberExplSpec;
 
45814
  friend class ::WinTypeKeywords;
 
45815
  friend class ::WinFriend;
 
45816
  friend class ::ExtAC;
 
45817
  friend class ::ExtACBuilderCoupling;
 
45818
  friend class ::ExtACSyntaxCoupling;
 
45819
  friend class ::ExtACTree;
 
45820
  friend class ::ExtACKeywords;
 
45821
  friend class ::ExtGnu;
 
45822
  friend class ::PragmaOnceUnitState;
 
45823
  friend class ::PragmaOnce;
 
45824
  friend class ::CMatchSyntax;
 
45825
 
 
45826
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45827
 
 
45828
public:
 
45829
  /** Constructor.
 
45830
   *  \param size The number of sub-strings. */
 
45831
  CT_WideString (int size) : CT_String (size) {}
 
45832
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45833
  static const char *NodeId ();
 
45834
  /** Get the name of the node. Can be compared with NodeId(). */
 
45835
  const char *NodeName () const { return NodeId (); }
 
45836
   private:
 
45837
  typedef CT_WideString CCExprResolveExpr;
 
45838
 
 
45839
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
45840
 public :
 
45841
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
45842
  typedef CT_WideString CExprResolveExpr;
 
45843
 
 
45844
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
45845
 public :
 
45846
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
45847
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45848
};
 
45849
 
 
45850
/** \class CT_Integer CTree.h Puma/CTree.h
 
45851
 *  Tree node representing an integer constant. */
 
45852
 
 
45853
#line 45854 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45854
} // closed Puma
 
45855
class CCExprResolve;
 
45856
class CExprResolve;
 
45857
class WinIfExists;
 
45858
class WinImportHandler;
 
45859
class WinMacros;
 
45860
class WinAsm;
 
45861
class WinDeclSpecs;
 
45862
class WinMemberExplSpec;
 
45863
class WinTypeKeywords;
 
45864
class WinFriend;
 
45865
class ExtAC;
 
45866
class ExtACBuilderCoupling;
 
45867
class ExtACSyntaxCoupling;
 
45868
class ExtACTree;
 
45869
class ExtACKeywords;
 
45870
class ExtGnu;
 
45871
class PragmaOnceUnitState;
 
45872
class PragmaOnce;
 
45873
class CMatchSyntax;
 
45874
namespace Puma {
 
45875
 
 
45876
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45877
 
 
45878
#line 45879 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45879
} // closed Puma
 
45880
 
 
45881
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45882
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45883
#include "CCExprResolveH.ah"
 
45884
#endif
 
45885
namespace Puma {
 
45886
 
 
45887
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45888
 
 
45889
#line 45890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45890
} // closed Puma
 
45891
 
 
45892
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45893
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45894
#include "CExprResolveH.ah"
 
45895
#endif
 
45896
namespace Puma {
 
45897
 
 
45898
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45899
class CT_Integer : public CT_Expression {
 
45900
#line 45901 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45901
  friend class ::CCExprResolve;
 
45902
  friend class ::CExprResolve;
 
45903
  friend class ::WinIfExists;
 
45904
  friend class ::WinImportHandler;
 
45905
  friend class ::WinMacros;
 
45906
  friend class ::WinAsm;
 
45907
  friend class ::WinDeclSpecs;
 
45908
  friend class ::WinMemberExplSpec;
 
45909
  friend class ::WinTypeKeywords;
 
45910
  friend class ::WinFriend;
 
45911
  friend class ::ExtAC;
 
45912
  friend class ::ExtACBuilderCoupling;
 
45913
  friend class ::ExtACSyntaxCoupling;
 
45914
  friend class ::ExtACTree;
 
45915
  friend class ::ExtACKeywords;
 
45916
  friend class ::ExtGnu;
 
45917
  friend class ::PragmaOnceUnitState;
 
45918
  friend class ::PragmaOnce;
 
45919
  friend class ::CMatchSyntax;
 
45920
 
 
45921
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45922
 
 
45923
  CTree *_value;  // CT_Token
 
45924
 
 
45925
public:
 
45926
  /** Constructor.
 
45927
   *  \param token The token containing the integer value. */
 
45928
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
45929
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
45930
  static const char *NodeId ();
 
45931
  /** Get the name of the node. Can be compared with NodeId(). */
 
45932
  const char *NodeName () const { return NodeId (); }
 
45933
  /** Get the number of sons. */
 
45934
  int Sons () const { return _value ? 1 : 0; }
 
45935
  /** Get the n-th son.
 
45936
   *  \param n The index of the son.
 
45937
   *  \return The n-th son or NULL. */
 
45938
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
45939
  /** Replace a son.
 
45940
   *  \param old_son The son to replace.
 
45941
   *  \param new_son The new son. */
 
45942
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
45943
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
45944
   private:
 
45945
  typedef CT_Integer CCExprResolveExpr;
 
45946
 
 
45947
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
45948
 public :
 
45949
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
45950
  typedef CT_Integer CExprResolveExpr;
 
45951
 
 
45952
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
45953
 public :
 
45954
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
45955
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45956
};
 
45957
 
 
45958
/** \class CT_Character CTree.h Puma/CTree.h
 
45959
 *  Tree node representing a single character constant. */
 
45960
 
 
45961
#line 45962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45962
} // closed Puma
 
45963
class CCExprResolve;
 
45964
class CExprResolve;
 
45965
class WinIfExists;
 
45966
class WinImportHandler;
 
45967
class WinMacros;
 
45968
class WinAsm;
 
45969
class WinDeclSpecs;
 
45970
class WinMemberExplSpec;
 
45971
class WinTypeKeywords;
 
45972
class WinFriend;
 
45973
class ExtAC;
 
45974
class ExtACBuilderCoupling;
 
45975
class ExtACSyntaxCoupling;
 
45976
class ExtACTree;
 
45977
class ExtACKeywords;
 
45978
class ExtGnu;
 
45979
class PragmaOnceUnitState;
 
45980
class PragmaOnce;
 
45981
class CMatchSyntax;
 
45982
namespace Puma {
 
45983
 
 
45984
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45985
 
 
45986
#line 45987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45987
} // closed Puma
 
45988
 
 
45989
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45990
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45991
#include "CCExprResolveH.ah"
 
45992
#endif
 
45993
namespace Puma {
 
45994
 
 
45995
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45996
 
 
45997
#line 45998 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
45998
} // closed Puma
 
45999
 
 
46000
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46001
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46002
#include "CExprResolveH.ah"
 
46003
#endif
 
46004
namespace Puma {
 
46005
 
 
46006
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46007
class CT_Character : public CT_Expression {
 
46008
#line 46009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46009
  friend class ::CCExprResolve;
 
46010
  friend class ::CExprResolve;
 
46011
  friend class ::WinIfExists;
 
46012
  friend class ::WinImportHandler;
 
46013
  friend class ::WinMacros;
 
46014
  friend class ::WinAsm;
 
46015
  friend class ::WinDeclSpecs;
 
46016
  friend class ::WinMemberExplSpec;
 
46017
  friend class ::WinTypeKeywords;
 
46018
  friend class ::WinFriend;
 
46019
  friend class ::ExtAC;
 
46020
  friend class ::ExtACBuilderCoupling;
 
46021
  friend class ::ExtACSyntaxCoupling;
 
46022
  friend class ::ExtACTree;
 
46023
  friend class ::ExtACKeywords;
 
46024
  friend class ::ExtGnu;
 
46025
  friend class ::PragmaOnceUnitState;
 
46026
  friend class ::PragmaOnce;
 
46027
  friend class ::CMatchSyntax;
 
46028
 
 
46029
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46030
 
 
46031
  CTree *_value;  // CT_Token
 
46032
 
 
46033
public:
 
46034
  /** Constructor.
 
46035
   *  \param token The token containing the character value. */
 
46036
  CT_Character (CTree *token) { AddSon (_value, token); }
 
46037
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46038
  static const char *NodeId ();
 
46039
  /** Get the name of the node. Can be compared with NodeId(). */
 
46040
  const char *NodeName () const { return NodeId (); }
 
46041
  /** Get the number of sons. */
 
46042
  int Sons () const { return 1; }
 
46043
  /** Get the n-th son.
 
46044
   *  \param n The index of the son.
 
46045
   *  \return The n-th son or NULL. */
 
46046
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
46047
  /** Replace a son.
 
46048
   *  \param old_son The son to replace.
 
46049
   *  \param new_son The new son. */
 
46050
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
46051
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
46052
   private:
 
46053
  typedef CT_Character CCExprResolveExpr;
 
46054
 
 
46055
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46056
 public :
 
46057
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
46058
  typedef CT_Character CExprResolveExpr;
 
46059
 
 
46060
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46061
 public :
 
46062
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46063
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46064
};
 
46065
 
 
46066
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
46067
 *  Tree node representing a wide character constant. */
 
46068
 
 
46069
#line 46070 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46070
} // closed Puma
 
46071
class CCExprResolve;
 
46072
class CExprResolve;
 
46073
class WinIfExists;
 
46074
class WinImportHandler;
 
46075
class WinMacros;
 
46076
class WinAsm;
 
46077
class WinDeclSpecs;
 
46078
class WinMemberExplSpec;
 
46079
class WinTypeKeywords;
 
46080
class WinFriend;
 
46081
class ExtAC;
 
46082
class ExtACBuilderCoupling;
 
46083
class ExtACSyntaxCoupling;
 
46084
class ExtACTree;
 
46085
class ExtACKeywords;
 
46086
class ExtGnu;
 
46087
class PragmaOnceUnitState;
 
46088
class PragmaOnce;
 
46089
class CMatchSyntax;
 
46090
namespace Puma {
 
46091
 
 
46092
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46093
 
 
46094
#line 46095 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46095
} // closed Puma
 
46096
 
 
46097
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46098
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46099
#include "CCExprResolveH.ah"
 
46100
#endif
 
46101
namespace Puma {
 
46102
 
 
46103
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46104
 
 
46105
#line 46106 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46106
} // closed Puma
 
46107
 
 
46108
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46109
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46110
#include "CExprResolveH.ah"
 
46111
#endif
 
46112
namespace Puma {
 
46113
 
 
46114
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46115
class CT_WideCharacter : public CT_Character {
 
46116
#line 46117 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46117
  friend class ::CCExprResolve;
 
46118
  friend class ::CExprResolve;
 
46119
  friend class ::WinIfExists;
 
46120
  friend class ::WinImportHandler;
 
46121
  friend class ::WinMacros;
 
46122
  friend class ::WinAsm;
 
46123
  friend class ::WinDeclSpecs;
 
46124
  friend class ::WinMemberExplSpec;
 
46125
  friend class ::WinTypeKeywords;
 
46126
  friend class ::WinFriend;
 
46127
  friend class ::ExtAC;
 
46128
  friend class ::ExtACBuilderCoupling;
 
46129
  friend class ::ExtACSyntaxCoupling;
 
46130
  friend class ::ExtACTree;
 
46131
  friend class ::ExtACKeywords;
 
46132
  friend class ::ExtGnu;
 
46133
  friend class ::PragmaOnceUnitState;
 
46134
  friend class ::PragmaOnce;
 
46135
  friend class ::CMatchSyntax;
 
46136
 
 
46137
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46138
 
 
46139
public:
 
46140
  /** Constructor.
 
46141
   *  \param token The token containing the wide character value. */
 
46142
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
46143
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46144
  static const char *NodeId ();
 
46145
  /** Get the name of the node. Can be compared with NodeId(). */
 
46146
  const char *NodeName () const { return NodeId (); }
 
46147
   private:
 
46148
  typedef CT_WideCharacter CCExprResolveExpr;
 
46149
 
 
46150
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46151
 public :
 
46152
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
46153
  typedef CT_WideCharacter CExprResolveExpr;
 
46154
 
 
46155
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46156
 public :
 
46157
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46158
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46159
};
 
46160
 
 
46161
/** \class CT_Float CTree.h Puma/CTree.h
 
46162
 *  Tree node representing a floating point constant. */
 
46163
 
 
46164
#line 46165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46165
} // closed Puma
 
46166
class CCExprResolve;
 
46167
class CExprResolve;
 
46168
class WinIfExists;
 
46169
class WinImportHandler;
 
46170
class WinMacros;
 
46171
class WinAsm;
 
46172
class WinDeclSpecs;
 
46173
class WinMemberExplSpec;
 
46174
class WinTypeKeywords;
 
46175
class WinFriend;
 
46176
class ExtAC;
 
46177
class ExtACBuilderCoupling;
 
46178
class ExtACSyntaxCoupling;
 
46179
class ExtACTree;
 
46180
class ExtACKeywords;
 
46181
class ExtGnu;
 
46182
class PragmaOnceUnitState;
 
46183
class PragmaOnce;
 
46184
class CMatchSyntax;
 
46185
namespace Puma {
 
46186
 
 
46187
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46188
 
 
46189
#line 46190 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46190
} // closed Puma
 
46191
 
 
46192
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46193
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46194
#include "CCExprResolveH.ah"
 
46195
#endif
 
46196
namespace Puma {
 
46197
 
 
46198
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46199
 
 
46200
#line 46201 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46201
} // closed Puma
 
46202
 
 
46203
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46204
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46205
#include "CExprResolveH.ah"
 
46206
#endif
 
46207
namespace Puma {
 
46208
 
 
46209
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46210
class CT_Float : public CT_Expression {
 
46211
#line 46212 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46212
  friend class ::CCExprResolve;
 
46213
  friend class ::CExprResolve;
 
46214
  friend class ::WinIfExists;
 
46215
  friend class ::WinImportHandler;
 
46216
  friend class ::WinMacros;
 
46217
  friend class ::WinAsm;
 
46218
  friend class ::WinDeclSpecs;
 
46219
  friend class ::WinMemberExplSpec;
 
46220
  friend class ::WinTypeKeywords;
 
46221
  friend class ::WinFriend;
 
46222
  friend class ::ExtAC;
 
46223
  friend class ::ExtACBuilderCoupling;
 
46224
  friend class ::ExtACSyntaxCoupling;
 
46225
  friend class ::ExtACTree;
 
46226
  friend class ::ExtACKeywords;
 
46227
  friend class ::ExtGnu;
 
46228
  friend class ::PragmaOnceUnitState;
 
46229
  friend class ::PragmaOnce;
 
46230
  friend class ::CMatchSyntax;
 
46231
 
 
46232
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46233
 
 
46234
  CTree *_value;  // CT_Token
 
46235
 
 
46236
public:
 
46237
  /** Constructor.
 
46238
   *  \param token The token containing the floating point value. */
 
46239
  CT_Float (CTree *token) { AddSon (_value, token); }
 
46240
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46241
  static const char *NodeId ();
 
46242
  /** Get the name of the node. Can be compared with NodeId(). */
 
46243
  const char *NodeName () const { return NodeId (); }
 
46244
  /** Get the number of sons. */
 
46245
  int Sons () const { return 1; }
 
46246
  /** Get the n-th son.
 
46247
   *  \param n The index of the son.
 
46248
   *  \return The n-th son or NULL. */
 
46249
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
46250
  /** Replace a son.
 
46251
   *  \param old_son The son to replace.
 
46252
   *  \param new_son The new son. */
 
46253
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
46254
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
46255
   private:
 
46256
  typedef CT_Float CCExprResolveExpr;
 
46257
 
 
46258
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46259
 public :
 
46260
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
46261
  typedef CT_Float CExprResolveExpr;
 
46262
 
 
46263
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46264
 public :
 
46265
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46266
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46267
};
 
46268
 
 
46269
/** \class CT_Bool CTree.h Puma/CTree.h
 
46270
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
 
46271
 
 
46272
#line 46273 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46273
} // closed Puma
 
46274
class CCExprResolve;
 
46275
class CExprResolve;
 
46276
class WinIfExists;
 
46277
class WinImportHandler;
 
46278
class WinMacros;
 
46279
class WinAsm;
 
46280
class WinDeclSpecs;
 
46281
class WinMemberExplSpec;
 
46282
class WinTypeKeywords;
 
46283
class WinFriend;
 
46284
class ExtAC;
 
46285
class ExtACBuilderCoupling;
 
46286
class ExtACSyntaxCoupling;
 
46287
class ExtACTree;
 
46288
class ExtACKeywords;
 
46289
class ExtGnu;
 
46290
class PragmaOnceUnitState;
 
46291
class PragmaOnce;
 
46292
class CMatchSyntax;
 
46293
namespace Puma {
 
46294
 
 
46295
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46296
 
 
46297
#line 46298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46298
} // closed Puma
 
46299
 
 
46300
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46301
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46302
#include "CCExprResolveH.ah"
 
46303
#endif
 
46304
namespace Puma {
 
46305
 
 
46306
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46307
 
 
46308
#line 46309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46309
} // closed Puma
 
46310
 
 
46311
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46312
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46313
#include "CExprResolveH.ah"
 
46314
#endif
 
46315
namespace Puma {
 
46316
 
 
46317
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46318
class CT_Bool : public CT_Expression {
 
46319
#line 46320 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46320
  friend class ::CCExprResolve;
 
46321
  friend class ::CExprResolve;
 
46322
  friend class ::WinIfExists;
 
46323
  friend class ::WinImportHandler;
 
46324
  friend class ::WinMacros;
 
46325
  friend class ::WinAsm;
 
46326
  friend class ::WinDeclSpecs;
 
46327
  friend class ::WinMemberExplSpec;
 
46328
  friend class ::WinTypeKeywords;
 
46329
  friend class ::WinFriend;
 
46330
  friend class ::ExtAC;
 
46331
  friend class ::ExtACBuilderCoupling;
 
46332
  friend class ::ExtACSyntaxCoupling;
 
46333
  friend class ::ExtACTree;
 
46334
  friend class ::ExtACKeywords;
 
46335
  friend class ::ExtGnu;
 
46336
  friend class ::PragmaOnceUnitState;
 
46337
  friend class ::PragmaOnce;
 
46338
  friend class ::CMatchSyntax;
 
46339
 
 
46340
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46341
 
 
46342
  CTree *_value;  // CT_Token
 
46343
 
 
46344
public:
 
46345
  /** Constructor.
 
46346
   *  \param token The token containing the boolean value. */
 
46347
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
46348
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46349
  static const char *NodeId ();
 
46350
  /** Get the name of the node. Can be compared with NodeId(). */
 
46351
  const char *NodeName () const { return NodeId (); }
 
46352
  /** Get the number of sons. */
 
46353
  int Sons () const { return 1; }
 
46354
  /** Get the n-th son.
 
46355
   *  \param n The index of the son.
 
46356
   *  \return The n-th son or NULL. */
 
46357
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
46358
  /** Replace a son.
 
46359
   *  \param old_son The son to replace.
 
46360
   *  \param new_son The new son. */
 
46361
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
46362
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
46363
   private:
 
46364
  typedef CT_Bool CCExprResolveExpr;
 
46365
 
 
46366
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46367
 public :
 
46368
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
46369
  typedef CT_Bool CExprResolveExpr;
 
46370
 
 
46371
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46372
 public :
 
46373
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46374
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46375
};
 
46376
 
 
46377
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
46378
 *  Tree node representing a braced expression, e.g. (a+b). */
 
46379
 
 
46380
#line 46381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46381
} // closed Puma
 
46382
class CCExprResolve;
 
46383
class CExprResolve;
 
46384
class WinIfExists;
 
46385
class WinImportHandler;
 
46386
class WinMacros;
 
46387
class WinAsm;
 
46388
class WinDeclSpecs;
 
46389
class WinMemberExplSpec;
 
46390
class WinTypeKeywords;
 
46391
class WinFriend;
 
46392
class ExtAC;
 
46393
class ExtACBuilderCoupling;
 
46394
class ExtACSyntaxCoupling;
 
46395
class ExtACTree;
 
46396
class ExtACKeywords;
 
46397
class ExtGnu;
 
46398
class PragmaOnceUnitState;
 
46399
class PragmaOnce;
 
46400
class CMatchSyntax;
 
46401
namespace Puma {
 
46402
 
 
46403
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46404
 
 
46405
#line 46406 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46406
} // closed Puma
 
46407
 
 
46408
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46409
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46410
#include "CCExprResolveH.ah"
 
46411
#endif
 
46412
namespace Puma {
 
46413
 
 
46414
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46415
 
 
46416
#line 46417 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46417
} // closed Puma
 
46418
 
 
46419
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46420
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46421
#include "CExprResolveH.ah"
 
46422
#endif
 
46423
namespace Puma {
 
46424
 
 
46425
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46426
class CT_BracedExpr : public CT_Expression {
 
46427
#line 46428 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46428
  friend class ::CCExprResolve;
 
46429
  friend class ::CExprResolve;
 
46430
  friend class ::WinIfExists;
 
46431
  friend class ::WinImportHandler;
 
46432
  friend class ::WinMacros;
 
46433
  friend class ::WinAsm;
 
46434
  friend class ::WinDeclSpecs;
 
46435
  friend class ::WinMemberExplSpec;
 
46436
  friend class ::WinTypeKeywords;
 
46437
  friend class ::WinFriend;
 
46438
  friend class ::ExtAC;
 
46439
  friend class ::ExtACBuilderCoupling;
 
46440
  friend class ::ExtACSyntaxCoupling;
 
46441
  friend class ::ExtACTree;
 
46442
  friend class ::ExtACKeywords;
 
46443
  friend class ::ExtGnu;
 
46444
  friend class ::PragmaOnceUnitState;
 
46445
  friend class ::PragmaOnce;
 
46446
  friend class ::CMatchSyntax;
 
46447
 
 
46448
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46449
 
 
46450
  CTree *sons[3]; // open, expr, close
 
46451
 
 
46452
public:
 
46453
  /** Constructor.
 
46454
   *  \param o The opening brace.
 
46455
   *  \param e The enclosed expression.
 
46456
   *  \param c The closing brace. */
 
46457
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
 
46458
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
 
46459
  }
 
46460
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46461
  static const char *NodeId ();
 
46462
  /** Get the name of the node. Can be compared with NodeId(). */
 
46463
  const char *NodeName () const { return NodeId (); }
 
46464
  /** Get the number of sons. */
 
46465
  int Sons () const { return 3; }
 
46466
  /** Get the n-th son.
 
46467
   *  \param n The index of the son.
 
46468
   *  \return The n-th son or NULL. */
 
46469
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
46470
  /** Get the enclosed expression. */
 
46471
  CTree *Expr () const { return sons[1]; }
 
46472
  /** Get the type of the enclosed expression. */
 
46473
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
46474
  /** Get the value of the enclosed expression. */
 
46475
  CExprValue *Value () const { return Expr ()->Value (); }
 
46476
  /** Get the semantic value object. */
 
46477
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
46478
  /** Replace a son.
 
46479
   *  \param old_son The son to replace.
 
46480
   *  \param new_son The new son. */
 
46481
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
46482
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
46483
  }
 
46484
   private:
 
46485
  typedef CT_BracedExpr CCExprResolveExpr;
 
46486
 
 
46487
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46488
 public :
 
46489
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
46490
  typedef CT_BracedExpr CExprResolveExpr;
 
46491
 
 
46492
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46493
 public :
 
46494
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46495
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46496
};
 
46497
 
 
46498
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
46499
 *  Base class for all tree nodes representing a name. */
 
46500
 
 
46501
#line 46502 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46502
} // closed Puma
 
46503
class CCExprResolve;
 
46504
class CExprResolve;
 
46505
class WinIfExists;
 
46506
class WinImportHandler;
 
46507
class WinMacros;
 
46508
class WinAsm;
 
46509
class WinDeclSpecs;
 
46510
class WinMemberExplSpec;
 
46511
class WinTypeKeywords;
 
46512
class WinFriend;
 
46513
class ExtAC;
 
46514
class ExtACBuilderCoupling;
 
46515
class ExtACSyntaxCoupling;
 
46516
class ExtACTree;
 
46517
class ExtACKeywords;
 
46518
class ExtGnu;
 
46519
class PragmaOnceUnitState;
 
46520
class PragmaOnce;
 
46521
class CMatchSyntax;
 
46522
namespace Puma {
 
46523
 
 
46524
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46525
 
 
46526
#line 46527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46527
} // closed Puma
 
46528
 
 
46529
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46530
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46531
#include "CCExprResolveH.ah"
 
46532
#endif
 
46533
namespace Puma {
 
46534
 
 
46535
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46536
 
 
46537
#line 46538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46538
} // closed Puma
 
46539
 
 
46540
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46541
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46542
#include "CExprResolveH.ah"
 
46543
#endif
 
46544
namespace Puma {
 
46545
 
 
46546
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46547
class CT_SimpleName : public CT_List, public Printable, 
 
46548
                      public CSemValue, public CSemObject {
 
46549
#line 46550 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46550
  friend class ::CCExprResolve;
 
46551
  friend class ::CExprResolve;
 
46552
  friend class ::WinIfExists;
 
46553
  friend class ::WinImportHandler;
 
46554
  friend class ::WinMacros;
 
46555
  friend class ::WinAsm;
 
46556
  friend class ::WinDeclSpecs;
 
46557
  friend class ::WinMemberExplSpec;
 
46558
  friend class ::WinTypeKeywords;
 
46559
  friend class ::WinFriend;
 
46560
  friend class ::ExtAC;
 
46561
  friend class ::ExtACBuilderCoupling;
 
46562
  friend class ::ExtACSyntaxCoupling;
 
46563
  friend class ::ExtACTree;
 
46564
  friend class ::ExtACKeywords;
 
46565
  friend class ::ExtGnu;
 
46566
  friend class ::PragmaOnceUnitState;
 
46567
  friend class ::PragmaOnce;
 
46568
  friend class ::CMatchSyntax;
 
46569
 
 
46570
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46571
 
 
46572
protected:
 
46573
  /** Constructor.
 
46574
   *  \param size The number of sub-names (for qualified names). */
 
46575
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
46576
  /** Constructor.
 
46577
   *  \param size The number of sub-names (for qualified names). 
 
46578
   *  \param properties Additional name list properties (for root qualified names). */
 
46579
  CT_SimpleName (int size, int properties) : 
 
46580
    CT_List (size, 2, properties) {}
 
46581
  
 
46582
public:
 
46583
  /** Constructor.
 
46584
   *  \param n The sub-tree containing the name. */
 
46585
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
46586
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46587
  static const char *NodeId ();
 
46588
  /** Get the name of the node. Can be compared with NodeId(). */
 
46589
  const char *NodeName () const { return NodeId (); }
 
46590
  /** Get the string containing the name. */
 
46591
  virtual const char *Text () const 
 
46592
   { return Son (Sons ()-1)->token ()->text (); }
 
46593
  /** Print the name on the given stream. 
 
46594
   *  \param os The output stream. */
 
46595
  virtual void print (ostream &os) const { os << Text (); }
 
46596
  /** Get this. */
 
46597
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
46598
  /** Get the type of the entity represented by the name. */
 
46599
  CTypeInfo *Type () const { return type; }
 
46600
  /** Get the value of the entity represented by the name. */ 
 
46601
  CExprValue *Value () const { return value; }
 
46602
  /** Get the sematic value information object. */
 
46603
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
46604
  /** Get the sematic information object. */
 
46605
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
46606
  /** Get this. */
 
46607
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
46608
 
 
46609
public:
 
46610
  /** Own new operator reusing memory. */
 
46611
  void *operator new (size_t);
 
46612
  /** Own delete operator. */
 
46613
  void operator delete (void *);
 
46614
   private:
 
46615
  typedef CT_SimpleName CCExprResolveExpr;
 
46616
 
 
46617
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46618
 public :
 
46619
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
46620
  typedef CT_SimpleName CExprResolveExpr;
 
46621
 
 
46622
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46623
 public :
 
46624
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46625
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46626
};
 
46627
 
 
46628
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
46629
 *  Base class for tree nodes representing a special name, like destructor names. */
 
46630
 
 
46631
#line 46632 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46632
} // closed Puma
 
46633
class CCExprResolve;
 
46634
class CExprResolve;
 
46635
class WinIfExists;
 
46636
class WinImportHandler;
 
46637
class WinMacros;
 
46638
class WinAsm;
 
46639
class WinDeclSpecs;
 
46640
class WinMemberExplSpec;
 
46641
class WinTypeKeywords;
 
46642
class WinFriend;
 
46643
class ExtAC;
 
46644
class ExtACBuilderCoupling;
 
46645
class ExtACSyntaxCoupling;
 
46646
class ExtACTree;
 
46647
class ExtACKeywords;
 
46648
class ExtGnu;
 
46649
class PragmaOnceUnitState;
 
46650
class PragmaOnce;
 
46651
class CMatchSyntax;
 
46652
namespace Puma {
 
46653
 
 
46654
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46655
 
 
46656
#line 46657 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46657
} // closed Puma
 
46658
 
 
46659
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46660
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46661
#include "CCExprResolveH.ah"
 
46662
#endif
 
46663
namespace Puma {
 
46664
 
 
46665
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46666
 
 
46667
#line 46668 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46668
} // closed Puma
 
46669
 
 
46670
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46671
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46672
#include "CExprResolveH.ah"
 
46673
#endif
 
46674
namespace Puma {
 
46675
 
 
46676
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46677
class CT_SpecialName : public CT_SimpleName {
 
46678
#line 46679 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46679
  friend class ::CCExprResolve;
 
46680
  friend class ::CExprResolve;
 
46681
  friend class ::WinIfExists;
 
46682
  friend class ::WinImportHandler;
 
46683
  friend class ::WinMacros;
 
46684
  friend class ::WinAsm;
 
46685
  friend class ::WinDeclSpecs;
 
46686
  friend class ::WinMemberExplSpec;
 
46687
  friend class ::WinTypeKeywords;
 
46688
  friend class ::WinFriend;
 
46689
  friend class ::ExtAC;
 
46690
  friend class ::ExtACBuilderCoupling;
 
46691
  friend class ::ExtACSyntaxCoupling;
 
46692
  friend class ::ExtACTree;
 
46693
  friend class ::ExtACKeywords;
 
46694
  friend class ::ExtGnu;
 
46695
  friend class ::PragmaOnceUnitState;
 
46696
  friend class ::PragmaOnce;
 
46697
  friend class ::CMatchSyntax;
 
46698
 
 
46699
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46700
 
 
46701
  char *_name;
 
46702
  
 
46703
protected:
 
46704
  /** Constructor.
 
46705
   *  \param size The number of sub-names (for qualified names). */
 
46706
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
 
46707
  
 
46708
public:
 
46709
  /** Destructor. Deletes the name string. */
 
46710
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
46711
  /** Get the string containing the name. */
 
46712
  const char *Text () const { return _name; }
 
46713
  /** Set the name. The name is copied.
 
46714
   *  \param n The name. */
 
46715
  void Name (const char *n) { 
 
46716
    if (n) { 
 
46717
      _name = new char[strlen(n) + 1];
 
46718
      strcpy (_name,n);
 
46719
    }
 
46720
  }
 
46721
 
 
46722
public:
 
46723
  /** Own new operator reusing memory. */
 
46724
  void *operator new (size_t);
 
46725
  /** Own delete operator. */
 
46726
  void operator delete (void *);
 
46727
   private:
 
46728
  typedef CT_SpecialName CCExprResolveExpr;
 
46729
 
 
46730
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46731
 public :
 
46732
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
46733
  typedef CT_SpecialName CExprResolveExpr;
 
46734
 
 
46735
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46736
 public :
 
46737
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46738
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46739
};
 
46740
 
 
46741
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
46742
 *  Tree node representing a private name. Private names 
 
46743
 *  are generated names for abstract declarators etc. */
 
46744
 
 
46745
#line 46746 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46746
} // closed Puma
 
46747
class CCExprResolve;
 
46748
class CExprResolve;
 
46749
class WinIfExists;
 
46750
class WinImportHandler;
 
46751
class WinMacros;
 
46752
class WinAsm;
 
46753
class WinDeclSpecs;
 
46754
class WinMemberExplSpec;
 
46755
class WinTypeKeywords;
 
46756
class WinFriend;
 
46757
class ExtAC;
 
46758
class ExtACBuilderCoupling;
 
46759
class ExtACSyntaxCoupling;
 
46760
class ExtACTree;
 
46761
class ExtACKeywords;
 
46762
class ExtGnu;
 
46763
class PragmaOnceUnitState;
 
46764
class PragmaOnce;
 
46765
class CMatchSyntax;
 
46766
namespace Puma {
 
46767
 
 
46768
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46769
 
 
46770
#line 46771 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46771
} // closed Puma
 
46772
 
 
46773
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46774
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46775
#include "CCExprResolveH.ah"
 
46776
#endif
 
46777
namespace Puma {
 
46778
 
 
46779
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46780
 
 
46781
#line 46782 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46782
} // closed Puma
 
46783
 
 
46784
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46785
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46786
#include "CExprResolveH.ah"
 
46787
#endif
 
46788
namespace Puma {
 
46789
 
 
46790
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46791
class CT_PrivateName : public CT_SpecialName {
 
46792
#line 46793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46793
  friend class ::CCExprResolve;
 
46794
  friend class ::CExprResolve;
 
46795
  friend class ::WinIfExists;
 
46796
  friend class ::WinImportHandler;
 
46797
  friend class ::WinMacros;
 
46798
  friend class ::WinAsm;
 
46799
  friend class ::WinDeclSpecs;
 
46800
  friend class ::WinMemberExplSpec;
 
46801
  friend class ::WinTypeKeywords;
 
46802
  friend class ::WinFriend;
 
46803
  friend class ::ExtAC;
 
46804
  friend class ::ExtACBuilderCoupling;
 
46805
  friend class ::ExtACSyntaxCoupling;
 
46806
  friend class ::ExtACTree;
 
46807
  friend class ::ExtACKeywords;
 
46808
  friend class ::ExtGnu;
 
46809
  friend class ::PragmaOnceUnitState;
 
46810
  friend class ::PragmaOnce;
 
46811
  friend class ::CMatchSyntax;
 
46812
 
 
46813
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46814
 
 
46815
public:
 
46816
  /** Constructor.
 
46817
   *  \param n The private (generated) name. */
 
46818
  CT_PrivateName (const char *n) { Name (n); }
 
46819
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46820
  static const char *NodeId ();
 
46821
  /** Get the name of the node. Can be compared with NodeId(). */
 
46822
  const char *NodeName () const { return NodeId (); }
 
46823
  /** Get the number of sons. */
 
46824
  int Sons () const { return 0; }
 
46825
  /** Get the n-th son.
 
46826
   *  \param n The index of the son.
 
46827
   *  \return The n-th son or NULL. */
 
46828
  CTree *Son (int n) const { return (CTree*)0; }
 
46829
 
 
46830
public:
 
46831
  /** Own new operator reusing memory. */
 
46832
  void *operator new (size_t);
 
46833
  /** Own delete operator. */
 
46834
  void operator delete (void *);
 
46835
   private:
 
46836
  typedef CT_PrivateName CCExprResolveExpr;
 
46837
 
 
46838
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46839
 public :
 
46840
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
46841
  typedef CT_PrivateName CExprResolveExpr;
 
46842
 
 
46843
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46844
 public :
 
46845
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46846
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46847
};
 
46848
 
 
46849
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
46850
 *  Tree node representing a destructor name. */
 
46851
 
 
46852
#line 46853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46853
} // closed Puma
 
46854
class CCExprResolve;
 
46855
class CExprResolve;
 
46856
class WinIfExists;
 
46857
class WinImportHandler;
 
46858
class WinMacros;
 
46859
class WinAsm;
 
46860
class WinDeclSpecs;
 
46861
class WinMemberExplSpec;
 
46862
class WinTypeKeywords;
 
46863
class WinFriend;
 
46864
class ExtAC;
 
46865
class ExtACBuilderCoupling;
 
46866
class ExtACSyntaxCoupling;
 
46867
class ExtACTree;
 
46868
class ExtACKeywords;
 
46869
class ExtGnu;
 
46870
class PragmaOnceUnitState;
 
46871
class PragmaOnce;
 
46872
class CMatchSyntax;
 
46873
namespace Puma {
 
46874
 
 
46875
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46876
 
 
46877
#line 46878 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46878
} // closed Puma
 
46879
 
 
46880
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46881
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46882
#include "CCExprResolveH.ah"
 
46883
#endif
 
46884
namespace Puma {
 
46885
 
 
46886
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46887
 
 
46888
#line 46889 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46889
} // closed Puma
 
46890
 
 
46891
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46892
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46893
#include "CExprResolveH.ah"
 
46894
#endif
 
46895
namespace Puma {
 
46896
 
 
46897
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46898
class CT_DestructorName : public CT_SpecialName {
 
46899
#line 46900 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46900
  friend class ::CCExprResolve;
 
46901
  friend class ::CExprResolve;
 
46902
  friend class ::WinIfExists;
 
46903
  friend class ::WinImportHandler;
 
46904
  friend class ::WinMacros;
 
46905
  friend class ::WinAsm;
 
46906
  friend class ::WinDeclSpecs;
 
46907
  friend class ::WinMemberExplSpec;
 
46908
  friend class ::WinTypeKeywords;
 
46909
  friend class ::WinFriend;
 
46910
  friend class ::ExtAC;
 
46911
  friend class ::ExtACBuilderCoupling;
 
46912
  friend class ::ExtACSyntaxCoupling;
 
46913
  friend class ::ExtACTree;
 
46914
  friend class ::ExtACKeywords;
 
46915
  friend class ::ExtGnu;
 
46916
  friend class ::PragmaOnceUnitState;
 
46917
  friend class ::PragmaOnce;
 
46918
  friend class ::CMatchSyntax;
 
46919
 
 
46920
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46921
 
 
46922
public:
 
46923
  /** Constructor.
 
46924
   *  \param t The tilde operator.
 
46925
   *  \param n The class name. */
 
46926
  CT_DestructorName (CTree *t, CTree *n);
 
46927
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46928
  static const char *NodeId ();
 
46929
  /** Get the name of the node. Can be compared with NodeId(). */
 
46930
  const char *NodeName () const { return NodeId (); }
 
46931
 
 
46932
public:
 
46933
  /** Own new operator reusing memory. */
 
46934
  void *operator new (size_t);
 
46935
  /** Own delete operator. */
 
46936
  void operator delete (void *);
 
46937
   private:
 
46938
  typedef CT_DestructorName CCExprResolveExpr;
 
46939
 
 
46940
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46941
 public :
 
46942
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
46943
  typedef CT_DestructorName CExprResolveExpr;
 
46944
 
 
46945
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46946
 public :
 
46947
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46948
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46949
};
 
46950
 
 
46951
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
46952
 *  Tree node representing a template name. */
 
46953
 
 
46954
#line 46955 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46955
} // closed Puma
 
46956
class CCExprResolve;
 
46957
class CExprResolve;
 
46958
class WinIfExists;
 
46959
class WinImportHandler;
 
46960
class WinMacros;
 
46961
class WinAsm;
 
46962
class WinDeclSpecs;
 
46963
class WinMemberExplSpec;
 
46964
class WinTypeKeywords;
 
46965
class WinFriend;
 
46966
class ExtAC;
 
46967
class ExtACBuilderCoupling;
 
46968
class ExtACSyntaxCoupling;
 
46969
class ExtACTree;
 
46970
class ExtACKeywords;
 
46971
class ExtGnu;
 
46972
class PragmaOnceUnitState;
 
46973
class PragmaOnce;
 
46974
class CMatchSyntax;
 
46975
namespace Puma {
 
46976
 
 
46977
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46978
 
 
46979
#line 46980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46980
} // closed Puma
 
46981
 
 
46982
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46983
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46984
#include "CCExprResolveH.ah"
 
46985
#endif
 
46986
namespace Puma {
 
46987
 
 
46988
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46989
 
 
46990
#line 46991 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
46991
} // closed Puma
 
46992
 
 
46993
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46994
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46995
#include "CExprResolveH.ah"
 
46996
#endif
 
46997
namespace Puma {
 
46998
 
 
46999
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47000
class CT_TemplateName : public CT_SpecialName {
 
47001
#line 47002 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47002
  friend class ::CCExprResolve;
 
47003
  friend class ::CExprResolve;
 
47004
  friend class ::WinIfExists;
 
47005
  friend class ::WinImportHandler;
 
47006
  friend class ::WinMacros;
 
47007
  friend class ::WinAsm;
 
47008
  friend class ::WinDeclSpecs;
 
47009
  friend class ::WinMemberExplSpec;
 
47010
  friend class ::WinTypeKeywords;
 
47011
  friend class ::WinFriend;
 
47012
  friend class ::ExtAC;
 
47013
  friend class ::ExtACBuilderCoupling;
 
47014
  friend class ::ExtACSyntaxCoupling;
 
47015
  friend class ::ExtACTree;
 
47016
  friend class ::ExtACKeywords;
 
47017
  friend class ::ExtGnu;
 
47018
  friend class ::PragmaOnceUnitState;
 
47019
  friend class ::PragmaOnce;
 
47020
  friend class ::CMatchSyntax;
 
47021
 
 
47022
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47023
 
 
47024
public:
 
47025
  /** Constructor.
 
47026
   *  \param n The template class or function name.
 
47027
   *  \param a The template argument list. */
 
47028
  CT_TemplateName (CTree *n, CTree *a) 
 
47029
   { AddSon (n); AddSon (a); }
 
47030
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
47031
  static const char *NodeId ();
 
47032
  /** Get the name of the node. Can be compared with NodeId(). */
 
47033
  const char *NodeName () const { return NodeId (); }
 
47034
  /** Get the template argument list. */
 
47035
  CT_TemplateArgList *Arguments () const 
 
47036
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
47037
  /** Get the template class or function name. */
 
47038
  CT_SimpleName *TemplateName () const 
 
47039
   { return (CT_SimpleName*)Son (Sons ()-2); }
 
47040
  // may change in the future
 
47041
  const char *Text () const { return TemplateName ()->Text (); }
 
47042
 
 
47043
public:
 
47044
  /** Own new operator reusing memory. */
 
47045
  void *operator new (size_t);
 
47046
  /** Own delete operator. */
 
47047
  void operator delete (void *);
 
47048
   private:
 
47049
  typedef CT_TemplateName CCExprResolveExpr;
 
47050
 
 
47051
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47052
 public :
 
47053
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
47054
  typedef CT_TemplateName CExprResolveExpr;
 
47055
 
 
47056
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47057
 public :
 
47058
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47059
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47060
};
 
47061
 
 
47062
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
47063
 *  Tree node representing the name of an overloaded operator. */
 
47064
 
 
47065
#line 47066 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47066
} // closed Puma
 
47067
class CCExprResolve;
 
47068
class CExprResolve;
 
47069
class WinIfExists;
 
47070
class WinImportHandler;
 
47071
class WinMacros;
 
47072
class WinAsm;
 
47073
class WinDeclSpecs;
 
47074
class WinMemberExplSpec;
 
47075
class WinTypeKeywords;
 
47076
class WinFriend;
 
47077
class ExtAC;
 
47078
class ExtACBuilderCoupling;
 
47079
class ExtACSyntaxCoupling;
 
47080
class ExtACTree;
 
47081
class ExtACKeywords;
 
47082
class ExtGnu;
 
47083
class PragmaOnceUnitState;
 
47084
class PragmaOnce;
 
47085
class CMatchSyntax;
 
47086
namespace Puma {
 
47087
 
 
47088
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47089
 
 
47090
#line 47091 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47091
} // closed Puma
 
47092
 
 
47093
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47094
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47095
#include "CCExprResolveH.ah"
 
47096
#endif
 
47097
namespace Puma {
 
47098
 
 
47099
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47100
 
 
47101
#line 47102 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47102
} // closed Puma
 
47103
 
 
47104
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47105
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47106
#include "CExprResolveH.ah"
 
47107
#endif
 
47108
namespace Puma {
 
47109
 
 
47110
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47111
class CT_OperatorName : public CT_SpecialName {
 
47112
#line 47113 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47113
  friend class ::CCExprResolve;
 
47114
  friend class ::CExprResolve;
 
47115
  friend class ::WinIfExists;
 
47116
  friend class ::WinImportHandler;
 
47117
  friend class ::WinMacros;
 
47118
  friend class ::WinAsm;
 
47119
  friend class ::WinDeclSpecs;
 
47120
  friend class ::WinMemberExplSpec;
 
47121
  friend class ::WinTypeKeywords;
 
47122
  friend class ::WinFriend;
 
47123
  friend class ::ExtAC;
 
47124
  friend class ::ExtACBuilderCoupling;
 
47125
  friend class ::ExtACSyntaxCoupling;
 
47126
  friend class ::ExtACTree;
 
47127
  friend class ::ExtACKeywords;
 
47128
  friend class ::ExtGnu;
 
47129
  friend class ::PragmaOnceUnitState;
 
47130
  friend class ::PragmaOnce;
 
47131
  friend class ::CMatchSyntax;
 
47132
 
 
47133
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47134
 
 
47135
  int _oper;
 
47136
 
 
47137
public:
 
47138
  /** Complex operator types. */
 
47139
  enum { 
 
47140
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
47141
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
47142
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
47143
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
 
47144
  };
 
47145
 
 
47146
public:
 
47147
  /** Constructor.
 
47148
   *  \param op The token containing the operator. */
 
47149
  CT_OperatorName (CTree *op);
 
47150
  /** Constructor.
 
47151
   *  \param f The operator function keyword 'operator'.
 
47152
   *  \param op The token containing the operator. 
 
47153
   *  \param o The token of '[' or '('.
 
47154
   *  \param c The token of ']' or ')'. */
 
47155
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
47156
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
47157
  static const char *NodeId ();
 
47158
  /** Get the name of the node. Can be compared with NodeId(). */
 
47159
  const char *NodeName () const { return NodeId (); }
 
47160
  /** Get the operator type (either the token type or one of 
 
47161
   *  the complex operator types). */
 
47162
  int Operator () const { return _oper; }
 
47163
 
 
47164
public:
 
47165
  /** Own new operator reusing memory. */
 
47166
  void *operator new (size_t);
 
47167
  /** Own delete operator. */
 
47168
  void operator delete (void *);
 
47169
   private:
 
47170
  typedef CT_OperatorName CCExprResolveExpr;
 
47171
 
 
47172
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47173
 public :
 
47174
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
47175
  typedef CT_OperatorName CExprResolveExpr;
 
47176
 
 
47177
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47178
 public :
 
47179
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47180
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47181
};
 
47182
 
 
47183
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
47184
 *  Tree node representing the name of a conversion function. */
 
47185
 
 
47186
#line 47187 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47187
} // closed Puma
 
47188
class CCExprResolve;
 
47189
class CExprResolve;
 
47190
class WinIfExists;
 
47191
class WinImportHandler;
 
47192
class WinMacros;
 
47193
class WinAsm;
 
47194
class WinDeclSpecs;
 
47195
class WinMemberExplSpec;
 
47196
class WinTypeKeywords;
 
47197
class WinFriend;
 
47198
class ExtAC;
 
47199
class ExtACBuilderCoupling;
 
47200
class ExtACSyntaxCoupling;
 
47201
class ExtACTree;
 
47202
class ExtACKeywords;
 
47203
class ExtGnu;
 
47204
class PragmaOnceUnitState;
 
47205
class PragmaOnce;
 
47206
class CMatchSyntax;
 
47207
namespace Puma {
 
47208
 
 
47209
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47210
 
 
47211
#line 47212 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47212
} // closed Puma
 
47213
 
 
47214
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47215
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47216
#include "CCExprResolveH.ah"
 
47217
#endif
 
47218
namespace Puma {
 
47219
 
 
47220
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47221
 
 
47222
#line 47223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47223
} // closed Puma
 
47224
 
 
47225
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47226
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47227
#include "CExprResolveH.ah"
 
47228
#endif
 
47229
namespace Puma {
 
47230
 
 
47231
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47232
class CT_ConversionName : public CT_SpecialName {
 
47233
#line 47234 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47234
  friend class ::CCExprResolve;
 
47235
  friend class ::CExprResolve;
 
47236
  friend class ::WinIfExists;
 
47237
  friend class ::WinImportHandler;
 
47238
  friend class ::WinMacros;
 
47239
  friend class ::WinAsm;
 
47240
  friend class ::WinDeclSpecs;
 
47241
  friend class ::WinMemberExplSpec;
 
47242
  friend class ::WinTypeKeywords;
 
47243
  friend class ::WinFriend;
 
47244
  friend class ::ExtAC;
 
47245
  friend class ::ExtACBuilderCoupling;
 
47246
  friend class ::ExtACSyntaxCoupling;
 
47247
  friend class ::ExtACTree;
 
47248
  friend class ::ExtACKeywords;
 
47249
  friend class ::ExtGnu;
 
47250
  friend class ::PragmaOnceUnitState;
 
47251
  friend class ::PragmaOnce;
 
47252
  friend class ::CMatchSyntax;
 
47253
 
 
47254
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47255
 
 
47256
public:
 
47257
  /** Constructor.
 
47258
   *  \param f The operator function keyword 'operator'.
 
47259
   *  \param t The sub-tree containing the conversion type. */
 
47260
  CT_ConversionName (CTree *f, CTree *t);
 
47261
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
47262
  static const char *NodeId ();
 
47263
  /** Get the name of the node. Can be compared with NodeId(). */
 
47264
  const char *NodeName () const { return NodeId (); }
 
47265
  /** Get the conversion type. */
 
47266
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
 
47267
 
 
47268
public:
 
47269
  /** Own new operator reusing memory. */
 
47270
  void *operator new (size_t);
 
47271
  /** Own delete operator. */
 
47272
  void operator delete (void *);
 
47273
   private:
 
47274
  typedef CT_ConversionName CCExprResolveExpr;
 
47275
 
 
47276
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47277
 public :
 
47278
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
47279
  typedef CT_ConversionName CExprResolveExpr;
 
47280
 
 
47281
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47282
 public :
 
47283
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47284
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47285
};
 
47286
 
 
47287
/** \class CT_QualName CTree.h Puma/CTree.h
 
47288
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
 
47289
 
 
47290
#line 47291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47291
} // closed Puma
 
47292
class CCExprResolve;
 
47293
class CExprResolve;
 
47294
class WinIfExists;
 
47295
class WinImportHandler;
 
47296
class WinMacros;
 
47297
class WinAsm;
 
47298
class WinDeclSpecs;
 
47299
class WinMemberExplSpec;
 
47300
class WinTypeKeywords;
 
47301
class WinFriend;
 
47302
class ExtAC;
 
47303
class ExtACBuilderCoupling;
 
47304
class ExtACSyntaxCoupling;
 
47305
class ExtACTree;
 
47306
class ExtACKeywords;
 
47307
class ExtGnu;
 
47308
class PragmaOnceUnitState;
 
47309
class PragmaOnce;
 
47310
class CMatchSyntax;
 
47311
namespace Puma {
 
47312
 
 
47313
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47314
 
 
47315
#line 47316 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47316
} // closed Puma
 
47317
 
 
47318
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47319
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47320
#include "CCExprResolveH.ah"
 
47321
#endif
 
47322
namespace Puma {
 
47323
 
 
47324
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47325
 
 
47326
#line 47327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47327
} // closed Puma
 
47328
 
 
47329
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47330
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47331
#include "CExprResolveH.ah"
 
47332
#endif
 
47333
namespace Puma {
 
47334
 
 
47335
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47336
class CT_QualName : public CT_SimpleName {
 
47337
#line 47338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47338
  friend class ::CCExprResolve;
 
47339
  friend class ::CExprResolve;
 
47340
  friend class ::WinIfExists;
 
47341
  friend class ::WinImportHandler;
 
47342
  friend class ::WinMacros;
 
47343
  friend class ::WinAsm;
 
47344
  friend class ::WinDeclSpecs;
 
47345
  friend class ::WinMemberExplSpec;
 
47346
  friend class ::WinTypeKeywords;
 
47347
  friend class ::WinFriend;
 
47348
  friend class ::ExtAC;
 
47349
  friend class ::ExtACBuilderCoupling;
 
47350
  friend class ::ExtACSyntaxCoupling;
 
47351
  friend class ::ExtACTree;
 
47352
  friend class ::ExtACKeywords;
 
47353
  friend class ::ExtGnu;
 
47354
  friend class ::PragmaOnceUnitState;
 
47355
  friend class ::PragmaOnce;
 
47356
  friend class ::CMatchSyntax;
 
47357
 
 
47358
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47359
 
 
47360
public:
 
47361
  /** Constructor.
 
47362
   *  \param size The initial number sub-names plus separators. */
 
47363
  CT_QualName (int size = 3) : 
 
47364
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
47365
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
47366
  static const char *NodeId ();
 
47367
  /** Get the name of the node. Can be compared with NodeId(). */
 
47368
  const char *NodeName () const { return NodeId (); }
 
47369
  /** Print the qualified name on the given stream. 
 
47370
   *  \param os The output stream. */
 
47371
  void print (ostream &os) const;
 
47372
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
 
47373
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
47374
  /** Get the string containing the last name of the qualified name. */
 
47375
  const char *Text () const { return Name ()->Text (); }
 
47376
  /** Get the type of the last name. */
 
47377
  CTypeInfo *Type () const { return Name ()->Type (); }
 
47378
  /** Get the value of the last name. */
 
47379
  CExprValue *Value () const { return Name ()->Value (); }
 
47380
  /** Get the semantic value object of the last name. */
 
47381
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
47382
  /** Get the semantic information object of the last name. */
 
47383
  CSemObject *SemObject () const { return Name ()->SemObject (); }
 
47384
 
 
47385
public:
 
47386
  /** Own new operator reusing memory. */
 
47387
  void *operator new (size_t);
 
47388
  /** Own delete operator. */
 
47389
  void operator delete (void *);
 
47390
   private:
 
47391
  typedef CT_QualName CCExprResolveExpr;
 
47392
 
 
47393
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47394
 public :
 
47395
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
47396
  typedef CT_QualName CExprResolveExpr;
 
47397
 
 
47398
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47399
 public :
 
47400
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47401
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47402
};
 
47403
 
 
47404
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
47405
 *  Tree node representing a qualified name with introducing name separator,
 
47406
 *  e.g. ::X::Y::Z. */
 
47407
 
 
47408
#line 47409 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47409
} // closed Puma
 
47410
class CCExprResolve;
 
47411
class CExprResolve;
 
47412
class WinIfExists;
 
47413
class WinImportHandler;
 
47414
class WinMacros;
 
47415
class WinAsm;
 
47416
class WinDeclSpecs;
 
47417
class WinMemberExplSpec;
 
47418
class WinTypeKeywords;
 
47419
class WinFriend;
 
47420
class ExtAC;
 
47421
class ExtACBuilderCoupling;
 
47422
class ExtACSyntaxCoupling;
 
47423
class ExtACTree;
 
47424
class ExtACKeywords;
 
47425
class ExtGnu;
 
47426
class PragmaOnceUnitState;
 
47427
class PragmaOnce;
 
47428
class CMatchSyntax;
 
47429
namespace Puma {
 
47430
 
 
47431
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47432
 
 
47433
#line 47434 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47434
} // closed Puma
 
47435
 
 
47436
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47437
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47438
#include "CCExprResolveH.ah"
 
47439
#endif
 
47440
namespace Puma {
 
47441
 
 
47442
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47443
 
 
47444
#line 47445 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47445
} // closed Puma
 
47446
 
 
47447
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47448
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47449
#include "CExprResolveH.ah"
 
47450
#endif
 
47451
namespace Puma {
 
47452
 
 
47453
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47454
class CT_RootQualName : public CT_QualName {
 
47455
#line 47456 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47456
  friend class ::CCExprResolve;
 
47457
  friend class ::CExprResolve;
 
47458
  friend class ::WinIfExists;
 
47459
  friend class ::WinImportHandler;
 
47460
  friend class ::WinMacros;
 
47461
  friend class ::WinAsm;
 
47462
  friend class ::WinDeclSpecs;
 
47463
  friend class ::WinMemberExplSpec;
 
47464
  friend class ::WinTypeKeywords;
 
47465
  friend class ::WinFriend;
 
47466
  friend class ::ExtAC;
 
47467
  friend class ::ExtACBuilderCoupling;
 
47468
  friend class ::ExtACSyntaxCoupling;
 
47469
  friend class ::ExtACTree;
 
47470
  friend class ::ExtACKeywords;
 
47471
  friend class ::ExtGnu;
 
47472
  friend class ::PragmaOnceUnitState;
 
47473
  friend class ::PragmaOnce;
 
47474
  friend class ::CMatchSyntax;
 
47475
 
 
47476
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47477
 
 
47478
public:
 
47479
  /** Constructor.
 
47480
   *  \param size Initial number of sub-name plus separator. */
 
47481
  CT_RootQualName (int size = 2) : 
 
47482
    CT_QualName (size) { AddProperties (INTRO); }
 
47483
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
47484
  static const char *NodeId ();
 
47485
  /** Get the name of the node. Can be compared with NodeId(). */
 
47486
  const char *NodeName () const { return NodeId (); }
 
47487
 
 
47488
public:
 
47489
  /** Own new operator reusing memory. */
 
47490
  void *operator new (size_t);
 
47491
  /** Own delete operator. */
 
47492
  void operator delete (void *);
 
47493
   private:
 
47494
  typedef CT_RootQualName CCExprResolveExpr;
 
47495
 
 
47496
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47497
 public :
 
47498
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
47499
  typedef CT_RootQualName CExprResolveExpr;
 
47500
 
 
47501
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47502
 public :
 
47503
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47504
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47505
};
 
47506
 
 
47507
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
47508
 *  Tree node representing a binary expression, e.g. a+b. */
 
47509
 
 
47510
#line 47511 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47511
} // closed Puma
 
47512
class CCExprResolve;
 
47513
class CExprResolve;
 
47514
class WinIfExists;
 
47515
class WinImportHandler;
 
47516
class WinMacros;
 
47517
class WinAsm;
 
47518
class WinDeclSpecs;
 
47519
class WinMemberExplSpec;
 
47520
class WinTypeKeywords;
 
47521
class WinFriend;
 
47522
class ExtAC;
 
47523
class ExtACBuilderCoupling;
 
47524
class ExtACSyntaxCoupling;
 
47525
class ExtACTree;
 
47526
class ExtACKeywords;
 
47527
class ExtGnu;
 
47528
class PragmaOnceUnitState;
 
47529
class PragmaOnce;
 
47530
class CMatchSyntax;
 
47531
namespace Puma {
 
47532
 
 
47533
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47534
 
 
47535
#line 47536 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47536
} // closed Puma
 
47537
 
 
47538
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47539
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47540
#include "CCExprResolveH.ah"
 
47541
#endif
 
47542
namespace Puma {
 
47543
 
 
47544
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47545
 
 
47546
#line 47547 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47547
} // closed Puma
 
47548
 
 
47549
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47550
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47551
#include "CExprResolveH.ah"
 
47552
#endif
 
47553
namespace Puma {
 
47554
 
 
47555
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47556
class CT_BinaryExpr : public CT_Call {
 
47557
#line 47558 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47558
  friend class ::CCExprResolve;
 
47559
  friend class ::CExprResolve;
 
47560
  friend class ::WinIfExists;
 
47561
  friend class ::WinImportHandler;
 
47562
  friend class ::WinMacros;
 
47563
  friend class ::WinAsm;
 
47564
  friend class ::WinDeclSpecs;
 
47565
  friend class ::WinMemberExplSpec;
 
47566
  friend class ::WinTypeKeywords;
 
47567
  friend class ::WinFriend;
 
47568
  friend class ::ExtAC;
 
47569
  friend class ::ExtACBuilderCoupling;
 
47570
  friend class ::ExtACSyntaxCoupling;
 
47571
  friend class ::ExtACTree;
 
47572
  friend class ::ExtACKeywords;
 
47573
  friend class ::ExtGnu;
 
47574
  friend class ::PragmaOnceUnitState;
 
47575
  friend class ::PragmaOnce;
 
47576
  friend class ::CMatchSyntax;
 
47577
 
 
47578
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47579
 
 
47580
  CTree *sons[3]; // expr, oper, expr
 
47581
 
 
47582
public:
 
47583
  /** Constructor. 
 
47584
   *  \param l Left hand side of the expression. 
 
47585
   *  \param o The operator token. 
 
47586
   *  \param r Right hand side of the expression. */
 
47587
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
 
47588
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
 
47589
  }
 
47590
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
47591
  static const char *NodeId ();
 
47592
  /** Get the name of the node. Can be compared with NodeId(). */
 
47593
  const char *NodeName () const { return NodeId (); }
 
47594
  /** Get the number of sons. */
 
47595
  int Sons () const { return 3; }
 
47596
  /** Get the n-th son.
 
47597
   *  \param n The index of the son.
 
47598
   *  \return The n-th son or NULL. */
 
47599
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
47600
  /** Replace a son.
 
47601
   *  \param old_son The son to replace.
 
47602
   *  \param new_son The new son. */
 
47603
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
47604
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
47605
  }
 
47606
   private:
 
47607
  typedef CT_BinaryExpr CCExprResolveExpr;
 
47608
 
 
47609
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47610
 public :
 
47611
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
47612
  typedef CT_BinaryExpr CExprResolveExpr;
 
47613
 
 
47614
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47615
 public :
 
47616
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47617
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47618
};
 
47619
 
 
47620
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
47621
 *  Tree node representing a member pointer expression, e.g. a->b. */
 
47622
 
 
47623
#line 47624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47624
} // closed Puma
 
47625
class CCExprResolve;
 
47626
class CExprResolve;
 
47627
class WinIfExists;
 
47628
class WinImportHandler;
 
47629
class WinMacros;
 
47630
class WinAsm;
 
47631
class WinDeclSpecs;
 
47632
class WinMemberExplSpec;
 
47633
class WinTypeKeywords;
 
47634
class WinFriend;
 
47635
class ExtAC;
 
47636
class ExtACBuilderCoupling;
 
47637
class ExtACSyntaxCoupling;
 
47638
class ExtACTree;
 
47639
class ExtACKeywords;
 
47640
class ExtGnu;
 
47641
class PragmaOnceUnitState;
 
47642
class PragmaOnce;
 
47643
class CMatchSyntax;
 
47644
namespace Puma {
 
47645
 
 
47646
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47647
 
 
47648
#line 47649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47649
} // closed Puma
 
47650
 
 
47651
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47652
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47653
#include "CCExprResolveH.ah"
 
47654
#endif
 
47655
namespace Puma {
 
47656
 
 
47657
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47658
 
 
47659
#line 47660 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47660
} // closed Puma
 
47661
 
 
47662
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47663
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47664
#include "CExprResolveH.ah"
 
47665
#endif
 
47666
namespace Puma {
 
47667
 
 
47668
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47669
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
47670
#line 47671 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47671
  friend class ::CCExprResolve;
 
47672
  friend class ::CExprResolve;
 
47673
  friend class ::WinIfExists;
 
47674
  friend class ::WinImportHandler;
 
47675
  friend class ::WinMacros;
 
47676
  friend class ::WinAsm;
 
47677
  friend class ::WinDeclSpecs;
 
47678
  friend class ::WinMemberExplSpec;
 
47679
  friend class ::WinTypeKeywords;
 
47680
  friend class ::WinFriend;
 
47681
  friend class ::ExtAC;
 
47682
  friend class ::ExtACBuilderCoupling;
 
47683
  friend class ::ExtACSyntaxCoupling;
 
47684
  friend class ::ExtACTree;
 
47685
  friend class ::ExtACKeywords;
 
47686
  friend class ::ExtGnu;
 
47687
  friend class ::PragmaOnceUnitState;
 
47688
  friend class ::PragmaOnce;
 
47689
  friend class ::CMatchSyntax;
 
47690
 
 
47691
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47692
 
 
47693
  CTree *sons[3]; // expr, oper, expr
 
47694
  
 
47695
public:
 
47696
  /** Constructor.
 
47697
   *  \param e Expression on which to call the member.
 
47698
   *  \param o The arrow operator token.
 
47699
   *  \param i The member name. */
 
47700
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
47701
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
47702
  }
 
47703
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
47704
  static const char *NodeId ();
 
47705
  /** Get the name of the node. Can be compared with NodeId(). */
 
47706
  const char *NodeName () const { return NodeId (); }
 
47707
  /** Get the number of sons. */
 
47708
  int Sons () const { return 3; }
 
47709
  /** Get the n-th son.
 
47710
   *  \param n The index of the son.
 
47711
   *  \return The n-th son or NULL. */
 
47712
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
47713
  /** Replace a son.
 
47714
   *  \param old_son The son to replace.
 
47715
   *  \param new_son The new son. */
 
47716
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
47717
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
47718
  }
 
47719
   private:
 
47720
  typedef CT_MembPtrExpr CCExprResolveExpr;
 
47721
 
 
47722
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47723
 public :
 
47724
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
47725
  typedef CT_MembPtrExpr CExprResolveExpr;
 
47726
 
 
47727
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47728
 public :
 
47729
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47730
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47731
};
 
47732
 
 
47733
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
47734
 *  Tree node representing a member reference expression, e.g. a.b. */
 
47735
 
 
47736
#line 47737 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47737
} // closed Puma
 
47738
class CCExprResolve;
 
47739
class CExprResolve;
 
47740
class WinIfExists;
 
47741
class WinImportHandler;
 
47742
class WinMacros;
 
47743
class WinAsm;
 
47744
class WinDeclSpecs;
 
47745
class WinMemberExplSpec;
 
47746
class WinTypeKeywords;
 
47747
class WinFriend;
 
47748
class ExtAC;
 
47749
class ExtACBuilderCoupling;
 
47750
class ExtACSyntaxCoupling;
 
47751
class ExtACTree;
 
47752
class ExtACKeywords;
 
47753
class ExtGnu;
 
47754
class PragmaOnceUnitState;
 
47755
class PragmaOnce;
 
47756
class CMatchSyntax;
 
47757
namespace Puma {
 
47758
 
 
47759
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47760
 
 
47761
#line 47762 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47762
} // closed Puma
 
47763
 
 
47764
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47765
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47766
#include "CCExprResolveH.ah"
 
47767
#endif
 
47768
namespace Puma {
 
47769
 
 
47770
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47771
 
 
47772
#line 47773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47773
} // closed Puma
 
47774
 
 
47775
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47776
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47777
#include "CExprResolveH.ah"
 
47778
#endif
 
47779
namespace Puma {
 
47780
 
 
47781
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47782
class CT_MembRefExpr : public CT_MembPtrExpr {
 
47783
#line 47784 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47784
  friend class ::CCExprResolve;
 
47785
  friend class ::CExprResolve;
 
47786
  friend class ::WinIfExists;
 
47787
  friend class ::WinImportHandler;
 
47788
  friend class ::WinMacros;
 
47789
  friend class ::WinAsm;
 
47790
  friend class ::WinDeclSpecs;
 
47791
  friend class ::WinMemberExplSpec;
 
47792
  friend class ::WinTypeKeywords;
 
47793
  friend class ::WinFriend;
 
47794
  friend class ::ExtAC;
 
47795
  friend class ::ExtACBuilderCoupling;
 
47796
  friend class ::ExtACSyntaxCoupling;
 
47797
  friend class ::ExtACTree;
 
47798
  friend class ::ExtACKeywords;
 
47799
  friend class ::ExtGnu;
 
47800
  friend class ::PragmaOnceUnitState;
 
47801
  friend class ::PragmaOnce;
 
47802
  friend class ::CMatchSyntax;
 
47803
 
 
47804
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47805
 
 
47806
public:
 
47807
  /** Constructor.
 
47808
   *  \param e Expression on which to call the member.
 
47809
   *  \param o The dot operator.
 
47810
   *  \param i The member name. */
 
47811
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
 
47812
    CT_MembPtrExpr (e, o, i) {}
 
47813
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
47814
  static const char *NodeId ();
 
47815
  /** Get the name of the node. Can be compared with NodeId(). */
 
47816
  const char *NodeName () const { return NodeId (); }
 
47817
   private:
 
47818
  typedef CT_MembRefExpr CCExprResolveExpr;
 
47819
 
 
47820
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47821
 public :
 
47822
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
47823
  typedef CT_MembRefExpr CExprResolveExpr;
 
47824
 
 
47825
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47826
 public :
 
47827
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47828
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47829
};
 
47830
 
 
47831
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
47832
 *  Base class for tree nodes representing unary expressions. */
 
47833
 
 
47834
#line 47835 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47835
} // closed Puma
 
47836
class CCExprResolve;
 
47837
class CExprResolve;
 
47838
class WinIfExists;
 
47839
class WinImportHandler;
 
47840
class WinMacros;
 
47841
class WinAsm;
 
47842
class WinDeclSpecs;
 
47843
class WinMemberExplSpec;
 
47844
class WinTypeKeywords;
 
47845
class WinFriend;
 
47846
class ExtAC;
 
47847
class ExtACBuilderCoupling;
 
47848
class ExtACSyntaxCoupling;
 
47849
class ExtACTree;
 
47850
class ExtACKeywords;
 
47851
class ExtGnu;
 
47852
class PragmaOnceUnitState;
 
47853
class PragmaOnce;
 
47854
class CMatchSyntax;
 
47855
namespace Puma {
 
47856
 
 
47857
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47858
 
 
47859
#line 47860 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47860
} // closed Puma
 
47861
 
 
47862
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47863
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47864
#include "CCExprResolveH.ah"
 
47865
#endif
 
47866
namespace Puma {
 
47867
 
 
47868
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47869
 
 
47870
#line 47871 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47871
} // closed Puma
 
47872
 
 
47873
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47874
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47875
#include "CExprResolveH.ah"
 
47876
#endif
 
47877
namespace Puma {
 
47878
 
 
47879
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47880
class CT_UnaryExpr : public CT_Call {
 
47881
#line 47882 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47882
  friend class ::CCExprResolve;
 
47883
  friend class ::CExprResolve;
 
47884
  friend class ::WinIfExists;
 
47885
  friend class ::WinImportHandler;
 
47886
  friend class ::WinMacros;
 
47887
  friend class ::WinAsm;
 
47888
  friend class ::WinDeclSpecs;
 
47889
  friend class ::WinMemberExplSpec;
 
47890
  friend class ::WinTypeKeywords;
 
47891
  friend class ::WinFriend;
 
47892
  friend class ::ExtAC;
 
47893
  friend class ::ExtACBuilderCoupling;
 
47894
  friend class ::ExtACSyntaxCoupling;
 
47895
  friend class ::ExtACTree;
 
47896
  friend class ::ExtACKeywords;
 
47897
  friend class ::ExtGnu;
 
47898
  friend class ::PragmaOnceUnitState;
 
47899
  friend class ::PragmaOnce;
 
47900
  friend class ::CMatchSyntax;
 
47901
 
 
47902
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47903
 
 
47904
  CTree *sons[2]; // oper, expr
 
47905
 
 
47906
public:
 
47907
  /** Constructor.
 
47908
   *  \param o The unary operator.
 
47909
   *  \param e The expression on which the operator is invoked. */
 
47910
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
47911
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
47912
  static const char *NodeId ();
 
47913
  /** Get the name of the node. Can be compared with NodeId(). */
 
47914
  const char *NodeName () const { return NodeId (); }
 
47915
  /** Get the number of sons. */
 
47916
  int Sons () const { return 2; }
 
47917
  /** Get the n-th son.
 
47918
   *  \param n The index of the son.
 
47919
   *  \return The n-th son or NULL. */
 
47920
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
47921
  /** Replace a son.
 
47922
   *  \param old_son The son to replace.
 
47923
   *  \param new_son The new son. */
 
47924
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
47925
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
47926
  }
 
47927
  /** Get the expression node. */
 
47928
  CTree *Expr () const { return sons[1]; }
 
47929
   private:
 
47930
  typedef CT_UnaryExpr CCExprResolveExpr;
 
47931
 
 
47932
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47933
 public :
 
47934
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
47935
  typedef CT_UnaryExpr CExprResolveExpr;
 
47936
 
 
47937
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47938
 public :
 
47939
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47940
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47941
};
 
47942
 
 
47943
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
47944
 *  Tree node representing a postfix expression, e.g. a++. */
 
47945
 
 
47946
#line 47947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47947
} // closed Puma
 
47948
class CCExprResolve;
 
47949
class CExprResolve;
 
47950
class WinIfExists;
 
47951
class WinImportHandler;
 
47952
class WinMacros;
 
47953
class WinAsm;
 
47954
class WinDeclSpecs;
 
47955
class WinMemberExplSpec;
 
47956
class WinTypeKeywords;
 
47957
class WinFriend;
 
47958
class ExtAC;
 
47959
class ExtACBuilderCoupling;
 
47960
class ExtACSyntaxCoupling;
 
47961
class ExtACTree;
 
47962
class ExtACKeywords;
 
47963
class ExtGnu;
 
47964
class PragmaOnceUnitState;
 
47965
class PragmaOnce;
 
47966
class CMatchSyntax;
 
47967
namespace Puma {
 
47968
 
 
47969
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47970
 
 
47971
#line 47972 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47972
} // closed Puma
 
47973
 
 
47974
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47975
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47976
#include "CCExprResolveH.ah"
 
47977
#endif
 
47978
namespace Puma {
 
47979
 
 
47980
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47981
 
 
47982
#line 47983 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47983
} // closed Puma
 
47984
 
 
47985
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47986
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47987
#include "CExprResolveH.ah"
 
47988
#endif
 
47989
namespace Puma {
 
47990
 
 
47991
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47992
class CT_PostfixExpr : public CT_UnaryExpr {
 
47993
#line 47994 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
47994
  friend class ::CCExprResolve;
 
47995
  friend class ::CExprResolve;
 
47996
  friend class ::WinIfExists;
 
47997
  friend class ::WinImportHandler;
 
47998
  friend class ::WinMacros;
 
47999
  friend class ::WinAsm;
 
48000
  friend class ::WinDeclSpecs;
 
48001
  friend class ::WinMemberExplSpec;
 
48002
  friend class ::WinTypeKeywords;
 
48003
  friend class ::WinFriend;
 
48004
  friend class ::ExtAC;
 
48005
  friend class ::ExtACBuilderCoupling;
 
48006
  friend class ::ExtACSyntaxCoupling;
 
48007
  friend class ::ExtACTree;
 
48008
  friend class ::ExtACKeywords;
 
48009
  friend class ::ExtGnu;
 
48010
  friend class ::PragmaOnceUnitState;
 
48011
  friend class ::PragmaOnce;
 
48012
  friend class ::CMatchSyntax;
 
48013
 
 
48014
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48015
 
 
48016
public:
 
48017
  /** Constructor.
 
48018
   *  \param e The expression on which to invoke the operator. 
 
48019
   *  \param o The postfix operator. */
 
48020
  CT_PostfixExpr (CTree *e, CTree *o) :
 
48021
    CT_UnaryExpr (e, o) {}
 
48022
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
48023
  static const char *NodeId ();
 
48024
  /** Get the name of the node. Can be compared with NodeId(). */
 
48025
  const char *NodeName () const { return NodeId (); }
 
48026
   private:
 
48027
  typedef CT_PostfixExpr CCExprResolveExpr;
 
48028
 
 
48029
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48030
 public :
 
48031
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
48032
  typedef CT_PostfixExpr CExprResolveExpr;
 
48033
 
 
48034
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48035
 public :
 
48036
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48037
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48038
};
 
48039
 
 
48040
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
48041
 *  Tree node representing an address expression, e.g. &a. */
 
48042
 
 
48043
#line 48044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48044
} // closed Puma
 
48045
class CCExprResolve;
 
48046
class CExprResolve;
 
48047
class WinIfExists;
 
48048
class WinImportHandler;
 
48049
class WinMacros;
 
48050
class WinAsm;
 
48051
class WinDeclSpecs;
 
48052
class WinMemberExplSpec;
 
48053
class WinTypeKeywords;
 
48054
class WinFriend;
 
48055
class ExtAC;
 
48056
class ExtACBuilderCoupling;
 
48057
class ExtACSyntaxCoupling;
 
48058
class ExtACTree;
 
48059
class ExtACKeywords;
 
48060
class ExtGnu;
 
48061
class PragmaOnceUnitState;
 
48062
class PragmaOnce;
 
48063
class CMatchSyntax;
 
48064
namespace Puma {
 
48065
 
 
48066
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48067
 
 
48068
#line 48069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48069
} // closed Puma
 
48070
 
 
48071
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48072
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48073
#include "CCExprResolveH.ah"
 
48074
#endif
 
48075
namespace Puma {
 
48076
 
 
48077
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48078
 
 
48079
#line 48080 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48080
} // closed Puma
 
48081
 
 
48082
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48083
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48084
#include "CExprResolveH.ah"
 
48085
#endif
 
48086
namespace Puma {
 
48087
 
 
48088
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48089
class CT_AddrExpr : public CT_UnaryExpr {
 
48090
#line 48091 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48091
  friend class ::CCExprResolve;
 
48092
  friend class ::CExprResolve;
 
48093
  friend class ::WinIfExists;
 
48094
  friend class ::WinImportHandler;
 
48095
  friend class ::WinMacros;
 
48096
  friend class ::WinAsm;
 
48097
  friend class ::WinDeclSpecs;
 
48098
  friend class ::WinMemberExplSpec;
 
48099
  friend class ::WinTypeKeywords;
 
48100
  friend class ::WinFriend;
 
48101
  friend class ::ExtAC;
 
48102
  friend class ::ExtACBuilderCoupling;
 
48103
  friend class ::ExtACSyntaxCoupling;
 
48104
  friend class ::ExtACTree;
 
48105
  friend class ::ExtACKeywords;
 
48106
  friend class ::ExtGnu;
 
48107
  friend class ::PragmaOnceUnitState;
 
48108
  friend class ::PragmaOnce;
 
48109
  friend class ::CMatchSyntax;
 
48110
 
 
48111
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48112
 
 
48113
public:
 
48114
  /** Constructor.
 
48115
   *  \param o The address operator, i.e. '&'.
 
48116
   *  \param e The expression from which to take the address. */
 
48117
  CT_AddrExpr (CTree *o, CTree *e) :
 
48118
    CT_UnaryExpr (o, e) {}
 
48119
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
48120
  static const char *NodeId ();
 
48121
  /** Get the name of the node. Can be compared with NodeId(). */
 
48122
  const char *NodeName () const { return NodeId (); }
 
48123
   private:
 
48124
  typedef CT_AddrExpr CCExprResolveExpr;
 
48125
 
 
48126
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48127
 public :
 
48128
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
48129
  typedef CT_AddrExpr CExprResolveExpr;
 
48130
 
 
48131
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48132
 public :
 
48133
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48134
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48135
};
 
48136
 
 
48137
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
48138
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
 
48139
 
 
48140
#line 48141 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48141
} // closed Puma
 
48142
class CCExprResolve;
 
48143
class CExprResolve;
 
48144
class WinIfExists;
 
48145
class WinImportHandler;
 
48146
class WinMacros;
 
48147
class WinAsm;
 
48148
class WinDeclSpecs;
 
48149
class WinMemberExplSpec;
 
48150
class WinTypeKeywords;
 
48151
class WinFriend;
 
48152
class ExtAC;
 
48153
class ExtACBuilderCoupling;
 
48154
class ExtACSyntaxCoupling;
 
48155
class ExtACTree;
 
48156
class ExtACKeywords;
 
48157
class ExtGnu;
 
48158
class PragmaOnceUnitState;
 
48159
class PragmaOnce;
 
48160
class CMatchSyntax;
 
48161
namespace Puma {
 
48162
 
 
48163
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48164
 
 
48165
#line 48166 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48166
} // closed Puma
 
48167
 
 
48168
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48169
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48170
#include "CCExprResolveH.ah"
 
48171
#endif
 
48172
namespace Puma {
 
48173
 
 
48174
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48175
 
 
48176
#line 48177 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48177
} // closed Puma
 
48178
 
 
48179
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48180
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48181
#include "CExprResolveH.ah"
 
48182
#endif
 
48183
namespace Puma {
 
48184
 
 
48185
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48186
class CT_DerefExpr : public CT_UnaryExpr {
 
48187
#line 48188 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48188
  friend class ::CCExprResolve;
 
48189
  friend class ::CExprResolve;
 
48190
  friend class ::WinIfExists;
 
48191
  friend class ::WinImportHandler;
 
48192
  friend class ::WinMacros;
 
48193
  friend class ::WinAsm;
 
48194
  friend class ::WinDeclSpecs;
 
48195
  friend class ::WinMemberExplSpec;
 
48196
  friend class ::WinTypeKeywords;
 
48197
  friend class ::WinFriend;
 
48198
  friend class ::ExtAC;
 
48199
  friend class ::ExtACBuilderCoupling;
 
48200
  friend class ::ExtACSyntaxCoupling;
 
48201
  friend class ::ExtACTree;
 
48202
  friend class ::ExtACKeywords;
 
48203
  friend class ::ExtGnu;
 
48204
  friend class ::PragmaOnceUnitState;
 
48205
  friend class ::PragmaOnce;
 
48206
  friend class ::CMatchSyntax;
 
48207
 
 
48208
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48209
 
 
48210
public:
 
48211
  /** Constructor.
 
48212
   *  \param o The dereferencing operator, i.e. '*'.
 
48213
   *  \param e The expression to dereference. */
 
48214
  CT_DerefExpr (CTree *o, CTree *e) :
 
48215
    CT_UnaryExpr (o, e) {}
 
48216
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
48217
  static const char *NodeId ();
 
48218
  /** Get the name of the node. Can be compared with NodeId(). */
 
48219
  const char *NodeName () const { return NodeId (); }
 
48220
   private:
 
48221
  typedef CT_DerefExpr CCExprResolveExpr;
 
48222
 
 
48223
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48224
 public :
 
48225
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
48226
  typedef CT_DerefExpr CExprResolveExpr;
 
48227
 
 
48228
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48229
 public :
 
48230
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48231
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48232
};
 
48233
 
 
48234
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
48235
 *  Tree node representing a delete expression, e.g. delete a. */
 
48236
 
 
48237
#line 48238 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48238
} // closed Puma
 
48239
class CCExprResolve;
 
48240
class CExprResolve;
 
48241
class WinIfExists;
 
48242
class WinImportHandler;
 
48243
class WinMacros;
 
48244
class WinAsm;
 
48245
class WinDeclSpecs;
 
48246
class WinMemberExplSpec;
 
48247
class WinTypeKeywords;
 
48248
class WinFriend;
 
48249
class ExtAC;
 
48250
class ExtACBuilderCoupling;
 
48251
class ExtACSyntaxCoupling;
 
48252
class ExtACTree;
 
48253
class ExtACKeywords;
 
48254
class ExtGnu;
 
48255
class PragmaOnceUnitState;
 
48256
class PragmaOnce;
 
48257
class CMatchSyntax;
 
48258
namespace Puma {
 
48259
 
 
48260
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48261
 
 
48262
#line 48263 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48263
} // closed Puma
 
48264
 
 
48265
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48266
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48267
#include "CCExprResolveH.ah"
 
48268
#endif
 
48269
namespace Puma {
 
48270
 
 
48271
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48272
 
 
48273
#line 48274 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48274
} // closed Puma
 
48275
 
 
48276
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48277
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48278
#include "CExprResolveH.ah"
 
48279
#endif
 
48280
namespace Puma {
 
48281
 
 
48282
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48283
class CT_DeleteExpr : public CT_Expression, public CSemObject {
 
48284
#line 48285 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48285
  friend class ::CCExprResolve;
 
48286
  friend class ::CExprResolve;
 
48287
  friend class ::WinIfExists;
 
48288
  friend class ::WinImportHandler;
 
48289
  friend class ::WinMacros;
 
48290
  friend class ::WinAsm;
 
48291
  friend class ::WinDeclSpecs;
 
48292
  friend class ::WinMemberExplSpec;
 
48293
  friend class ::WinTypeKeywords;
 
48294
  friend class ::WinFriend;
 
48295
  friend class ::ExtAC;
 
48296
  friend class ::ExtACBuilderCoupling;
 
48297
  friend class ::ExtACSyntaxCoupling;
 
48298
  friend class ::ExtACTree;
 
48299
  friend class ::ExtACKeywords;
 
48300
  friend class ::ExtGnu;
 
48301
  friend class ::PragmaOnceUnitState;
 
48302
  friend class ::PragmaOnce;
 
48303
  friend class ::CMatchSyntax;
 
48304
 
 
48305
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48306
 
 
48307
  CTree *sons[2]; // oper, expr
 
48308
 
 
48309
public:
 
48310
  /** Constructor.
 
48311
   *  \param op The delete operator.
 
48312
   *  \param e The expression representing the object to delete. */
 
48313
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
48314
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
48315
  static const char *NodeId ();
 
48316
  /** Get the name of the node. Can be compared with NodeId(). */
 
48317
  const char *NodeName () const { return NodeId (); }
 
48318
  /** Get the number of sons. */
 
48319
  int Sons () const { return 2; }
 
48320
  /** Get the n-th son.
 
48321
   *  \param n The index of the son.
 
48322
   *  \return The n-th son or NULL. */
 
48323
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
48324
  /** Replace a son.
 
48325
   *  \param old_son The son to replace.
 
48326
   *  \param new_son The new son. */
 
48327
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
48328
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
48329
  }
 
48330
  /** Get the expression. */
 
48331
  CTree *Expr () const { return sons[1]; }
 
48332
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
 
48333
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
48334
  /** Get the semantic information object. */
 
48335
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
48336
   private:
 
48337
  typedef CT_DeleteExpr CCExprResolveExpr;
 
48338
 
 
48339
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48340
 public :
 
48341
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
48342
  typedef CT_DeleteExpr CExprResolveExpr;
 
48343
 
 
48344
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48345
 public :
 
48346
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48347
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48348
};
 
48349
 
 
48350
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
48351
 *  Tree node representing a new expression, e.g. new A(). */
 
48352
 
 
48353
#line 48354 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48354
} // closed Puma
 
48355
class CCExprResolve;
 
48356
class CExprResolve;
 
48357
class WinIfExists;
 
48358
class WinImportHandler;
 
48359
class WinMacros;
 
48360
class WinAsm;
 
48361
class WinDeclSpecs;
 
48362
class WinMemberExplSpec;
 
48363
class WinTypeKeywords;
 
48364
class WinFriend;
 
48365
class ExtAC;
 
48366
class ExtACBuilderCoupling;
 
48367
class ExtACSyntaxCoupling;
 
48368
class ExtACTree;
 
48369
class ExtACKeywords;
 
48370
class ExtGnu;
 
48371
class PragmaOnceUnitState;
 
48372
class PragmaOnce;
 
48373
class CMatchSyntax;
 
48374
namespace Puma {
 
48375
 
 
48376
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48377
 
 
48378
#line 48379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48379
} // closed Puma
 
48380
 
 
48381
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48382
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48383
#include "CCExprResolveH.ah"
 
48384
#endif
 
48385
namespace Puma {
 
48386
 
 
48387
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48388
 
 
48389
#line 48390 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48390
} // closed Puma
 
48391
 
 
48392
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48393
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48394
#include "CExprResolveH.ah"
 
48395
#endif
 
48396
namespace Puma {
 
48397
 
 
48398
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48399
class CT_NewExpr : public CT_Expression, public CSemObject {
 
48400
#line 48401 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48401
  friend class ::CCExprResolve;
 
48402
  friend class ::CExprResolve;
 
48403
  friend class ::WinIfExists;
 
48404
  friend class ::WinImportHandler;
 
48405
  friend class ::WinMacros;
 
48406
  friend class ::WinAsm;
 
48407
  friend class ::WinDeclSpecs;
 
48408
  friend class ::WinMemberExplSpec;
 
48409
  friend class ::WinTypeKeywords;
 
48410
  friend class ::WinFriend;
 
48411
  friend class ::ExtAC;
 
48412
  friend class ::ExtACBuilderCoupling;
 
48413
  friend class ::ExtACSyntaxCoupling;
 
48414
  friend class ::ExtACTree;
 
48415
  friend class ::ExtACKeywords;
 
48416
  friend class ::ExtGnu;
 
48417
  friend class ::PragmaOnceUnitState;
 
48418
  friend class ::PragmaOnce;
 
48419
  friend class ::CMatchSyntax;
 
48420
 
 
48421
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48422
 
 
48423
  CTree *sons[6]; // oper, placement, open, type, close, init
 
48424
 
 
48425
public:
 
48426
  /** Constructor.
 
48427
   *  \param op The new operator.
 
48428
   *  \param p The optional placement expression.
 
48429
   *  \param o The optional left parenthesis around the type identifier.
 
48430
   *  \param t The type identifier specifying the type of the object to create.
 
48431
   *  \param c The optional right parenthesis around the type identifier.
 
48432
   *  \param i The optional initializer. */
 
48433
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
 
48434
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
48435
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
 
48436
  }
 
48437
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
48438
  static const char *NodeId ();
 
48439
  /** Get the name of the node. Can be compared with NodeId(). */
 
48440
  const char *NodeName () const { return NodeId (); }
 
48441
  /** Get the number of sons. */
 
48442
  int Sons () const { return CTree::Sons (sons, 6); }
 
48443
  /** Get the n-th son.
 
48444
   *  \param n The index of the son.
 
48445
   *  \return The n-th son or NULL. */
 
48446
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
48447
  /** Replace a son.
 
48448
   *  \param old_son The son to replace.
 
48449
   *  \param new_son The new son. */
 
48450
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
48451
    CTree::ReplaceSon (sons, 6, old_son, new_son);
 
48452
  }
 
48453
  /** Get the operator name. */
 
48454
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
48455
  /** Get the placement expression. */
 
48456
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
48457
  /** Get the initializer. */
 
48458
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
48459
  /** Get the type of the object to create. */
 
48460
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
48461
  /** Get the semantic information object. */
 
48462
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
48463
   private:
 
48464
  typedef CT_NewExpr CCExprResolveExpr;
 
48465
 
 
48466
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48467
 public :
 
48468
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
48469
  typedef CT_NewExpr CExprResolveExpr;
 
48470
 
 
48471
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48472
 public :
 
48473
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48474
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48475
};
 
48476
 
 
48477
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
48478
 *  Tree node representing an if-then expression, 
 
48479
 *  e.g. a>0?a:b or a?:b. */
 
48480
 
 
48481
#line 48482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48482
} // closed Puma
 
48483
class CCExprResolve;
 
48484
class CExprResolve;
 
48485
class WinIfExists;
 
48486
class WinImportHandler;
 
48487
class WinMacros;
 
48488
class WinAsm;
 
48489
class WinDeclSpecs;
 
48490
class WinMemberExplSpec;
 
48491
class WinTypeKeywords;
 
48492
class WinFriend;
 
48493
class ExtAC;
 
48494
class ExtACBuilderCoupling;
 
48495
class ExtACSyntaxCoupling;
 
48496
class ExtACTree;
 
48497
class ExtACKeywords;
 
48498
class ExtGnu;
 
48499
class PragmaOnceUnitState;
 
48500
class PragmaOnce;
 
48501
class CMatchSyntax;
 
48502
namespace Puma {
 
48503
 
 
48504
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48505
 
 
48506
#line 48507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48507
} // closed Puma
 
48508
 
 
48509
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48510
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48511
#include "CCExprResolveH.ah"
 
48512
#endif
 
48513
namespace Puma {
 
48514
 
 
48515
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48516
 
 
48517
#line 48518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48518
} // closed Puma
 
48519
 
 
48520
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48521
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48522
#include "CExprResolveH.ah"
 
48523
#endif
 
48524
namespace Puma {
 
48525
 
 
48526
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48527
class CT_IfThenExpr : public CT_Expression {
 
48528
#line 48529 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48529
  friend class ::CCExprResolve;
 
48530
  friend class ::CExprResolve;
 
48531
  friend class ::WinIfExists;
 
48532
  friend class ::WinImportHandler;
 
48533
  friend class ::WinMacros;
 
48534
  friend class ::WinAsm;
 
48535
  friend class ::WinDeclSpecs;
 
48536
  friend class ::WinMemberExplSpec;
 
48537
  friend class ::WinTypeKeywords;
 
48538
  friend class ::WinFriend;
 
48539
  friend class ::ExtAC;
 
48540
  friend class ::ExtACBuilderCoupling;
 
48541
  friend class ::ExtACSyntaxCoupling;
 
48542
  friend class ::ExtACTree;
 
48543
  friend class ::ExtACKeywords;
 
48544
  friend class ::ExtGnu;
 
48545
  friend class ::PragmaOnceUnitState;
 
48546
  friend class ::PragmaOnce;
 
48547
  friend class ::CMatchSyntax;
 
48548
 
 
48549
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48550
 
 
48551
  CTree *sons[5]; // cond, oper, left, colon, right
 
48552
 
 
48553
public:
 
48554
  /** Constructor.
 
48555
   *  \param c1 The condition expression.
 
48556
   *  \param o The question mark operator. 
 
48557
   *  \param l The expression to the left of the colon.
 
48558
   *  \param c2 The colon operator.
 
48559
   *  \param r The expression to the right of the colon. */ 
 
48560
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
 
48561
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
48562
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
48563
  }
 
48564
  /** Constructor.
 
48565
   *  \param c1 The condition expression.
 
48566
   *  \param o The question mark operator. 
 
48567
   *  \param c2 The colon operator.
 
48568
   *  \param r The expression to the right of the colon. */ 
 
48569
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
 
48570
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
48571
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
48572
  }
 
48573
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
48574
  static const char *NodeId ();
 
48575
  /** Get the name of the node. Can be compared with NodeId(). */
 
48576
  const char *NodeName () const { return NodeId (); }
 
48577
  /** Get the number of sons. */
 
48578
  int Sons () const { return CTree::Sons (sons, 5); }
 
48579
  /** Get the n-th son.
 
48580
   *  \param n The index of the son.
 
48581
   *  \return The n-th son or NULL. */
 
48582
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
48583
  /** Get the condition expression. */
 
48584
  CTree *Condition () const { return sons[0]; }
 
48585
  /** Get the left expression (condition=true). */
 
48586
  CTree *LeftOperand () const { return sons[2]; }
 
48587
  /** Get the right expression (condition=false). */
 
48588
  CTree *RightOperand () const { return sons[4]; }
 
48589
  /** Replace a son.
 
48590
   *  \param old_son The son to replace.
 
48591
   *  \param new_son The new son. */
 
48592
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
48593
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
48594
  }
 
48595
   private:
 
48596
  typedef CT_IfThenExpr CCExprResolveExpr;
 
48597
 
 
48598
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48599
 public :
 
48600
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
48601
  typedef CT_IfThenExpr CExprResolveExpr;
 
48602
 
 
48603
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48604
 public :
 
48605
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48606
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48607
};
 
48608
 
 
48609
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
48610
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
 
48611
 
 
48612
#line 48613 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48613
} // closed Puma
 
48614
class CCExprResolve;
 
48615
class CExprResolve;
 
48616
class WinIfExists;
 
48617
class WinImportHandler;
 
48618
class WinMacros;
 
48619
class WinAsm;
 
48620
class WinDeclSpecs;
 
48621
class WinMemberExplSpec;
 
48622
class WinTypeKeywords;
 
48623
class WinFriend;
 
48624
class ExtAC;
 
48625
class ExtACBuilderCoupling;
 
48626
class ExtACSyntaxCoupling;
 
48627
class ExtACTree;
 
48628
class ExtACKeywords;
 
48629
class ExtGnu;
 
48630
class PragmaOnceUnitState;
 
48631
class PragmaOnce;
 
48632
class CMatchSyntax;
 
48633
namespace Puma {
 
48634
 
 
48635
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48636
 
 
48637
#line 48638 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48638
} // closed Puma
 
48639
 
 
48640
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48641
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48642
#include "CCExprResolveH.ah"
 
48643
#endif
 
48644
namespace Puma {
 
48645
 
 
48646
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48647
 
 
48648
#line 48649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48649
} // closed Puma
 
48650
 
 
48651
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48652
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48653
#include "CExprResolveH.ah"
 
48654
#endif
 
48655
namespace Puma {
 
48656
 
 
48657
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48658
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
 
48659
#line 48660 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48660
  friend class ::CCExprResolve;
 
48661
  friend class ::CExprResolve;
 
48662
  friend class ::WinIfExists;
 
48663
  friend class ::WinImportHandler;
 
48664
  friend class ::WinMacros;
 
48665
  friend class ::WinAsm;
 
48666
  friend class ::WinDeclSpecs;
 
48667
  friend class ::WinMemberExplSpec;
 
48668
  friend class ::WinTypeKeywords;
 
48669
  friend class ::WinFriend;
 
48670
  friend class ::ExtAC;
 
48671
  friend class ::ExtACBuilderCoupling;
 
48672
  friend class ::ExtACSyntaxCoupling;
 
48673
  friend class ::ExtACTree;
 
48674
  friend class ::ExtACKeywords;
 
48675
  friend class ::ExtGnu;
 
48676
  friend class ::PragmaOnceUnitState;
 
48677
  friend class ::PragmaOnce;
 
48678
  friend class ::CMatchSyntax;
 
48679
 
 
48680
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48681
 
 
48682
  CTree *sons[4]; // open, type, close, init
 
48683
 
 
48684
public:
 
48685
  /** Constructor.
 
48686
   *  \param r Left parenthesis of the type name.
 
48687
   *  \param t The type name.
 
48688
   *  \param cr Right parenthesis of the type name.
 
48689
   *  \param i The initializer list. */
 
48690
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
 
48691
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
48692
    AddSon (sons[2], cr); AddSon (sons[3], i);
 
48693
  }
 
48694
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
48695
  static const char *NodeId ();
 
48696
  /** Get the name of the node. Can be compared with NodeId(). */
 
48697
  const char *NodeName () const { return NodeId (); }
 
48698
  /** Get the number of sons. */
 
48699
  int Sons () const { return 4; }
 
48700
  /** Get the n-th son.
 
48701
   *  \param n The index of the son.
 
48702
   *  \return The n-th son or NULL. */
 
48703
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
48704
  /** Replace a son.
 
48705
   *  \param old_son The son to replace.
 
48706
   *  \param new_son The new son. */
 
48707
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
48708
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
48709
  }
 
48710
  /** Get the type name. */
 
48711
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
48712
  /** Get the initializer list. */
 
48713
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
48714
  /** Get the semantic information object. */
 
48715
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
48716
   private:
 
48717
  typedef CT_CmpdLiteral CCExprResolveExpr;
 
48718
 
 
48719
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48720
 public :
 
48721
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
48722
  typedef CT_CmpdLiteral CExprResolveExpr;
 
48723
 
 
48724
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48725
 public :
 
48726
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48727
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48728
};
 
48729
 
 
48730
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
48731
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
 
48732
 
 
48733
#line 48734 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48734
} // closed Puma
 
48735
class CCExprResolve;
 
48736
class CExprResolve;
 
48737
class WinIfExists;
 
48738
class WinImportHandler;
 
48739
class WinMacros;
 
48740
class WinAsm;
 
48741
class WinDeclSpecs;
 
48742
class WinMemberExplSpec;
 
48743
class WinTypeKeywords;
 
48744
class WinFriend;
 
48745
class ExtAC;
 
48746
class ExtACBuilderCoupling;
 
48747
class ExtACSyntaxCoupling;
 
48748
class ExtACTree;
 
48749
class ExtACKeywords;
 
48750
class ExtGnu;
 
48751
class PragmaOnceUnitState;
 
48752
class PragmaOnce;
 
48753
class CMatchSyntax;
 
48754
namespace Puma {
 
48755
 
 
48756
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48757
 
 
48758
#line 48759 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48759
} // closed Puma
 
48760
 
 
48761
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48762
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48763
#include "CCExprResolveH.ah"
 
48764
#endif
 
48765
namespace Puma {
 
48766
 
 
48767
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48768
 
 
48769
#line 48770 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48770
} // closed Puma
 
48771
 
 
48772
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48773
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48774
#include "CExprResolveH.ah"
 
48775
#endif
 
48776
namespace Puma {
 
48777
 
 
48778
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48779
class CT_ConstructExpr : public CT_Expression, public CSemObject {
 
48780
#line 48781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48781
  friend class ::CCExprResolve;
 
48782
  friend class ::CExprResolve;
 
48783
  friend class ::WinIfExists;
 
48784
  friend class ::WinImportHandler;
 
48785
  friend class ::WinMacros;
 
48786
  friend class ::WinAsm;
 
48787
  friend class ::WinDeclSpecs;
 
48788
  friend class ::WinMemberExplSpec;
 
48789
  friend class ::WinTypeKeywords;
 
48790
  friend class ::WinFriend;
 
48791
  friend class ::ExtAC;
 
48792
  friend class ::ExtACBuilderCoupling;
 
48793
  friend class ::ExtACSyntaxCoupling;
 
48794
  friend class ::ExtACTree;
 
48795
  friend class ::ExtACKeywords;
 
48796
  friend class ::ExtGnu;
 
48797
  friend class ::PragmaOnceUnitState;
 
48798
  friend class ::PragmaOnce;
 
48799
  friend class ::CMatchSyntax;
 
48800
 
 
48801
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48802
 
 
48803
  CTree *sons[2]; // type, init
 
48804
 
 
48805
public:
 
48806
  /** Constructor.
 
48807
   *  \param t The type name.
 
48808
   *  \param i The initializer list. */
 
48809
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
48810
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
48811
  static const char *NodeId ();
 
48812
  /** Get the name of the node. Can be compared with NodeId(). */
 
48813
  const char *NodeName () const { return NodeId (); }
 
48814
  /** Get the number of sons. */
 
48815
  int Sons () const { return 2; }
 
48816
  /** Get the n-th son.
 
48817
   *  \param n The index of the son.
 
48818
   *  \return The n-th son or NULL. */
 
48819
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
48820
  /** Replace a son.
 
48821
   *  \param old_son The son to replace.
 
48822
   *  \param new_son The new son. */
 
48823
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
48824
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
48825
  }
 
48826
  /** Get the type name. */
 
48827
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
48828
  /** Get the initializer. */
 
48829
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
48830
  /** Get the semantic information object. */
 
48831
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
48832
   private:
 
48833
  typedef CT_ConstructExpr CCExprResolveExpr;
 
48834
 
 
48835
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48836
 public :
 
48837
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
48838
  typedef CT_ConstructExpr CExprResolveExpr;
 
48839
 
 
48840
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48841
 public :
 
48842
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48843
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48844
};
 
48845
 
 
48846
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
48847
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
 
48848
 
 
48849
#line 48850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48850
} // closed Puma
 
48851
class CCExprResolve;
 
48852
class CExprResolve;
 
48853
class WinIfExists;
 
48854
class WinImportHandler;
 
48855
class WinMacros;
 
48856
class WinAsm;
 
48857
class WinDeclSpecs;
 
48858
class WinMemberExplSpec;
 
48859
class WinTypeKeywords;
 
48860
class WinFriend;
 
48861
class ExtAC;
 
48862
class ExtACBuilderCoupling;
 
48863
class ExtACSyntaxCoupling;
 
48864
class ExtACTree;
 
48865
class ExtACKeywords;
 
48866
class ExtGnu;
 
48867
class PragmaOnceUnitState;
 
48868
class PragmaOnce;
 
48869
class CMatchSyntax;
 
48870
namespace Puma {
 
48871
 
 
48872
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48873
 
 
48874
#line 48875 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48875
} // closed Puma
 
48876
 
 
48877
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48878
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48879
#include "CCExprResolveH.ah"
 
48880
#endif
 
48881
namespace Puma {
 
48882
 
 
48883
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48884
 
 
48885
#line 48886 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48886
} // closed Puma
 
48887
 
 
48888
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48889
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48890
#include "CExprResolveH.ah"
 
48891
#endif
 
48892
namespace Puma {
 
48893
 
 
48894
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48895
class CT_ThrowExpr : public CT_Expression {
 
48896
#line 48897 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48897
  friend class ::CCExprResolve;
 
48898
  friend class ::CExprResolve;
 
48899
  friend class ::WinIfExists;
 
48900
  friend class ::WinImportHandler;
 
48901
  friend class ::WinMacros;
 
48902
  friend class ::WinAsm;
 
48903
  friend class ::WinDeclSpecs;
 
48904
  friend class ::WinMemberExplSpec;
 
48905
  friend class ::WinTypeKeywords;
 
48906
  friend class ::WinFriend;
 
48907
  friend class ::ExtAC;
 
48908
  friend class ::ExtACBuilderCoupling;
 
48909
  friend class ::ExtACSyntaxCoupling;
 
48910
  friend class ::ExtACTree;
 
48911
  friend class ::ExtACKeywords;
 
48912
  friend class ::ExtGnu;
 
48913
  friend class ::PragmaOnceUnitState;
 
48914
  friend class ::PragmaOnce;
 
48915
  friend class ::CMatchSyntax;
 
48916
 
 
48917
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48918
 
 
48919
  CTree *sons[2]; // throw, expr
 
48920
 
 
48921
public:
 
48922
  /** Constructor.
 
48923
   *  \param t The 'throw' keyword.
 
48924
   *  \param e The expression. */
 
48925
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
48926
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
48927
  static const char *NodeId ();
 
48928
  /** Get the name of the node. Can be compared with NodeId(). */
 
48929
  const char *NodeName () const { return NodeId (); }
 
48930
  /** Get the number of sons. */
 
48931
  int Sons () const { return CTree::Sons (sons, 2); }
 
48932
  /** Get the n-th son.
 
48933
   *  \param n The index of the son.
 
48934
   *  \return The n-th son or NULL. */
 
48935
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
48936
  /** Replace a son.
 
48937
   *  \param old_son The son to replace.
 
48938
   *  \param new_son The new son. */
 
48939
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
48940
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
48941
  }
 
48942
  /** Get the expression. */
 
48943
  CTree *Expr () const { return sons[1]; }
 
48944
   private:
 
48945
  typedef CT_ThrowExpr CCExprResolveExpr;
 
48946
 
 
48947
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48948
 public :
 
48949
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
48950
  typedef CT_ThrowExpr CExprResolveExpr;
 
48951
 
 
48952
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48953
 public :
 
48954
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48955
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48956
};
 
48957
 
 
48958
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
48959
 *  Tree node representing an index expression. */
 
48960
 
 
48961
#line 48962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48962
} // closed Puma
 
48963
class CCExprResolve;
 
48964
class CExprResolve;
 
48965
class WinIfExists;
 
48966
class WinImportHandler;
 
48967
class WinMacros;
 
48968
class WinAsm;
 
48969
class WinDeclSpecs;
 
48970
class WinMemberExplSpec;
 
48971
class WinTypeKeywords;
 
48972
class WinFriend;
 
48973
class ExtAC;
 
48974
class ExtACBuilderCoupling;
 
48975
class ExtACSyntaxCoupling;
 
48976
class ExtACTree;
 
48977
class ExtACKeywords;
 
48978
class ExtGnu;
 
48979
class PragmaOnceUnitState;
 
48980
class PragmaOnce;
 
48981
class CMatchSyntax;
 
48982
namespace Puma {
 
48983
 
 
48984
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48985
 
 
48986
#line 48987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48987
} // closed Puma
 
48988
 
 
48989
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48990
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48991
#include "CCExprResolveH.ah"
 
48992
#endif
 
48993
namespace Puma {
 
48994
 
 
48995
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48996
 
 
48997
#line 48998 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
48998
} // closed Puma
 
48999
 
 
49000
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49001
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49002
#include "CExprResolveH.ah"
 
49003
#endif
 
49004
namespace Puma {
 
49005
 
 
49006
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49007
class CT_IndexExpr : public CT_Call {
 
49008
#line 49009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49009
  friend class ::CCExprResolve;
 
49010
  friend class ::CExprResolve;
 
49011
  friend class ::WinIfExists;
 
49012
  friend class ::WinImportHandler;
 
49013
  friend class ::WinMacros;
 
49014
  friend class ::WinAsm;
 
49015
  friend class ::WinDeclSpecs;
 
49016
  friend class ::WinMemberExplSpec;
 
49017
  friend class ::WinTypeKeywords;
 
49018
  friend class ::WinFriend;
 
49019
  friend class ::ExtAC;
 
49020
  friend class ::ExtACBuilderCoupling;
 
49021
  friend class ::ExtACSyntaxCoupling;
 
49022
  friend class ::ExtACTree;
 
49023
  friend class ::ExtACKeywords;
 
49024
  friend class ::ExtGnu;
 
49025
  friend class ::PragmaOnceUnitState;
 
49026
  friend class ::PragmaOnce;
 
49027
  friend class ::CMatchSyntax;
 
49028
 
 
49029
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49030
 
 
49031
  CTree *sons[4]; // expr, open, index, close
 
49032
 
 
49033
public:
 
49034
  /** Constructor.
 
49035
   *  \param e The expression on which to invoke the index operator.
 
49036
   *  \param o Left parenthesis of the index expression.
 
49037
   *  \param i The index expression. 
 
49038
   *  \param c Right parenthesis of the index expression. */
 
49039
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
 
49040
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
49041
    AddSon (sons[2], i); AddSon (sons[3], c);
 
49042
  }
 
49043
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
49044
  static const char *NodeId ();
 
49045
  /** Get the name of the node. Can be compared with NodeId(). */
 
49046
  const char *NodeName () const { return NodeId (); }
 
49047
  /** Get the number of sons. */
 
49048
  int Sons () const { return 4; }
 
49049
  /** Get the n-th son.
 
49050
   *  \param n The index of the son.
 
49051
   *  \return The n-th son or NULL. */
 
49052
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
49053
  /** Replace a son.
 
49054
   *  \param old_son The son to replace.
 
49055
   *  \param new_son The new son. */
 
49056
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
49057
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
49058
  }
 
49059
   private:
 
49060
  typedef CT_IndexExpr CCExprResolveExpr;
 
49061
 
 
49062
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49063
 public :
 
49064
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
49065
  typedef CT_IndexExpr CExprResolveExpr;
 
49066
 
 
49067
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49068
 public :
 
49069
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49070
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49071
};
 
49072
 
 
49073
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
49074
 *  Tree node representing a function call expression, e.g. f(i). */
 
49075
 
 
49076
#line 49077 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49077
} // closed Puma
 
49078
class CCExprResolve;
 
49079
class CExprResolve;
 
49080
class WinIfExists;
 
49081
class WinImportHandler;
 
49082
class WinMacros;
 
49083
class WinAsm;
 
49084
class WinDeclSpecs;
 
49085
class WinMemberExplSpec;
 
49086
class WinTypeKeywords;
 
49087
class WinFriend;
 
49088
class ExtAC;
 
49089
class ExtACBuilderCoupling;
 
49090
class ExtACSyntaxCoupling;
 
49091
class ExtACTree;
 
49092
class ExtACKeywords;
 
49093
class ExtGnu;
 
49094
class PragmaOnceUnitState;
 
49095
class PragmaOnce;
 
49096
class CMatchSyntax;
 
49097
namespace Puma {
 
49098
 
 
49099
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49100
 
 
49101
#line 49102 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49102
} // closed Puma
 
49103
 
 
49104
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49105
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49106
#include "CCExprResolveH.ah"
 
49107
#endif
 
49108
namespace Puma {
 
49109
 
 
49110
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49111
 
 
49112
#line 49113 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49113
} // closed Puma
 
49114
 
 
49115
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49116
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49117
#include "CExprResolveH.ah"
 
49118
#endif
 
49119
namespace Puma {
 
49120
 
 
49121
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49122
class CT_CallExpr : public CT_Call {
 
49123
#line 49124 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49124
  friend class ::CCExprResolve;
 
49125
  friend class ::CExprResolve;
 
49126
  friend class ::WinIfExists;
 
49127
  friend class ::WinImportHandler;
 
49128
  friend class ::WinMacros;
 
49129
  friend class ::WinAsm;
 
49130
  friend class ::WinDeclSpecs;
 
49131
  friend class ::WinMemberExplSpec;
 
49132
  friend class ::WinTypeKeywords;
 
49133
  friend class ::WinFriend;
 
49134
  friend class ::ExtAC;
 
49135
  friend class ::ExtACBuilderCoupling;
 
49136
  friend class ::ExtACSyntaxCoupling;
 
49137
  friend class ::ExtACTree;
 
49138
  friend class ::ExtACKeywords;
 
49139
  friend class ::ExtGnu;
 
49140
  friend class ::PragmaOnceUnitState;
 
49141
  friend class ::PragmaOnce;
 
49142
  friend class ::CMatchSyntax;
 
49143
 
 
49144
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49145
 
 
49146
  CTree *sons[2]; // expr, args
 
49147
 
 
49148
public:
 
49149
  /** Constructor.
 
49150
   *  \param e The expression on which the call is invoked. */
 
49151
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
49152
  /** Constructor.
 
49153
   *  \param e The expression on which the call is invoked.
 
49154
   *  \param l The argument list of the call. */
 
49155
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
49156
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
49157
  static const char *NodeId ();
 
49158
  /** Get the name of the node. Can be compared with NodeId(). */
 
49159
  const char *NodeName () const { return NodeId (); }
 
49160
  /** Get the number of sons. */
 
49161
  int Sons () const { return CTree::Sons (sons, 2); }
 
49162
  /** Get the n-th son.
 
49163
   *  \param n The index of the son.
 
49164
   *  \return The n-th son or NULL. */
 
49165
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
49166
  /** Replace a son.
 
49167
   *  \param old_son The son to replace.
 
49168
   *  \param new_son The new son. */
 
49169
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
49170
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
49171
  }
 
49172
  CTree *Expr () const { return sons[0]; }
 
49173
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
 
49174
   private:
 
49175
  typedef CT_CallExpr CCExprResolveExpr;
 
49176
 
 
49177
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49178
 public :
 
49179
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
49180
  typedef CT_CallExpr CExprResolveExpr;
 
49181
 
 
49182
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49183
 public :
 
49184
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49185
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49186
};
 
49187
 
 
49188
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
49189
 *  Tree node representing a cast expression, e.g. (int)a. */
 
49190
 
 
49191
#line 49192 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49192
} // closed Puma
 
49193
class CCExprResolve;
 
49194
class CExprResolve;
 
49195
class WinIfExists;
 
49196
class WinImportHandler;
 
49197
class WinMacros;
 
49198
class WinAsm;
 
49199
class WinDeclSpecs;
 
49200
class WinMemberExplSpec;
 
49201
class WinTypeKeywords;
 
49202
class WinFriend;
 
49203
class ExtAC;
 
49204
class ExtACBuilderCoupling;
 
49205
class ExtACSyntaxCoupling;
 
49206
class ExtACTree;
 
49207
class ExtACKeywords;
 
49208
class ExtGnu;
 
49209
class PragmaOnceUnitState;
 
49210
class PragmaOnce;
 
49211
class CMatchSyntax;
 
49212
namespace Puma {
 
49213
 
 
49214
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49215
 
 
49216
#line 49217 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49217
} // closed Puma
 
49218
 
 
49219
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49220
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49221
#include "CCExprResolveH.ah"
 
49222
#endif
 
49223
namespace Puma {
 
49224
 
 
49225
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49226
 
 
49227
#line 49228 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49228
} // closed Puma
 
49229
 
 
49230
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49231
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49232
#include "CExprResolveH.ah"
 
49233
#endif
 
49234
namespace Puma {
 
49235
 
 
49236
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49237
class CT_CastExpr : public CT_Expression {
 
49238
#line 49239 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49239
  friend class ::CCExprResolve;
 
49240
  friend class ::CExprResolve;
 
49241
  friend class ::WinIfExists;
 
49242
  friend class ::WinImportHandler;
 
49243
  friend class ::WinMacros;
 
49244
  friend class ::WinAsm;
 
49245
  friend class ::WinDeclSpecs;
 
49246
  friend class ::WinMemberExplSpec;
 
49247
  friend class ::WinTypeKeywords;
 
49248
  friend class ::WinFriend;
 
49249
  friend class ::ExtAC;
 
49250
  friend class ::ExtACBuilderCoupling;
 
49251
  friend class ::ExtACSyntaxCoupling;
 
49252
  friend class ::ExtACTree;
 
49253
  friend class ::ExtACKeywords;
 
49254
  friend class ::ExtGnu;
 
49255
  friend class ::PragmaOnceUnitState;
 
49256
  friend class ::PragmaOnce;
 
49257
  friend class ::CMatchSyntax;
 
49258
 
 
49259
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49260
 
 
49261
  CTree *sons[4]; // open, type, close, expr
 
49262
 
 
49263
public:
 
49264
  /** Constructor.
 
49265
   *  \param o Left parenthesis of the type name.
 
49266
   *  \param t The type to cast to.
 
49267
   *  \param c Right parenthesis of the type name. 
 
49268
   *  \param e The expression to cast. */
 
49269
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
 
49270
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
49271
    AddSon (sons[2], c); AddSon (sons[3], e);
 
49272
  }
 
49273
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
49274
  static const char *NodeId ();
 
49275
  /** Get the name of the node. Can be compared with NodeId(). */
 
49276
  const char *NodeName () const { return NodeId (); }
 
49277
  /** Get the number of sons. */
 
49278
  int Sons () const { return 4; }
 
49279
  /** Get the n-th son.
 
49280
   *  \param n The index of the son.
 
49281
   *  \return The n-th son or NULL. */
 
49282
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
49283
  /** Replace a son.
 
49284
   *  \param old_son The son to replace.
 
49285
   *  \param new_son The new son. */
 
49286
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
49287
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
49288
  }
 
49289
  /** Get the casted expression. */
 
49290
  CTree *Expr () const { return sons[3]; }
 
49291
  /** Get the type to cast to. */
 
49292
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
49293
   private:
 
49294
  typedef CT_CastExpr CCExprResolveExpr;
 
49295
 
 
49296
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49297
 public :
 
49298
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
49299
  typedef CT_CastExpr CExprResolveExpr;
 
49300
 
 
49301
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49302
 public :
 
49303
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49304
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49305
};
 
49306
 
 
49307
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
49308
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
 
49309
 
 
49310
#line 49311 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49311
} // closed Puma
 
49312
class CCExprResolve;
 
49313
class CExprResolve;
 
49314
class WinIfExists;
 
49315
class WinImportHandler;
 
49316
class WinMacros;
 
49317
class WinAsm;
 
49318
class WinDeclSpecs;
 
49319
class WinMemberExplSpec;
 
49320
class WinTypeKeywords;
 
49321
class WinFriend;
 
49322
class ExtAC;
 
49323
class ExtACBuilderCoupling;
 
49324
class ExtACSyntaxCoupling;
 
49325
class ExtACTree;
 
49326
class ExtACKeywords;
 
49327
class ExtGnu;
 
49328
class PragmaOnceUnitState;
 
49329
class PragmaOnce;
 
49330
class CMatchSyntax;
 
49331
namespace Puma {
 
49332
 
 
49333
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49334
 
 
49335
#line 49336 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49336
} // closed Puma
 
49337
 
 
49338
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49339
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49340
#include "CCExprResolveH.ah"
 
49341
#endif
 
49342
namespace Puma {
 
49343
 
 
49344
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49345
 
 
49346
#line 49347 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49347
} // closed Puma
 
49348
 
 
49349
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49350
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49351
#include "CExprResolveH.ah"
 
49352
#endif
 
49353
namespace Puma {
 
49354
 
 
49355
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49356
class CT_StaticCast : public CT_Expression {
 
49357
#line 49358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49358
  friend class ::CCExprResolve;
 
49359
  friend class ::CExprResolve;
 
49360
  friend class ::WinIfExists;
 
49361
  friend class ::WinImportHandler;
 
49362
  friend class ::WinMacros;
 
49363
  friend class ::WinAsm;
 
49364
  friend class ::WinDeclSpecs;
 
49365
  friend class ::WinMemberExplSpec;
 
49366
  friend class ::WinTypeKeywords;
 
49367
  friend class ::WinFriend;
 
49368
  friend class ::ExtAC;
 
49369
  friend class ::ExtACBuilderCoupling;
 
49370
  friend class ::ExtACSyntaxCoupling;
 
49371
  friend class ::ExtACTree;
 
49372
  friend class ::ExtACKeywords;
 
49373
  friend class ::ExtGnu;
 
49374
  friend class ::PragmaOnceUnitState;
 
49375
  friend class ::PragmaOnce;
 
49376
  friend class ::CMatchSyntax;
 
49377
 
 
49378
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49379
 
 
49380
  CTree *sons[5]; // cast, open, type, close, expr
 
49381
 
 
49382
public:
 
49383
  /** Constructor.
 
49384
   *  \param cst The cast operator, i.e. 'static_cast'.
 
49385
   *  \param o Left arrow bracket of the type name.
 
49386
   *  \param t The type to cast to.
 
49387
   *  \param c Right array bracket of the type name.
 
49388
   *  \param e The expression to cast. */
 
49389
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
 
49390
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
49391
    AddSon (sons[3], c); AddSon (sons[4], e);
 
49392
  }
 
49393
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
49394
  static const char *NodeId ();
 
49395
  /** Get the name of the node. Can be compared with NodeId(). */
 
49396
  const char *NodeName () const { return NodeId (); }
 
49397
  /** Get the number of sons. */
 
49398
  int Sons () const { return 5; }
 
49399
  /** Get the n-th son.
 
49400
   *  \param n The index of the son.
 
49401
   *  \return The n-th son or NULL. */
 
49402
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
49403
  /** Replace a son.
 
49404
   *  \param old_son The son to replace.
 
49405
   *  \param new_son The new son. */
 
49406
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
49407
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
49408
  }
 
49409
  /** Get the casted expression. */
 
49410
  CTree *Expr () const { return sons[4]; }
 
49411
  /** Get the type to cast to. */
 
49412
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
49413
   private:
 
49414
  typedef CT_StaticCast CCExprResolveExpr;
 
49415
 
 
49416
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49417
 public :
 
49418
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
49419
  typedef CT_StaticCast CExprResolveExpr;
 
49420
 
 
49421
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49422
 public :
 
49423
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49424
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49425
};
 
49426
 
 
49427
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
49428
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
 
49429
 
 
49430
#line 49431 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49431
} // closed Puma
 
49432
class CCExprResolve;
 
49433
class CExprResolve;
 
49434
class WinIfExists;
 
49435
class WinImportHandler;
 
49436
class WinMacros;
 
49437
class WinAsm;
 
49438
class WinDeclSpecs;
 
49439
class WinMemberExplSpec;
 
49440
class WinTypeKeywords;
 
49441
class WinFriend;
 
49442
class ExtAC;
 
49443
class ExtACBuilderCoupling;
 
49444
class ExtACSyntaxCoupling;
 
49445
class ExtACTree;
 
49446
class ExtACKeywords;
 
49447
class ExtGnu;
 
49448
class PragmaOnceUnitState;
 
49449
class PragmaOnce;
 
49450
class CMatchSyntax;
 
49451
namespace Puma {
 
49452
 
 
49453
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49454
 
 
49455
#line 49456 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49456
} // closed Puma
 
49457
 
 
49458
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49459
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49460
#include "CCExprResolveH.ah"
 
49461
#endif
 
49462
namespace Puma {
 
49463
 
 
49464
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49465
 
 
49466
#line 49467 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49467
} // closed Puma
 
49468
 
 
49469
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49470
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49471
#include "CExprResolveH.ah"
 
49472
#endif
 
49473
namespace Puma {
 
49474
 
 
49475
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49476
class CT_ConstCast : public CT_StaticCast {
 
49477
#line 49478 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49478
  friend class ::CCExprResolve;
 
49479
  friend class ::CExprResolve;
 
49480
  friend class ::WinIfExists;
 
49481
  friend class ::WinImportHandler;
 
49482
  friend class ::WinMacros;
 
49483
  friend class ::WinAsm;
 
49484
  friend class ::WinDeclSpecs;
 
49485
  friend class ::WinMemberExplSpec;
 
49486
  friend class ::WinTypeKeywords;
 
49487
  friend class ::WinFriend;
 
49488
  friend class ::ExtAC;
 
49489
  friend class ::ExtACBuilderCoupling;
 
49490
  friend class ::ExtACSyntaxCoupling;
 
49491
  friend class ::ExtACTree;
 
49492
  friend class ::ExtACKeywords;
 
49493
  friend class ::ExtGnu;
 
49494
  friend class ::PragmaOnceUnitState;
 
49495
  friend class ::PragmaOnce;
 
49496
  friend class ::CMatchSyntax;
 
49497
 
 
49498
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49499
 
 
49500
public:
 
49501
  /** Constructor.
 
49502
   *  \param cst The cast operator, i.e. 'const_cast'.
 
49503
   *  \param o Left arrow bracket of the type name.
 
49504
   *  \param t The type to cast to.
 
49505
   *  \param c Right array bracket of the type name.
 
49506
   *  \param e The expression to cast. */
 
49507
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
49508
    CT_StaticCast (cst, o, t, c, e) {}
 
49509
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
49510
  static const char *NodeId ();
 
49511
  /** Get the name of the node. Can be compared with NodeId(). */
 
49512
  const char *NodeName () const { return NodeId (); }
 
49513
   private:
 
49514
  typedef CT_ConstCast CCExprResolveExpr;
 
49515
 
 
49516
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49517
 public :
 
49518
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
49519
  typedef CT_ConstCast CExprResolveExpr;
 
49520
 
 
49521
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49522
 public :
 
49523
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49524
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49525
};
 
49526
 
 
49527
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
49528
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
 
49529
 
 
49530
#line 49531 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49531
} // closed Puma
 
49532
class CCExprResolve;
 
49533
class CExprResolve;
 
49534
class WinIfExists;
 
49535
class WinImportHandler;
 
49536
class WinMacros;
 
49537
class WinAsm;
 
49538
class WinDeclSpecs;
 
49539
class WinMemberExplSpec;
 
49540
class WinTypeKeywords;
 
49541
class WinFriend;
 
49542
class ExtAC;
 
49543
class ExtACBuilderCoupling;
 
49544
class ExtACSyntaxCoupling;
 
49545
class ExtACTree;
 
49546
class ExtACKeywords;
 
49547
class ExtGnu;
 
49548
class PragmaOnceUnitState;
 
49549
class PragmaOnce;
 
49550
class CMatchSyntax;
 
49551
namespace Puma {
 
49552
 
 
49553
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49554
 
 
49555
#line 49556 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49556
} // closed Puma
 
49557
 
 
49558
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49559
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49560
#include "CCExprResolveH.ah"
 
49561
#endif
 
49562
namespace Puma {
 
49563
 
 
49564
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49565
 
 
49566
#line 49567 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49567
} // closed Puma
 
49568
 
 
49569
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49570
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49571
#include "CExprResolveH.ah"
 
49572
#endif
 
49573
namespace Puma {
 
49574
 
 
49575
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49576
class CT_ReintCast : public CT_StaticCast {
 
49577
#line 49578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49578
  friend class ::CCExprResolve;
 
49579
  friend class ::CExprResolve;
 
49580
  friend class ::WinIfExists;
 
49581
  friend class ::WinImportHandler;
 
49582
  friend class ::WinMacros;
 
49583
  friend class ::WinAsm;
 
49584
  friend class ::WinDeclSpecs;
 
49585
  friend class ::WinMemberExplSpec;
 
49586
  friend class ::WinTypeKeywords;
 
49587
  friend class ::WinFriend;
 
49588
  friend class ::ExtAC;
 
49589
  friend class ::ExtACBuilderCoupling;
 
49590
  friend class ::ExtACSyntaxCoupling;
 
49591
  friend class ::ExtACTree;
 
49592
  friend class ::ExtACKeywords;
 
49593
  friend class ::ExtGnu;
 
49594
  friend class ::PragmaOnceUnitState;
 
49595
  friend class ::PragmaOnce;
 
49596
  friend class ::CMatchSyntax;
 
49597
 
 
49598
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49599
 
 
49600
public:
 
49601
  /** Constructor.
 
49602
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
49603
   *  \param o Left arrow bracket of the type name.
 
49604
   *  \param t The type to cast to.
 
49605
   *  \param c Right array bracket of the type name.
 
49606
   *  \param e The expression to cast. */
 
49607
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
49608
    CT_StaticCast (cst, o, t, c, e) {}
 
49609
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
49610
  static const char *NodeId ();
 
49611
  /** Get the name of the node. Can be compared with NodeId(). */
 
49612
  const char *NodeName () const { return NodeId (); }
 
49613
   private:
 
49614
  typedef CT_ReintCast CCExprResolveExpr;
 
49615
 
 
49616
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49617
 public :
 
49618
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
49619
  typedef CT_ReintCast CExprResolveExpr;
 
49620
 
 
49621
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49622
 public :
 
49623
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49624
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49625
};
 
49626
 
 
49627
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
49628
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
 
49629
 
 
49630
#line 49631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49631
} // closed Puma
 
49632
class CCExprResolve;
 
49633
class CExprResolve;
 
49634
class WinIfExists;
 
49635
class WinImportHandler;
 
49636
class WinMacros;
 
49637
class WinAsm;
 
49638
class WinDeclSpecs;
 
49639
class WinMemberExplSpec;
 
49640
class WinTypeKeywords;
 
49641
class WinFriend;
 
49642
class ExtAC;
 
49643
class ExtACBuilderCoupling;
 
49644
class ExtACSyntaxCoupling;
 
49645
class ExtACTree;
 
49646
class ExtACKeywords;
 
49647
class ExtGnu;
 
49648
class PragmaOnceUnitState;
 
49649
class PragmaOnce;
 
49650
class CMatchSyntax;
 
49651
namespace Puma {
 
49652
 
 
49653
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49654
 
 
49655
#line 49656 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49656
} // closed Puma
 
49657
 
 
49658
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49659
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49660
#include "CCExprResolveH.ah"
 
49661
#endif
 
49662
namespace Puma {
 
49663
 
 
49664
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49665
 
 
49666
#line 49667 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49667
} // closed Puma
 
49668
 
 
49669
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49670
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49671
#include "CExprResolveH.ah"
 
49672
#endif
 
49673
namespace Puma {
 
49674
 
 
49675
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49676
class CT_DynamicCast : public CT_StaticCast {
 
49677
#line 49678 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49678
  friend class ::CCExprResolve;
 
49679
  friend class ::CExprResolve;
 
49680
  friend class ::WinIfExists;
 
49681
  friend class ::WinImportHandler;
 
49682
  friend class ::WinMacros;
 
49683
  friend class ::WinAsm;
 
49684
  friend class ::WinDeclSpecs;
 
49685
  friend class ::WinMemberExplSpec;
 
49686
  friend class ::WinTypeKeywords;
 
49687
  friend class ::WinFriend;
 
49688
  friend class ::ExtAC;
 
49689
  friend class ::ExtACBuilderCoupling;
 
49690
  friend class ::ExtACSyntaxCoupling;
 
49691
  friend class ::ExtACTree;
 
49692
  friend class ::ExtACKeywords;
 
49693
  friend class ::ExtGnu;
 
49694
  friend class ::PragmaOnceUnitState;
 
49695
  friend class ::PragmaOnce;
 
49696
  friend class ::CMatchSyntax;
 
49697
 
 
49698
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49699
 
 
49700
public:
 
49701
  /** Constructor.
 
49702
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
49703
   *  \param o Left arrow bracket of the type name.
 
49704
   *  \param t The type to cast to.
 
49705
   *  \param c Right array bracket of the type name.
 
49706
   *  \param e The expression to cast. */
 
49707
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
49708
    CT_StaticCast (cst, o, t, c, e) {}
 
49709
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
49710
  static const char *NodeId ();
 
49711
  /** Get the name of the node. Can be compared with NodeId(). */
 
49712
  const char *NodeName () const { return NodeId (); }
 
49713
   private:
 
49714
  typedef CT_DynamicCast CCExprResolveExpr;
 
49715
 
 
49716
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49717
 public :
 
49718
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
49719
  typedef CT_DynamicCast CExprResolveExpr;
 
49720
 
 
49721
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49722
 public :
 
49723
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49724
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49725
};
 
49726
 
 
49727
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
49728
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
49729
 *  where 1.2 is implicitely casted from float to int. */
 
49730
 
 
49731
#line 49732 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49732
} // closed Puma
 
49733
class CCExprResolve;
 
49734
class CExprResolve;
 
49735
class WinIfExists;
 
49736
class WinImportHandler;
 
49737
class WinMacros;
 
49738
class WinAsm;
 
49739
class WinDeclSpecs;
 
49740
class WinMemberExplSpec;
 
49741
class WinTypeKeywords;
 
49742
class WinFriend;
 
49743
class ExtAC;
 
49744
class ExtACBuilderCoupling;
 
49745
class ExtACSyntaxCoupling;
 
49746
class ExtACTree;
 
49747
class ExtACKeywords;
 
49748
class ExtGnu;
 
49749
class PragmaOnceUnitState;
 
49750
class PragmaOnce;
 
49751
class CMatchSyntax;
 
49752
namespace Puma {
 
49753
 
 
49754
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49755
 
 
49756
#line 49757 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49757
} // closed Puma
 
49758
 
 
49759
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49760
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49761
#include "CCExprResolveH.ah"
 
49762
#endif
 
49763
namespace Puma {
 
49764
 
 
49765
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49766
 
 
49767
#line 49768 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49768
} // closed Puma
 
49769
 
 
49770
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49771
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49772
#include "CExprResolveH.ah"
 
49773
#endif
 
49774
namespace Puma {
 
49775
 
 
49776
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49777
class CT_ImplicitCast : public CT_Expression {
 
49778
#line 49779 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49779
  friend class ::CCExprResolve;
 
49780
  friend class ::CExprResolve;
 
49781
  friend class ::WinIfExists;
 
49782
  friend class ::WinImportHandler;
 
49783
  friend class ::WinMacros;
 
49784
  friend class ::WinAsm;
 
49785
  friend class ::WinDeclSpecs;
 
49786
  friend class ::WinMemberExplSpec;
 
49787
  friend class ::WinTypeKeywords;
 
49788
  friend class ::WinFriend;
 
49789
  friend class ::ExtAC;
 
49790
  friend class ::ExtACBuilderCoupling;
 
49791
  friend class ::ExtACSyntaxCoupling;
 
49792
  friend class ::ExtACTree;
 
49793
  friend class ::ExtACKeywords;
 
49794
  friend class ::ExtGnu;
 
49795
  friend class ::PragmaOnceUnitState;
 
49796
  friend class ::PragmaOnce;
 
49797
  friend class ::CMatchSyntax;
 
49798
 
 
49799
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49800
 
 
49801
  CTree *_expr; // casted expression
 
49802
 
 
49803
public:
 
49804
  /** Constructor.
 
49805
   *  \param e The expression that is implicitely casted. */
 
49806
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
49807
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
49808
  static const char *NodeId ();
 
49809
  /** Get the name of the node. Can be compared with NodeId(). */
 
49810
  const char *NodeName () const { return NodeId (); }
 
49811
  /** Get the number of sons. */
 
49812
  int Sons () const { return 1; }
 
49813
  /** Get the n-th son.
 
49814
   *  \param n The index of the son.
 
49815
   *  \return The n-th son or NULL. */
 
49816
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
49817
  /** Get the casted expression. */
 
49818
  CTree *Expr () const { return _expr; }
 
49819
  /** Replace a son.
 
49820
   *  \param old_son The son to replace.
 
49821
   *  \param new_son The new son. */
 
49822
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
49823
   { CTree::ReplaceSon (_expr, old_son, new_son); }
 
49824
   private:
 
49825
  typedef CT_ImplicitCast CCExprResolveExpr;
 
49826
 
 
49827
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49828
 public :
 
49829
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
49830
  typedef CT_ImplicitCast CExprResolveExpr;
 
49831
 
 
49832
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49833
 public :
 
49834
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49835
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49836
};
 
49837
 
 
49838
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
49839
 *  Tree node representing a typeid expression, e.g. typeid(X). */
 
49840
 
 
49841
#line 49842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49842
} // closed Puma
 
49843
class CCExprResolve;
 
49844
class CExprResolve;
 
49845
class WinIfExists;
 
49846
class WinImportHandler;
 
49847
class WinMacros;
 
49848
class WinAsm;
 
49849
class WinDeclSpecs;
 
49850
class WinMemberExplSpec;
 
49851
class WinTypeKeywords;
 
49852
class WinFriend;
 
49853
class ExtAC;
 
49854
class ExtACBuilderCoupling;
 
49855
class ExtACSyntaxCoupling;
 
49856
class ExtACTree;
 
49857
class ExtACKeywords;
 
49858
class ExtGnu;
 
49859
class PragmaOnceUnitState;
 
49860
class PragmaOnce;
 
49861
class CMatchSyntax;
 
49862
namespace Puma {
 
49863
 
 
49864
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49865
 
 
49866
#line 49867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49867
} // closed Puma
 
49868
 
 
49869
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49870
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49871
#include "CCExprResolveH.ah"
 
49872
#endif
 
49873
namespace Puma {
 
49874
 
 
49875
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49876
 
 
49877
#line 49878 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49878
} // closed Puma
 
49879
 
 
49880
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49881
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49882
#include "CExprResolveH.ah"
 
49883
#endif
 
49884
namespace Puma {
 
49885
 
 
49886
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49887
class CT_TypeidExpr : public CT_Expression {
 
49888
#line 49889 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49889
  friend class ::CCExprResolve;
 
49890
  friend class ::CExprResolve;
 
49891
  friend class ::WinIfExists;
 
49892
  friend class ::WinImportHandler;
 
49893
  friend class ::WinMacros;
 
49894
  friend class ::WinAsm;
 
49895
  friend class ::WinDeclSpecs;
 
49896
  friend class ::WinMemberExplSpec;
 
49897
  friend class ::WinTypeKeywords;
 
49898
  friend class ::WinFriend;
 
49899
  friend class ::ExtAC;
 
49900
  friend class ::ExtACBuilderCoupling;
 
49901
  friend class ::ExtACSyntaxCoupling;
 
49902
  friend class ::ExtACTree;
 
49903
  friend class ::ExtACKeywords;
 
49904
  friend class ::ExtGnu;
 
49905
  friend class ::PragmaOnceUnitState;
 
49906
  friend class ::PragmaOnce;
 
49907
  friend class ::CMatchSyntax;
 
49908
 
 
49909
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49910
 
 
49911
  CTree *sons[4]; // typeid, open, type_id/expr, close
 
49912
 
 
49913
public:
 
49914
  /** Constructor.
 
49915
   *  \param tid The 'typeid' operator.
 
49916
   *  \param o The left parenthesis of the type name or expression.
 
49917
   *  \param e The expression or type name for which to get the type identifier.
 
49918
   *  \param c The right parenthesis of the type name or expression. */
 
49919
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
 
49920
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
49921
    AddSon (sons[2], e); AddSon (sons[3], c);
 
49922
  }
 
49923
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
49924
  static const char *NodeId ();
 
49925
  /** Get the name of the node. Can be compared with NodeId(). */
 
49926
  const char *NodeName () const { return NodeId (); }
 
49927
  /** Get the number of sons. */
 
49928
  int Sons () const { return 4; }
 
49929
  /** Get the n-th son.
 
49930
   *  \param n The index of the son.
 
49931
   *  \return The n-th son or NULL. */
 
49932
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
49933
  /** Replace a son.
 
49934
   *  \param old_son The son to replace.
 
49935
   *  \param new_son The new son. */
 
49936
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
49937
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
49938
  }
 
49939
  /** Get the typeid argument, i.e. the expression or type name for
 
49940
   *  which to get the type identifier. */
 
49941
  CTree *Arg () const { return sons[2]; }
 
49942
   private:
 
49943
  typedef CT_TypeidExpr CCExprResolveExpr;
 
49944
 
 
49945
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49946
 public :
 
49947
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
49948
  typedef CT_TypeidExpr CExprResolveExpr;
 
49949
 
 
49950
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49951
 public :
 
49952
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49953
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49954
};
 
49955
 
 
49956
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
49957
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
 
49958
 
 
49959
#line 49960 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49960
} // closed Puma
 
49961
class CCExprResolve;
 
49962
class CExprResolve;
 
49963
class WinIfExists;
 
49964
class WinImportHandler;
 
49965
class WinMacros;
 
49966
class WinAsm;
 
49967
class WinDeclSpecs;
 
49968
class WinMemberExplSpec;
 
49969
class WinTypeKeywords;
 
49970
class WinFriend;
 
49971
class ExtAC;
 
49972
class ExtACBuilderCoupling;
 
49973
class ExtACSyntaxCoupling;
 
49974
class ExtACTree;
 
49975
class ExtACKeywords;
 
49976
class ExtGnu;
 
49977
class PragmaOnceUnitState;
 
49978
class PragmaOnce;
 
49979
class CMatchSyntax;
 
49980
namespace Puma {
 
49981
 
 
49982
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49983
 
 
49984
#line 49985 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49985
} // closed Puma
 
49986
 
 
49987
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49988
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49989
#include "CCExprResolveH.ah"
 
49990
#endif
 
49991
namespace Puma {
 
49992
 
 
49993
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49994
 
 
49995
#line 49996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
49996
} // closed Puma
 
49997
 
 
49998
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49999
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50000
#include "CExprResolveH.ah"
 
50001
#endif
 
50002
namespace Puma {
 
50003
 
 
50004
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50005
class CT_SizeofExpr : public CT_Expression {
 
50006
#line 50007 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50007
  friend class ::CCExprResolve;
 
50008
  friend class ::CExprResolve;
 
50009
  friend class ::WinIfExists;
 
50010
  friend class ::WinImportHandler;
 
50011
  friend class ::WinMacros;
 
50012
  friend class ::WinAsm;
 
50013
  friend class ::WinDeclSpecs;
 
50014
  friend class ::WinMemberExplSpec;
 
50015
  friend class ::WinTypeKeywords;
 
50016
  friend class ::WinFriend;
 
50017
  friend class ::ExtAC;
 
50018
  friend class ::ExtACBuilderCoupling;
 
50019
  friend class ::ExtACSyntaxCoupling;
 
50020
  friend class ::ExtACTree;
 
50021
  friend class ::ExtACKeywords;
 
50022
  friend class ::ExtGnu;
 
50023
  friend class ::PragmaOnceUnitState;
 
50024
  friend class ::PragmaOnce;
 
50025
  friend class ::CMatchSyntax;
 
50026
 
 
50027
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50028
 
 
50029
  CTree *sons[5]; // key, open, type, close, expr
 
50030
 
 
50031
public:
 
50032
  /** Constructor.
 
50033
   *  \param k The 'sizeof' keyword.
 
50034
   *  \param o Left parenthesis around the type name.
 
50035
   *  \param t The type from which to get the size.
 
50036
   *  \param c Right parenthesis around the type name. */
 
50037
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
 
50038
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
50039
    AddSon (sons[3], c); AddSon (sons[4], 0);
 
50040
  }
 
50041
  /** Constructor.
 
50042
   *  \param k The 'sizeof' keyword.
 
50043
   *  \param e The expression from which to get the size. */
 
50044
  CT_SizeofExpr (CTree *k, CTree *e) {
 
50045
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
50046
    AddSon (sons[3], 0); AddSon (sons[4], e);
 
50047
  }
 
50048
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
50049
  static const char *NodeId ();
 
50050
  /** Get the name of the node. Can be compared with NodeId(). */
 
50051
  const char *NodeName () const { return NodeId (); }
 
50052
  /** Get the number of sons. */
 
50053
  int Sons () const { return CTree::Sons (sons, 5); }
 
50054
  /** Get the n-th son.
 
50055
   *  \param n The index of the son.
 
50056
   *  \return The n-th son or NULL. */
 
50057
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
50058
  /** Replace a son.
 
50059
   *  \param old_son The son to replace.
 
50060
   *  \param new_son The new son. */
 
50061
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
50062
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
50063
  }
 
50064
  /** Get the expression. */
 
50065
  CTree *Expr () const { return sons[4]; }
 
50066
  /** Get the type name. */
 
50067
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
50068
   private:
 
50069
  typedef CT_SizeofExpr CCExprResolveExpr;
 
50070
 
 
50071
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50072
 public :
 
50073
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
50074
  typedef CT_SizeofExpr CExprResolveExpr;
 
50075
 
 
50076
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50077
 public :
 
50078
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50079
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50080
};
 
50081
 
 
50082
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
50083
 *  Tree node representing an index designator, i.e. [1]. */
 
50084
 
 
50085
#line 50086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50086
} // closed Puma
 
50087
class CCExprResolve;
 
50088
class CExprResolve;
 
50089
class WinIfExists;
 
50090
class WinImportHandler;
 
50091
class WinMacros;
 
50092
class WinAsm;
 
50093
class WinDeclSpecs;
 
50094
class WinMemberExplSpec;
 
50095
class WinTypeKeywords;
 
50096
class WinFriend;
 
50097
class ExtAC;
 
50098
class ExtACBuilderCoupling;
 
50099
class ExtACSyntaxCoupling;
 
50100
class ExtACTree;
 
50101
class ExtACKeywords;
 
50102
class ExtGnu;
 
50103
class PragmaOnceUnitState;
 
50104
class PragmaOnce;
 
50105
class CMatchSyntax;
 
50106
namespace Puma {
 
50107
 
 
50108
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50109
 
 
50110
#line 50111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50111
} // closed Puma
 
50112
 
 
50113
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50114
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50115
#include "CCExprResolveH.ah"
 
50116
#endif
 
50117
namespace Puma {
 
50118
 
 
50119
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50120
 
 
50121
#line 50122 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50122
} // closed Puma
 
50123
 
 
50124
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50125
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50126
#include "CExprResolveH.ah"
 
50127
#endif
 
50128
namespace Puma {
 
50129
 
 
50130
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50131
class CT_IndexDesignator : public CT_Expression {
 
50132
#line 50133 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50133
  friend class ::CCExprResolve;
 
50134
  friend class ::CExprResolve;
 
50135
  friend class ::WinIfExists;
 
50136
  friend class ::WinImportHandler;
 
50137
  friend class ::WinMacros;
 
50138
  friend class ::WinAsm;
 
50139
  friend class ::WinDeclSpecs;
 
50140
  friend class ::WinMemberExplSpec;
 
50141
  friend class ::WinTypeKeywords;
 
50142
  friend class ::WinFriend;
 
50143
  friend class ::ExtAC;
 
50144
  friend class ::ExtACBuilderCoupling;
 
50145
  friend class ::ExtACSyntaxCoupling;
 
50146
  friend class ::ExtACTree;
 
50147
  friend class ::ExtACKeywords;
 
50148
  friend class ::ExtGnu;
 
50149
  friend class ::PragmaOnceUnitState;
 
50150
  friend class ::PragmaOnce;
 
50151
  friend class ::CMatchSyntax;
 
50152
 
 
50153
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50154
 
 
50155
  CTree *sons[3]; // open, index, close
 
50156
 
 
50157
public:
 
50158
  /** Constructor.
 
50159
   *  \param o Left bracket of the index designator.
 
50160
   *  \param i The index expression.
 
50161
   *  \param c Right bracket of the index designator. */
 
50162
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
 
50163
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
 
50164
  }
 
50165
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
50166
  static const char *NodeId ();
 
50167
  /** Get the name of the node. Can be compared with NodeId(). */
 
50168
  const char *NodeName () const { return NodeId (); }
 
50169
  /** Get the number of sons. */
 
50170
  int Sons () const { return 3; }
 
50171
  /** Get the n-th son.
 
50172
   *  \param n The index of the son.
 
50173
   *  \return The n-th son or NULL. */
 
50174
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
50175
  /** Replace a son.
 
50176
   *  \param old_son The son to replace.
 
50177
   *  \param new_son The new son. */
 
50178
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
50179
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
50180
  }
 
50181
   private:
 
50182
  typedef CT_IndexDesignator CCExprResolveExpr;
 
50183
 
 
50184
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50185
 public :
 
50186
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
50187
  typedef CT_IndexDesignator CExprResolveExpr;
 
50188
 
 
50189
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50190
 public :
 
50191
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50192
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50193
};
 
50194
 
 
50195
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
50196
 *  Tree node representing a member designator, e.g. .a. */
 
50197
 
 
50198
#line 50199 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50199
} // closed Puma
 
50200
class CCExprResolve;
 
50201
class CExprResolve;
 
50202
class WinIfExists;
 
50203
class WinImportHandler;
 
50204
class WinMacros;
 
50205
class WinAsm;
 
50206
class WinDeclSpecs;
 
50207
class WinMemberExplSpec;
 
50208
class WinTypeKeywords;
 
50209
class WinFriend;
 
50210
class ExtAC;
 
50211
class ExtACBuilderCoupling;
 
50212
class ExtACSyntaxCoupling;
 
50213
class ExtACTree;
 
50214
class ExtACKeywords;
 
50215
class ExtGnu;
 
50216
class PragmaOnceUnitState;
 
50217
class PragmaOnce;
 
50218
class CMatchSyntax;
 
50219
namespace Puma {
 
50220
 
 
50221
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50222
 
 
50223
#line 50224 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50224
} // closed Puma
 
50225
 
 
50226
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50227
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50228
#include "CCExprResolveH.ah"
 
50229
#endif
 
50230
namespace Puma {
 
50231
 
 
50232
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50233
 
 
50234
#line 50235 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50235
} // closed Puma
 
50236
 
 
50237
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50238
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50239
#include "CExprResolveH.ah"
 
50240
#endif
 
50241
namespace Puma {
 
50242
 
 
50243
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50244
class CT_MembDesignator : public CT_Expression {
 
50245
#line 50246 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50246
  friend class ::CCExprResolve;
 
50247
  friend class ::CExprResolve;
 
50248
  friend class ::WinIfExists;
 
50249
  friend class ::WinImportHandler;
 
50250
  friend class ::WinMacros;
 
50251
  friend class ::WinAsm;
 
50252
  friend class ::WinDeclSpecs;
 
50253
  friend class ::WinMemberExplSpec;
 
50254
  friend class ::WinTypeKeywords;
 
50255
  friend class ::WinFriend;
 
50256
  friend class ::ExtAC;
 
50257
  friend class ::ExtACBuilderCoupling;
 
50258
  friend class ::ExtACSyntaxCoupling;
 
50259
  friend class ::ExtACTree;
 
50260
  friend class ::ExtACKeywords;
 
50261
  friend class ::ExtGnu;
 
50262
  friend class ::PragmaOnceUnitState;
 
50263
  friend class ::PragmaOnce;
 
50264
  friend class ::CMatchSyntax;
 
50265
 
 
50266
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50267
 
 
50268
  CTree *sons[2]; // dot, member
 
50269
 
 
50270
public:
 
50271
  /** Constructor.
 
50272
   *  \param d The dot before the member name.
 
50273
   *  \param m The member name. */
 
50274
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
50275
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
50276
  static const char *NodeId ();
 
50277
  /** Get the name of the node. Can be compared with NodeId(). */
 
50278
  const char *NodeName () const { return NodeId (); }
 
50279
  /** Get the number of sons. */
 
50280
  int Sons () const { return 2; }
 
50281
  /** Get the n-th son.
 
50282
   *  \param n The index of the son.
 
50283
   *  \return The n-th son or NULL. */
 
50284
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
50285
  /** Replace a son.
 
50286
   *  \param old_son The son to replace.
 
50287
   *  \param new_son The new son. */
 
50288
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
50289
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
50290
  }
 
50291
   private:
 
50292
  typedef CT_MembDesignator CCExprResolveExpr;
 
50293
 
 
50294
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50295
 public :
 
50296
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
50297
  typedef CT_MembDesignator CExprResolveExpr;
 
50298
 
 
50299
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50300
 public :
 
50301
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50302
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50303
};
 
50304
 
 
50305
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
50306
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
 
50307
 
 
50308
#line 50309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50309
} // closed Puma
 
50310
class CCExprResolve;
 
50311
class CExprResolve;
 
50312
class WinIfExists;
 
50313
class WinImportHandler;
 
50314
class WinMacros;
 
50315
class WinAsm;
 
50316
class WinDeclSpecs;
 
50317
class WinMemberExplSpec;
 
50318
class WinTypeKeywords;
 
50319
class WinFriend;
 
50320
class ExtAC;
 
50321
class ExtACBuilderCoupling;
 
50322
class ExtACSyntaxCoupling;
 
50323
class ExtACTree;
 
50324
class ExtACKeywords;
 
50325
class ExtGnu;
 
50326
class PragmaOnceUnitState;
 
50327
class PragmaOnce;
 
50328
class CMatchSyntax;
 
50329
namespace Puma {
 
50330
 
 
50331
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50332
class CT_DesignatorSeq : public CT_List, public CSemValue {
 
50333
#line 50334 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50334
  friend class ::CCExprResolve;
 
50335
  friend class ::CExprResolve;
 
50336
  friend class ::WinIfExists;
 
50337
  friend class ::WinImportHandler;
 
50338
  friend class ::WinMacros;
 
50339
  friend class ::WinAsm;
 
50340
  friend class ::WinDeclSpecs;
 
50341
  friend class ::WinMemberExplSpec;
 
50342
  friend class ::WinTypeKeywords;
 
50343
  friend class ::WinFriend;
 
50344
  friend class ::ExtAC;
 
50345
  friend class ::ExtACBuilderCoupling;
 
50346
  friend class ::ExtACSyntaxCoupling;
 
50347
  friend class ::ExtACTree;
 
50348
  friend class ::ExtACKeywords;
 
50349
  friend class ::ExtGnu;
 
50350
  friend class ::PragmaOnceUnitState;
 
50351
  friend class ::PragmaOnce;
 
50352
  friend class ::CMatchSyntax;
 
50353
 
 
50354
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50355
 
 
50356
public:
 
50357
  /** Constructor.
 
50358
   *  \param size Initial number of designators. */
 
50359
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
50360
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
50361
  static const char *NodeId ();
 
50362
  /** Get the name of the node. Can be compared with NodeId(). */
 
50363
  const char *NodeName () const { return NodeId (); }
 
50364
 
 
50365
  /** Get the type of the entity to initialize. */
 
50366
  CTypeInfo *Type () const { return type; }
 
50367
  /** Get the value of the entity to initialize. */
 
50368
  CExprValue *Value () const { return value; }
 
50369
  /** Get the semantic value object. */
 
50370
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
50371
};
 
50372
 
 
50373
/*****************************************************************************/
 
50374
/*                                                                           */
 
50375
/*                         Declaration specifiers                            */
 
50376
/*                                                                           */
 
50377
/*****************************************************************************/
 
50378
 
 
50379
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
50380
 *  Base class for all tree nodes representing declaration specifiers. */
 
50381
 
 
50382
#line 50383 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50383
} // closed Puma
 
50384
class CCExprResolve;
 
50385
class CExprResolve;
 
50386
class WinIfExists;
 
50387
class WinImportHandler;
 
50388
class WinMacros;
 
50389
class WinAsm;
 
50390
class WinDeclSpecs;
 
50391
class WinMemberExplSpec;
 
50392
class WinTypeKeywords;
 
50393
class WinFriend;
 
50394
class ExtAC;
 
50395
class ExtACBuilderCoupling;
 
50396
class ExtACSyntaxCoupling;
 
50397
class ExtACTree;
 
50398
class ExtACKeywords;
 
50399
class ExtGnu;
 
50400
class PragmaOnceUnitState;
 
50401
class PragmaOnce;
 
50402
class CMatchSyntax;
 
50403
namespace Puma {
 
50404
 
 
50405
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50406
class CT_DeclSpec : public CTree {
 
50407
#line 50408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50408
  friend class ::CCExprResolve;
 
50409
  friend class ::CExprResolve;
 
50410
  friend class ::WinIfExists;
 
50411
  friend class ::WinImportHandler;
 
50412
  friend class ::WinMacros;
 
50413
  friend class ::WinAsm;
 
50414
  friend class ::WinDeclSpecs;
 
50415
  friend class ::WinMemberExplSpec;
 
50416
  friend class ::WinTypeKeywords;
 
50417
  friend class ::WinFriend;
 
50418
  friend class ::ExtAC;
 
50419
  friend class ::ExtACBuilderCoupling;
 
50420
  friend class ::ExtACSyntaxCoupling;
 
50421
  friend class ::ExtACTree;
 
50422
  friend class ::ExtACKeywords;
 
50423
  friend class ::ExtGnu;
 
50424
  friend class ::PragmaOnceUnitState;
 
50425
  friend class ::PragmaOnce;
 
50426
  friend class ::CMatchSyntax;
 
50427
 
 
50428
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50429
 
 
50430
protected:
 
50431
  /** Constructor. */
 
50432
  CT_DeclSpec () {}
 
50433
};
 
50434
 
 
50435
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
50436
 *  Tree node representing a primitive declaration specifier. */
 
50437
 
 
50438
#line 50439 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50439
} // closed Puma
 
50440
class CCExprResolve;
 
50441
class CExprResolve;
 
50442
class WinIfExists;
 
50443
class WinImportHandler;
 
50444
class WinMacros;
 
50445
class WinAsm;
 
50446
class WinDeclSpecs;
 
50447
class WinMemberExplSpec;
 
50448
class WinTypeKeywords;
 
50449
class WinFriend;
 
50450
class ExtAC;
 
50451
class ExtACBuilderCoupling;
 
50452
class ExtACSyntaxCoupling;
 
50453
class ExtACTree;
 
50454
class ExtACKeywords;
 
50455
class ExtGnu;
 
50456
class PragmaOnceUnitState;
 
50457
class PragmaOnce;
 
50458
class CMatchSyntax;
 
50459
namespace Puma {
 
50460
 
 
50461
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50462
class CT_PrimDeclSpec : public CT_DeclSpec {
 
50463
#line 50464 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50464
  friend class ::CCExprResolve;
 
50465
  friend class ::CExprResolve;
 
50466
  friend class ::WinIfExists;
 
50467
  friend class ::WinImportHandler;
 
50468
  friend class ::WinMacros;
 
50469
  friend class ::WinAsm;
 
50470
  friend class ::WinDeclSpecs;
 
50471
  friend class ::WinMemberExplSpec;
 
50472
  friend class ::WinTypeKeywords;
 
50473
  friend class ::WinFriend;
 
50474
  friend class ::ExtAC;
 
50475
  friend class ::ExtACBuilderCoupling;
 
50476
  friend class ::ExtACSyntaxCoupling;
 
50477
  friend class ::ExtACTree;
 
50478
  friend class ::ExtACKeywords;
 
50479
  friend class ::ExtGnu;
 
50480
  friend class ::PragmaOnceUnitState;
 
50481
  friend class ::PragmaOnce;
 
50482
  friend class ::CMatchSyntax;
 
50483
 
 
50484
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50485
 
 
50486
public:
 
50487
  /** Declaration specifier types. */
 
50488
  enum Type { 
 
50489
    PDS_FRIEND,    /** friend */
 
50490
    PDS_TYPEDEF,   /** typedef */
 
50491
    PDS_AUTO,      /** auto */
 
50492
    PDS_REGISTER,  /** register */
 
50493
    PDS_STATIC,    /** static */
 
50494
    PDS_EXTERN,    /** extern */
 
50495
    PDS_MUTABLE,   /** mutable */
 
50496
    PDS_INLINE,    /** inline */
 
50497
    PDS_VIRTUAL,   /** virtual */
 
50498
    PDS_EXPLICIT,  /** explicit */
 
50499
    PDS_CONST,     /** const */
 
50500
    PDS_VOLATILE,  /** volatile */
 
50501
    PDS_RESTRICT,  /** restrict */
 
50502
    PDS_CHAR,      /** char */
 
50503
    PDS_WCHAR_T,   /** wchar_t */
 
50504
    PDS_BOOL,      /** bool */
 
50505
    PDS_SHORT,     /** short */
 
50506
    PDS_INT,       /** int */
 
50507
    PDS_LONG,      /** long */
 
50508
    PDS_SIGNED,    /** signed */
 
50509
    PDS_UNSIGNED,  /** unsigned */
 
50510
    PDS_FLOAT,     /** float */
 
50511
    PDS_DOUBLE,    /** double */
 
50512
    PDS_VOID,      /** void */
 
50513
    // AspectC++ specific type specifier
 
50514
    PDS_UNKNOWN_T, /** unknown_t */
 
50515
    // Win specific declaration specifiers
 
50516
    PDS_CDECL,     /** __cdecl */
 
50517
    PDS_STDCALL,   /** __stdcall */
 
50518
    PDS_FASTCALL,  /** __fastcall */
 
50519
    PDS_INT64,     /** __int64 */
 
50520
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
50521
    PDS_NUM        /** Number of declaration specifier types. */
 
50522
  };
 
50523
 
 
50524
private:
 
50525
  Type _type;
 
50526
  CTree *_token; // has to be a CT_Token
 
50527
 
 
50528
  void determine_type ();
 
50529
 
 
50530
public:
 
50531
  /** Constructor.
 
50532
   *  \param t The token containing the declaration specifier. */
 
50533
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
50534
  /** Constructor.
 
50535
   *  \param t The declaration specifier type. */
 
50536
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
50537
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
50538
  static const char *NodeId ();
 
50539
  /** Get the name of the node. Can be compared with NodeId(). */
 
50540
  const char *NodeName () const { return NodeId (); }
 
50541
  /** Get the number of sons. */
 
50542
  int Sons () const { return _token ? 1 : 0; }
 
50543
  /** Get the n-th son.
 
50544
   *  \param n The index of the son.
 
50545
   *  \return The n-th son or NULL. */
 
50546
  CTree *Son (int n) const 
 
50547
   { return (n == 0) ? _token : (CTree*)0; }
 
50548
  /** Get the textual representation of the declaration specifier.
 
50549
   *  \return The string representation or " ". */
 
50550
  const char *SpecText () const 
 
50551
   { return _token ? _token->token ()->text () : " "; }
 
50552
  /** Get the declaration specifier type. */
 
50553
  Type SpecType () const { return _type; }
 
50554
  /** Number of declaration specifier types. */
 
50555
  static const int NumTypes = PDS_NUM;
 
50556
  /** Replace a son.
 
50557
   *  \param old_son The son to replace.
 
50558
   *  \param new_son The new son. */
 
50559
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
50560
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
50561
    determine_type ();
 
50562
  }
 
50563
};
 
50564
 
 
50565
/** \class CT_NamedType CTree.h Puma/CTree.h
 
50566
 *  Tree node representing a named type, e.g. (int*)a. 
 
50567
 *  where int* is a type with a generated name. */
 
50568
 
 
50569
#line 50570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50570
} // closed Puma
 
50571
class CCExprResolve;
 
50572
class CExprResolve;
 
50573
class WinIfExists;
 
50574
class WinImportHandler;
 
50575
class WinMacros;
 
50576
class WinAsm;
 
50577
class WinDeclSpecs;
 
50578
class WinMemberExplSpec;
 
50579
class WinTypeKeywords;
 
50580
class WinFriend;
 
50581
class ExtAC;
 
50582
class ExtACBuilderCoupling;
 
50583
class ExtACSyntaxCoupling;
 
50584
class ExtACTree;
 
50585
class ExtACKeywords;
 
50586
class ExtGnu;
 
50587
class PragmaOnceUnitState;
 
50588
class PragmaOnce;
 
50589
class CMatchSyntax;
 
50590
namespace Puma {
 
50591
 
 
50592
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50593
class CT_NamedType : public CT_DeclSpec, public CSemObject {
 
50594
#line 50595 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50595
  friend class ::CCExprResolve;
 
50596
  friend class ::CExprResolve;
 
50597
  friend class ::WinIfExists;
 
50598
  friend class ::WinImportHandler;
 
50599
  friend class ::WinMacros;
 
50600
  friend class ::WinAsm;
 
50601
  friend class ::WinDeclSpecs;
 
50602
  friend class ::WinMemberExplSpec;
 
50603
  friend class ::WinTypeKeywords;
 
50604
  friend class ::WinFriend;
 
50605
  friend class ::ExtAC;
 
50606
  friend class ::ExtACBuilderCoupling;
 
50607
  friend class ::ExtACSyntaxCoupling;
 
50608
  friend class ::ExtACTree;
 
50609
  friend class ::ExtACKeywords;
 
50610
  friend class ::ExtGnu;
 
50611
  friend class ::PragmaOnceUnitState;
 
50612
  friend class ::PragmaOnce;
 
50613
  friend class ::CMatchSyntax;
 
50614
 
 
50615
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50616
 
 
50617
  CTree *sons[2]; // declspecs, declarator
 
50618
 
 
50619
public:
 
50620
  /** Constructor.
 
50621
   *  \param dss The declaration specifier sequence of the type.
 
50622
   *  \param d The type declarator. */
 
50623
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
50624
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
50625
  static const char *NodeId ();
 
50626
  /** Get the name of the node. Can be compared with NodeId(). */
 
50627
  const char *NodeName () const { return NodeId (); }
 
50628
  /** Get the number of sons. */
 
50629
  int Sons () const { return CTree::Sons (sons, 2); }
 
50630
  /** Get the n-th son.
 
50631
   *  \param n The index of the son.
 
50632
   *  \return The n-th son or NULL. */
 
50633
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
50634
  /** Get the declarator. */
 
50635
  CTree *Declarator () const { return sons[1]; }
 
50636
  /** Replace a son.
 
50637
   *  \param old_son The son to replace.
 
50638
   *  \param new_son The new son. */
 
50639
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
50640
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
50641
  }
 
50642
  /** Get the semantic information object. */
 
50643
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
50644
};
 
50645
      
 
50646
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
50647
 *  Tree node representing a class specifier, e.g. class X. */
 
50648
 
 
50649
#line 50650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50650
} // closed Puma
 
50651
class CCExprResolve;
 
50652
class CExprResolve;
 
50653
class WinIfExists;
 
50654
class WinImportHandler;
 
50655
class WinMacros;
 
50656
class WinAsm;
 
50657
class WinDeclSpecs;
 
50658
class WinMemberExplSpec;
 
50659
class WinTypeKeywords;
 
50660
class WinFriend;
 
50661
class ExtAC;
 
50662
class ExtACBuilderCoupling;
 
50663
class ExtACSyntaxCoupling;
 
50664
class ExtACTree;
 
50665
class ExtACKeywords;
 
50666
class ExtGnu;
 
50667
class PragmaOnceUnitState;
 
50668
class PragmaOnce;
 
50669
class CMatchSyntax;
 
50670
namespace Puma {
 
50671
 
 
50672
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50673
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
 
50674
#line 50675 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50675
  friend class ::CCExprResolve;
 
50676
  friend class ::CExprResolve;
 
50677
  friend class ::WinIfExists;
 
50678
  friend class ::WinImportHandler;
 
50679
  friend class ::WinMacros;
 
50680
  friend class ::WinAsm;
 
50681
  friend class ::WinDeclSpecs;
 
50682
  friend class ::WinMemberExplSpec;
 
50683
  friend class ::WinTypeKeywords;
 
50684
  friend class ::WinFriend;
 
50685
  friend class ::ExtAC;
 
50686
  friend class ::ExtACBuilderCoupling;
 
50687
  friend class ::ExtACSyntaxCoupling;
 
50688
  friend class ::ExtACTree;
 
50689
  friend class ::ExtACKeywords;
 
50690
  friend class ::ExtGnu;
 
50691
  friend class ::PragmaOnceUnitState;
 
50692
  friend class ::PragmaOnce;
 
50693
  friend class ::CMatchSyntax;
 
50694
 
 
50695
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50696
 
 
50697
  CTree *sons[2]; // key, name
 
50698
  
 
50699
public:
 
50700
  /** Constructor.
 
50701
   *  \param k The 'class' or 'struct' keyword.
 
50702
   *  \param n The class name. */
 
50703
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
50704
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
50705
  static const char *NodeId ();
 
50706
  /** Get the name of the node. Can be compared with NodeId(). */
 
50707
  const char *NodeName () const { return NodeId (); }
 
50708
  /** Get the number of sons. */
 
50709
  int Sons () const { return 2; }
 
50710
  /** Get the n-th son.
 
50711
   *  \param n The index of the son.
 
50712
   *  \return The n-th son or NULL. */
 
50713
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
50714
  /** Get the class name. */
 
50715
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
50716
  /** Get the semantic information object. */
 
50717
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
50718
  /** Replace a son.
 
50719
   *  \param old_son The son to replace.
 
50720
   *  \param new_son The new son. */
 
50721
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
50722
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
50723
  }
 
50724
};
 
50725
 
 
50726
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
50727
 *  Tree node representing a union specifier, e.g. union X. */
 
50728
 
 
50729
#line 50730 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50730
} // closed Puma
 
50731
class CCExprResolve;
 
50732
class CExprResolve;
 
50733
class WinIfExists;
 
50734
class WinImportHandler;
 
50735
class WinMacros;
 
50736
class WinAsm;
 
50737
class WinDeclSpecs;
 
50738
class WinMemberExplSpec;
 
50739
class WinTypeKeywords;
 
50740
class WinFriend;
 
50741
class ExtAC;
 
50742
class ExtACBuilderCoupling;
 
50743
class ExtACSyntaxCoupling;
 
50744
class ExtACTree;
 
50745
class ExtACKeywords;
 
50746
class ExtGnu;
 
50747
class PragmaOnceUnitState;
 
50748
class PragmaOnce;
 
50749
class CMatchSyntax;
 
50750
namespace Puma {
 
50751
 
 
50752
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50753
class CT_UnionSpec : public CT_ClassSpec {
 
50754
#line 50755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50755
  friend class ::CCExprResolve;
 
50756
  friend class ::CExprResolve;
 
50757
  friend class ::WinIfExists;
 
50758
  friend class ::WinImportHandler;
 
50759
  friend class ::WinMacros;
 
50760
  friend class ::WinAsm;
 
50761
  friend class ::WinDeclSpecs;
 
50762
  friend class ::WinMemberExplSpec;
 
50763
  friend class ::WinTypeKeywords;
 
50764
  friend class ::WinFriend;
 
50765
  friend class ::ExtAC;
 
50766
  friend class ::ExtACBuilderCoupling;
 
50767
  friend class ::ExtACSyntaxCoupling;
 
50768
  friend class ::ExtACTree;
 
50769
  friend class ::ExtACKeywords;
 
50770
  friend class ::ExtGnu;
 
50771
  friend class ::PragmaOnceUnitState;
 
50772
  friend class ::PragmaOnce;
 
50773
  friend class ::CMatchSyntax;
 
50774
 
 
50775
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50776
 
 
50777
public:
 
50778
  /** Constructor.
 
50779
   *  \param k The 'union' keyword.
 
50780
   *  \param n The name of the union. */
 
50781
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
50782
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
50783
  static const char *NodeId ();
 
50784
  /** Get the name of the node. Can be compared with NodeId(). */
 
50785
  const char *NodeName () const { return NodeId (); }
 
50786
};
 
50787
 
 
50788
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
50789
 *  Tree node representing an enumeration specifier, e.g. enum X. */
 
50790
 
 
50791
#line 50792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50792
} // closed Puma
 
50793
class CCExprResolve;
 
50794
class CExprResolve;
 
50795
class WinIfExists;
 
50796
class WinImportHandler;
 
50797
class WinMacros;
 
50798
class WinAsm;
 
50799
class WinDeclSpecs;
 
50800
class WinMemberExplSpec;
 
50801
class WinTypeKeywords;
 
50802
class WinFriend;
 
50803
class ExtAC;
 
50804
class ExtACBuilderCoupling;
 
50805
class ExtACSyntaxCoupling;
 
50806
class ExtACTree;
 
50807
class ExtACKeywords;
 
50808
class ExtGnu;
 
50809
class PragmaOnceUnitState;
 
50810
class PragmaOnce;
 
50811
class CMatchSyntax;
 
50812
namespace Puma {
 
50813
 
 
50814
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50815
class CT_EnumSpec : public CT_ClassSpec {
 
50816
#line 50817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50817
  friend class ::CCExprResolve;
 
50818
  friend class ::CExprResolve;
 
50819
  friend class ::WinIfExists;
 
50820
  friend class ::WinImportHandler;
 
50821
  friend class ::WinMacros;
 
50822
  friend class ::WinAsm;
 
50823
  friend class ::WinDeclSpecs;
 
50824
  friend class ::WinMemberExplSpec;
 
50825
  friend class ::WinTypeKeywords;
 
50826
  friend class ::WinFriend;
 
50827
  friend class ::ExtAC;
 
50828
  friend class ::ExtACBuilderCoupling;
 
50829
  friend class ::ExtACSyntaxCoupling;
 
50830
  friend class ::ExtACTree;
 
50831
  friend class ::ExtACKeywords;
 
50832
  friend class ::ExtGnu;
 
50833
  friend class ::PragmaOnceUnitState;
 
50834
  friend class ::PragmaOnce;
 
50835
  friend class ::CMatchSyntax;
 
50836
 
 
50837
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50838
 
 
50839
public:
 
50840
  /** Constructor.
 
50841
   *  \param k The 'enum' keyword. 
 
50842
   *  \param n The name of the enumeration. */
 
50843
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
50844
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
50845
  static const char *NodeId ();
 
50846
  /** Get the name of the node. Can be compared with NodeId(). */
 
50847
  const char *NodeName () const { return NodeId (); }
 
50848
};
 
50849
 
 
50850
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
50851
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
 
50852
 
 
50853
#line 50854 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50854
} // closed Puma
 
50855
class CCExprResolve;
 
50856
class CExprResolve;
 
50857
class WinIfExists;
 
50858
class WinImportHandler;
 
50859
class WinMacros;
 
50860
class WinAsm;
 
50861
class WinDeclSpecs;
 
50862
class WinMemberExplSpec;
 
50863
class WinTypeKeywords;
 
50864
class WinFriend;
 
50865
class ExtAC;
 
50866
class ExtACBuilderCoupling;
 
50867
class ExtACSyntaxCoupling;
 
50868
class ExtACTree;
 
50869
class ExtACKeywords;
 
50870
class ExtGnu;
 
50871
class PragmaOnceUnitState;
 
50872
class PragmaOnce;
 
50873
class CMatchSyntax;
 
50874
namespace Puma {
 
50875
 
 
50876
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50877
class CT_ExceptionSpec : public CT_DeclSpec {
 
50878
#line 50879 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50879
  friend class ::CCExprResolve;
 
50880
  friend class ::CExprResolve;
 
50881
  friend class ::WinIfExists;
 
50882
  friend class ::WinImportHandler;
 
50883
  friend class ::WinMacros;
 
50884
  friend class ::WinAsm;
 
50885
  friend class ::WinDeclSpecs;
 
50886
  friend class ::WinMemberExplSpec;
 
50887
  friend class ::WinTypeKeywords;
 
50888
  friend class ::WinFriend;
 
50889
  friend class ::ExtAC;
 
50890
  friend class ::ExtACBuilderCoupling;
 
50891
  friend class ::ExtACSyntaxCoupling;
 
50892
  friend class ::ExtACTree;
 
50893
  friend class ::ExtACKeywords;
 
50894
  friend class ::ExtGnu;
 
50895
  friend class ::PragmaOnceUnitState;
 
50896
  friend class ::PragmaOnce;
 
50897
  friend class ::CMatchSyntax;
 
50898
 
 
50899
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50900
 
 
50901
  CTree *sons[2]; // throw, type_id_list
 
50902
  
 
50903
public:
 
50904
  /** Constructor.
 
50905
   *  \param k The 'throw' keyword.
 
50906
   *  \param l The type list for the exception type to throw. */
 
50907
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
50908
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
50909
  static const char *NodeId ();
 
50910
  /** Get the name of the node. Can be compared with NodeId(). */
 
50911
  const char *NodeName () const { return NodeId (); }
 
50912
  /** Get the number of sons. */
 
50913
  int Sons () const { return 2; }
 
50914
  /** Get the n-th son.
 
50915
   *  \param n The index of the son.
 
50916
   *  \return The n-th son or NULL. */
 
50917
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
50918
  /** Get the exception type list. */
 
50919
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
50920
  /** Replace a son.
 
50921
   *  \param old_son The son to replace.
 
50922
   *  \param new_son The new son. */
 
50923
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
50924
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
50925
  }
 
50926
};
 
50927
 
 
50928
/*****************************************************************************/
 
50929
/*                                                                           */
 
50930
/*                              Declarations                                 */
 
50931
/*                                                                           */
 
50932
/*****************************************************************************/
 
50933
 
 
50934
/** \class CT_Decl CTree.h Puma/CTree.h
 
50935
 *  Base class for all tree nodes representing declarations. */
 
50936
 
 
50937
#line 50938 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50938
} // closed Puma
 
50939
class CCExprResolve;
 
50940
class CExprResolve;
 
50941
class WinIfExists;
 
50942
class WinImportHandler;
 
50943
class WinMacros;
 
50944
class WinAsm;
 
50945
class WinDeclSpecs;
 
50946
class WinMemberExplSpec;
 
50947
class WinTypeKeywords;
 
50948
class WinFriend;
 
50949
class ExtAC;
 
50950
class ExtACBuilderCoupling;
 
50951
class ExtACSyntaxCoupling;
 
50952
class ExtACTree;
 
50953
class ExtACKeywords;
 
50954
class ExtGnu;
 
50955
class PragmaOnceUnitState;
 
50956
class PragmaOnce;
 
50957
class CMatchSyntax;
 
50958
namespace Puma {
 
50959
 
 
50960
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50961
class CT_Decl : public CTree {
 
50962
#line 50963 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
50963
  friend class ::CCExprResolve;
 
50964
  friend class ::CExprResolve;
 
50965
  friend class ::WinIfExists;
 
50966
  friend class ::WinImportHandler;
 
50967
  friend class ::WinMacros;
 
50968
  friend class ::WinAsm;
 
50969
  friend class ::WinDeclSpecs;
 
50970
  friend class ::WinMemberExplSpec;
 
50971
  friend class ::WinTypeKeywords;
 
50972
  friend class ::WinFriend;
 
50973
  friend class ::ExtAC;
 
50974
  friend class ::ExtACBuilderCoupling;
 
50975
  friend class ::ExtACSyntaxCoupling;
 
50976
  friend class ::ExtACTree;
 
50977
  friend class ::ExtACKeywords;
 
50978
  friend class ::ExtGnu;
 
50979
  friend class ::PragmaOnceUnitState;
 
50980
  friend class ::PragmaOnce;
 
50981
  friend class ::CMatchSyntax;
 
50982
 
 
50983
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50984
 
 
50985
  CT_LinkageSpec *_linkage;
 
50986
  
 
50987
protected:
 
50988
  /** Constructor. */
 
50989
  CT_Decl () : _linkage (0) {}
 
50990
  
 
50991
public:
 
50992
  /** Set the linkage of the declared entity.
 
50993
   *  \param l The linkage specifiers. */
 
50994
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
50995
  /** Get the linkage specifiers. */
 
50996
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
50997
  /** Get this. */
 
50998
  virtual CT_Decl *IsDeclaration () { return this; }
 
50999
};
 
51000
 
 
51001
/** \class CT_Program CTree.h Puma/CTree.h
 
51002
 *  Root node of C/C++ syntax tree. */
 
51003
 
 
51004
#line 51005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51005
} // closed Puma
 
51006
class CCExprResolve;
 
51007
class CExprResolve;
 
51008
class WinIfExists;
 
51009
class WinImportHandler;
 
51010
class WinMacros;
 
51011
class WinAsm;
 
51012
class WinDeclSpecs;
 
51013
class WinMemberExplSpec;
 
51014
class WinTypeKeywords;
 
51015
class WinFriend;
 
51016
class ExtAC;
 
51017
class ExtACBuilderCoupling;
 
51018
class ExtACSyntaxCoupling;
 
51019
class ExtACTree;
 
51020
class ExtACKeywords;
 
51021
class ExtGnu;
 
51022
class PragmaOnceUnitState;
 
51023
class PragmaOnce;
 
51024
class CMatchSyntax;
 
51025
namespace Puma {
 
51026
 
 
51027
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51028
class CT_Program : public CT_DeclList, public CSemScope {
 
51029
#line 51030 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51030
  friend class ::CCExprResolve;
 
51031
  friend class ::CExprResolve;
 
51032
  friend class ::WinIfExists;
 
51033
  friend class ::WinImportHandler;
 
51034
  friend class ::WinMacros;
 
51035
  friend class ::WinAsm;
 
51036
  friend class ::WinDeclSpecs;
 
51037
  friend class ::WinMemberExplSpec;
 
51038
  friend class ::WinTypeKeywords;
 
51039
  friend class ::WinFriend;
 
51040
  friend class ::ExtAC;
 
51041
  friend class ::ExtACBuilderCoupling;
 
51042
  friend class ::ExtACSyntaxCoupling;
 
51043
  friend class ::ExtACTree;
 
51044
  friend class ::ExtACKeywords;
 
51045
  friend class ::ExtGnu;
 
51046
  friend class ::PragmaOnceUnitState;
 
51047
  friend class ::PragmaOnce;
 
51048
  friend class ::CMatchSyntax;
 
51049
 
 
51050
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51051
 
 
51052
public:
 
51053
  /** Constructor.
 
51054
   *  \param size The initial number of declarations in the program.
 
51055
   *  \param incr The initial increment count. */
 
51056
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
51057
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
51058
  static const char *NodeId ();
 
51059
  /** Get the name of the node. Can be compared with NodeId(). */
 
51060
  const char *NodeName () const { return NodeId (); }
 
51061
  /** Get the semantic scope object. */
 
51062
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
51063
};
 
51064
   
 
51065
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
51066
 *  Tree node representing an object declaration, e.g. int *i. */
 
51067
 
 
51068
#line 51069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51069
} // closed Puma
 
51070
class CCExprResolve;
 
51071
class CExprResolve;
 
51072
class WinIfExists;
 
51073
class WinImportHandler;
 
51074
class WinMacros;
 
51075
class WinAsm;
 
51076
class WinDeclSpecs;
 
51077
class WinMemberExplSpec;
 
51078
class WinTypeKeywords;
 
51079
class WinFriend;
 
51080
class ExtAC;
 
51081
class ExtACBuilderCoupling;
 
51082
class ExtACSyntaxCoupling;
 
51083
class ExtACTree;
 
51084
class ExtACKeywords;
 
51085
class ExtGnu;
 
51086
class PragmaOnceUnitState;
 
51087
class PragmaOnce;
 
51088
class CMatchSyntax;
 
51089
namespace Puma {
 
51090
 
 
51091
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51092
class CT_ObjDecl : public CT_Decl {
 
51093
#line 51094 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51094
  friend class ::CCExprResolve;
 
51095
  friend class ::CExprResolve;
 
51096
  friend class ::WinIfExists;
 
51097
  friend class ::WinImportHandler;
 
51098
  friend class ::WinMacros;
 
51099
  friend class ::WinAsm;
 
51100
  friend class ::WinDeclSpecs;
 
51101
  friend class ::WinMemberExplSpec;
 
51102
  friend class ::WinTypeKeywords;
 
51103
  friend class ::WinFriend;
 
51104
  friend class ::ExtAC;
 
51105
  friend class ::ExtACBuilderCoupling;
 
51106
  friend class ::ExtACSyntaxCoupling;
 
51107
  friend class ::ExtACTree;
 
51108
  friend class ::ExtACKeywords;
 
51109
  friend class ::ExtGnu;
 
51110
  friend class ::PragmaOnceUnitState;
 
51111
  friend class ::PragmaOnce;
 
51112
  friend class ::CMatchSyntax;
 
51113
 
 
51114
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51115
 
 
51116
  CTree *sons[3]; // declspecs, declarators, colon
 
51117
 
 
51118
public:
 
51119
  /** Constructor.
 
51120
   *  \param dsl The declaration specifier sequence.
 
51121
   *  \param dl The declarator list.
 
51122
   *  \param c Optional colon. */
 
51123
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
 
51124
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
 
51125
  }
 
51126
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
51127
  static const char *NodeId ();
 
51128
  /** Get the name of the node. Can be compared with NodeId(). */
 
51129
  const char *NodeName () const { return NodeId (); }
 
51130
  /** Get the number of sons. */
 
51131
  int Sons () const { return 3; }
 
51132
  /** Get the n-th son.
 
51133
   *  \param n The index of the son.
 
51134
   *  \return The n-th son or NULL. */
 
51135
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
51136
  /** Get the declaration specifier sequence. */
 
51137
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
51138
  /** Get the declarator list. */
 
51139
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
51140
  /** Replace a son.
 
51141
   *  \param old_son The son to replace.
 
51142
   *  \param new_son The new son. */
 
51143
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
51144
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
51145
  }
 
51146
};
 
51147
 
 
51148
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
51149
 *  Tree node representing a template declaration. */
 
51150
 
 
51151
#line 51152 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51152
} // closed Puma
 
51153
class CCExprResolve;
 
51154
class CExprResolve;
 
51155
class WinIfExists;
 
51156
class WinImportHandler;
 
51157
class WinMacros;
 
51158
class WinAsm;
 
51159
class WinDeclSpecs;
 
51160
class WinMemberExplSpec;
 
51161
class WinTypeKeywords;
 
51162
class WinFriend;
 
51163
class ExtAC;
 
51164
class ExtACBuilderCoupling;
 
51165
class ExtACSyntaxCoupling;
 
51166
class ExtACTree;
 
51167
class ExtACKeywords;
 
51168
class ExtGnu;
 
51169
class PragmaOnceUnitState;
 
51170
class PragmaOnce;
 
51171
class CMatchSyntax;
 
51172
namespace Puma {
 
51173
 
 
51174
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51175
class CT_TemplateDecl : public CT_Decl, public CSemScope {
 
51176
#line 51177 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51177
  friend class ::CCExprResolve;
 
51178
  friend class ::CExprResolve;
 
51179
  friend class ::WinIfExists;
 
51180
  friend class ::WinImportHandler;
 
51181
  friend class ::WinMacros;
 
51182
  friend class ::WinAsm;
 
51183
  friend class ::WinDeclSpecs;
 
51184
  friend class ::WinMemberExplSpec;
 
51185
  friend class ::WinTypeKeywords;
 
51186
  friend class ::WinFriend;
 
51187
  friend class ::ExtAC;
 
51188
  friend class ::ExtACBuilderCoupling;
 
51189
  friend class ::ExtACSyntaxCoupling;
 
51190
  friend class ::ExtACTree;
 
51191
  friend class ::ExtACKeywords;
 
51192
  friend class ::ExtGnu;
 
51193
  friend class ::PragmaOnceUnitState;
 
51194
  friend class ::PragmaOnce;
 
51195
  friend class ::CMatchSyntax;
 
51196
 
 
51197
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51198
 
 
51199
  CTree *sons[3]; // export, param_list, decl
 
51200
 
 
51201
public:
 
51202
  /** Constructor.
 
51203
   *  \param e Optional 'export' keyword. 
 
51204
   *  \param p The template parameter list.
 
51205
   *  \param d The class or function declaration. */
 
51206
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
 
51207
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
 
51208
  }
 
51209
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
51210
  static const char *NodeId ();
 
51211
  /** Get the name of the node. Can be compared with NodeId(). */
 
51212
  const char *NodeName () const { return NodeId (); }
 
51213
  /** Get the number of sons. */
 
51214
  int Sons () const { return CTree::Sons (sons, 3); }
 
51215
  /** Get the n-th son.
 
51216
   *  \param n The index of the son.
 
51217
   *  \return The n-th son or NULL. */
 
51218
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
51219
  /** Replace a son.
 
51220
   *  \param old_son The son to replace.
 
51221
   *  \param new_son The new son. */
 
51222
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
51223
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
 
51224
  }
 
51225
  /** Get the 'export' keyword. */
 
51226
  CTree *Export () const { return sons[0]; }
 
51227
  /** Get the template parameter list. */
 
51228
  CT_TemplateParamList *Parameters () const { 
 
51229
    return (CT_TemplateParamList*)sons[1]; 
 
51230
  }
 
51231
  /** Get the class or function declaration. */
 
51232
  CTree *Declaration () const { return sons[2]; }
 
51233
  /** Get the semantic scope object. */
 
51234
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
51235
};
 
51236
 
 
51237
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
51238
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
 
51239
 
 
51240
#line 51241 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51241
} // closed Puma
 
51242
class CCExprResolve;
 
51243
class CExprResolve;
 
51244
class WinIfExists;
 
51245
class WinImportHandler;
 
51246
class WinMacros;
 
51247
class WinAsm;
 
51248
class WinDeclSpecs;
 
51249
class WinMemberExplSpec;
 
51250
class WinTypeKeywords;
 
51251
class WinFriend;
 
51252
class ExtAC;
 
51253
class ExtACBuilderCoupling;
 
51254
class ExtACSyntaxCoupling;
 
51255
class ExtACTree;
 
51256
class ExtACKeywords;
 
51257
class ExtGnu;
 
51258
class PragmaOnceUnitState;
 
51259
class PragmaOnce;
 
51260
class CMatchSyntax;
 
51261
namespace Puma {
 
51262
 
 
51263
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51264
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
 
51265
#line 51266 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51266
  friend class ::CCExprResolve;
 
51267
  friend class ::CExprResolve;
 
51268
  friend class ::WinIfExists;
 
51269
  friend class ::WinImportHandler;
 
51270
  friend class ::WinMacros;
 
51271
  friend class ::WinAsm;
 
51272
  friend class ::WinDeclSpecs;
 
51273
  friend class ::WinMemberExplSpec;
 
51274
  friend class ::WinTypeKeywords;
 
51275
  friend class ::WinFriend;
 
51276
  friend class ::ExtAC;
 
51277
  friend class ::ExtACBuilderCoupling;
 
51278
  friend class ::ExtACSyntaxCoupling;
 
51279
  friend class ::ExtACTree;
 
51280
  friend class ::ExtACKeywords;
 
51281
  friend class ::ExtGnu;
 
51282
  friend class ::PragmaOnceUnitState;
 
51283
  friend class ::PragmaOnce;
 
51284
  friend class ::CMatchSyntax;
 
51285
 
 
51286
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51287
 
 
51288
protected:
 
51289
  /** Constructor. */
 
51290
  CT_TemplateParamDecl () {}
 
51291
  
 
51292
public:
 
51293
  /** Get the template default argument. */
 
51294
  virtual CT_ExprList *DefaultArgument () const = 0;
 
51295
  /** Get the semantic information object. */
 
51296
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
51297
};
 
51298
 
 
51299
 
 
51300
#line 51301 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51301
} // closed Puma
 
51302
class CCExprResolve;
 
51303
class CExprResolve;
 
51304
class WinIfExists;
 
51305
class WinImportHandler;
 
51306
class WinMacros;
 
51307
class WinAsm;
 
51308
class WinDeclSpecs;
 
51309
class WinMemberExplSpec;
 
51310
class WinTypeKeywords;
 
51311
class WinFriend;
 
51312
class ExtAC;
 
51313
class ExtACBuilderCoupling;
 
51314
class ExtACSyntaxCoupling;
 
51315
class ExtACTree;
 
51316
class ExtACKeywords;
 
51317
class ExtGnu;
 
51318
class PragmaOnceUnitState;
 
51319
class PragmaOnce;
 
51320
class CMatchSyntax;
 
51321
namespace Puma {
 
51322
 
 
51323
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51324
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
 
51325
#line 51326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51326
  friend class ::CCExprResolve;
 
51327
  friend class ::CExprResolve;
 
51328
  friend class ::WinIfExists;
 
51329
  friend class ::WinImportHandler;
 
51330
  friend class ::WinMacros;
 
51331
  friend class ::WinAsm;
 
51332
  friend class ::WinDeclSpecs;
 
51333
  friend class ::WinMemberExplSpec;
 
51334
  friend class ::WinTypeKeywords;
 
51335
  friend class ::WinFriend;
 
51336
  friend class ::ExtAC;
 
51337
  friend class ::ExtACBuilderCoupling;
 
51338
  friend class ::ExtACSyntaxCoupling;
 
51339
  friend class ::ExtACTree;
 
51340
  friend class ::ExtACKeywords;
 
51341
  friend class ::ExtGnu;
 
51342
  friend class ::PragmaOnceUnitState;
 
51343
  friend class ::PragmaOnce;
 
51344
  friend class ::CMatchSyntax;
 
51345
 
 
51346
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51347
 
 
51348
  CTree *sons[3]; // declspecs, declarator, init
 
51349
 
 
51350
public:
 
51351
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
 
51352
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
 
51353
  }
 
51354
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
51355
  static const char *NodeId ();
 
51356
  /** Get the name of the node. Can be compared with NodeId(). */
 
51357
  const char *NodeName () const { return NodeId (); }
 
51358
  /** Get the number of sons. */
 
51359
  int Sons () const { return CTree::Sons (sons, 3); }
 
51360
  /** Get the n-th son.
 
51361
   *  \param n The index of the son.
 
51362
   *  \return The n-th son or NULL. */
 
51363
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
51364
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
51365
  CTree *Declarator () const { return sons[1]; }
 
51366
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
 
51367
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
51368
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
51369
  /** Replace a son.
 
51370
   *  \param old_son The son to replace.
 
51371
   *  \param new_son The new son. */
 
51372
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
51373
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
51374
  }
 
51375
};
 
51376
 
 
51377
 
 
51378
#line 51379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51379
} // closed Puma
 
51380
class CCExprResolve;
 
51381
class CExprResolve;
 
51382
class WinIfExists;
 
51383
class WinImportHandler;
 
51384
class WinMacros;
 
51385
class WinAsm;
 
51386
class WinDeclSpecs;
 
51387
class WinMemberExplSpec;
 
51388
class WinTypeKeywords;
 
51389
class WinFriend;
 
51390
class ExtAC;
 
51391
class ExtACBuilderCoupling;
 
51392
class ExtACSyntaxCoupling;
 
51393
class ExtACTree;
 
51394
class ExtACKeywords;
 
51395
class ExtGnu;
 
51396
class PragmaOnceUnitState;
 
51397
class PragmaOnce;
 
51398
class CMatchSyntax;
 
51399
namespace Puma {
 
51400
 
 
51401
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51402
class CT_TypeParamDecl : public CT_TemplateParamDecl {
 
51403
#line 51404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51404
  friend class ::CCExprResolve;
 
51405
  friend class ::CExprResolve;
 
51406
  friend class ::WinIfExists;
 
51407
  friend class ::WinImportHandler;
 
51408
  friend class ::WinMacros;
 
51409
  friend class ::WinAsm;
 
51410
  friend class ::WinDeclSpecs;
 
51411
  friend class ::WinMemberExplSpec;
 
51412
  friend class ::WinTypeKeywords;
 
51413
  friend class ::WinFriend;
 
51414
  friend class ::ExtAC;
 
51415
  friend class ::ExtACBuilderCoupling;
 
51416
  friend class ::ExtACSyntaxCoupling;
 
51417
  friend class ::ExtACTree;
 
51418
  friend class ::ExtACKeywords;
 
51419
  friend class ::ExtGnu;
 
51420
  friend class ::PragmaOnceUnitState;
 
51421
  friend class ::PragmaOnce;
 
51422
  friend class ::CMatchSyntax;
 
51423
 
 
51424
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51425
 
 
51426
  CTree *sons[4]; // params, key, id, init
 
51427
 
 
51428
public:
 
51429
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
 
51430
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
51431
    AddSon (sons[2], id); AddSon (sons[3], i);
 
51432
  }
 
51433
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
51434
  static const char *NodeId ();
 
51435
  /** Get the name of the node. Can be compared with NodeId(). */
 
51436
  const char *NodeName () const { return NodeId (); }
 
51437
  /** Get the number of sons. */
 
51438
  int Sons () const { return CTree::Sons (sons, 4); }
 
51439
  /** Get the n-th son.
 
51440
   *  \param n The index of the son.
 
51441
   *  \return The n-th son or NULL. */
 
51442
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
51443
  CT_TemplateParamList *Parameters () const { 
 
51444
    return (CT_TemplateParamList*)sons[0]; 
 
51445
  }
 
51446
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
51447
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
 
51448
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
51449
  /** Replace a son.
 
51450
   *  \param old_son The son to replace.
 
51451
   *  \param new_son The new son. */
 
51452
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
51453
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
51454
  }
 
51455
};
 
51456
 
 
51457
 
 
51458
#line 51459 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51459
} // closed Puma
 
51460
class CCExprResolve;
 
51461
class CExprResolve;
 
51462
class WinIfExists;
 
51463
class WinImportHandler;
 
51464
class WinMacros;
 
51465
class WinAsm;
 
51466
class WinDeclSpecs;
 
51467
class WinMemberExplSpec;
 
51468
class WinTypeKeywords;
 
51469
class WinFriend;
 
51470
class ExtAC;
 
51471
class ExtACBuilderCoupling;
 
51472
class ExtACSyntaxCoupling;
 
51473
class ExtACTree;
 
51474
class ExtACKeywords;
 
51475
class ExtGnu;
 
51476
class PragmaOnceUnitState;
 
51477
class PragmaOnce;
 
51478
class CMatchSyntax;
 
51479
namespace Puma {
 
51480
 
 
51481
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51482
class CT_EnumDef : public CT_Decl, public CSemObject {
 
51483
#line 51484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51484
  friend class ::CCExprResolve;
 
51485
  friend class ::CExprResolve;
 
51486
  friend class ::WinIfExists;
 
51487
  friend class ::WinImportHandler;
 
51488
  friend class ::WinMacros;
 
51489
  friend class ::WinAsm;
 
51490
  friend class ::WinDeclSpecs;
 
51491
  friend class ::WinMemberExplSpec;
 
51492
  friend class ::WinTypeKeywords;
 
51493
  friend class ::WinFriend;
 
51494
  friend class ::ExtAC;
 
51495
  friend class ::ExtACBuilderCoupling;
 
51496
  friend class ::ExtACSyntaxCoupling;
 
51497
  friend class ::ExtACTree;
 
51498
  friend class ::ExtACKeywords;
 
51499
  friend class ::ExtGnu;
 
51500
  friend class ::PragmaOnceUnitState;
 
51501
  friend class ::PragmaOnce;
 
51502
  friend class ::CMatchSyntax;
 
51503
 
 
51504
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51505
 
 
51506
  CTree *sons[3]; // key, name, enumerators
 
51507
 
 
51508
public:
 
51509
  CT_EnumDef (CTree *k, CTree *n) {
 
51510
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
 
51511
  }
 
51512
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
51513
  static const char *NodeId ();
 
51514
  /** Get the name of the node. Can be compared with NodeId(). */
 
51515
  const char *NodeName () const { return NodeId (); }
 
51516
  /** Get the number of sons. */
 
51517
  int Sons () const { return CTree::Sons (sons, 3); }
 
51518
  /** Get the n-th son.
 
51519
   *  \param n The index of the son.
 
51520
   *  \return The n-th son or NULL. */
 
51521
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
51522
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
51523
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
 
51524
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
51525
  /** Replace a son.
 
51526
   *  \param old_son The son to replace.
 
51527
   *  \param new_son The new son. */
 
51528
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
51529
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
51530
  }
 
51531
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
51532
};
 
51533
 
 
51534
 
 
51535
#line 51536 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51536
} // closed Puma
 
51537
class CCExprResolve;
 
51538
class CExprResolve;
 
51539
class WinIfExists;
 
51540
class WinImportHandler;
 
51541
class WinMacros;
 
51542
class WinAsm;
 
51543
class WinDeclSpecs;
 
51544
class WinMemberExplSpec;
 
51545
class WinTypeKeywords;
 
51546
class WinFriend;
 
51547
class ExtAC;
 
51548
class ExtACBuilderCoupling;
 
51549
class ExtACSyntaxCoupling;
 
51550
class ExtACTree;
 
51551
class ExtACKeywords;
 
51552
class ExtGnu;
 
51553
class PragmaOnceUnitState;
 
51554
class PragmaOnce;
 
51555
class CMatchSyntax;
 
51556
namespace Puma {
 
51557
 
 
51558
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51559
class CT_Enumerator : public CT_Decl, public CSemObject {
 
51560
#line 51561 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51561
  friend class ::CCExprResolve;
 
51562
  friend class ::CExprResolve;
 
51563
  friend class ::WinIfExists;
 
51564
  friend class ::WinImportHandler;
 
51565
  friend class ::WinMacros;
 
51566
  friend class ::WinAsm;
 
51567
  friend class ::WinDeclSpecs;
 
51568
  friend class ::WinMemberExplSpec;
 
51569
  friend class ::WinTypeKeywords;
 
51570
  friend class ::WinFriend;
 
51571
  friend class ::ExtAC;
 
51572
  friend class ::ExtACBuilderCoupling;
 
51573
  friend class ::ExtACSyntaxCoupling;
 
51574
  friend class ::ExtACTree;
 
51575
  friend class ::ExtACKeywords;
 
51576
  friend class ::ExtGnu;
 
51577
  friend class ::PragmaOnceUnitState;
 
51578
  friend class ::PragmaOnce;
 
51579
  friend class ::CMatchSyntax;
 
51580
 
 
51581
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51582
 
 
51583
  CTree *sons[2]; // name, init
 
51584
 
 
51585
public:
 
51586
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
51587
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
51588
  static const char *NodeId ();
 
51589
  /** Get the name of the node. Can be compared with NodeId(). */
 
51590
  const char *NodeName () const { return NodeId (); }
 
51591
  /** Get the number of sons. */
 
51592
  int Sons () const { return CTree::Sons (sons, 2); }
 
51593
  /** Get the n-th son.
 
51594
   *  \param n The index of the son.
 
51595
   *  \return The n-th son or NULL. */
 
51596
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
51597
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
51598
  void Initializer (CTree *i) { AddSon (sons[1], i); }
 
51599
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
51600
  /** Replace a son.
 
51601
   *  \param old_son The son to replace.
 
51602
   *  \param new_son The new son. */
 
51603
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
51604
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
 
51605
  }
 
51606
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
51607
};
 
51608
 
 
51609
 
 
51610
#line 51611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51611
} // closed Puma
 
51612
class CCExprResolve;
 
51613
class CExprResolve;
 
51614
class WinIfExists;
 
51615
class WinImportHandler;
 
51616
class WinMacros;
 
51617
class WinAsm;
 
51618
class WinDeclSpecs;
 
51619
class WinMemberExplSpec;
 
51620
class WinTypeKeywords;
 
51621
class WinFriend;
 
51622
class ExtAC;
 
51623
class ExtACBuilderCoupling;
 
51624
class ExtACSyntaxCoupling;
 
51625
class ExtACTree;
 
51626
class ExtACKeywords;
 
51627
class ExtGnu;
 
51628
class PragmaOnceUnitState;
 
51629
class PragmaOnce;
 
51630
class CMatchSyntax;
 
51631
namespace Puma {
 
51632
 
 
51633
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51634
class CT_FctDef : public CT_Decl, public CSemObject {
 
51635
#line 51636 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51636
  friend class ::CCExprResolve;
 
51637
  friend class ::CExprResolve;
 
51638
  friend class ::WinIfExists;
 
51639
  friend class ::WinImportHandler;
 
51640
  friend class ::WinMacros;
 
51641
  friend class ::WinAsm;
 
51642
  friend class ::WinDeclSpecs;
 
51643
  friend class ::WinMemberExplSpec;
 
51644
  friend class ::WinTypeKeywords;
 
51645
  friend class ::WinFriend;
 
51646
  friend class ::ExtAC;
 
51647
  friend class ::ExtACBuilderCoupling;
 
51648
  friend class ::ExtACSyntaxCoupling;
 
51649
  friend class ::ExtACTree;
 
51650
  friend class ::ExtACKeywords;
 
51651
  friend class ::ExtGnu;
 
51652
  friend class ::PragmaOnceUnitState;
 
51653
  friend class ::PragmaOnce;
 
51654
  friend class ::CMatchSyntax;
 
51655
 
 
51656
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51657
 
 
51658
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
 
51659
 
 
51660
public:
 
51661
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
 
51662
             CTree *b, CTree *hs) {
 
51663
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
51664
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
51665
    AddSon (sons[6], hs); 
 
51666
  }
 
51667
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
51668
  static const char *NodeId ();
 
51669
  /** Get the name of the node. Can be compared with NodeId(). */
 
51670
  const char *NodeName () const { return NodeId (); }
 
51671
  /** Get the number of sons. */
 
51672
  int Sons () const { return CTree::Sons (sons, 7); }
 
51673
  /** Get the n-th son.
 
51674
   *  \param n The index of the son.
 
51675
   *  \return The n-th son or NULL. */
 
51676
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
51677
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
51678
  CTree *Declarator () const { return sons[1]; }
 
51679
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
 
51680
  CTree *CtorInit () const { return sons[3]; }
 
51681
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
 
51682
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
 
51683
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
 
51684
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
51685
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
51686
  void Body (CTree *b) { AddSon (sons[5], b); }
 
51687
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
 
51688
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
51689
    AddSon (sons[5], b); AddSon (sons[6], h);
 
51690
  }
 
51691
  /** Replace a son.
 
51692
   *  \param old_son The son to replace.
 
51693
   *  \param new_son The new son. */
 
51694
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
51695
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
51696
  }
 
51697
};
 
51698
 
 
51699
 
 
51700
#line 51701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51701
} // closed Puma
 
51702
class CCExprResolve;
 
51703
class CExprResolve;
 
51704
class WinIfExists;
 
51705
class WinImportHandler;
 
51706
class WinMacros;
 
51707
class WinAsm;
 
51708
class WinDeclSpecs;
 
51709
class WinMemberExplSpec;
 
51710
class WinTypeKeywords;
 
51711
class WinFriend;
 
51712
class ExtAC;
 
51713
class ExtACBuilderCoupling;
 
51714
class ExtACSyntaxCoupling;
 
51715
class ExtACTree;
 
51716
class ExtACKeywords;
 
51717
class ExtGnu;
 
51718
class PragmaOnceUnitState;
 
51719
class PragmaOnce;
 
51720
class CMatchSyntax;
 
51721
namespace Puma {
 
51722
 
 
51723
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51724
class CT_AsmDef : public CT_Decl {
 
51725
#line 51726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51726
  friend class ::CCExprResolve;
 
51727
  friend class ::CExprResolve;
 
51728
  friend class ::WinIfExists;
 
51729
  friend class ::WinImportHandler;
 
51730
  friend class ::WinMacros;
 
51731
  friend class ::WinAsm;
 
51732
  friend class ::WinDeclSpecs;
 
51733
  friend class ::WinMemberExplSpec;
 
51734
  friend class ::WinTypeKeywords;
 
51735
  friend class ::WinFriend;
 
51736
  friend class ::ExtAC;
 
51737
  friend class ::ExtACBuilderCoupling;
 
51738
  friend class ::ExtACSyntaxCoupling;
 
51739
  friend class ::ExtACTree;
 
51740
  friend class ::ExtACKeywords;
 
51741
  friend class ::ExtGnu;
 
51742
  friend class ::PragmaOnceUnitState;
 
51743
  friend class ::PragmaOnce;
 
51744
  friend class ::CMatchSyntax;
 
51745
 
 
51746
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51747
 
 
51748
  CTree *sons[5]; // asm, open, str, close, semi_colon
 
51749
 
 
51750
public:
 
51751
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
 
51752
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
51753
    AddSon (sons[3], c); AddSon (sons[4], sc); 
 
51754
  }
 
51755
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
51756
  static const char *NodeId ();
 
51757
  /** Get the name of the node. Can be compared with NodeId(). */
 
51758
  const char *NodeName () const { return NodeId (); }
 
51759
  /** Get the number of sons. */
 
51760
  int Sons () const { return 5; }
 
51761
  /** Get the n-th son.
 
51762
   *  \param n The index of the son.
 
51763
   *  \return The n-th son or NULL. */
 
51764
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
51765
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
51766
  /** Replace a son.
 
51767
   *  \param old_son The son to replace.
 
51768
   *  \param new_son The new son. */
 
51769
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
51770
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
51771
  }
 
51772
};
 
51773
 
 
51774
 
 
51775
#line 51776 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51776
} // closed Puma
 
51777
class CCExprResolve;
 
51778
class CExprResolve;
 
51779
class WinIfExists;
 
51780
class WinImportHandler;
 
51781
class WinMacros;
 
51782
class WinAsm;
 
51783
class WinDeclSpecs;
 
51784
class WinMemberExplSpec;
 
51785
class WinTypeKeywords;
 
51786
class WinFriend;
 
51787
class ExtAC;
 
51788
class ExtACBuilderCoupling;
 
51789
class ExtACSyntaxCoupling;
 
51790
class ExtACTree;
 
51791
class ExtACKeywords;
 
51792
class ExtGnu;
 
51793
class PragmaOnceUnitState;
 
51794
class PragmaOnce;
 
51795
class CMatchSyntax;
 
51796
namespace Puma {
 
51797
 
 
51798
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51799
class CT_Handler : public CT_Decl, public CSemScope {
 
51800
#line 51801 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51801
  friend class ::CCExprResolve;
 
51802
  friend class ::CExprResolve;
 
51803
  friend class ::WinIfExists;
 
51804
  friend class ::WinImportHandler;
 
51805
  friend class ::WinMacros;
 
51806
  friend class ::WinAsm;
 
51807
  friend class ::WinDeclSpecs;
 
51808
  friend class ::WinMemberExplSpec;
 
51809
  friend class ::WinTypeKeywords;
 
51810
  friend class ::WinFriend;
 
51811
  friend class ::ExtAC;
 
51812
  friend class ::ExtACBuilderCoupling;
 
51813
  friend class ::ExtACSyntaxCoupling;
 
51814
  friend class ::ExtACTree;
 
51815
  friend class ::ExtACKeywords;
 
51816
  friend class ::ExtGnu;
 
51817
  friend class ::PragmaOnceUnitState;
 
51818
  friend class ::PragmaOnce;
 
51819
  friend class ::CMatchSyntax;
 
51820
 
 
51821
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51822
 
 
51823
  CTree *sons[3]; // catch, exception_decl, stmt
 
51824
 
 
51825
public:
 
51826
  CT_Handler (CTree *c, CTree *e, CTree *s) {
 
51827
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
 
51828
  }
 
51829
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
51830
  static const char *NodeId ();
 
51831
  /** Get the name of the node. Can be compared with NodeId(). */
 
51832
  const char *NodeName () const { return NodeId (); }
 
51833
  /** Get the number of sons. */
 
51834
  int Sons () const { return 3; }
 
51835
  /** Get the n-th son.
 
51836
   *  \param n The index of the son.
 
51837
   *  \return The n-th son or NULL. */
 
51838
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
51839
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
51840
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
51841
  /** Replace a son.
 
51842
   *  \param old_son The son to replace.
 
51843
   *  \param new_son The new son. */
 
51844
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
51845
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
51846
  }
 
51847
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
51848
};
 
51849
 
 
51850
 
 
51851
#line 51852 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51852
} // closed Puma
 
51853
class CCExprResolve;
 
51854
class CExprResolve;
 
51855
class WinIfExists;
 
51856
class WinImportHandler;
 
51857
class WinMacros;
 
51858
class WinAsm;
 
51859
class WinDeclSpecs;
 
51860
class WinMemberExplSpec;
 
51861
class WinTypeKeywords;
 
51862
class WinFriend;
 
51863
class ExtAC;
 
51864
class ExtACBuilderCoupling;
 
51865
class ExtACSyntaxCoupling;
 
51866
class ExtACTree;
 
51867
class ExtACKeywords;
 
51868
class ExtGnu;
 
51869
class PragmaOnceUnitState;
 
51870
class PragmaOnce;
 
51871
class CMatchSyntax;
 
51872
namespace Puma {
 
51873
 
 
51874
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51875
class CT_LinkageSpec : public CT_Decl {
 
51876
#line 51877 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51877
  friend class ::CCExprResolve;
 
51878
  friend class ::CExprResolve;
 
51879
  friend class ::WinIfExists;
 
51880
  friend class ::WinImportHandler;
 
51881
  friend class ::WinMacros;
 
51882
  friend class ::WinAsm;
 
51883
  friend class ::WinDeclSpecs;
 
51884
  friend class ::WinMemberExplSpec;
 
51885
  friend class ::WinTypeKeywords;
 
51886
  friend class ::WinFriend;
 
51887
  friend class ::ExtAC;
 
51888
  friend class ::ExtACBuilderCoupling;
 
51889
  friend class ::ExtACSyntaxCoupling;
 
51890
  friend class ::ExtACTree;
 
51891
  friend class ::ExtACKeywords;
 
51892
  friend class ::ExtGnu;
 
51893
  friend class ::PragmaOnceUnitState;
 
51894
  friend class ::PragmaOnce;
 
51895
  friend class ::CMatchSyntax;
 
51896
 
 
51897
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51898
 
 
51899
  CTree *sons[5]; // extern, str, open, decls, close
 
51900
 
 
51901
public:
 
51902
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
 
51903
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
51904
    AddSon (sons[3], d); AddSon (sons[4], c);
 
51905
    if (isList ())
 
51906
      ((CT_DeclList*)Decls ())->Linkage (this);
 
51907
    else
 
51908
      ((CT_Decl*)Decls ())->Linkage (this);
 
51909
  }
 
51910
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
51911
  static const char *NodeId ();
 
51912
  /** Get the name of the node. Can be compared with NodeId(). */
 
51913
  const char *NodeName () const { return NodeId (); }
 
51914
  /** Get the number of sons. */
 
51915
  int Sons () const { return CTree::Sons (sons, 5); }
 
51916
  /** Get the n-th son.
 
51917
   *  \param n The index of the son.
 
51918
   *  \return The n-th son or NULL. */
 
51919
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
51920
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
 
51921
  CTree *Decls () const { return sons[3]; }
 
51922
  bool isList () const {
 
51923
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
 
51924
  }
 
51925
  /** Replace a son.
 
51926
   *  \param old_son The son to replace.
 
51927
   *  \param new_son The new son. */
 
51928
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
51929
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
51930
  }
 
51931
};
 
51932
 
 
51933
 
 
51934
#line 51935 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51935
} // closed Puma
 
51936
class CCExprResolve;
 
51937
class CExprResolve;
 
51938
class WinIfExists;
 
51939
class WinImportHandler;
 
51940
class WinMacros;
 
51941
class WinAsm;
 
51942
class WinDeclSpecs;
 
51943
class WinMemberExplSpec;
 
51944
class WinTypeKeywords;
 
51945
class WinFriend;
 
51946
class ExtAC;
 
51947
class ExtACBuilderCoupling;
 
51948
class ExtACSyntaxCoupling;
 
51949
class ExtACTree;
 
51950
class ExtACKeywords;
 
51951
class ExtGnu;
 
51952
class PragmaOnceUnitState;
 
51953
class PragmaOnce;
 
51954
class CMatchSyntax;
 
51955
namespace Puma {
 
51956
 
 
51957
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51958
class CT_ArgDecl : public CT_Decl, public CSemObject {
 
51959
#line 51960 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
51960
  friend class ::CCExprResolve;
 
51961
  friend class ::CExprResolve;
 
51962
  friend class ::WinIfExists;
 
51963
  friend class ::WinImportHandler;
 
51964
  friend class ::WinMacros;
 
51965
  friend class ::WinAsm;
 
51966
  friend class ::WinDeclSpecs;
 
51967
  friend class ::WinMemberExplSpec;
 
51968
  friend class ::WinTypeKeywords;
 
51969
  friend class ::WinFriend;
 
51970
  friend class ::ExtAC;
 
51971
  friend class ::ExtACBuilderCoupling;
 
51972
  friend class ::ExtACSyntaxCoupling;
 
51973
  friend class ::ExtACTree;
 
51974
  friend class ::ExtACKeywords;
 
51975
  friend class ::ExtGnu;
 
51976
  friend class ::PragmaOnceUnitState;
 
51977
  friend class ::PragmaOnce;
 
51978
  friend class ::CMatchSyntax;
 
51979
 
 
51980
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51981
 
 
51982
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
 
51983
 
 
51984
public:
 
51985
  CT_ArgDecl (CTree *dsl, CTree *d) {
 
51986
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
51987
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
 
51988
  }
 
51989
  CT_ArgDecl (CTree *ellipsis) {
 
51990
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
51991
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
 
51992
  }
 
51993
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
51994
  static const char *NodeId ();
 
51995
  /** Get the name of the node. Can be compared with NodeId(). */
 
51996
  const char *NodeName () const { return NodeId (); }
 
51997
  /** Get the number of sons. */
 
51998
  int Sons () const { return CTree::Sons (sons, 4); }
 
51999
  /** Get the n-th son.
 
52000
   *  \param n The index of the son.
 
52001
   *  \return The n-th son or NULL. */
 
52002
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
52003
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
52004
  CTree *Declarator () const { return sons[1]; }
 
52005
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
52006
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
 
52007
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
52008
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
52009
  /** Replace a son.
 
52010
   *  \param old_son The son to replace.
 
52011
   *  \param new_son The new son. */
 
52012
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
52013
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
52014
  }
 
52015
};
 
52016
 
 
52017
 
 
52018
#line 52019 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52019
} // closed Puma
 
52020
class CCExprResolve;
 
52021
class CExprResolve;
 
52022
class WinIfExists;
 
52023
class WinImportHandler;
 
52024
class WinMacros;
 
52025
class WinAsm;
 
52026
class WinDeclSpecs;
 
52027
class WinMemberExplSpec;
 
52028
class WinTypeKeywords;
 
52029
class WinFriend;
 
52030
class ExtAC;
 
52031
class ExtACBuilderCoupling;
 
52032
class ExtACSyntaxCoupling;
 
52033
class ExtACTree;
 
52034
class ExtACKeywords;
 
52035
class ExtGnu;
 
52036
class PragmaOnceUnitState;
 
52037
class PragmaOnce;
 
52038
class CMatchSyntax;
 
52039
namespace Puma {
 
52040
 
 
52041
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52042
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
 
52043
#line 52044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52044
  friend class ::CCExprResolve;
 
52045
  friend class ::CExprResolve;
 
52046
  friend class ::WinIfExists;
 
52047
  friend class ::WinImportHandler;
 
52048
  friend class ::WinMacros;
 
52049
  friend class ::WinAsm;
 
52050
  friend class ::WinDeclSpecs;
 
52051
  friend class ::WinMemberExplSpec;
 
52052
  friend class ::WinTypeKeywords;
 
52053
  friend class ::WinFriend;
 
52054
  friend class ::ExtAC;
 
52055
  friend class ::ExtACBuilderCoupling;
 
52056
  friend class ::ExtACSyntaxCoupling;
 
52057
  friend class ::ExtACTree;
 
52058
  friend class ::ExtACKeywords;
 
52059
  friend class ::ExtGnu;
 
52060
  friend class ::PragmaOnceUnitState;
 
52061
  friend class ::PragmaOnce;
 
52062
  friend class ::CMatchSyntax;
 
52063
 
 
52064
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52065
 
 
52066
public:
 
52067
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
 
52068
   CT_DeclList (size, 2) { AddProperties (props); }
 
52069
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
52070
  static const char *NodeId ();
 
52071
  /** Get the name of the node. Can be compared with NodeId(). */
 
52072
  const char *NodeName () const { return NodeId (); }
 
52073
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
52074
};
 
52075
 
 
52076
 
 
52077
#line 52078 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52078
} // closed Puma
 
52079
class CCExprResolve;
 
52080
class CExprResolve;
 
52081
class WinIfExists;
 
52082
class WinImportHandler;
 
52083
class WinMacros;
 
52084
class WinAsm;
 
52085
class WinDeclSpecs;
 
52086
class WinMemberExplSpec;
 
52087
class WinTypeKeywords;
 
52088
class WinFriend;
 
52089
class ExtAC;
 
52090
class ExtACBuilderCoupling;
 
52091
class ExtACSyntaxCoupling;
 
52092
class ExtACTree;
 
52093
class ExtACKeywords;
 
52094
class ExtGnu;
 
52095
class PragmaOnceUnitState;
 
52096
class PragmaOnce;
 
52097
class CMatchSyntax;
 
52098
namespace Puma {
 
52099
 
 
52100
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52101
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
 
52102
#line 52103 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52103
  friend class ::CCExprResolve;
 
52104
  friend class ::CExprResolve;
 
52105
  friend class ::WinIfExists;
 
52106
  friend class ::WinImportHandler;
 
52107
  friend class ::WinMacros;
 
52108
  friend class ::WinAsm;
 
52109
  friend class ::WinDeclSpecs;
 
52110
  friend class ::WinMemberExplSpec;
 
52111
  friend class ::WinTypeKeywords;
 
52112
  friend class ::WinFriend;
 
52113
  friend class ::ExtAC;
 
52114
  friend class ::ExtACBuilderCoupling;
 
52115
  friend class ::ExtACSyntaxCoupling;
 
52116
  friend class ::ExtACTree;
 
52117
  friend class ::ExtACKeywords;
 
52118
  friend class ::ExtGnu;
 
52119
  friend class ::PragmaOnceUnitState;
 
52120
  friend class ::PragmaOnce;
 
52121
  friend class ::CMatchSyntax;
 
52122
 
 
52123
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52124
 
 
52125
public:
 
52126
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
52127
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
52128
  static const char *NodeId ();
 
52129
  /** Get the name of the node. Can be compared with NodeId(). */
 
52130
  const char *NodeName () const { return NodeId (); }
 
52131
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
52132
};
 
52133
 
 
52134
 
 
52135
#line 52136 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52136
} // closed Puma
 
52137
class CCExprResolve;
 
52138
class CExprResolve;
 
52139
class WinIfExists;
 
52140
class WinImportHandler;
 
52141
class WinMacros;
 
52142
class WinAsm;
 
52143
class WinDeclSpecs;
 
52144
class WinMemberExplSpec;
 
52145
class WinTypeKeywords;
 
52146
class WinFriend;
 
52147
class ExtAC;
 
52148
class ExtACBuilderCoupling;
 
52149
class ExtACSyntaxCoupling;
 
52150
class ExtACTree;
 
52151
class ExtACKeywords;
 
52152
class ExtGnu;
 
52153
class PragmaOnceUnitState;
 
52154
class PragmaOnce;
 
52155
class CMatchSyntax;
 
52156
namespace Puma {
 
52157
 
 
52158
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52159
class CT_ArgNameList : public CT_ArgDeclList {
 
52160
#line 52161 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52161
  friend class ::CCExprResolve;
 
52162
  friend class ::CExprResolve;
 
52163
  friend class ::WinIfExists;
 
52164
  friend class ::WinImportHandler;
 
52165
  friend class ::WinMacros;
 
52166
  friend class ::WinAsm;
 
52167
  friend class ::WinDeclSpecs;
 
52168
  friend class ::WinMemberExplSpec;
 
52169
  friend class ::WinTypeKeywords;
 
52170
  friend class ::WinFriend;
 
52171
  friend class ::ExtAC;
 
52172
  friend class ::ExtACBuilderCoupling;
 
52173
  friend class ::ExtACSyntaxCoupling;
 
52174
  friend class ::ExtACTree;
 
52175
  friend class ::ExtACKeywords;
 
52176
  friend class ::ExtGnu;
 
52177
  friend class ::PragmaOnceUnitState;
 
52178
  friend class ::PragmaOnce;
 
52179
  friend class ::CMatchSyntax;
 
52180
 
 
52181
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52182
 
 
52183
public:
 
52184
  CT_ArgNameList () : CT_ArgDeclList () {}
 
52185
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
52186
  static const char *NodeId ();
 
52187
  /** Get the name of the node. Can be compared with NodeId(). */
 
52188
  const char *NodeName () const { return NodeId (); }
 
52189
};
 
52190
 
 
52191
 
 
52192
#line 52193 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52193
} // closed Puma
 
52194
class CCExprResolve;
 
52195
class CExprResolve;
 
52196
class WinIfExists;
 
52197
class WinImportHandler;
 
52198
class WinMacros;
 
52199
class WinAsm;
 
52200
class WinDeclSpecs;
 
52201
class WinMemberExplSpec;
 
52202
class WinTypeKeywords;
 
52203
class WinFriend;
 
52204
class ExtAC;
 
52205
class ExtACBuilderCoupling;
 
52206
class ExtACSyntaxCoupling;
 
52207
class ExtACTree;
 
52208
class ExtACKeywords;
 
52209
class ExtGnu;
 
52210
class PragmaOnceUnitState;
 
52211
class PragmaOnce;
 
52212
class CMatchSyntax;
 
52213
namespace Puma {
 
52214
 
 
52215
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52216
class CT_NamespaceDef : public CT_Decl, public CSemObject {
 
52217
#line 52218 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52218
  friend class ::CCExprResolve;
 
52219
  friend class ::CExprResolve;
 
52220
  friend class ::WinIfExists;
 
52221
  friend class ::WinImportHandler;
 
52222
  friend class ::WinMacros;
 
52223
  friend class ::WinAsm;
 
52224
  friend class ::WinDeclSpecs;
 
52225
  friend class ::WinMemberExplSpec;
 
52226
  friend class ::WinTypeKeywords;
 
52227
  friend class ::WinFriend;
 
52228
  friend class ::ExtAC;
 
52229
  friend class ::ExtACBuilderCoupling;
 
52230
  friend class ::ExtACSyntaxCoupling;
 
52231
  friend class ::ExtACTree;
 
52232
  friend class ::ExtACKeywords;
 
52233
  friend class ::ExtGnu;
 
52234
  friend class ::PragmaOnceUnitState;
 
52235
  friend class ::PragmaOnce;
 
52236
  friend class ::CMatchSyntax;
 
52237
 
 
52238
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52239
 
 
52240
  CTree *sons[3]; // ns, name, members
 
52241
 
 
52242
public:
 
52243
  CT_NamespaceDef (CTree *n, CTree *nm) {
 
52244
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
 
52245
  }
 
52246
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
 
52247
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
 
52248
  }
 
52249
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
52250
  static const char *NodeId ();
 
52251
  /** Get the name of the node. Can be compared with NodeId(). */
 
52252
  const char *NodeName () const { return NodeId (); }
 
52253
  /** Get the number of sons. */
 
52254
  int Sons () const { return CTree::Sons (sons, 3); }
 
52255
  /** Get the n-th son.
 
52256
   *  \param n The index of the son.
 
52257
   *  \return The n-th son or NULL. */
 
52258
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
52259
  void Members (CTree *m) { AddSon (sons[2], m); }
 
52260
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
 
52261
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
52262
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
52263
  /** Replace a son.
 
52264
   *  \param old_son The son to replace.
 
52265
   *  \param new_son The new son. */
 
52266
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
52267
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
52268
  }
 
52269
};
 
52270
 
 
52271
 
 
52272
#line 52273 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52273
} // closed Puma
 
52274
class CCExprResolve;
 
52275
class CExprResolve;
 
52276
class WinIfExists;
 
52277
class WinImportHandler;
 
52278
class WinMacros;
 
52279
class WinAsm;
 
52280
class WinDeclSpecs;
 
52281
class WinMemberExplSpec;
 
52282
class WinTypeKeywords;
 
52283
class WinFriend;
 
52284
class ExtAC;
 
52285
class ExtACBuilderCoupling;
 
52286
class ExtACSyntaxCoupling;
 
52287
class ExtACTree;
 
52288
class ExtACKeywords;
 
52289
class ExtGnu;
 
52290
class PragmaOnceUnitState;
 
52291
class PragmaOnce;
 
52292
class CMatchSyntax;
 
52293
namespace Puma {
 
52294
 
 
52295
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52296
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
 
52297
#line 52298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52298
  friend class ::CCExprResolve;
 
52299
  friend class ::CExprResolve;
 
52300
  friend class ::WinIfExists;
 
52301
  friend class ::WinImportHandler;
 
52302
  friend class ::WinMacros;
 
52303
  friend class ::WinAsm;
 
52304
  friend class ::WinDeclSpecs;
 
52305
  friend class ::WinMemberExplSpec;
 
52306
  friend class ::WinTypeKeywords;
 
52307
  friend class ::WinFriend;
 
52308
  friend class ::ExtAC;
 
52309
  friend class ::ExtACBuilderCoupling;
 
52310
  friend class ::ExtACSyntaxCoupling;
 
52311
  friend class ::ExtACTree;
 
52312
  friend class ::ExtACKeywords;
 
52313
  friend class ::ExtGnu;
 
52314
  friend class ::PragmaOnceUnitState;
 
52315
  friend class ::PragmaOnce;
 
52316
  friend class ::CMatchSyntax;
 
52317
 
 
52318
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52319
 
 
52320
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
 
52321
 
 
52322
public:
 
52323
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
 
52324
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
52325
    AddSon (sons[3], nm); AddSon (sons[4], s); 
 
52326
  }
 
52327
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
52328
  static const char *NodeId ();
 
52329
  /** Get the name of the node. Can be compared with NodeId(). */
 
52330
  const char *NodeName () const { return NodeId (); }
 
52331
  /** Get the number of sons. */
 
52332
  int Sons () const { return 5; }
 
52333
  /** Get the n-th son.
 
52334
   *  \param n The index of the son.
 
52335
   *  \return The n-th son or NULL. */
 
52336
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
52337
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
 
52338
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
 
52339
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
52340
  /** Replace a son.
 
52341
   *  \param old_son The son to replace.
 
52342
   *  \param new_son The new son. */
 
52343
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
52344
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
52345
  }
 
52346
};
 
52347
 
 
52348
 
 
52349
#line 52350 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52350
} // closed Puma
 
52351
class CCExprResolve;
 
52352
class CExprResolve;
 
52353
class WinIfExists;
 
52354
class WinImportHandler;
 
52355
class WinMacros;
 
52356
class WinAsm;
 
52357
class WinDeclSpecs;
 
52358
class WinMemberExplSpec;
 
52359
class WinTypeKeywords;
 
52360
class WinFriend;
 
52361
class ExtAC;
 
52362
class ExtACBuilderCoupling;
 
52363
class ExtACSyntaxCoupling;
 
52364
class ExtACTree;
 
52365
class ExtACKeywords;
 
52366
class ExtGnu;
 
52367
class PragmaOnceUnitState;
 
52368
class PragmaOnce;
 
52369
class CMatchSyntax;
 
52370
namespace Puma {
 
52371
 
 
52372
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52373
class CT_UsingDirective : public CT_Decl {
 
52374
#line 52375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52375
  friend class ::CCExprResolve;
 
52376
  friend class ::CExprResolve;
 
52377
  friend class ::WinIfExists;
 
52378
  friend class ::WinImportHandler;
 
52379
  friend class ::WinMacros;
 
52380
  friend class ::WinAsm;
 
52381
  friend class ::WinDeclSpecs;
 
52382
  friend class ::WinMemberExplSpec;
 
52383
  friend class ::WinTypeKeywords;
 
52384
  friend class ::WinFriend;
 
52385
  friend class ::ExtAC;
 
52386
  friend class ::ExtACBuilderCoupling;
 
52387
  friend class ::ExtACSyntaxCoupling;
 
52388
  friend class ::ExtACTree;
 
52389
  friend class ::ExtACKeywords;
 
52390
  friend class ::ExtGnu;
 
52391
  friend class ::PragmaOnceUnitState;
 
52392
  friend class ::PragmaOnce;
 
52393
  friend class ::CMatchSyntax;
 
52394
 
 
52395
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52396
 
 
52397
  CTree *sons[4]; // using, ns, name, semi_colon
 
52398
 
 
52399
public:
 
52400
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
 
52401
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
52402
    AddSon (sons[3], s); 
 
52403
  }
 
52404
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
52405
  static const char *NodeId ();
 
52406
  /** Get the name of the node. Can be compared with NodeId(). */
 
52407
  const char *NodeName () const { return NodeId (); }
 
52408
  /** Get the number of sons. */
 
52409
  int Sons () const { return 4; }
 
52410
  /** Get the n-th son.
 
52411
   *  \param n The index of the son.
 
52412
   *  \return The n-th son or NULL. */
 
52413
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
52414
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
52415
  /** Replace a son.
 
52416
   *  \param old_son The son to replace.
 
52417
   *  \param new_son The new son. */
 
52418
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
52419
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
52420
  }
 
52421
};
 
52422
 
 
52423
/*****************************************************************************/
 
52424
/*                                                                           */
 
52425
/*                              Declarators                                  */
 
52426
/*                                                                           */
 
52427
/*****************************************************************************/
 
52428
 
 
52429
 
 
52430
#line 52431 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52431
} // closed Puma
 
52432
class CCExprResolve;
 
52433
class CExprResolve;
 
52434
class WinIfExists;
 
52435
class WinImportHandler;
 
52436
class WinMacros;
 
52437
class WinAsm;
 
52438
class WinDeclSpecs;
 
52439
class WinMemberExplSpec;
 
52440
class WinTypeKeywords;
 
52441
class WinFriend;
 
52442
class ExtAC;
 
52443
class ExtACBuilderCoupling;
 
52444
class ExtACSyntaxCoupling;
 
52445
class ExtACTree;
 
52446
class ExtACKeywords;
 
52447
class ExtGnu;
 
52448
class PragmaOnceUnitState;
 
52449
class PragmaOnce;
 
52450
class CMatchSyntax;
 
52451
namespace Puma {
 
52452
 
 
52453
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52454
class CT_Declarator : public CTree {
 
52455
#line 52456 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52456
  friend class ::CCExprResolve;
 
52457
  friend class ::CExprResolve;
 
52458
  friend class ::WinIfExists;
 
52459
  friend class ::WinImportHandler;
 
52460
  friend class ::WinMacros;
 
52461
  friend class ::WinAsm;
 
52462
  friend class ::WinDeclSpecs;
 
52463
  friend class ::WinMemberExplSpec;
 
52464
  friend class ::WinTypeKeywords;
 
52465
  friend class ::WinFriend;
 
52466
  friend class ::ExtAC;
 
52467
  friend class ::ExtACBuilderCoupling;
 
52468
  friend class ::ExtACSyntaxCoupling;
 
52469
  friend class ::ExtACTree;
 
52470
  friend class ::ExtACKeywords;
 
52471
  friend class ::ExtGnu;
 
52472
  friend class ::PragmaOnceUnitState;
 
52473
  friend class ::PragmaOnce;
 
52474
  friend class ::CMatchSyntax;
 
52475
 
 
52476
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52477
 
 
52478
protected:
 
52479
  CT_Declarator () {}
 
52480
 
 
52481
public:
 
52482
  virtual CTree *Declarator () const = 0;
 
52483
  //classification function
 
52484
  virtual CT_Declarator *IsDeclarator () { return this; }
 
52485
  // locate the name node
 
52486
  CT_SimpleName *Name ();
 
52487
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
 
52488
};
 
52489
 
 
52490
 
 
52491
#line 52492 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52492
} // closed Puma
 
52493
class CCExprResolve;
 
52494
class CExprResolve;
 
52495
class WinIfExists;
 
52496
class WinImportHandler;
 
52497
class WinMacros;
 
52498
class WinAsm;
 
52499
class WinDeclSpecs;
 
52500
class WinMemberExplSpec;
 
52501
class WinTypeKeywords;
 
52502
class WinFriend;
 
52503
class ExtAC;
 
52504
class ExtACBuilderCoupling;
 
52505
class ExtACSyntaxCoupling;
 
52506
class ExtACTree;
 
52507
class ExtACKeywords;
 
52508
class ExtGnu;
 
52509
class PragmaOnceUnitState;
 
52510
class PragmaOnce;
 
52511
class CMatchSyntax;
 
52512
namespace Puma {
 
52513
 
 
52514
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52515
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
 
52516
#line 52517 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52517
  friend class ::CCExprResolve;
 
52518
  friend class ::CExprResolve;
 
52519
  friend class ::WinIfExists;
 
52520
  friend class ::WinImportHandler;
 
52521
  friend class ::WinMacros;
 
52522
  friend class ::WinAsm;
 
52523
  friend class ::WinDeclSpecs;
 
52524
  friend class ::WinMemberExplSpec;
 
52525
  friend class ::WinTypeKeywords;
 
52526
  friend class ::WinFriend;
 
52527
  friend class ::ExtAC;
 
52528
  friend class ::ExtACBuilderCoupling;
 
52529
  friend class ::ExtACSyntaxCoupling;
 
52530
  friend class ::ExtACTree;
 
52531
  friend class ::ExtACKeywords;
 
52532
  friend class ::ExtGnu;
 
52533
  friend class ::PragmaOnceUnitState;
 
52534
  friend class ::PragmaOnce;
 
52535
  friend class ::CMatchSyntax;
 
52536
 
 
52537
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52538
 
 
52539
  CTree *sons[3]; // declarator, ext, init
 
52540
  CTree *obj_decl;
 
52541
 
 
52542
public:
 
52543
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
52544
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
52545
    AddSon (obj_decl, 0); 
 
52546
  }
 
52547
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
52548
  static const char *NodeId ();
 
52549
  /** Get the name of the node. Can be compared with NodeId(). */
 
52550
  const char *NodeName () const { return NodeId (); }
 
52551
  /** Get the number of sons. */
 
52552
  int Sons () const { return CTree::Sons (sons, 3); }
 
52553
  /** Get the n-th son.
 
52554
   *  \param n The index of the son.
 
52555
   *  \return The n-th son or NULL. */
 
52556
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
52557
  CTree *Declarator () const { return sons[0]; }
 
52558
  CTree *Extension () const { return sons[1]; }
 
52559
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
52560
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
52561
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
52562
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
52563
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
52564
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
52565
  /** Replace a son.
 
52566
   *  \param old_son The son to replace.
 
52567
   *  \param new_son The new son. */
 
52568
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
52569
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
52570
  }
 
52571
};
 
52572
 
 
52573
 
 
52574
#line 52575 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52575
} // closed Puma
 
52576
class CCExprResolve;
 
52577
class CExprResolve;
 
52578
class WinIfExists;
 
52579
class WinImportHandler;
 
52580
class WinMacros;
 
52581
class WinAsm;
 
52582
class WinDeclSpecs;
 
52583
class WinMemberExplSpec;
 
52584
class WinTypeKeywords;
 
52585
class WinFriend;
 
52586
class ExtAC;
 
52587
class ExtACBuilderCoupling;
 
52588
class ExtACSyntaxCoupling;
 
52589
class ExtACTree;
 
52590
class ExtACKeywords;
 
52591
class ExtGnu;
 
52592
class PragmaOnceUnitState;
 
52593
class PragmaOnce;
 
52594
class CMatchSyntax;
 
52595
namespace Puma {
 
52596
 
 
52597
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52598
class CT_BracedDeclarator : public CT_Declarator {
 
52599
#line 52600 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52600
  friend class ::CCExprResolve;
 
52601
  friend class ::CExprResolve;
 
52602
  friend class ::WinIfExists;
 
52603
  friend class ::WinImportHandler;
 
52604
  friend class ::WinMacros;
 
52605
  friend class ::WinAsm;
 
52606
  friend class ::WinDeclSpecs;
 
52607
  friend class ::WinMemberExplSpec;
 
52608
  friend class ::WinTypeKeywords;
 
52609
  friend class ::WinFriend;
 
52610
  friend class ::ExtAC;
 
52611
  friend class ::ExtACBuilderCoupling;
 
52612
  friend class ::ExtACSyntaxCoupling;
 
52613
  friend class ::ExtACTree;
 
52614
  friend class ::ExtACKeywords;
 
52615
  friend class ::ExtGnu;
 
52616
  friend class ::PragmaOnceUnitState;
 
52617
  friend class ::PragmaOnce;
 
52618
  friend class ::CMatchSyntax;
 
52619
 
 
52620
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52621
 
 
52622
  CTree *sons[4]; // open, win_specs, declarator, close
 
52623
 
 
52624
public:
 
52625
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
 
52626
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
52627
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
52628
  }
 
52629
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
 
52630
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
52631
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
52632
  }
 
52633
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
52634
  static const char *NodeId ();
 
52635
  /** Get the name of the node. Can be compared with NodeId(). */
 
52636
  const char *NodeName () const { return NodeId (); }
 
52637
  /** Get the number of sons. */
 
52638
  int Sons () const { return CTree::Sons (sons, 4); }
 
52639
  /** Get the n-th son.
 
52640
   *  \param n The index of the son.
 
52641
   *  \return The n-th son or NULL. */
 
52642
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
52643
  CTree *Declarator () const { return sons[2]; }
 
52644
  /** Replace a son.
 
52645
   *  \param old_son The son to replace.
 
52646
   *  \param new_son The new son. */
 
52647
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
52648
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
52649
  }
 
52650
};
 
52651
 
 
52652
 
 
52653
#line 52654 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52654
} // closed Puma
 
52655
class CCExprResolve;
 
52656
class CExprResolve;
 
52657
class WinIfExists;
 
52658
class WinImportHandler;
 
52659
class WinMacros;
 
52660
class WinAsm;
 
52661
class WinDeclSpecs;
 
52662
class WinMemberExplSpec;
 
52663
class WinTypeKeywords;
 
52664
class WinFriend;
 
52665
class ExtAC;
 
52666
class ExtACBuilderCoupling;
 
52667
class ExtACSyntaxCoupling;
 
52668
class ExtACTree;
 
52669
class ExtACKeywords;
 
52670
class ExtGnu;
 
52671
class PragmaOnceUnitState;
 
52672
class PragmaOnce;
 
52673
class CMatchSyntax;
 
52674
namespace Puma {
 
52675
 
 
52676
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52677
class CT_ArrayDelimiter : public CTree {
 
52678
#line 52679 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52679
  friend class ::CCExprResolve;
 
52680
  friend class ::CExprResolve;
 
52681
  friend class ::WinIfExists;
 
52682
  friend class ::WinImportHandler;
 
52683
  friend class ::WinMacros;
 
52684
  friend class ::WinAsm;
 
52685
  friend class ::WinDeclSpecs;
 
52686
  friend class ::WinMemberExplSpec;
 
52687
  friend class ::WinTypeKeywords;
 
52688
  friend class ::WinFriend;
 
52689
  friend class ::ExtAC;
 
52690
  friend class ::ExtACBuilderCoupling;
 
52691
  friend class ::ExtACSyntaxCoupling;
 
52692
  friend class ::ExtACTree;
 
52693
  friend class ::ExtACKeywords;
 
52694
  friend class ::ExtGnu;
 
52695
  friend class ::PragmaOnceUnitState;
 
52696
  friend class ::PragmaOnce;
 
52697
  friend class ::CMatchSyntax;
 
52698
 
 
52699
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52700
 
 
52701
  CTree *sons[4]; // star, static, quals, expr
 
52702
  bool pos0;
 
52703
 
 
52704
public:
 
52705
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
 
52706
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
52707
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
 
52708
  }
 
52709
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
52710
  static const char *NodeId ();
 
52711
  /** Get the name of the node. Can be compared with NodeId(). */
 
52712
  const char *NodeName () const { return NodeId (); }
 
52713
  /** Get the number of sons. */
 
52714
  int Sons () const { return CTree::Sons (sons, 4); }
 
52715
  /** Get the n-th son.
 
52716
   *  \param n The index of the son.
 
52717
   *  \return The n-th son or NULL. */
 
52718
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
52719
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
 
52720
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
 
52721
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
 
52722
  CTree *Expr () const { return sons[3]; }
 
52723
  /** Replace a son.
 
52724
   *  \param old_son The son to replace.
 
52725
   *  \param new_son The new son. */
 
52726
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
52727
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
52728
  }
 
52729
};
 
52730
 
 
52731
 
 
52732
#line 52733 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52733
} // closed Puma
 
52734
class CCExprResolve;
 
52735
class CExprResolve;
 
52736
class WinIfExists;
 
52737
class WinImportHandler;
 
52738
class WinMacros;
 
52739
class WinAsm;
 
52740
class WinDeclSpecs;
 
52741
class WinMemberExplSpec;
 
52742
class WinTypeKeywords;
 
52743
class WinFriend;
 
52744
class ExtAC;
 
52745
class ExtACBuilderCoupling;
 
52746
class ExtACSyntaxCoupling;
 
52747
class ExtACTree;
 
52748
class ExtACKeywords;
 
52749
class ExtGnu;
 
52750
class PragmaOnceUnitState;
 
52751
class PragmaOnce;
 
52752
class CMatchSyntax;
 
52753
namespace Puma {
 
52754
 
 
52755
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52756
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
 
52757
#line 52758 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52758
  friend class ::CCExprResolve;
 
52759
  friend class ::CExprResolve;
 
52760
  friend class ::WinIfExists;
 
52761
  friend class ::WinImportHandler;
 
52762
  friend class ::WinMacros;
 
52763
  friend class ::WinAsm;
 
52764
  friend class ::WinDeclSpecs;
 
52765
  friend class ::WinMemberExplSpec;
 
52766
  friend class ::WinTypeKeywords;
 
52767
  friend class ::WinFriend;
 
52768
  friend class ::ExtAC;
 
52769
  friend class ::ExtACBuilderCoupling;
 
52770
  friend class ::ExtACSyntaxCoupling;
 
52771
  friend class ::ExtACTree;
 
52772
  friend class ::ExtACKeywords;
 
52773
  friend class ::ExtGnu;
 
52774
  friend class ::PragmaOnceUnitState;
 
52775
  friend class ::PragmaOnce;
 
52776
  friend class ::CMatchSyntax;
 
52777
 
 
52778
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52779
 
 
52780
  CTree *sons[4]; // declarator, open, delim, close
 
52781
 
 
52782
public:
 
52783
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
 
52784
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
52785
    AddSon (sons[2], ad); AddSon (sons[3], c); 
 
52786
  }
 
52787
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
52788
  static const char *NodeId ();
 
52789
  /** Get the name of the node. Can be compared with NodeId(). */
 
52790
  const char *NodeName () const { return NodeId (); }
 
52791
  /** Get the number of sons. */
 
52792
  int Sons () const { return 4; }
 
52793
  /** Get the n-th son.
 
52794
   *  \param n The index of the son.
 
52795
   *  \return The n-th son or NULL. */
 
52796
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
52797
  CTree *Declarator () const { return sons[0]; }
 
52798
  CT_ArrayDelimiter *Delimiter () const 
 
52799
   { return (CT_ArrayDelimiter*)sons[2]; }
 
52800
  /** Replace a son.
 
52801
   *  \param old_son The son to replace.
 
52802
   *  \param new_son The new son. */
 
52803
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
52804
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
52805
  }
 
52806
  CTypeInfo *Type () const { return type; }
 
52807
  CExprValue *Value () const { return value; }
 
52808
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
52809
};
 
52810
 
 
52811
 
 
52812
#line 52813 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52813
} // closed Puma
 
52814
class CCExprResolve;
 
52815
class CExprResolve;
 
52816
class WinIfExists;
 
52817
class WinImportHandler;
 
52818
class WinMacros;
 
52819
class WinAsm;
 
52820
class WinDeclSpecs;
 
52821
class WinMemberExplSpec;
 
52822
class WinTypeKeywords;
 
52823
class WinFriend;
 
52824
class ExtAC;
 
52825
class ExtACBuilderCoupling;
 
52826
class ExtACSyntaxCoupling;
 
52827
class ExtACTree;
 
52828
class ExtACKeywords;
 
52829
class ExtGnu;
 
52830
class PragmaOnceUnitState;
 
52831
class PragmaOnce;
 
52832
class CMatchSyntax;
 
52833
namespace Puma {
 
52834
 
 
52835
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52836
class CT_FctDeclarator : public CT_Declarator {
 
52837
#line 52838 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52838
  friend class ::CCExprResolve;
 
52839
  friend class ::CExprResolve;
 
52840
  friend class ::WinIfExists;
 
52841
  friend class ::WinImportHandler;
 
52842
  friend class ::WinMacros;
 
52843
  friend class ::WinAsm;
 
52844
  friend class ::WinDeclSpecs;
 
52845
  friend class ::WinMemberExplSpec;
 
52846
  friend class ::WinTypeKeywords;
 
52847
  friend class ::WinFriend;
 
52848
  friend class ::ExtAC;
 
52849
  friend class ::ExtACBuilderCoupling;
 
52850
  friend class ::ExtACSyntaxCoupling;
 
52851
  friend class ::ExtACTree;
 
52852
  friend class ::ExtACKeywords;
 
52853
  friend class ::ExtGnu;
 
52854
  friend class ::PragmaOnceUnitState;
 
52855
  friend class ::PragmaOnce;
 
52856
  friend class ::CMatchSyntax;
 
52857
 
 
52858
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52859
 
 
52860
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
 
52861
 
 
52862
public:
 
52863
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
 
52864
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
52865
    AddSon (sons[2], cv); AddSon (sons[3], es); 
 
52866
  }
 
52867
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
52868
  static const char *NodeId ();
 
52869
  /** Get the name of the node. Can be compared with NodeId(). */
 
52870
  const char *NodeName () const { return NodeId (); }
 
52871
  /** Get the number of sons. */
 
52872
  int Sons () const { return CTree::Sons (sons, 4); }
 
52873
  /** Get the n-th son.
 
52874
   *  \param n The index of the son.
 
52875
   *  \return The n-th son or NULL. */
 
52876
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
52877
  CTree *Declarator () const { return sons[0]; }
 
52878
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
52879
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
 
52880
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
52881
  /** Replace a son.
 
52882
   *  \param old_son The son to replace.
 
52883
   *  \param new_son The new son. */
 
52884
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
52885
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
52886
  }
 
52887
};
 
52888
 
 
52889
 
 
52890
#line 52891 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52891
} // closed Puma
 
52892
class CCExprResolve;
 
52893
class CExprResolve;
 
52894
class WinIfExists;
 
52895
class WinImportHandler;
 
52896
class WinMacros;
 
52897
class WinAsm;
 
52898
class WinDeclSpecs;
 
52899
class WinMemberExplSpec;
 
52900
class WinTypeKeywords;
 
52901
class WinFriend;
 
52902
class ExtAC;
 
52903
class ExtACBuilderCoupling;
 
52904
class ExtACSyntaxCoupling;
 
52905
class ExtACTree;
 
52906
class ExtACKeywords;
 
52907
class ExtGnu;
 
52908
class PragmaOnceUnitState;
 
52909
class PragmaOnce;
 
52910
class CMatchSyntax;
 
52911
namespace Puma {
 
52912
 
 
52913
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52914
class CT_RefDeclarator : public CT_Declarator {
 
52915
#line 52916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52916
  friend class ::CCExprResolve;
 
52917
  friend class ::CExprResolve;
 
52918
  friend class ::WinIfExists;
 
52919
  friend class ::WinImportHandler;
 
52920
  friend class ::WinMacros;
 
52921
  friend class ::WinAsm;
 
52922
  friend class ::WinDeclSpecs;
 
52923
  friend class ::WinMemberExplSpec;
 
52924
  friend class ::WinTypeKeywords;
 
52925
  friend class ::WinFriend;
 
52926
  friend class ::ExtAC;
 
52927
  friend class ::ExtACBuilderCoupling;
 
52928
  friend class ::ExtACSyntaxCoupling;
 
52929
  friend class ::ExtACTree;
 
52930
  friend class ::ExtACKeywords;
 
52931
  friend class ::ExtGnu;
 
52932
  friend class ::PragmaOnceUnitState;
 
52933
  friend class ::PragmaOnce;
 
52934
  friend class ::CMatchSyntax;
 
52935
 
 
52936
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52937
 
 
52938
  CTree *sons[2]; // ref, declarator
 
52939
 
 
52940
public:
 
52941
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
52942
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
52943
  static const char *NodeId ();
 
52944
  /** Get the name of the node. Can be compared with NodeId(). */
 
52945
  const char *NodeName () const { return NodeId (); }
 
52946
  /** Get the number of sons. */
 
52947
  int Sons () const { return 2; }
 
52948
  /** Get the n-th son.
 
52949
   *  \param n The index of the son.
 
52950
   *  \return The n-th son or NULL. */
 
52951
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
52952
  CTree *Declarator () const { return sons[1]; }
 
52953
  /** Replace a son.
 
52954
   *  \param old_son The son to replace.
 
52955
   *  \param new_son The new son. */
 
52956
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
52957
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
52958
  }
 
52959
};
 
52960
 
 
52961
 
 
52962
#line 52963 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52963
} // closed Puma
 
52964
class CCExprResolve;
 
52965
class CExprResolve;
 
52966
class WinIfExists;
 
52967
class WinImportHandler;
 
52968
class WinMacros;
 
52969
class WinAsm;
 
52970
class WinDeclSpecs;
 
52971
class WinMemberExplSpec;
 
52972
class WinTypeKeywords;
 
52973
class WinFriend;
 
52974
class ExtAC;
 
52975
class ExtACBuilderCoupling;
 
52976
class ExtACSyntaxCoupling;
 
52977
class ExtACTree;
 
52978
class ExtACKeywords;
 
52979
class ExtGnu;
 
52980
class PragmaOnceUnitState;
 
52981
class PragmaOnce;
 
52982
class CMatchSyntax;
 
52983
namespace Puma {
 
52984
 
 
52985
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52986
class CT_PtrDeclarator : public CT_Declarator {
 
52987
#line 52988 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
52988
  friend class ::CCExprResolve;
 
52989
  friend class ::CExprResolve;
 
52990
  friend class ::WinIfExists;
 
52991
  friend class ::WinImportHandler;
 
52992
  friend class ::WinMacros;
 
52993
  friend class ::WinAsm;
 
52994
  friend class ::WinDeclSpecs;
 
52995
  friend class ::WinMemberExplSpec;
 
52996
  friend class ::WinTypeKeywords;
 
52997
  friend class ::WinFriend;
 
52998
  friend class ::ExtAC;
 
52999
  friend class ::ExtACBuilderCoupling;
 
53000
  friend class ::ExtACSyntaxCoupling;
 
53001
  friend class ::ExtACTree;
 
53002
  friend class ::ExtACKeywords;
 
53003
  friend class ::ExtGnu;
 
53004
  friend class ::PragmaOnceUnitState;
 
53005
  friend class ::PragmaOnce;
 
53006
  friend class ::CMatchSyntax;
 
53007
 
 
53008
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53009
 
 
53010
  CTree *sons[3]; // ptr, cv_quals, declarator
 
53011
 
 
53012
public:
 
53013
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
 
53014
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
 
53015
  }
 
53016
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
53017
  static const char *NodeId ();
 
53018
  /** Get the name of the node. Can be compared with NodeId(). */
 
53019
  const char *NodeName () const { return NodeId (); }
 
53020
  /** Get the number of sons. */
 
53021
  int Sons () const { return CTree::Sons (sons, 3); }
 
53022
  /** Get the n-th son.
 
53023
   *  \param n The index of the son.
 
53024
   *  \return The n-th son or NULL. */
 
53025
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
53026
  CTree *Declarator () const { return sons[2]; }
 
53027
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
53028
  /** Replace a son.
 
53029
   *  \param old_son The son to replace.
 
53030
   *  \param new_son The new son. */
 
53031
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
53032
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
53033
  }
 
53034
};
 
53035
 
 
53036
 
 
53037
#line 53038 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53038
} // closed Puma
 
53039
class CCExprResolve;
 
53040
class CExprResolve;
 
53041
class WinIfExists;
 
53042
class WinImportHandler;
 
53043
class WinMacros;
 
53044
class WinAsm;
 
53045
class WinDeclSpecs;
 
53046
class WinMemberExplSpec;
 
53047
class WinTypeKeywords;
 
53048
class WinFriend;
 
53049
class ExtAC;
 
53050
class ExtACBuilderCoupling;
 
53051
class ExtACSyntaxCoupling;
 
53052
class ExtACTree;
 
53053
class ExtACKeywords;
 
53054
class ExtGnu;
 
53055
class PragmaOnceUnitState;
 
53056
class PragmaOnce;
 
53057
class CMatchSyntax;
 
53058
namespace Puma {
 
53059
 
 
53060
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53061
class CT_MembPtrDeclarator : public CT_Declarator {
 
53062
#line 53063 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53063
  friend class ::CCExprResolve;
 
53064
  friend class ::CExprResolve;
 
53065
  friend class ::WinIfExists;
 
53066
  friend class ::WinImportHandler;
 
53067
  friend class ::WinMacros;
 
53068
  friend class ::WinAsm;
 
53069
  friend class ::WinDeclSpecs;
 
53070
  friend class ::WinMemberExplSpec;
 
53071
  friend class ::WinTypeKeywords;
 
53072
  friend class ::WinFriend;
 
53073
  friend class ::ExtAC;
 
53074
  friend class ::ExtACBuilderCoupling;
 
53075
  friend class ::ExtACSyntaxCoupling;
 
53076
  friend class ::ExtACTree;
 
53077
  friend class ::ExtACKeywords;
 
53078
  friend class ::ExtGnu;
 
53079
  friend class ::PragmaOnceUnitState;
 
53080
  friend class ::PragmaOnce;
 
53081
  friend class ::CMatchSyntax;
 
53082
 
 
53083
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53084
 
 
53085
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
 
53086
 
 
53087
public:
 
53088
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
 
53089
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
53090
    AddSon (sons[3], q); AddSon (sons[4], d); 
 
53091
  }
 
53092
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
53093
  static const char *NodeId ();
 
53094
  /** Get the name of the node. Can be compared with NodeId(). */
 
53095
  const char *NodeName () const { return NodeId (); }
 
53096
  /** Get the number of sons. */
 
53097
  int Sons () const { return CTree::Sons (sons, 5); }
 
53098
  /** Get the n-th son.
 
53099
   *  \param n The index of the son.
 
53100
   *  \return The n-th son or NULL. */
 
53101
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
53102
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
53103
  CTree *Declarator () const { return sons[4]; }
 
53104
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
53105
  /** Replace a son.
 
53106
   *  \param old_son The son to replace.
 
53107
   *  \param new_son The new son. */
 
53108
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
53109
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
53110
  }
 
53111
};
 
53112
 
 
53113
 
 
53114
#line 53115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53115
} // closed Puma
 
53116
class CCExprResolve;
 
53117
class CExprResolve;
 
53118
class WinIfExists;
 
53119
class WinImportHandler;
 
53120
class WinMacros;
 
53121
class WinAsm;
 
53122
class WinDeclSpecs;
 
53123
class WinMemberExplSpec;
 
53124
class WinTypeKeywords;
 
53125
class WinFriend;
 
53126
class ExtAC;
 
53127
class ExtACBuilderCoupling;
 
53128
class ExtACSyntaxCoupling;
 
53129
class ExtACTree;
 
53130
class ExtACKeywords;
 
53131
class ExtGnu;
 
53132
class PragmaOnceUnitState;
 
53133
class PragmaOnce;
 
53134
class CMatchSyntax;
 
53135
namespace Puma {
 
53136
 
 
53137
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53138
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
 
53139
#line 53140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53140
  friend class ::CCExprResolve;
 
53141
  friend class ::CExprResolve;
 
53142
  friend class ::WinIfExists;
 
53143
  friend class ::WinImportHandler;
 
53144
  friend class ::WinMacros;
 
53145
  friend class ::WinAsm;
 
53146
  friend class ::WinDeclSpecs;
 
53147
  friend class ::WinMemberExplSpec;
 
53148
  friend class ::WinTypeKeywords;
 
53149
  friend class ::WinFriend;
 
53150
  friend class ::ExtAC;
 
53151
  friend class ::ExtACBuilderCoupling;
 
53152
  friend class ::ExtACSyntaxCoupling;
 
53153
  friend class ::ExtACTree;
 
53154
  friend class ::ExtACKeywords;
 
53155
  friend class ::ExtGnu;
 
53156
  friend class ::PragmaOnceUnitState;
 
53157
  friend class ::PragmaOnce;
 
53158
  friend class ::CMatchSyntax;
 
53159
 
 
53160
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53161
 
 
53162
  CTree *sons[3]; // declarator, colon, expr
 
53163
 
 
53164
public:
 
53165
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
 
53166
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
 
53167
  }
 
53168
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
53169
  static const char *NodeId ();
 
53170
  /** Get the name of the node. Can be compared with NodeId(). */
 
53171
  const char *NodeName () const { return NodeId (); }
 
53172
  /** Get the number of sons. */
 
53173
  int Sons () const { return CTree::Sons (sons, 3); }
 
53174
  /** Get the n-th son.
 
53175
   *  \param n The index of the son.
 
53176
   *  \return The n-th son or NULL. */
 
53177
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
53178
  CTree *Declarator () const { return sons[0]; }
 
53179
  CTree *Expr () const { return sons[2]; }
 
53180
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
 
53181
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
53182
  /** Replace a son.
 
53183
   *  \param old_son The son to replace.
 
53184
   *  \param new_son The new son. */
 
53185
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
53186
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
53187
  }
 
53188
};
 
53189
 
 
53190
/*****************************************************************************/
 
53191
/*                                                                           */
 
53192
/*                              Statements                                   */
 
53193
/*                                                                           */
 
53194
/*****************************************************************************/
 
53195
 
 
53196
 
 
53197
#line 53198 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53198
} // closed Puma
 
53199
class CCExprResolve;
 
53200
class CExprResolve;
 
53201
class WinIfExists;
 
53202
class WinImportHandler;
 
53203
class WinMacros;
 
53204
class WinAsm;
 
53205
class WinDeclSpecs;
 
53206
class WinMemberExplSpec;
 
53207
class WinTypeKeywords;
 
53208
class WinFriend;
 
53209
class ExtAC;
 
53210
class ExtACBuilderCoupling;
 
53211
class ExtACSyntaxCoupling;
 
53212
class ExtACTree;
 
53213
class ExtACKeywords;
 
53214
class ExtGnu;
 
53215
class PragmaOnceUnitState;
 
53216
class PragmaOnce;
 
53217
class CMatchSyntax;
 
53218
namespace Puma {
 
53219
 
 
53220
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53221
class CT_Statement : public CTree {
 
53222
#line 53223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53223
  friend class ::CCExprResolve;
 
53224
  friend class ::CExprResolve;
 
53225
  friend class ::WinIfExists;
 
53226
  friend class ::WinImportHandler;
 
53227
  friend class ::WinMacros;
 
53228
  friend class ::WinAsm;
 
53229
  friend class ::WinDeclSpecs;
 
53230
  friend class ::WinMemberExplSpec;
 
53231
  friend class ::WinTypeKeywords;
 
53232
  friend class ::WinFriend;
 
53233
  friend class ::ExtAC;
 
53234
  friend class ::ExtACBuilderCoupling;
 
53235
  friend class ::ExtACSyntaxCoupling;
 
53236
  friend class ::ExtACTree;
 
53237
  friend class ::ExtACKeywords;
 
53238
  friend class ::ExtGnu;
 
53239
  friend class ::PragmaOnceUnitState;
 
53240
  friend class ::PragmaOnce;
 
53241
  friend class ::CMatchSyntax;
 
53242
 
 
53243
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53244
 
 
53245
protected:
 
53246
  CT_Statement () {}
 
53247
  virtual CT_Statement *IsStatement () { return this; }
 
53248
};
 
53249
 
 
53250
 
 
53251
#line 53252 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53252
} // closed Puma
 
53253
class CCExprResolve;
 
53254
class CExprResolve;
 
53255
class WinIfExists;
 
53256
class WinImportHandler;
 
53257
class WinMacros;
 
53258
class WinAsm;
 
53259
class WinDeclSpecs;
 
53260
class WinMemberExplSpec;
 
53261
class WinTypeKeywords;
 
53262
class WinFriend;
 
53263
class ExtAC;
 
53264
class ExtACBuilderCoupling;
 
53265
class ExtACSyntaxCoupling;
 
53266
class ExtACTree;
 
53267
class ExtACKeywords;
 
53268
class ExtGnu;
 
53269
class PragmaOnceUnitState;
 
53270
class PragmaOnce;
 
53271
class CMatchSyntax;
 
53272
namespace Puma {
 
53273
 
 
53274
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53275
class CT_LabelStmt : public CT_Statement {
 
53276
#line 53277 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53277
  friend class ::CCExprResolve;
 
53278
  friend class ::CExprResolve;
 
53279
  friend class ::WinIfExists;
 
53280
  friend class ::WinImportHandler;
 
53281
  friend class ::WinMacros;
 
53282
  friend class ::WinAsm;
 
53283
  friend class ::WinDeclSpecs;
 
53284
  friend class ::WinMemberExplSpec;
 
53285
  friend class ::WinTypeKeywords;
 
53286
  friend class ::WinFriend;
 
53287
  friend class ::ExtAC;
 
53288
  friend class ::ExtACBuilderCoupling;
 
53289
  friend class ::ExtACSyntaxCoupling;
 
53290
  friend class ::ExtACTree;
 
53291
  friend class ::ExtACKeywords;
 
53292
  friend class ::ExtGnu;
 
53293
  friend class ::PragmaOnceUnitState;
 
53294
  friend class ::PragmaOnce;
 
53295
  friend class ::CMatchSyntax;
 
53296
 
 
53297
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53298
 
 
53299
  CTree *sons[3]; // id, colon, stmt
 
53300
 
 
53301
public:
 
53302
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
 
53303
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
53304
  }
 
53305
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
53306
  static const char *NodeId ();
 
53307
  /** Get the name of the node. Can be compared with NodeId(). */
 
53308
  const char *NodeName () const { return NodeId (); }
 
53309
  /** Get the number of sons. */
 
53310
  int Sons () const { return 3; }
 
53311
  /** Get the n-th son.
 
53312
   *  \param n The index of the son.
 
53313
   *  \return The n-th son or NULL. */
 
53314
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
53315
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
53316
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
53317
  /** Replace a son.
 
53318
   *  \param old_son The son to replace.
 
53319
   *  \param new_son The new son. */
 
53320
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
53321
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
53322
  }
 
53323
};
 
53324
 
 
53325
 
 
53326
#line 53327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53327
} // closed Puma
 
53328
class CCExprResolve;
 
53329
class CExprResolve;
 
53330
class WinIfExists;
 
53331
class WinImportHandler;
 
53332
class WinMacros;
 
53333
class WinAsm;
 
53334
class WinDeclSpecs;
 
53335
class WinMemberExplSpec;
 
53336
class WinTypeKeywords;
 
53337
class WinFriend;
 
53338
class ExtAC;
 
53339
class ExtACBuilderCoupling;
 
53340
class ExtACSyntaxCoupling;
 
53341
class ExtACTree;
 
53342
class ExtACKeywords;
 
53343
class ExtGnu;
 
53344
class PragmaOnceUnitState;
 
53345
class PragmaOnce;
 
53346
class CMatchSyntax;
 
53347
namespace Puma {
 
53348
 
 
53349
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53350
class CT_DefaultStmt : public CT_Statement {
 
53351
#line 53352 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53352
  friend class ::CCExprResolve;
 
53353
  friend class ::CExprResolve;
 
53354
  friend class ::WinIfExists;
 
53355
  friend class ::WinImportHandler;
 
53356
  friend class ::WinMacros;
 
53357
  friend class ::WinAsm;
 
53358
  friend class ::WinDeclSpecs;
 
53359
  friend class ::WinMemberExplSpec;
 
53360
  friend class ::WinTypeKeywords;
 
53361
  friend class ::WinFriend;
 
53362
  friend class ::ExtAC;
 
53363
  friend class ::ExtACBuilderCoupling;
 
53364
  friend class ::ExtACSyntaxCoupling;
 
53365
  friend class ::ExtACTree;
 
53366
  friend class ::ExtACKeywords;
 
53367
  friend class ::ExtGnu;
 
53368
  friend class ::PragmaOnceUnitState;
 
53369
  friend class ::PragmaOnce;
 
53370
  friend class ::CMatchSyntax;
 
53371
 
 
53372
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53373
 
 
53374
  CTree *sons[3]; // keyword, colon, stmt
 
53375
 
 
53376
public:
 
53377
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
 
53378
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
53379
  }
 
53380
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
53381
  static const char *NodeId ();
 
53382
  /** Get the name of the node. Can be compared with NodeId(). */
 
53383
  const char *NodeName () const { return NodeId (); }
 
53384
  /** Get the number of sons. */
 
53385
  int Sons () const { return 3; }
 
53386
  /** Get the n-th son.
 
53387
   *  \param n The index of the son.
 
53388
   *  \return The n-th son or NULL. */
 
53389
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
53390
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
53391
  /** Replace a son.
 
53392
   *  \param old_son The son to replace.
 
53393
   *  \param new_son The new son. */
 
53394
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
53395
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
53396
  }
 
53397
};
 
53398
 
 
53399
 
 
53400
#line 53401 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53401
} // closed Puma
 
53402
class CCExprResolve;
 
53403
class CExprResolve;
 
53404
class WinIfExists;
 
53405
class WinImportHandler;
 
53406
class WinMacros;
 
53407
class WinAsm;
 
53408
class WinDeclSpecs;
 
53409
class WinMemberExplSpec;
 
53410
class WinTypeKeywords;
 
53411
class WinFriend;
 
53412
class ExtAC;
 
53413
class ExtACBuilderCoupling;
 
53414
class ExtACSyntaxCoupling;
 
53415
class ExtACTree;
 
53416
class ExtACKeywords;
 
53417
class ExtGnu;
 
53418
class PragmaOnceUnitState;
 
53419
class PragmaOnce;
 
53420
class CMatchSyntax;
 
53421
namespace Puma {
 
53422
 
 
53423
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53424
class CT_TryStmt : public CT_Statement {
 
53425
#line 53426 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53426
  friend class ::CCExprResolve;
 
53427
  friend class ::CExprResolve;
 
53428
  friend class ::WinIfExists;
 
53429
  friend class ::WinImportHandler;
 
53430
  friend class ::WinMacros;
 
53431
  friend class ::WinAsm;
 
53432
  friend class ::WinDeclSpecs;
 
53433
  friend class ::WinMemberExplSpec;
 
53434
  friend class ::WinTypeKeywords;
 
53435
  friend class ::WinFriend;
 
53436
  friend class ::ExtAC;
 
53437
  friend class ::ExtACBuilderCoupling;
 
53438
  friend class ::ExtACSyntaxCoupling;
 
53439
  friend class ::ExtACTree;
 
53440
  friend class ::ExtACKeywords;
 
53441
  friend class ::ExtGnu;
 
53442
  friend class ::PragmaOnceUnitState;
 
53443
  friend class ::PragmaOnce;
 
53444
  friend class ::CMatchSyntax;
 
53445
 
 
53446
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53447
 
 
53448
  CTree *sons[3]; // try, stmt, handlers
 
53449
 
 
53450
public:
 
53451
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
 
53452
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
 
53453
  }
 
53454
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
53455
  static const char *NodeId ();
 
53456
  /** Get the name of the node. Can be compared with NodeId(). */
 
53457
  const char *NodeName () const { return NodeId (); }
 
53458
  /** Get the number of sons. */
 
53459
  int Sons () const { return 3; }
 
53460
  /** Get the n-th son.
 
53461
   *  \param n The index of the son.
 
53462
   *  \return The n-th son or NULL. */
 
53463
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
53464
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
53465
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
53466
  /** Replace a son.
 
53467
   *  \param old_son The son to replace.
 
53468
   *  \param new_son The new son. */
 
53469
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
53470
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
53471
  }
 
53472
};
 
53473
 
 
53474
 
 
53475
#line 53476 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53476
} // closed Puma
 
53477
class CCExprResolve;
 
53478
class CExprResolve;
 
53479
class WinIfExists;
 
53480
class WinImportHandler;
 
53481
class WinMacros;
 
53482
class WinAsm;
 
53483
class WinDeclSpecs;
 
53484
class WinMemberExplSpec;
 
53485
class WinTypeKeywords;
 
53486
class WinFriend;
 
53487
class ExtAC;
 
53488
class ExtACBuilderCoupling;
 
53489
class ExtACSyntaxCoupling;
 
53490
class ExtACTree;
 
53491
class ExtACKeywords;
 
53492
class ExtGnu;
 
53493
class PragmaOnceUnitState;
 
53494
class PragmaOnce;
 
53495
class CMatchSyntax;
 
53496
namespace Puma {
 
53497
 
 
53498
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53499
class CT_CaseStmt : public CT_Statement {
 
53500
#line 53501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53501
  friend class ::CCExprResolve;
 
53502
  friend class ::CExprResolve;
 
53503
  friend class ::WinIfExists;
 
53504
  friend class ::WinImportHandler;
 
53505
  friend class ::WinMacros;
 
53506
  friend class ::WinAsm;
 
53507
  friend class ::WinDeclSpecs;
 
53508
  friend class ::WinMemberExplSpec;
 
53509
  friend class ::WinTypeKeywords;
 
53510
  friend class ::WinFriend;
 
53511
  friend class ::ExtAC;
 
53512
  friend class ::ExtACBuilderCoupling;
 
53513
  friend class ::ExtACSyntaxCoupling;
 
53514
  friend class ::ExtACTree;
 
53515
  friend class ::ExtACKeywords;
 
53516
  friend class ::ExtGnu;
 
53517
  friend class ::PragmaOnceUnitState;
 
53518
  friend class ::PragmaOnce;
 
53519
  friend class ::CMatchSyntax;
 
53520
 
 
53521
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53522
 
 
53523
  CTree *sons[4]; // keyword, expr, colon, stmt
 
53524
 
 
53525
public:
 
53526
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
 
53527
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
53528
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
 
53529
  }
 
53530
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
53531
  static const char *NodeId ();
 
53532
  /** Get the name of the node. Can be compared with NodeId(). */
 
53533
  const char *NodeName () const { return NodeId (); }
 
53534
  /** Get the number of sons. */
 
53535
  int Sons () const { return 4; }
 
53536
  /** Get the n-th son.
 
53537
   *  \param n The index of the son.
 
53538
   *  \return The n-th son or NULL. */
 
53539
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
53540
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
 
53541
  CTree *Expr () const { return sons[1]; }
 
53542
  /** Replace a son.
 
53543
   *  \param old_son The son to replace.
 
53544
   *  \param new_son The new son. */
 
53545
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
53546
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
53547
  }
 
53548
};
 
53549
 
 
53550
 
 
53551
#line 53552 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53552
} // closed Puma
 
53553
class CCExprResolve;
 
53554
class CExprResolve;
 
53555
class WinIfExists;
 
53556
class WinImportHandler;
 
53557
class WinMacros;
 
53558
class WinAsm;
 
53559
class WinDeclSpecs;
 
53560
class WinMemberExplSpec;
 
53561
class WinTypeKeywords;
 
53562
class WinFriend;
 
53563
class ExtAC;
 
53564
class ExtACBuilderCoupling;
 
53565
class ExtACSyntaxCoupling;
 
53566
class ExtACTree;
 
53567
class ExtACKeywords;
 
53568
class ExtGnu;
 
53569
class PragmaOnceUnitState;
 
53570
class PragmaOnce;
 
53571
class CMatchSyntax;
 
53572
namespace Puma {
 
53573
 
 
53574
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53575
class CT_ExprStmt : public CT_Statement {
 
53576
#line 53577 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53577
  friend class ::CCExprResolve;
 
53578
  friend class ::CExprResolve;
 
53579
  friend class ::WinIfExists;
 
53580
  friend class ::WinImportHandler;
 
53581
  friend class ::WinMacros;
 
53582
  friend class ::WinAsm;
 
53583
  friend class ::WinDeclSpecs;
 
53584
  friend class ::WinMemberExplSpec;
 
53585
  friend class ::WinTypeKeywords;
 
53586
  friend class ::WinFriend;
 
53587
  friend class ::ExtAC;
 
53588
  friend class ::ExtACBuilderCoupling;
 
53589
  friend class ::ExtACSyntaxCoupling;
 
53590
  friend class ::ExtACTree;
 
53591
  friend class ::ExtACKeywords;
 
53592
  friend class ::ExtGnu;
 
53593
  friend class ::PragmaOnceUnitState;
 
53594
  friend class ::PragmaOnce;
 
53595
  friend class ::CMatchSyntax;
 
53596
 
 
53597
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53598
 
 
53599
  CTree *sons[2]; // expr, semi_colon
 
53600
 
 
53601
public:
 
53602
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
53603
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
53604
  static const char *NodeId ();
 
53605
  /** Get the name of the node. Can be compared with NodeId(). */
 
53606
  const char *NodeName () const { return NodeId (); }
 
53607
  /** Get the number of sons. */
 
53608
  int Sons () const { return CTree::Sons (sons, 2); }
 
53609
  /** Get the n-th son.
 
53610
   *  \param n The index of the son.
 
53611
   *  \return The n-th son or NULL. */
 
53612
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
53613
  CTree *Expr () const { return sons[0]; }
 
53614
  /** Replace a son.
 
53615
   *  \param old_son The son to replace.
 
53616
   *  \param new_son The new son. */
 
53617
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
53618
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
53619
  }
 
53620
};
 
53621
 
 
53622
 
 
53623
#line 53624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53624
} // closed Puma
 
53625
class CCExprResolve;
 
53626
class CExprResolve;
 
53627
class WinIfExists;
 
53628
class WinImportHandler;
 
53629
class WinMacros;
 
53630
class WinAsm;
 
53631
class WinDeclSpecs;
 
53632
class WinMemberExplSpec;
 
53633
class WinTypeKeywords;
 
53634
class WinFriend;
 
53635
class ExtAC;
 
53636
class ExtACBuilderCoupling;
 
53637
class ExtACSyntaxCoupling;
 
53638
class ExtACTree;
 
53639
class ExtACKeywords;
 
53640
class ExtGnu;
 
53641
class PragmaOnceUnitState;
 
53642
class PragmaOnce;
 
53643
class CMatchSyntax;
 
53644
namespace Puma {
 
53645
 
 
53646
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53647
class CT_DeclStmt : public CT_Statement {
 
53648
#line 53649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53649
  friend class ::CCExprResolve;
 
53650
  friend class ::CExprResolve;
 
53651
  friend class ::WinIfExists;
 
53652
  friend class ::WinImportHandler;
 
53653
  friend class ::WinMacros;
 
53654
  friend class ::WinAsm;
 
53655
  friend class ::WinDeclSpecs;
 
53656
  friend class ::WinMemberExplSpec;
 
53657
  friend class ::WinTypeKeywords;
 
53658
  friend class ::WinFriend;
 
53659
  friend class ::ExtAC;
 
53660
  friend class ::ExtACBuilderCoupling;
 
53661
  friend class ::ExtACSyntaxCoupling;
 
53662
  friend class ::ExtACTree;
 
53663
  friend class ::ExtACKeywords;
 
53664
  friend class ::ExtGnu;
 
53665
  friend class ::PragmaOnceUnitState;
 
53666
  friend class ::PragmaOnce;
 
53667
  friend class ::CMatchSyntax;
 
53668
 
 
53669
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53670
 
 
53671
  CTree *_decl;
 
53672
 
 
53673
public:
 
53674
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
53675
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
53676
  static const char *NodeId ();
 
53677
  /** Get the name of the node. Can be compared with NodeId(). */
 
53678
  const char *NodeName () const { return NodeId (); }
 
53679
  /** Get the number of sons. */
 
53680
  int Sons () const { return 1; }
 
53681
  /** Get the n-th son.
 
53682
   *  \param n The index of the son.
 
53683
   *  \return The n-th son or NULL. */
 
53684
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
53685
  /** Replace a son.
 
53686
   *  \param old_son The son to replace.
 
53687
   *  \param new_son The new son. */
 
53688
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
53689
   { CTree::ReplaceSon (_decl, old_son, new_son); }
 
53690
};
 
53691
 
 
53692
 
 
53693
#line 53694 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53694
} // closed Puma
 
53695
class CCExprResolve;
 
53696
class CExprResolve;
 
53697
class WinIfExists;
 
53698
class WinImportHandler;
 
53699
class WinMacros;
 
53700
class WinAsm;
 
53701
class WinDeclSpecs;
 
53702
class WinMemberExplSpec;
 
53703
class WinTypeKeywords;
 
53704
class WinFriend;
 
53705
class ExtAC;
 
53706
class ExtACBuilderCoupling;
 
53707
class ExtACSyntaxCoupling;
 
53708
class ExtACTree;
 
53709
class ExtACKeywords;
 
53710
class ExtGnu;
 
53711
class PragmaOnceUnitState;
 
53712
class PragmaOnce;
 
53713
class CMatchSyntax;
 
53714
namespace Puma {
 
53715
 
 
53716
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53717
class CT_SwitchStmt : public CT_Statement, public CSemScope {
 
53718
#line 53719 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53719
  friend class ::CCExprResolve;
 
53720
  friend class ::CExprResolve;
 
53721
  friend class ::WinIfExists;
 
53722
  friend class ::WinImportHandler;
 
53723
  friend class ::WinMacros;
 
53724
  friend class ::WinAsm;
 
53725
  friend class ::WinDeclSpecs;
 
53726
  friend class ::WinMemberExplSpec;
 
53727
  friend class ::WinTypeKeywords;
 
53728
  friend class ::WinFriend;
 
53729
  friend class ::ExtAC;
 
53730
  friend class ::ExtACBuilderCoupling;
 
53731
  friend class ::ExtACSyntaxCoupling;
 
53732
  friend class ::ExtACTree;
 
53733
  friend class ::ExtACKeywords;
 
53734
  friend class ::ExtGnu;
 
53735
  friend class ::PragmaOnceUnitState;
 
53736
  friend class ::PragmaOnce;
 
53737
  friend class ::CMatchSyntax;
 
53738
 
 
53739
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53740
 
 
53741
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
53742
 
 
53743
public:
 
53744
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
53745
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
53746
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
53747
  }
 
53748
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
53749
  static const char *NodeId ();
 
53750
  /** Get the name of the node. Can be compared with NodeId(). */
 
53751
  const char *NodeName () const { return NodeId (); }
 
53752
  /** Get the number of sons. */
 
53753
  int Sons () const { return 5; }
 
53754
  /** Get the n-th son.
 
53755
   *  \param n The index of the son.
 
53756
   *  \return The n-th son or NULL. */
 
53757
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
53758
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
53759
  CTree *Condition () const { return sons[2]; }
 
53760
  /** Replace a son.
 
53761
   *  \param old_son The son to replace.
 
53762
   *  \param new_son The new son. */
 
53763
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
53764
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
53765
  }
 
53766
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
53767
};
 
53768
 
 
53769
 
 
53770
#line 53771 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53771
} // closed Puma
 
53772
class CCExprResolve;
 
53773
class CExprResolve;
 
53774
class WinIfExists;
 
53775
class WinImportHandler;
 
53776
class WinMacros;
 
53777
class WinAsm;
 
53778
class WinDeclSpecs;
 
53779
class WinMemberExplSpec;
 
53780
class WinTypeKeywords;
 
53781
class WinFriend;
 
53782
class ExtAC;
 
53783
class ExtACBuilderCoupling;
 
53784
class ExtACSyntaxCoupling;
 
53785
class ExtACTree;
 
53786
class ExtACKeywords;
 
53787
class ExtGnu;
 
53788
class PragmaOnceUnitState;
 
53789
class PragmaOnce;
 
53790
class CMatchSyntax;
 
53791
namespace Puma {
 
53792
 
 
53793
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53794
class CT_IfStmt : public CT_Statement, public CSemScope {
 
53795
#line 53796 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53796
  friend class ::CCExprResolve;
 
53797
  friend class ::CExprResolve;
 
53798
  friend class ::WinIfExists;
 
53799
  friend class ::WinImportHandler;
 
53800
  friend class ::WinMacros;
 
53801
  friend class ::WinAsm;
 
53802
  friend class ::WinDeclSpecs;
 
53803
  friend class ::WinMemberExplSpec;
 
53804
  friend class ::WinTypeKeywords;
 
53805
  friend class ::WinFriend;
 
53806
  friend class ::ExtAC;
 
53807
  friend class ::ExtACBuilderCoupling;
 
53808
  friend class ::ExtACSyntaxCoupling;
 
53809
  friend class ::ExtACTree;
 
53810
  friend class ::ExtACKeywords;
 
53811
  friend class ::ExtGnu;
 
53812
  friend class ::PragmaOnceUnitState;
 
53813
  friend class ::PragmaOnce;
 
53814
  friend class ::CMatchSyntax;
 
53815
 
 
53816
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53817
 
 
53818
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
53819
 
 
53820
public:
 
53821
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
53822
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
53823
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
53824
  }
 
53825
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
53826
  static const char *NodeId ();
 
53827
  /** Get the name of the node. Can be compared with NodeId(). */
 
53828
  const char *NodeName () const { return NodeId (); }
 
53829
  /** Get the number of sons. */
 
53830
  int Sons () const { return 5; }
 
53831
  /** Get the n-th son.
 
53832
   *  \param n The index of the son.
 
53833
   *  \return The n-th son or NULL. */
 
53834
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
53835
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
53836
  CTree *Condition () const { return sons[2]; }
 
53837
  /** Replace a son.
 
53838
   *  \param old_son The son to replace.
 
53839
   *  \param new_son The new son. */
 
53840
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
53841
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
53842
  }
 
53843
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
53844
};
 
53845
 
 
53846
 
 
53847
#line 53848 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53848
} // closed Puma
 
53849
class CCExprResolve;
 
53850
class CExprResolve;
 
53851
class WinIfExists;
 
53852
class WinImportHandler;
 
53853
class WinMacros;
 
53854
class WinAsm;
 
53855
class WinDeclSpecs;
 
53856
class WinMemberExplSpec;
 
53857
class WinTypeKeywords;
 
53858
class WinFriend;
 
53859
class ExtAC;
 
53860
class ExtACBuilderCoupling;
 
53861
class ExtACSyntaxCoupling;
 
53862
class ExtACTree;
 
53863
class ExtACKeywords;
 
53864
class ExtGnu;
 
53865
class PragmaOnceUnitState;
 
53866
class PragmaOnce;
 
53867
class CMatchSyntax;
 
53868
namespace Puma {
 
53869
 
 
53870
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53871
class CT_IfElseStmt : public CT_Statement, public CSemScope {
 
53872
#line 53873 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53873
  friend class ::CCExprResolve;
 
53874
  friend class ::CExprResolve;
 
53875
  friend class ::WinIfExists;
 
53876
  friend class ::WinImportHandler;
 
53877
  friend class ::WinMacros;
 
53878
  friend class ::WinAsm;
 
53879
  friend class ::WinDeclSpecs;
 
53880
  friend class ::WinMemberExplSpec;
 
53881
  friend class ::WinTypeKeywords;
 
53882
  friend class ::WinFriend;
 
53883
  friend class ::ExtAC;
 
53884
  friend class ::ExtACBuilderCoupling;
 
53885
  friend class ::ExtACSyntaxCoupling;
 
53886
  friend class ::ExtACTree;
 
53887
  friend class ::ExtACKeywords;
 
53888
  friend class ::ExtGnu;
 
53889
  friend class ::PragmaOnceUnitState;
 
53890
  friend class ::PragmaOnce;
 
53891
  friend class ::CMatchSyntax;
 
53892
 
 
53893
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53894
 
 
53895
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
 
53896
 
 
53897
public:
 
53898
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
 
53899
                 CTree *is, CTree *e, CTree *es) {
 
53900
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
53901
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
53902
    AddSon (sons[6], es); 
 
53903
  }
 
53904
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
53905
  static const char *NodeId ();
 
53906
  /** Get the name of the node. Can be compared with NodeId(). */
 
53907
  const char *NodeName () const { return NodeId (); }
 
53908
  /** Get the number of sons. */
 
53909
  int Sons () const { return 7; }
 
53910
  /** Get the n-th son.
 
53911
   *  \param n The index of the son.
 
53912
   *  \return The n-th son or NULL. */
 
53913
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
53914
  CTree *Condition () const { return sons[2]; }
 
53915
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
 
53916
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
53917
  /** Replace a son.
 
53918
   *  \param old_son The son to replace.
 
53919
   *  \param new_son The new son. */
 
53920
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
53921
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
53922
  }
 
53923
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
53924
};
 
53925
 
 
53926
 
 
53927
#line 53928 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53928
} // closed Puma
 
53929
class CCExprResolve;
 
53930
class CExprResolve;
 
53931
class WinIfExists;
 
53932
class WinImportHandler;
 
53933
class WinMacros;
 
53934
class WinAsm;
 
53935
class WinDeclSpecs;
 
53936
class WinMemberExplSpec;
 
53937
class WinTypeKeywords;
 
53938
class WinFriend;
 
53939
class ExtAC;
 
53940
class ExtACBuilderCoupling;
 
53941
class ExtACSyntaxCoupling;
 
53942
class ExtACTree;
 
53943
class ExtACKeywords;
 
53944
class ExtGnu;
 
53945
class PragmaOnceUnitState;
 
53946
class PragmaOnce;
 
53947
class CMatchSyntax;
 
53948
namespace Puma {
 
53949
 
 
53950
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53951
class CT_BreakStmt : public CT_Statement {
 
53952
#line 53953 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53953
  friend class ::CCExprResolve;
 
53954
  friend class ::CExprResolve;
 
53955
  friend class ::WinIfExists;
 
53956
  friend class ::WinImportHandler;
 
53957
  friend class ::WinMacros;
 
53958
  friend class ::WinAsm;
 
53959
  friend class ::WinDeclSpecs;
 
53960
  friend class ::WinMemberExplSpec;
 
53961
  friend class ::WinTypeKeywords;
 
53962
  friend class ::WinFriend;
 
53963
  friend class ::ExtAC;
 
53964
  friend class ::ExtACBuilderCoupling;
 
53965
  friend class ::ExtACSyntaxCoupling;
 
53966
  friend class ::ExtACTree;
 
53967
  friend class ::ExtACKeywords;
 
53968
  friend class ::ExtGnu;
 
53969
  friend class ::PragmaOnceUnitState;
 
53970
  friend class ::PragmaOnce;
 
53971
  friend class ::CMatchSyntax;
 
53972
 
 
53973
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53974
 
 
53975
  CTree *sons[2]; // key, semi_colon
 
53976
 
 
53977
public:
 
53978
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
53979
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
53980
  static const char *NodeId ();
 
53981
  /** Get the name of the node. Can be compared with NodeId(). */
 
53982
  const char *NodeName () const { return NodeId (); }
 
53983
  /** Get the number of sons. */
 
53984
  int Sons () const { return 2; }
 
53985
  /** Get the n-th son.
 
53986
   *  \param n The index of the son.
 
53987
   *  \return The n-th son or NULL. */
 
53988
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
53989
  /** Replace a son.
 
53990
   *  \param old_son The son to replace.
 
53991
   *  \param new_son The new son. */
 
53992
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
53993
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
53994
  }
 
53995
};
 
53996
 
 
53997
 
 
53998
#line 53999 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
53999
} // closed Puma
 
54000
class CCExprResolve;
 
54001
class CExprResolve;
 
54002
class WinIfExists;
 
54003
class WinImportHandler;
 
54004
class WinMacros;
 
54005
class WinAsm;
 
54006
class WinDeclSpecs;
 
54007
class WinMemberExplSpec;
 
54008
class WinTypeKeywords;
 
54009
class WinFriend;
 
54010
class ExtAC;
 
54011
class ExtACBuilderCoupling;
 
54012
class ExtACSyntaxCoupling;
 
54013
class ExtACTree;
 
54014
class ExtACKeywords;
 
54015
class ExtGnu;
 
54016
class PragmaOnceUnitState;
 
54017
class PragmaOnce;
 
54018
class CMatchSyntax;
 
54019
namespace Puma {
 
54020
 
 
54021
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54022
class CT_ContinueStmt : public CT_Statement {
 
54023
#line 54024 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54024
  friend class ::CCExprResolve;
 
54025
  friend class ::CExprResolve;
 
54026
  friend class ::WinIfExists;
 
54027
  friend class ::WinImportHandler;
 
54028
  friend class ::WinMacros;
 
54029
  friend class ::WinAsm;
 
54030
  friend class ::WinDeclSpecs;
 
54031
  friend class ::WinMemberExplSpec;
 
54032
  friend class ::WinTypeKeywords;
 
54033
  friend class ::WinFriend;
 
54034
  friend class ::ExtAC;
 
54035
  friend class ::ExtACBuilderCoupling;
 
54036
  friend class ::ExtACSyntaxCoupling;
 
54037
  friend class ::ExtACTree;
 
54038
  friend class ::ExtACKeywords;
 
54039
  friend class ::ExtGnu;
 
54040
  friend class ::PragmaOnceUnitState;
 
54041
  friend class ::PragmaOnce;
 
54042
  friend class ::CMatchSyntax;
 
54043
 
 
54044
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54045
 
 
54046
  CTree *sons[2]; // key, semi_colon
 
54047
 
 
54048
public:
 
54049
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
54050
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
54051
  static const char *NodeId ();
 
54052
  /** Get the name of the node. Can be compared with NodeId(). */
 
54053
  const char *NodeName () const { return NodeId (); }
 
54054
  /** Get the number of sons. */
 
54055
  int Sons () const { return 2; }
 
54056
  /** Get the n-th son.
 
54057
   *  \param n The index of the son.
 
54058
   *  \return The n-th son or NULL. */
 
54059
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
54060
  /** Replace a son.
 
54061
   *  \param old_son The son to replace.
 
54062
   *  \param new_son The new son. */
 
54063
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
54064
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
54065
  }
 
54066
};
 
54067
 
 
54068
 
 
54069
#line 54070 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54070
} // closed Puma
 
54071
class CCExprResolve;
 
54072
class CExprResolve;
 
54073
class WinIfExists;
 
54074
class WinImportHandler;
 
54075
class WinMacros;
 
54076
class WinAsm;
 
54077
class WinDeclSpecs;
 
54078
class WinMemberExplSpec;
 
54079
class WinTypeKeywords;
 
54080
class WinFriend;
 
54081
class ExtAC;
 
54082
class ExtACBuilderCoupling;
 
54083
class ExtACSyntaxCoupling;
 
54084
class ExtACTree;
 
54085
class ExtACKeywords;
 
54086
class ExtGnu;
 
54087
class PragmaOnceUnitState;
 
54088
class PragmaOnce;
 
54089
class CMatchSyntax;
 
54090
namespace Puma {
 
54091
 
 
54092
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54093
class CT_GotoStmt : public CT_Statement {
 
54094
#line 54095 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54095
  friend class ::CCExprResolve;
 
54096
  friend class ::CExprResolve;
 
54097
  friend class ::WinIfExists;
 
54098
  friend class ::WinImportHandler;
 
54099
  friend class ::WinMacros;
 
54100
  friend class ::WinAsm;
 
54101
  friend class ::WinDeclSpecs;
 
54102
  friend class ::WinMemberExplSpec;
 
54103
  friend class ::WinTypeKeywords;
 
54104
  friend class ::WinFriend;
 
54105
  friend class ::ExtAC;
 
54106
  friend class ::ExtACBuilderCoupling;
 
54107
  friend class ::ExtACSyntaxCoupling;
 
54108
  friend class ::ExtACTree;
 
54109
  friend class ::ExtACKeywords;
 
54110
  friend class ::ExtGnu;
 
54111
  friend class ::PragmaOnceUnitState;
 
54112
  friend class ::PragmaOnce;
 
54113
  friend class ::CMatchSyntax;
 
54114
 
 
54115
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54116
 
 
54117
  CTree *sons[3]; // key, label, semi_colon
 
54118
 
 
54119
public:
 
54120
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
 
54121
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
 
54122
  }
 
54123
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
54124
  static const char *NodeId ();
 
54125
  /** Get the name of the node. Can be compared with NodeId(). */
 
54126
  const char *NodeName () const { return NodeId (); }
 
54127
  /** Get the number of sons. */
 
54128
  int Sons () const { return 3; }
 
54129
  /** Get the n-th son.
 
54130
   *  \param n The index of the son.
 
54131
   *  \return The n-th son or NULL. */
 
54132
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
54133
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
54134
  /** Replace a son.
 
54135
   *  \param old_son The son to replace.
 
54136
   *  \param new_son The new son. */
 
54137
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
54138
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
54139
  }
 
54140
};
 
54141
 
 
54142
 
 
54143
#line 54144 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54144
} // closed Puma
 
54145
class CCExprResolve;
 
54146
class CExprResolve;
 
54147
class WinIfExists;
 
54148
class WinImportHandler;
 
54149
class WinMacros;
 
54150
class WinAsm;
 
54151
class WinDeclSpecs;
 
54152
class WinMemberExplSpec;
 
54153
class WinTypeKeywords;
 
54154
class WinFriend;
 
54155
class ExtAC;
 
54156
class ExtACBuilderCoupling;
 
54157
class ExtACSyntaxCoupling;
 
54158
class ExtACTree;
 
54159
class ExtACKeywords;
 
54160
class ExtGnu;
 
54161
class PragmaOnceUnitState;
 
54162
class PragmaOnce;
 
54163
class CMatchSyntax;
 
54164
namespace Puma {
 
54165
 
 
54166
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54167
class CT_ReturnStmt : public CT_Statement {
 
54168
#line 54169 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54169
  friend class ::CCExprResolve;
 
54170
  friend class ::CExprResolve;
 
54171
  friend class ::WinIfExists;
 
54172
  friend class ::WinImportHandler;
 
54173
  friend class ::WinMacros;
 
54174
  friend class ::WinAsm;
 
54175
  friend class ::WinDeclSpecs;
 
54176
  friend class ::WinMemberExplSpec;
 
54177
  friend class ::WinTypeKeywords;
 
54178
  friend class ::WinFriend;
 
54179
  friend class ::ExtAC;
 
54180
  friend class ::ExtACBuilderCoupling;
 
54181
  friend class ::ExtACSyntaxCoupling;
 
54182
  friend class ::ExtACTree;
 
54183
  friend class ::ExtACKeywords;
 
54184
  friend class ::ExtGnu;
 
54185
  friend class ::PragmaOnceUnitState;
 
54186
  friend class ::PragmaOnce;
 
54187
  friend class ::CMatchSyntax;
 
54188
 
 
54189
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54190
 
 
54191
  CTree *sons[3]; // key, expr, semi_colon
 
54192
 
 
54193
public:
 
54194
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
 
54195
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
 
54196
  }
 
54197
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
54198
  static const char *NodeId ();
 
54199
  /** Get the name of the node. Can be compared with NodeId(). */
 
54200
  const char *NodeName () const { return NodeId (); }
 
54201
  /** Get the number of sons. */
 
54202
  int Sons () const { return CTree::Sons (sons, 3); }
 
54203
  /** Get the n-th son.
 
54204
   *  \param n The index of the son.
 
54205
   *  \return The n-th son or NULL. */
 
54206
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
54207
  CTree *Expr () const { return sons[1]; }
 
54208
  /** Replace a son.
 
54209
   *  \param old_son The son to replace.
 
54210
   *  \param new_son The new son. */
 
54211
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
54212
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
54213
  }
 
54214
};
 
54215
 
 
54216
 
 
54217
#line 54218 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54218
} // closed Puma
 
54219
class CCExprResolve;
 
54220
class CExprResolve;
 
54221
class WinIfExists;
 
54222
class WinImportHandler;
 
54223
class WinMacros;
 
54224
class WinAsm;
 
54225
class WinDeclSpecs;
 
54226
class WinMemberExplSpec;
 
54227
class WinTypeKeywords;
 
54228
class WinFriend;
 
54229
class ExtAC;
 
54230
class ExtACBuilderCoupling;
 
54231
class ExtACSyntaxCoupling;
 
54232
class ExtACTree;
 
54233
class ExtACKeywords;
 
54234
class ExtGnu;
 
54235
class PragmaOnceUnitState;
 
54236
class PragmaOnce;
 
54237
class CMatchSyntax;
 
54238
namespace Puma {
 
54239
 
 
54240
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54241
class CT_WhileStmt : public CT_Statement, public CSemScope {
 
54242
#line 54243 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54243
  friend class ::CCExprResolve;
 
54244
  friend class ::CExprResolve;
 
54245
  friend class ::WinIfExists;
 
54246
  friend class ::WinImportHandler;
 
54247
  friend class ::WinMacros;
 
54248
  friend class ::WinAsm;
 
54249
  friend class ::WinDeclSpecs;
 
54250
  friend class ::WinMemberExplSpec;
 
54251
  friend class ::WinTypeKeywords;
 
54252
  friend class ::WinFriend;
 
54253
  friend class ::ExtAC;
 
54254
  friend class ::ExtACBuilderCoupling;
 
54255
  friend class ::ExtACSyntaxCoupling;
 
54256
  friend class ::ExtACTree;
 
54257
  friend class ::ExtACKeywords;
 
54258
  friend class ::ExtGnu;
 
54259
  friend class ::PragmaOnceUnitState;
 
54260
  friend class ::PragmaOnce;
 
54261
  friend class ::CMatchSyntax;
 
54262
 
 
54263
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54264
 
 
54265
  CTree *sons[5]; // key, open, cond, close, stmt
 
54266
 
 
54267
public:
 
54268
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
54269
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
54270
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
54271
  }
 
54272
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
54273
  static const char *NodeId ();
 
54274
  /** Get the name of the node. Can be compared with NodeId(). */
 
54275
  const char *NodeName () const { return NodeId (); }
 
54276
  /** Get the number of sons. */
 
54277
  int Sons () const { return 5; }
 
54278
  /** Get the n-th son.
 
54279
   *  \param n The index of the son.
 
54280
   *  \return The n-th son or NULL. */
 
54281
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
54282
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
54283
  CTree *Condition () const { return sons[2]; }
 
54284
  /** Replace a son.
 
54285
   *  \param old_son The son to replace.
 
54286
   *  \param new_son The new son. */
 
54287
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
54288
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
54289
  }
 
54290
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
54291
};
 
54292
 
 
54293
 
 
54294
#line 54295 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54295
} // closed Puma
 
54296
class CCExprResolve;
 
54297
class CExprResolve;
 
54298
class WinIfExists;
 
54299
class WinImportHandler;
 
54300
class WinMacros;
 
54301
class WinAsm;
 
54302
class WinDeclSpecs;
 
54303
class WinMemberExplSpec;
 
54304
class WinTypeKeywords;
 
54305
class WinFriend;
 
54306
class ExtAC;
 
54307
class ExtACBuilderCoupling;
 
54308
class ExtACSyntaxCoupling;
 
54309
class ExtACTree;
 
54310
class ExtACKeywords;
 
54311
class ExtGnu;
 
54312
class PragmaOnceUnitState;
 
54313
class PragmaOnce;
 
54314
class CMatchSyntax;
 
54315
namespace Puma {
 
54316
 
 
54317
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54318
class CT_DoStmt : public CT_Statement {
 
54319
#line 54320 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54320
  friend class ::CCExprResolve;
 
54321
  friend class ::CExprResolve;
 
54322
  friend class ::WinIfExists;
 
54323
  friend class ::WinImportHandler;
 
54324
  friend class ::WinMacros;
 
54325
  friend class ::WinAsm;
 
54326
  friend class ::WinDeclSpecs;
 
54327
  friend class ::WinMemberExplSpec;
 
54328
  friend class ::WinTypeKeywords;
 
54329
  friend class ::WinFriend;
 
54330
  friend class ::ExtAC;
 
54331
  friend class ::ExtACBuilderCoupling;
 
54332
  friend class ::ExtACSyntaxCoupling;
 
54333
  friend class ::ExtACTree;
 
54334
  friend class ::ExtACKeywords;
 
54335
  friend class ::ExtGnu;
 
54336
  friend class ::PragmaOnceUnitState;
 
54337
  friend class ::PragmaOnce;
 
54338
  friend class ::CMatchSyntax;
 
54339
 
 
54340
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54341
 
 
54342
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
 
54343
 
 
54344
public:
 
54345
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
 
54346
             CTree *c, CTree *sc) {
 
54347
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
54348
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
54349
    AddSon (sons[6], sc); 
 
54350
  }
 
54351
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
54352
  static const char *NodeId ();
 
54353
  /** Get the name of the node. Can be compared with NodeId(). */
 
54354
  const char *NodeName () const { return NodeId (); }
 
54355
  /** Get the number of sons. */
 
54356
  int Sons () const { return 7; }
 
54357
  /** Get the n-th son.
 
54358
   *  \param n The index of the son.
 
54359
   *  \return The n-th son or NULL. */
 
54360
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
54361
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
54362
  CTree *Expr () const { return sons[4]; }
 
54363
  /** Replace a son.
 
54364
   *  \param old_son The son to replace.
 
54365
   *  \param new_son The new son. */
 
54366
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
54367
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
54368
  }
 
54369
};
 
54370
 
 
54371
 
 
54372
#line 54373 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54373
} // closed Puma
 
54374
class CCExprResolve;
 
54375
class CExprResolve;
 
54376
class WinIfExists;
 
54377
class WinImportHandler;
 
54378
class WinMacros;
 
54379
class WinAsm;
 
54380
class WinDeclSpecs;
 
54381
class WinMemberExplSpec;
 
54382
class WinTypeKeywords;
 
54383
class WinFriend;
 
54384
class ExtAC;
 
54385
class ExtACBuilderCoupling;
 
54386
class ExtACSyntaxCoupling;
 
54387
class ExtACTree;
 
54388
class ExtACKeywords;
 
54389
class ExtGnu;
 
54390
class PragmaOnceUnitState;
 
54391
class PragmaOnce;
 
54392
class CMatchSyntax;
 
54393
namespace Puma {
 
54394
 
 
54395
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54396
class CT_ForStmt : public CT_Statement, public CSemScope {
 
54397
#line 54398 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54398
  friend class ::CCExprResolve;
 
54399
  friend class ::CExprResolve;
 
54400
  friend class ::WinIfExists;
 
54401
  friend class ::WinImportHandler;
 
54402
  friend class ::WinMacros;
 
54403
  friend class ::WinAsm;
 
54404
  friend class ::WinDeclSpecs;
 
54405
  friend class ::WinMemberExplSpec;
 
54406
  friend class ::WinTypeKeywords;
 
54407
  friend class ::WinFriend;
 
54408
  friend class ::ExtAC;
 
54409
  friend class ::ExtACBuilderCoupling;
 
54410
  friend class ::ExtACSyntaxCoupling;
 
54411
  friend class ::ExtACTree;
 
54412
  friend class ::ExtACKeywords;
 
54413
  friend class ::ExtGnu;
 
54414
  friend class ::PragmaOnceUnitState;
 
54415
  friend class ::PragmaOnce;
 
54416
  friend class ::CMatchSyntax;
 
54417
 
 
54418
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54419
 
 
54420
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
 
54421
 
 
54422
public:
 
54423
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
 
54424
              CTree *e, CTree *c, CTree *stmt) {
 
54425
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
54426
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
54427
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
 
54428
  }
 
54429
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
54430
  static const char *NodeId ();
 
54431
  /** Get the name of the node. Can be compared with NodeId(). */
 
54432
  const char *NodeName () const { return NodeId (); }
 
54433
  /** Get the number of sons. */
 
54434
  int Sons () const { return CTree::Sons (sons, 8); }
 
54435
  /** Get the n-th son.
 
54436
   *  \param n The index of the son.
 
54437
   *  \return The n-th son or NULL. */
 
54438
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
 
54439
  CTree *InitStmt () const { return sons[2]; }
 
54440
  CTree *Condition () const { return sons[3]; }
 
54441
  CTree *Expr () const { return sons[5]; }
 
54442
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
54443
  /** Replace a son.
 
54444
   *  \param old_son The son to replace.
 
54445
   *  \param new_son The new son. */
 
54446
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
54447
    CTree::ReplaceSon (sons, 8, old_son, new_son);
 
54448
  }
 
54449
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
54450
};
 
54451
 
 
54452
 
 
54453
#line 54454 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54454
} // closed Puma
 
54455
class CCExprResolve;
 
54456
class CExprResolve;
 
54457
class WinIfExists;
 
54458
class WinImportHandler;
 
54459
class WinMacros;
 
54460
class WinAsm;
 
54461
class WinDeclSpecs;
 
54462
class WinMemberExplSpec;
 
54463
class WinTypeKeywords;
 
54464
class WinFriend;
 
54465
class ExtAC;
 
54466
class ExtACBuilderCoupling;
 
54467
class ExtACSyntaxCoupling;
 
54468
class ExtACTree;
 
54469
class ExtACKeywords;
 
54470
class ExtGnu;
 
54471
class PragmaOnceUnitState;
 
54472
class PragmaOnce;
 
54473
class CMatchSyntax;
 
54474
namespace Puma {
 
54475
 
 
54476
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54477
class CT_Condition : public CT_Decl, public CSemObject {
 
54478
#line 54479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54479
  friend class ::CCExprResolve;
 
54480
  friend class ::CExprResolve;
 
54481
  friend class ::WinIfExists;
 
54482
  friend class ::WinImportHandler;
 
54483
  friend class ::WinMacros;
 
54484
  friend class ::WinAsm;
 
54485
  friend class ::WinDeclSpecs;
 
54486
  friend class ::WinMemberExplSpec;
 
54487
  friend class ::WinTypeKeywords;
 
54488
  friend class ::WinFriend;
 
54489
  friend class ::ExtAC;
 
54490
  friend class ::ExtACBuilderCoupling;
 
54491
  friend class ::ExtACSyntaxCoupling;
 
54492
  friend class ::ExtACTree;
 
54493
  friend class ::ExtACKeywords;
 
54494
  friend class ::ExtGnu;
 
54495
  friend class ::PragmaOnceUnitState;
 
54496
  friend class ::PragmaOnce;
 
54497
  friend class ::CMatchSyntax;
 
54498
 
 
54499
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54500
 
 
54501
  CTree *sons[3]; // declspecs, declarator, init
 
54502
 
 
54503
public:
 
54504
  CT_Condition (CTree *dsl, CTree *d) {
 
54505
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
 
54506
  }
 
54507
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
54508
  static const char *NodeId ();
 
54509
  /** Get the name of the node. Can be compared with NodeId(). */
 
54510
  const char *NodeName () const { return NodeId (); }
 
54511
  /** Get the number of sons. */
 
54512
  int Sons () const { return CTree::Sons (sons, 3); }
 
54513
  /** Get the n-th son.
 
54514
   *  \param n The index of the son.
 
54515
   *  \return The n-th son or NULL. */
 
54516
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
54517
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
54518
  CTree *Declarator () const { return sons[1]; }
 
54519
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
54520
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
54521
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
54522
  /** Replace a son.
 
54523
   *  \param old_son The son to replace.
 
54524
   *  \param new_son The new son. */
 
54525
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
54526
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
54527
  }
 
54528
};
 
54529
 
 
54530
/*****************************************************************************/
 
54531
/*                                                                           */
 
54532
/*                              Classes                                      */
 
54533
/*                                                                           */
 
54534
/*****************************************************************************/
 
54535
 
 
54536
 
 
54537
#line 54538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54538
} // closed Puma
 
54539
class CCExprResolve;
 
54540
class CExprResolve;
 
54541
class WinIfExists;
 
54542
class WinImportHandler;
 
54543
class WinMacros;
 
54544
class WinAsm;
 
54545
class WinDeclSpecs;
 
54546
class WinMemberExplSpec;
 
54547
class WinTypeKeywords;
 
54548
class WinFriend;
 
54549
class ExtAC;
 
54550
class ExtACBuilderCoupling;
 
54551
class ExtACSyntaxCoupling;
 
54552
class ExtACTree;
 
54553
class ExtACKeywords;
 
54554
class ExtGnu;
 
54555
class PragmaOnceUnitState;
 
54556
class PragmaOnce;
 
54557
class CMatchSyntax;
 
54558
namespace Puma {
 
54559
 
 
54560
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54561
 
 
54562
#line 54563 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54563
} // closed Puma
 
54564
 
 
54565
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
54566
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
54567
#include "ExtACTree.ah"
 
54568
#endif
 
54569
namespace Puma {
 
54570
 
 
54571
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54572
class CT_ClassDef : public CT_Decl, public CSemObject {
 
54573
#line 54574 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54574
  friend class ::CCExprResolve;
 
54575
  friend class ::CExprResolve;
 
54576
  friend class ::WinIfExists;
 
54577
  friend class ::WinImportHandler;
 
54578
  friend class ::WinMacros;
 
54579
  friend class ::WinAsm;
 
54580
  friend class ::WinDeclSpecs;
 
54581
  friend class ::WinMemberExplSpec;
 
54582
  friend class ::WinTypeKeywords;
 
54583
  friend class ::WinFriend;
 
54584
  friend class ::ExtAC;
 
54585
  friend class ::ExtACBuilderCoupling;
 
54586
  friend class ::ExtACSyntaxCoupling;
 
54587
  friend class ::ExtACTree;
 
54588
  friend class ::ExtACKeywords;
 
54589
  friend class ::ExtGnu;
 
54590
  friend class ::PragmaOnceUnitState;
 
54591
  friend class ::PragmaOnce;
 
54592
  friend class ::CMatchSyntax;
 
54593
 
 
54594
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54595
 
 
54596
   
 
54597
#line 54598 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54598
 
 
54599
  struct __ac_wrapper_sons {
 
54600
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
 
54601
    operator A& () { return _data; }
 
54602
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
 
54603
    operator const A& () { return _data; }
 
54604
    operator const A& () const { return _data; }
 
54605
    operator void* () { return _data; }
 
54606
    operator void* () const { return (void*)_data; }
 
54607
    operator const void* () { return _data; }
 
54608
    operator const void* () const { return _data; }
 
54609
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
 
54610
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
 
54611
  } sons
 
54612
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54613
 
 
54614
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54615
; // key, name, bases, members
 
54616
  CTree *obj_decl;
 
54617
 
 
54618
public:
 
54619
  
 
54620
#line 54621 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54621
 
 
54622
 
 
54623
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
54624
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
54625
  typedef TResult Result;
 
54626
  typedef TThat   That;
 
54627
  typedef TTarget Target;
 
54628
  enum { ARGS = TArgs::ARGS };
 
54629
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
54630
  static const int JPID = 55;
 
54631
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
54632
  struct Res {
 
54633
    typedef void Type;
 
54634
    typedef void ReferredType;
 
54635
  };
 
54636
 
 
54637
  That *_that;
 
54638
 
 
54639
  inline That *that() {return (That*)_that;}
 
54640
 
 
54641
};
 
54642
 
 
54643
 
 
54644
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54645
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
 
54646
#line 54647 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54647
{
 
54648
  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;
 
54649
    __TJP tjp;
 
54650
  tjp._that =  (__TJP::That*)this;
 
54651
    this->__exec_old_C1(arg0, arg1, arg2);
 
54652
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
54653
  
 
54654
}
 
54655
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
54656
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54657
{
 
54658
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
54659
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
 
54660
  }
 
54661
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
54662
  static const char *NodeId ();
 
54663
  /** Get the name of the node. Can be compared with NodeId(). */
 
54664
  const char *NodeName () const { return NodeId (); }
 
54665
  /** Get the number of sons. */
 
54666
  int Sons () const { return CTree::Sons (sons, 4); }
 
54667
  /** Get the n-th son.
 
54668
   *  \param n The index of the son.
 
54669
   *  \return The n-th son or NULL. */
 
54670
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
54671
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
54672
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
 
54673
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
 
54674
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
54675
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
54676
  void Members (CTree *m) { AddSon (sons[3], m); }
 
54677
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
54678
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
54679
  /** Replace a son.
 
54680
   *  \param old_son The son to replace.
 
54681
   *  \param new_son The new son. */
 
54682
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
54683
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
54684
  }
 
54685
   private:
 
54686
 
 
54687
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
54688
 Puma :: CTree * _intro_members ;
 
54689
Puma :: CTree * _base_intros ;
 
54690
public :
 
54691
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
54692
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
54693
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
54694
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
54695
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54696
 
 
54697
#line 54698 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54698
 
 
54699
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
54700
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
54701
  typedef TResult Result;
 
54702
  typedef TThat   That;
 
54703
  typedef TTarget Target;
 
54704
  enum { ARGS = TArgs::ARGS };
 
54705
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
54706
  static const int JPID = 6191;
 
54707
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
54708
  struct Res {
 
54709
    typedef void Type;
 
54710
    typedef void ReferredType;
 
54711
  };
 
54712
 
 
54713
  That *_that;
 
54714
 
 
54715
  inline That *that() {return (That*)_that;}
 
54716
 
 
54717
};
 
54718
 
 
54719
 
 
54720
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54721
 
 
54722
#line 54723 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54723
 
 
54724
public:
 
54725
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) {
 
54726
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
54727
  __TJP tjp;
 
54728
  tjp._that =  (__TJP::That*)this;
 
54729
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
54730
 
 
54731
}
 
54732
 
 
54733
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54734
 
 
54735
#line 54736 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54736
 
 
54737
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
54738
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
54739
  typedef TResult Result;
 
54740
  typedef TThat   That;
 
54741
  typedef TTarget Target;
 
54742
  enum { ARGS = TArgs::ARGS };
 
54743
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
54744
  static const int JPID = 6189;
 
54745
  static const AC::JPType JPTYPE = (AC::JPType)32;
 
54746
  struct Res {
 
54747
    typedef void Type;
 
54748
    typedef void ReferredType;
 
54749
  };
 
54750
 
 
54751
  That *_that;
 
54752
 
 
54753
  inline That *that() {return (That*)_that;}
 
54754
 
 
54755
};
 
54756
 
 
54757
 
 
54758
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54759
 
 
54760
#line 54761 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54761
 
 
54762
public:
 
54763
inline ~CT_ClassDef () {
 
54764
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
54765
  __TJP tjp;
 
54766
  tjp._that =  (__TJP::That*)this;
 
54767
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
 
54768
 
 
54769
}
 
54770
 
 
54771
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54772
};
 
54773
      
 
54774
 
 
54775
#line 54776 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54776
} // closed Puma
 
54777
class CCExprResolve;
 
54778
class CExprResolve;
 
54779
class WinIfExists;
 
54780
class WinImportHandler;
 
54781
class WinMacros;
 
54782
class WinAsm;
 
54783
class WinDeclSpecs;
 
54784
class WinMemberExplSpec;
 
54785
class WinTypeKeywords;
 
54786
class WinFriend;
 
54787
class ExtAC;
 
54788
class ExtACBuilderCoupling;
 
54789
class ExtACSyntaxCoupling;
 
54790
class ExtACTree;
 
54791
class ExtACKeywords;
 
54792
class ExtGnu;
 
54793
class PragmaOnceUnitState;
 
54794
class PragmaOnce;
 
54795
class CMatchSyntax;
 
54796
namespace Puma {
 
54797
 
 
54798
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54799
class CT_UnionDef : public CT_ClassDef {
 
54800
#line 54801 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54801
  friend class ::CCExprResolve;
 
54802
  friend class ::CExprResolve;
 
54803
  friend class ::WinIfExists;
 
54804
  friend class ::WinImportHandler;
 
54805
  friend class ::WinMacros;
 
54806
  friend class ::WinAsm;
 
54807
  friend class ::WinDeclSpecs;
 
54808
  friend class ::WinMemberExplSpec;
 
54809
  friend class ::WinTypeKeywords;
 
54810
  friend class ::WinFriend;
 
54811
  friend class ::ExtAC;
 
54812
  friend class ::ExtACBuilderCoupling;
 
54813
  friend class ::ExtACSyntaxCoupling;
 
54814
  friend class ::ExtACTree;
 
54815
  friend class ::ExtACKeywords;
 
54816
  friend class ::ExtGnu;
 
54817
  friend class ::PragmaOnceUnitState;
 
54818
  friend class ::PragmaOnce;
 
54819
  friend class ::CMatchSyntax;
 
54820
 
 
54821
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54822
 
 
54823
public:
 
54824
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
 
54825
  static const char *NodeId ();
 
54826
  /** Get the name of the node. Can be compared with NodeId(). */
 
54827
  const char *NodeName () const { return NodeId (); }
 
54828
};
 
54829
      
 
54830
 
 
54831
#line 54832 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54832
} // closed Puma
 
54833
class CCExprResolve;
 
54834
class CExprResolve;
 
54835
class WinIfExists;
 
54836
class WinImportHandler;
 
54837
class WinMacros;
 
54838
class WinAsm;
 
54839
class WinDeclSpecs;
 
54840
class WinMemberExplSpec;
 
54841
class WinTypeKeywords;
 
54842
class WinFriend;
 
54843
class ExtAC;
 
54844
class ExtACBuilderCoupling;
 
54845
class ExtACSyntaxCoupling;
 
54846
class ExtACTree;
 
54847
class ExtACKeywords;
 
54848
class ExtGnu;
 
54849
class PragmaOnceUnitState;
 
54850
class PragmaOnce;
 
54851
class CMatchSyntax;
 
54852
namespace Puma {
 
54853
 
 
54854
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54855
class CT_MembList : public CT_DeclList, public CSemScope {
 
54856
#line 54857 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54857
  friend class ::CCExprResolve;
 
54858
  friend class ::CExprResolve;
 
54859
  friend class ::WinIfExists;
 
54860
  friend class ::WinImportHandler;
 
54861
  friend class ::WinMacros;
 
54862
  friend class ::WinAsm;
 
54863
  friend class ::WinDeclSpecs;
 
54864
  friend class ::WinMemberExplSpec;
 
54865
  friend class ::WinTypeKeywords;
 
54866
  friend class ::WinFriend;
 
54867
  friend class ::ExtAC;
 
54868
  friend class ::ExtACBuilderCoupling;
 
54869
  friend class ::ExtACSyntaxCoupling;
 
54870
  friend class ::ExtACTree;
 
54871
  friend class ::ExtACKeywords;
 
54872
  friend class ::ExtGnu;
 
54873
  friend class ::PragmaOnceUnitState;
 
54874
  friend class ::PragmaOnce;
 
54875
  friend class ::CMatchSyntax;
 
54876
 
 
54877
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54878
 
 
54879
public:
 
54880
  CT_MembList (int size = 10, int incr = 10) : 
 
54881
    CT_DeclList (size, incr) {}
 
54882
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
54883
  static const char *NodeId ();
 
54884
  /** Get the name of the node. Can be compared with NodeId(). */
 
54885
  const char *NodeName () const { return NodeId (); }
 
54886
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
54887
};
 
54888
 
 
54889
 
 
54890
#line 54891 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54891
} // closed Puma
 
54892
class CCExprResolve;
 
54893
class CExprResolve;
 
54894
class WinIfExists;
 
54895
class WinImportHandler;
 
54896
class WinMacros;
 
54897
class WinAsm;
 
54898
class WinDeclSpecs;
 
54899
class WinMemberExplSpec;
 
54900
class WinTypeKeywords;
 
54901
class WinFriend;
 
54902
class ExtAC;
 
54903
class ExtACBuilderCoupling;
 
54904
class ExtACSyntaxCoupling;
 
54905
class ExtACTree;
 
54906
class ExtACKeywords;
 
54907
class ExtGnu;
 
54908
class PragmaOnceUnitState;
 
54909
class PragmaOnce;
 
54910
class CMatchSyntax;
 
54911
namespace Puma {
 
54912
 
 
54913
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54914
class CT_MembInitList : public CT_List, public CSemScope {
 
54915
#line 54916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54916
  friend class ::CCExprResolve;
 
54917
  friend class ::CExprResolve;
 
54918
  friend class ::WinIfExists;
 
54919
  friend class ::WinImportHandler;
 
54920
  friend class ::WinMacros;
 
54921
  friend class ::WinAsm;
 
54922
  friend class ::WinDeclSpecs;
 
54923
  friend class ::WinMemberExplSpec;
 
54924
  friend class ::WinTypeKeywords;
 
54925
  friend class ::WinFriend;
 
54926
  friend class ::ExtAC;
 
54927
  friend class ::ExtACBuilderCoupling;
 
54928
  friend class ::ExtACSyntaxCoupling;
 
54929
  friend class ::ExtACTree;
 
54930
  friend class ::ExtACKeywords;
 
54931
  friend class ::ExtGnu;
 
54932
  friend class ::PragmaOnceUnitState;
 
54933
  friend class ::PragmaOnce;
 
54934
  friend class ::CMatchSyntax;
 
54935
 
 
54936
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54937
 
 
54938
public:
 
54939
  CT_MembInitList (int size = 2) : 
 
54940
    CT_List (size, 2, CT_List::OPEN) {}
 
54941
  static const char *NodeId ();
 
54942
  /** Get the name of the node. Can be compared with NodeId(). */
 
54943
  const char *NodeName () const { return NodeId (); }
 
54944
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
54945
};
 
54946
 
 
54947
 
 
54948
#line 54949 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54949
} // closed Puma
 
54950
class CCExprResolve;
 
54951
class CExprResolve;
 
54952
class WinIfExists;
 
54953
class WinImportHandler;
 
54954
class WinMacros;
 
54955
class WinAsm;
 
54956
class WinDeclSpecs;
 
54957
class WinMemberExplSpec;
 
54958
class WinTypeKeywords;
 
54959
class WinFriend;
 
54960
class ExtAC;
 
54961
class ExtACBuilderCoupling;
 
54962
class ExtACSyntaxCoupling;
 
54963
class ExtACTree;
 
54964
class ExtACKeywords;
 
54965
class ExtGnu;
 
54966
class PragmaOnceUnitState;
 
54967
class PragmaOnce;
 
54968
class CMatchSyntax;
 
54969
namespace Puma {
 
54970
 
 
54971
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54972
 
 
54973
#line 54974 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54974
} // closed Puma
 
54975
 
 
54976
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54977
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54978
#include "CCExprResolveH.ah"
 
54979
#endif
 
54980
namespace Puma {
 
54981
 
 
54982
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54983
 
 
54984
#line 54985 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54985
} // closed Puma
 
54986
 
 
54987
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54988
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54989
#include "CExprResolveH.ah"
 
54990
#endif
 
54991
namespace Puma {
 
54992
 
 
54993
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54994
class CT_MembInit : public CT_Expression, public CSemObject {
 
54995
#line 54996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
54996
  friend class ::CCExprResolve;
 
54997
  friend class ::CExprResolve;
 
54998
  friend class ::WinIfExists;
 
54999
  friend class ::WinImportHandler;
 
55000
  friend class ::WinMacros;
 
55001
  friend class ::WinAsm;
 
55002
  friend class ::WinDeclSpecs;
 
55003
  friend class ::WinMemberExplSpec;
 
55004
  friend class ::WinTypeKeywords;
 
55005
  friend class ::WinFriend;
 
55006
  friend class ::ExtAC;
 
55007
  friend class ::ExtACBuilderCoupling;
 
55008
  friend class ::ExtACSyntaxCoupling;
 
55009
  friend class ::ExtACTree;
 
55010
  friend class ::ExtACKeywords;
 
55011
  friend class ::ExtGnu;
 
55012
  friend class ::PragmaOnceUnitState;
 
55013
  friend class ::PragmaOnce;
 
55014
  friend class ::CMatchSyntax;
 
55015
 
 
55016
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55017
 
 
55018
  CTree *sons[2]; // name, init
 
55019
 
 
55020
public:
 
55021
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
55022
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
55023
  static const char *NodeId ();
 
55024
  /** Get the name of the node. Can be compared with NodeId(). */
 
55025
  const char *NodeName () const { return NodeId (); }
 
55026
  /** Get the number of sons. */
 
55027
  int Sons () const { return 2; }
 
55028
  /** Get the n-th son.
 
55029
   *  \param n The index of the son.
 
55030
   *  \return The n-th son or NULL. */
 
55031
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
55032
  /** Replace a son.
 
55033
   *  \param old_son The son to replace.
 
55034
   *  \param new_son The new son. */
 
55035
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
55036
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
55037
  }
 
55038
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
55039
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
55040
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
55041
   private:
 
55042
  typedef CT_MembInit CCExprResolveExpr;
 
55043
 
 
55044
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55045
 public :
 
55046
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
55047
  typedef CT_MembInit CExprResolveExpr;
 
55048
 
 
55049
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55050
 public :
 
55051
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55052
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55053
};
 
55054
 
 
55055
 
 
55056
#line 55057 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55057
} // closed Puma
 
55058
class CCExprResolve;
 
55059
class CExprResolve;
 
55060
class WinIfExists;
 
55061
class WinImportHandler;
 
55062
class WinMacros;
 
55063
class WinAsm;
 
55064
class WinDeclSpecs;
 
55065
class WinMemberExplSpec;
 
55066
class WinTypeKeywords;
 
55067
class WinFriend;
 
55068
class ExtAC;
 
55069
class ExtACBuilderCoupling;
 
55070
class ExtACSyntaxCoupling;
 
55071
class ExtACTree;
 
55072
class ExtACKeywords;
 
55073
class ExtGnu;
 
55074
class PragmaOnceUnitState;
 
55075
class PragmaOnce;
 
55076
class CMatchSyntax;
 
55077
namespace Puma {
 
55078
 
 
55079
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55080
class CT_BaseSpecList : public CT_List {
 
55081
#line 55082 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55082
  friend class ::CCExprResolve;
 
55083
  friend class ::CExprResolve;
 
55084
  friend class ::WinIfExists;
 
55085
  friend class ::WinImportHandler;
 
55086
  friend class ::WinMacros;
 
55087
  friend class ::WinAsm;
 
55088
  friend class ::WinDeclSpecs;
 
55089
  friend class ::WinMemberExplSpec;
 
55090
  friend class ::WinTypeKeywords;
 
55091
  friend class ::WinFriend;
 
55092
  friend class ::ExtAC;
 
55093
  friend class ::ExtACBuilderCoupling;
 
55094
  friend class ::ExtACSyntaxCoupling;
 
55095
  friend class ::ExtACTree;
 
55096
  friend class ::ExtACKeywords;
 
55097
  friend class ::ExtGnu;
 
55098
  friend class ::PragmaOnceUnitState;
 
55099
  friend class ::PragmaOnce;
 
55100
  friend class ::CMatchSyntax;
 
55101
 
 
55102
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55103
 
 
55104
public:
 
55105
  CT_BaseSpecList (int size = 2) : 
 
55106
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
55107
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
55108
  static const char *NodeId ();
 
55109
  /** Get the name of the node. Can be compared with NodeId(). */
 
55110
  const char *NodeName () const { return NodeId (); }
 
55111
};
 
55112
 
 
55113
 
 
55114
#line 55115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55115
} // closed Puma
 
55116
class CCExprResolve;
 
55117
class CExprResolve;
 
55118
class WinIfExists;
 
55119
class WinImportHandler;
 
55120
class WinMacros;
 
55121
class WinAsm;
 
55122
class WinDeclSpecs;
 
55123
class WinMemberExplSpec;
 
55124
class WinTypeKeywords;
 
55125
class WinFriend;
 
55126
class ExtAC;
 
55127
class ExtACBuilderCoupling;
 
55128
class ExtACSyntaxCoupling;
 
55129
class ExtACTree;
 
55130
class ExtACKeywords;
 
55131
class ExtGnu;
 
55132
class PragmaOnceUnitState;
 
55133
class PragmaOnce;
 
55134
class CMatchSyntax;
 
55135
namespace Puma {
 
55136
 
 
55137
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55138
class CT_AccessSpec : public CTree {
 
55139
#line 55140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55140
  friend class ::CCExprResolve;
 
55141
  friend class ::CExprResolve;
 
55142
  friend class ::WinIfExists;
 
55143
  friend class ::WinImportHandler;
 
55144
  friend class ::WinMacros;
 
55145
  friend class ::WinAsm;
 
55146
  friend class ::WinDeclSpecs;
 
55147
  friend class ::WinMemberExplSpec;
 
55148
  friend class ::WinTypeKeywords;
 
55149
  friend class ::WinFriend;
 
55150
  friend class ::ExtAC;
 
55151
  friend class ::ExtACBuilderCoupling;
 
55152
  friend class ::ExtACSyntaxCoupling;
 
55153
  friend class ::ExtACTree;
 
55154
  friend class ::ExtACKeywords;
 
55155
  friend class ::ExtGnu;
 
55156
  friend class ::PragmaOnceUnitState;
 
55157
  friend class ::PragmaOnce;
 
55158
  friend class ::CMatchSyntax;
 
55159
 
 
55160
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55161
 
 
55162
  CTree *sons[2]; // access, colon
 
55163
 
 
55164
public:
 
55165
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
55166
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
55167
  static const char *NodeId ();
 
55168
  /** Get the name of the node. Can be compared with NodeId(). */
 
55169
  const char *NodeName () const { return NodeId (); }
 
55170
  /** Get the number of sons. */
 
55171
  int Sons () const { return 2; }
 
55172
  /** Get the n-th son.
 
55173
   *  \param n The index of the son.
 
55174
   *  \return The n-th son or NULL. */
 
55175
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
55176
  int Access () const { return sons[0]->token ()->type (); }
 
55177
  /** Replace a son.
 
55178
   *  \param old_son The son to replace.
 
55179
   *  \param new_son The new son. */
 
55180
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
55181
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
55182
  }
 
55183
};
 
55184
 
 
55185
 
 
55186
#line 55187 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55187
} // closed Puma
 
55188
class CCExprResolve;
 
55189
class CExprResolve;
 
55190
class WinIfExists;
 
55191
class WinImportHandler;
 
55192
class WinMacros;
 
55193
class WinAsm;
 
55194
class WinDeclSpecs;
 
55195
class WinMemberExplSpec;
 
55196
class WinTypeKeywords;
 
55197
class WinFriend;
 
55198
class ExtAC;
 
55199
class ExtACBuilderCoupling;
 
55200
class ExtACSyntaxCoupling;
 
55201
class ExtACTree;
 
55202
class ExtACKeywords;
 
55203
class ExtGnu;
 
55204
class PragmaOnceUnitState;
 
55205
class PragmaOnce;
 
55206
class CMatchSyntax;
 
55207
namespace Puma {
 
55208
 
 
55209
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55210
class CT_BaseSpec : public CTree {
 
55211
#line 55212 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55212
  friend class ::CCExprResolve;
 
55213
  friend class ::CExprResolve;
 
55214
  friend class ::WinIfExists;
 
55215
  friend class ::WinImportHandler;
 
55216
  friend class ::WinMacros;
 
55217
  friend class ::WinAsm;
 
55218
  friend class ::WinDeclSpecs;
 
55219
  friend class ::WinMemberExplSpec;
 
55220
  friend class ::WinTypeKeywords;
 
55221
  friend class ::WinFriend;
 
55222
  friend class ::ExtAC;
 
55223
  friend class ::ExtACBuilderCoupling;
 
55224
  friend class ::ExtACSyntaxCoupling;
 
55225
  friend class ::ExtACTree;
 
55226
  friend class ::ExtACKeywords;
 
55227
  friend class ::ExtGnu;
 
55228
  friend class ::PragmaOnceUnitState;
 
55229
  friend class ::PragmaOnce;
 
55230
  friend class ::CMatchSyntax;
 
55231
 
 
55232
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55233
 
 
55234
  CTree *sons[3]; // virtual, access, name
 
55235
 
 
55236
public:
 
55237
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
 
55238
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
 
55239
  }
 
55240
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
55241
  static const char *NodeId ();
 
55242
  /** Get the name of the node. Can be compared with NodeId(). */
 
55243
  const char *NodeName () const { return NodeId (); }
 
55244
  /** Get the number of sons. */
 
55245
  int Sons () const { return CTree::Sons (sons, 3); }
 
55246
  /** Get the n-th son.
 
55247
   *  \param n The index of the son.
 
55248
   *  \return The n-th son or NULL. */
 
55249
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
55250
  int Access () const { return sons[1]->token ()->type (); }
 
55251
  CTree *AccessSpec () const { return sons[1]; }
 
55252
  CTree *Virtual () const { return sons[0]; }
 
55253
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
55254
  /** Replace a son.
 
55255
   *  \param old_son The son to replace.
 
55256
   *  \param new_son The new son. */
 
55257
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
55258
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
55259
  }
 
55260
};
 
55261
 
 
55262
 
 
55263
#line 55264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55264
} // closed Puma
 
55265
class CCExprResolve;
 
55266
class CExprResolve;
 
55267
class WinIfExists;
 
55268
class WinImportHandler;
 
55269
class WinMacros;
 
55270
class WinAsm;
 
55271
class WinDeclSpecs;
 
55272
class WinMemberExplSpec;
 
55273
class WinTypeKeywords;
 
55274
class WinFriend;
 
55275
class ExtAC;
 
55276
class ExtACBuilderCoupling;
 
55277
class ExtACSyntaxCoupling;
 
55278
class ExtACTree;
 
55279
class ExtACKeywords;
 
55280
class ExtGnu;
 
55281
class PragmaOnceUnitState;
 
55282
class PragmaOnce;
 
55283
class CMatchSyntax;
 
55284
namespace Puma {
 
55285
 
 
55286
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55287
class CT_AccessDecl : public CT_Decl {
 
55288
#line 55289 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55289
  friend class ::CCExprResolve;
 
55290
  friend class ::CExprResolve;
 
55291
  friend class ::WinIfExists;
 
55292
  friend class ::WinImportHandler;
 
55293
  friend class ::WinMacros;
 
55294
  friend class ::WinAsm;
 
55295
  friend class ::WinDeclSpecs;
 
55296
  friend class ::WinMemberExplSpec;
 
55297
  friend class ::WinTypeKeywords;
 
55298
  friend class ::WinFriend;
 
55299
  friend class ::ExtAC;
 
55300
  friend class ::ExtACBuilderCoupling;
 
55301
  friend class ::ExtACSyntaxCoupling;
 
55302
  friend class ::ExtACTree;
 
55303
  friend class ::ExtACKeywords;
 
55304
  friend class ::ExtGnu;
 
55305
  friend class ::PragmaOnceUnitState;
 
55306
  friend class ::PragmaOnce;
 
55307
  friend class ::CMatchSyntax;
 
55308
 
 
55309
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55310
 
 
55311
  CTree *sons[2]; // name, semi_colon
 
55312
 
 
55313
public:
 
55314
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
55315
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
55316
  static const char *NodeId ();
 
55317
  /** Get the name of the node. Can be compared with NodeId(). */
 
55318
  const char *NodeName () const { return NodeId (); }
 
55319
  /** Get the number of sons. */
 
55320
  int Sons () const { return 2; }
 
55321
  /** Get the n-th son.
 
55322
   *  \param n The index of the son.
 
55323
   *  \return The n-th son or NULL. */
 
55324
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
55325
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
55326
  /** Replace a son.
 
55327
   *  \param old_son The son to replace.
 
55328
   *  \param new_son The new son. */
 
55329
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
55330
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
55331
  }
 
55332
};
 
55333
 
 
55334
 
 
55335
#line 55336 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55336
} // closed Puma
 
55337
class CCExprResolve;
 
55338
class CExprResolve;
 
55339
class WinIfExists;
 
55340
class WinImportHandler;
 
55341
class WinMacros;
 
55342
class WinAsm;
 
55343
class WinDeclSpecs;
 
55344
class WinMemberExplSpec;
 
55345
class WinTypeKeywords;
 
55346
class WinFriend;
 
55347
class ExtAC;
 
55348
class ExtACBuilderCoupling;
 
55349
class ExtACSyntaxCoupling;
 
55350
class ExtACTree;
 
55351
class ExtACKeywords;
 
55352
class ExtGnu;
 
55353
class PragmaOnceUnitState;
 
55354
class PragmaOnce;
 
55355
class CMatchSyntax;
 
55356
namespace Puma {
 
55357
 
 
55358
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55359
class CT_UsingDecl : public CT_AccessDecl {
 
55360
#line 55361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55361
  friend class ::CCExprResolve;
 
55362
  friend class ::CExprResolve;
 
55363
  friend class ::WinIfExists;
 
55364
  friend class ::WinImportHandler;
 
55365
  friend class ::WinMacros;
 
55366
  friend class ::WinAsm;
 
55367
  friend class ::WinDeclSpecs;
 
55368
  friend class ::WinMemberExplSpec;
 
55369
  friend class ::WinTypeKeywords;
 
55370
  friend class ::WinFriend;
 
55371
  friend class ::ExtAC;
 
55372
  friend class ::ExtACBuilderCoupling;
 
55373
  friend class ::ExtACSyntaxCoupling;
 
55374
  friend class ::ExtACTree;
 
55375
  friend class ::ExtACKeywords;
 
55376
  friend class ::ExtGnu;
 
55377
  friend class ::PragmaOnceUnitState;
 
55378
  friend class ::PragmaOnce;
 
55379
  friend class ::CMatchSyntax;
 
55380
 
 
55381
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55382
 
 
55383
  CTree *sons[2]; // using, typename
 
55384
 
 
55385
public:
 
55386
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
55387
    AddSon (sons[0], u); AddSon (sons[1], 0); 
 
55388
  }
 
55389
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
55390
    AddSon (sons[0], u); AddSon (sons[1], t); 
 
55391
  }
 
55392
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
55393
  static const char *NodeId ();
 
55394
  /** Get the name of the node. Can be compared with NodeId(). */
 
55395
  const char *NodeName () const { return NodeId (); }
 
55396
  /** Get the number of sons. */
 
55397
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
55398
  /** Get the n-th son.
 
55399
   *  \param n The index of the son.
 
55400
   *  \return The n-th son or NULL. */
 
55401
  CTree *Son (int n) const {
 
55402
    int num = CTree::Sons (sons, 2);
 
55403
    CTree *result = CTree::Son (sons, 2, n);
 
55404
    return result ? result : CT_AccessDecl::Son (n-num);
 
55405
  }
 
55406
  CTree *Typename () const { return sons[1]; }
 
55407
  /** Replace a son.
 
55408
   *  \param old_son The son to replace.
 
55409
   *  \param new_son The new son. */
 
55410
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
55411
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
55412
    CT_AccessDecl::ReplaceSon (old_son, new_son);
 
55413
  }
 
55414
};
 
55415
 
 
55416
/*****************************************************************************/
 
55417
/*                                                                           */
 
55418
/*                              Wildcards                                    */
 
55419
/*                                                                           */
 
55420
/*****************************************************************************/
 
55421
 
 
55422
 
 
55423
#line 55424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55424
} // closed Puma
 
55425
class CCExprResolve;
 
55426
class CExprResolve;
 
55427
class WinIfExists;
 
55428
class WinImportHandler;
 
55429
class WinMacros;
 
55430
class WinAsm;
 
55431
class WinDeclSpecs;
 
55432
class WinMemberExplSpec;
 
55433
class WinTypeKeywords;
 
55434
class WinFriend;
 
55435
class ExtAC;
 
55436
class ExtACBuilderCoupling;
 
55437
class ExtACSyntaxCoupling;
 
55438
class ExtACTree;
 
55439
class ExtACKeywords;
 
55440
class ExtGnu;
 
55441
class PragmaOnceUnitState;
 
55442
class PragmaOnce;
 
55443
class CMatchSyntax;
 
55444
namespace Puma {
 
55445
 
 
55446
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55447
class CT_Any : public CTree {
 
55448
#line 55449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55449
  friend class ::CCExprResolve;
 
55450
  friend class ::CExprResolve;
 
55451
  friend class ::WinIfExists;
 
55452
  friend class ::WinImportHandler;
 
55453
  friend class ::WinMacros;
 
55454
  friend class ::WinAsm;
 
55455
  friend class ::WinDeclSpecs;
 
55456
  friend class ::WinMemberExplSpec;
 
55457
  friend class ::WinTypeKeywords;
 
55458
  friend class ::WinFriend;
 
55459
  friend class ::ExtAC;
 
55460
  friend class ::ExtACBuilderCoupling;
 
55461
  friend class ::ExtACSyntaxCoupling;
 
55462
  friend class ::ExtACTree;
 
55463
  friend class ::ExtACKeywords;
 
55464
  friend class ::ExtGnu;
 
55465
  friend class ::PragmaOnceUnitState;
 
55466
  friend class ::PragmaOnce;
 
55467
  friend class ::CMatchSyntax;
 
55468
 
 
55469
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55470
 
 
55471
  CTree *sons[2]; // keyword, extension
 
55472
 
 
55473
public:
 
55474
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
55475
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
55476
  static const char *NodeId ();
 
55477
  /** Get the name of the node. Can be compared with NodeId(). */
 
55478
  const char *NodeName () const { return NodeId (); }
 
55479
  /** Get the number of sons. */
 
55480
  int Sons () const { return CTree::Sons (sons, 2); }
 
55481
  /** Get the n-th son.
 
55482
   *  \param n The index of the son.
 
55483
   *  \return The n-th son or NULL. */
 
55484
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
55485
  /** Replace a son.
 
55486
   *  \param old_son The son to replace.
 
55487
   *  \param new_son The new son. */
 
55488
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
55489
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
55490
  }
 
55491
  int AnyType () const { return sons[0]->token ()->type (); }
 
55492
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
 
55493
};
 
55494
 
 
55495
 
 
55496
#line 55497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55497
} // closed Puma
 
55498
class CCExprResolve;
 
55499
class CExprResolve;
 
55500
class WinIfExists;
 
55501
class WinImportHandler;
 
55502
class WinMacros;
 
55503
class WinAsm;
 
55504
class WinDeclSpecs;
 
55505
class WinMemberExplSpec;
 
55506
class WinTypeKeywords;
 
55507
class WinFriend;
 
55508
class ExtAC;
 
55509
class ExtACBuilderCoupling;
 
55510
class ExtACSyntaxCoupling;
 
55511
class ExtACTree;
 
55512
class ExtACKeywords;
 
55513
class ExtGnu;
 
55514
class PragmaOnceUnitState;
 
55515
class PragmaOnce;
 
55516
class CMatchSyntax;
 
55517
namespace Puma {
 
55518
 
 
55519
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55520
class CT_AnyList : public CT_Any {
 
55521
#line 55522 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55522
  friend class ::CCExprResolve;
 
55523
  friend class ::CExprResolve;
 
55524
  friend class ::WinIfExists;
 
55525
  friend class ::WinImportHandler;
 
55526
  friend class ::WinMacros;
 
55527
  friend class ::WinAsm;
 
55528
  friend class ::WinDeclSpecs;
 
55529
  friend class ::WinMemberExplSpec;
 
55530
  friend class ::WinTypeKeywords;
 
55531
  friend class ::WinFriend;
 
55532
  friend class ::ExtAC;
 
55533
  friend class ::ExtACBuilderCoupling;
 
55534
  friend class ::ExtACSyntaxCoupling;
 
55535
  friend class ::ExtACTree;
 
55536
  friend class ::ExtACKeywords;
 
55537
  friend class ::ExtGnu;
 
55538
  friend class ::PragmaOnceUnitState;
 
55539
  friend class ::PragmaOnce;
 
55540
  friend class ::CMatchSyntax;
 
55541
 
 
55542
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55543
 
 
55544
public:
 
55545
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
55546
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
55547
  static const char *NodeId ();
 
55548
  /** Get the name of the node. Can be compared with NodeId(). */
 
55549
  const char *NodeName () const { return NodeId (); }
 
55550
};
 
55551
 
 
55552
 
 
55553
#line 55554 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55554
} // closed Puma
 
55555
class CCExprResolve;
 
55556
class CExprResolve;
 
55557
class WinIfExists;
 
55558
class WinImportHandler;
 
55559
class WinMacros;
 
55560
class WinAsm;
 
55561
class WinDeclSpecs;
 
55562
class WinMemberExplSpec;
 
55563
class WinTypeKeywords;
 
55564
class WinFriend;
 
55565
class ExtAC;
 
55566
class ExtACBuilderCoupling;
 
55567
class ExtACSyntaxCoupling;
 
55568
class ExtACTree;
 
55569
class ExtACKeywords;
 
55570
class ExtGnu;
 
55571
class PragmaOnceUnitState;
 
55572
class PragmaOnce;
 
55573
class CMatchSyntax;
 
55574
namespace Puma {
 
55575
 
 
55576
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55577
class CT_AnyExtension : public CTree, public CSemValue {
 
55578
#line 55579 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55579
  friend class ::CCExprResolve;
 
55580
  friend class ::CExprResolve;
 
55581
  friend class ::WinIfExists;
 
55582
  friend class ::WinImportHandler;
 
55583
  friend class ::WinMacros;
 
55584
  friend class ::WinAsm;
 
55585
  friend class ::WinDeclSpecs;
 
55586
  friend class ::WinMemberExplSpec;
 
55587
  friend class ::WinTypeKeywords;
 
55588
  friend class ::WinFriend;
 
55589
  friend class ::ExtAC;
 
55590
  friend class ::ExtACBuilderCoupling;
 
55591
  friend class ::ExtACSyntaxCoupling;
 
55592
  friend class ::ExtACTree;
 
55593
  friend class ::ExtACKeywords;
 
55594
  friend class ::ExtGnu;
 
55595
  friend class ::PragmaOnceUnitState;
 
55596
  friend class ::PragmaOnce;
 
55597
  friend class ::CMatchSyntax;
 
55598
 
 
55599
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55600
 
 
55601
  CTree *sons[5]; // open, string, comma, cond, close
 
55602
 
 
55603
public:
 
55604
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
 
55605
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
55606
    AddSon (sons[3], c); AddSon (sons[4], cr); 
 
55607
  }
 
55608
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
55609
  static const char *NodeId ();
 
55610
  /** Get the name of the node. Can be compared with NodeId(). */
 
55611
  const char *NodeName () const { return NodeId (); }
 
55612
  /** Get the number of sons. */
 
55613
  int Sons () const { return CTree::Sons (sons, 5); }
 
55614
  /** Get the n-th son.
 
55615
   *  \param n The index of the son.
 
55616
   *  \return The n-th son or NULL. */
 
55617
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
55618
  /** Replace a son.
 
55619
   *  \param old_son The son to replace.
 
55620
   *  \param new_son The new son. */
 
55621
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
55622
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
55623
  }
 
55624
  CTree *Condition () const { return sons[3]; }
 
55625
  CT_Token *String () const { return (CT_Token*)sons[1]; }
 
55626
  const char *Name () const { 
 
55627
    return value ? value->StrLiteral ()->String () : (const char*)0; }
 
55628
 
 
55629
  CExprValue *Value () const { return value; }
 
55630
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
55631
};
 
55632
 
 
55633
 
 
55634
#line 55635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55635
} // closed Puma
 
55636
class CCExprResolve;
 
55637
class CExprResolve;
 
55638
class WinIfExists;
 
55639
class WinImportHandler;
 
55640
class WinMacros;
 
55641
class WinAsm;
 
55642
class WinDeclSpecs;
 
55643
class WinMemberExplSpec;
 
55644
class WinTypeKeywords;
 
55645
class WinFriend;
 
55646
class ExtAC;
 
55647
class ExtACBuilderCoupling;
 
55648
class ExtACSyntaxCoupling;
 
55649
class ExtACTree;
 
55650
class ExtACKeywords;
 
55651
class ExtGnu;
 
55652
class PragmaOnceUnitState;
 
55653
class PragmaOnce;
 
55654
class CMatchSyntax;
 
55655
namespace Puma {
 
55656
 
 
55657
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55658
class CT_AnyCondition : public CTree {
 
55659
#line 55660 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55660
  friend class ::CCExprResolve;
 
55661
  friend class ::CExprResolve;
 
55662
  friend class ::WinIfExists;
 
55663
  friend class ::WinImportHandler;
 
55664
  friend class ::WinMacros;
 
55665
  friend class ::WinAsm;
 
55666
  friend class ::WinDeclSpecs;
 
55667
  friend class ::WinMemberExplSpec;
 
55668
  friend class ::WinTypeKeywords;
 
55669
  friend class ::WinFriend;
 
55670
  friend class ::ExtAC;
 
55671
  friend class ::ExtACBuilderCoupling;
 
55672
  friend class ::ExtACSyntaxCoupling;
 
55673
  friend class ::ExtACTree;
 
55674
  friend class ::ExtACKeywords;
 
55675
  friend class ::ExtGnu;
 
55676
  friend class ::PragmaOnceUnitState;
 
55677
  friend class ::PragmaOnce;
 
55678
  friend class ::CMatchSyntax;
 
55679
 
 
55680
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55681
 
 
55682
  CTree *sons[3]; // arg1, arg2, arg3
 
55683
 
 
55684
public:
 
55685
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
 
55686
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
 
55687
  }
 
55688
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
55689
  static const char *NodeId ();
 
55690
  /** Get the name of the node. Can be compared with NodeId(). */
 
55691
  const char *NodeName () const { return NodeId (); }
 
55692
  /** Get the number of sons. */
 
55693
  int Sons () const { return CTree::Sons (sons, 3); }
 
55694
  /** Get the n-th son.
 
55695
   *  \param n The index of the son.
 
55696
   *  \return The n-th son or NULL. */
 
55697
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
55698
  /** Replace a son.
 
55699
   *  \param old_son The son to replace.
 
55700
   *  \param new_son The new son. */
 
55701
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
55702
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
55703
  }
 
55704
};
 
55705
 
 
55706
 
 
55707
} // namespace Puma
 
55708
 
 
55709
#endif /* __CTree_h__ */
 
55710
 
 
55711
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemExpr.h"
 
55712
namespace Puma {
 
55713
 
 
55714
class CStructure;
 
55715
class CObjectInfo;
 
55716
 
 
55717
 
 
55718
 
 
55719
#line 55720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55720
} // closed Puma
 
55721
class CCExprResolve;
 
55722
class CExprResolve;
 
55723
class WinIfExists;
 
55724
class WinImportHandler;
 
55725
class WinMacros;
 
55726
class WinAsm;
 
55727
class WinDeclSpecs;
 
55728
class WinMemberExplSpec;
 
55729
class WinTypeKeywords;
 
55730
class WinFriend;
 
55731
class ExtAC;
 
55732
class ExtACBuilderCoupling;
 
55733
class ExtACSyntaxCoupling;
 
55734
class ExtACTree;
 
55735
class ExtACKeywords;
 
55736
class ExtGnu;
 
55737
class PragmaOnceUnitState;
 
55738
class PragmaOnce;
 
55739
class CMatchSyntax;
 
55740
namespace Puma {
 
55741
 
 
55742
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemExpr.h"
 
55743
 
 
55744
#line 55745 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55745
} // closed Puma
 
55746
 
 
55747
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
55748
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
55749
 
 
55750
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
55751
// This file is part of PUMA.
 
55752
// Copyright (C) 1999-2003  The PUMA developer team.
 
55753
//                                                                
 
55754
// This program is free software;  you can redistribute it and/or 
 
55755
// modify it under the terms of the GNU General Public License as 
 
55756
// published by the Free Software Foundation; either version 2 of 
 
55757
// the License, or (at your option) any later version.            
 
55758
//                                                                
 
55759
// This program is distributed in the hope that it will be useful,
 
55760
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
55761
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
55762
// GNU General Public License for more details.                   
 
55763
//                                                                
 
55764
// You should have received a copy of the GNU General Public      
 
55765
// License along with this program; if not, write to the Free     
 
55766
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
55767
// MA  02111-1307  USA                                            
 
55768
 
 
55769
#ifndef __ext_gnu_h__
 
55770
#define __ext_gnu_h__
 
55771
 
 
55772
 
 
55773
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
55774
// This file is part of PUMA.
 
55775
// Copyright (C) 1999-2003  The PUMA developer team.
 
55776
//                                                                
 
55777
// This program is free software;  you can redistribute it and/or 
 
55778
// modify it under the terms of the GNU General Public License as 
 
55779
// published by the Free Software Foundation; either version 2 of 
 
55780
// the License, or (at your option) any later version.            
 
55781
//                                                                
 
55782
// This program is distributed in the hope that it will be useful,
 
55783
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
55784
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
55785
// GNU General Public License for more details.                   
 
55786
//                                                                
 
55787
// You should have received a copy of the GNU General Public      
 
55788
// License along with this program; if not, write to the Free     
 
55789
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
55790
// MA  02111-1307  USA                                            
 
55791
 
 
55792
#ifndef __CStructure_h__
 
55793
#define __CStructure_h__
 
55794
 
 
55795
// base class of everything that also is a scope
 
55796
// (function, class, union, namespace...)
 
55797
// stores semantic info objects for variables, 
 
55798
// enumerators, function and template parameters,
 
55799
// typedefs, classes, unions, enumerations, 
 
55800
// namespaces, using-directives, friend function 
 
55801
// declarations, functions, class methods, class 
 
55802
// data members, function and class templates,
 
55803
// function and class template instances, member 
 
55804
// aliases
 
55805
 
 
55806
 
 
55807
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
55808
// This file is part of PUMA.
 
55809
// Copyright (C) 1999-2003  The PUMA developer team.
 
55810
//                                                                
 
55811
// This program is free software;  you can redistribute it and/or 
 
55812
// modify it under the terms of the GNU General Public License as 
 
55813
// published by the Free Software Foundation; either version 2 of 
 
55814
// the License, or (at your option) any later version.            
 
55815
//                                                                
 
55816
// This program is distributed in the hope that it will be useful,
 
55817
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
55818
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
55819
// GNU General Public License for more details.                   
 
55820
//                                                                
 
55821
// You should have received a copy of the GNU General Public      
 
55822
// License along with this program; if not, write to the Free     
 
55823
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
55824
// MA  02111-1307  USA                                            
 
55825
 
 
55826
#ifndef __CScopeInfo_h__
 
55827
#define __CScopeInfo_h__
 
55828
 
 
55829
// scope info
 
55830
 
 
55831
 
 
55832
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
55833
namespace Puma {
 
55834
 
 
55835
 
 
55836
class CLocalScope;
 
55837
class CFunctionInfo;
 
55838
class CNamespaceInfo;
 
55839
class CClassInfo;
 
55840
class CUnionInfo;
 
55841
class CTemplateInfo;
 
55842
 
 
55843
 
 
55844
#line 55845 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55845
} // closed Puma
 
55846
class CCExprResolve;
 
55847
class CExprResolve;
 
55848
class WinIfExists;
 
55849
class WinImportHandler;
 
55850
class WinMacros;
 
55851
class WinAsm;
 
55852
class WinDeclSpecs;
 
55853
class WinMemberExplSpec;
 
55854
class WinTypeKeywords;
 
55855
class WinFriend;
 
55856
class ExtAC;
 
55857
class ExtACBuilderCoupling;
 
55858
class ExtACSyntaxCoupling;
 
55859
class ExtACTree;
 
55860
class ExtACKeywords;
 
55861
class ExtGnu;
 
55862
class PragmaOnceUnitState;
 
55863
class PragmaOnce;
 
55864
class CMatchSyntax;
 
55865
namespace Puma {
 
55866
 
 
55867
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
55868
class CScopeInfo : public CObjectInfo {
 
55869
#line 55870 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
55870
  friend class ::CCExprResolve;
 
55871
  friend class ::CExprResolve;
 
55872
  friend class ::WinIfExists;
 
55873
  friend class ::WinImportHandler;
 
55874
  friend class ::WinMacros;
 
55875
  friend class ::WinAsm;
 
55876
  friend class ::WinDeclSpecs;
 
55877
  friend class ::WinMemberExplSpec;
 
55878
  friend class ::WinTypeKeywords;
 
55879
  friend class ::WinFriend;
 
55880
  friend class ::ExtAC;
 
55881
  friend class ::ExtACBuilderCoupling;
 
55882
  friend class ::ExtACSyntaxCoupling;
 
55883
  friend class ::ExtACTree;
 
55884
  friend class ::ExtACKeywords;
 
55885
  friend class ::ExtGnu;
 
55886
  friend class ::PragmaOnceUnitState;
 
55887
  friend class ::PragmaOnce;
 
55888
  friend class ::CMatchSyntax;
 
55889
 
 
55890
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
55891
 
 
55892
  Array<CScopeInfo*> _Children; // child scopes
 
55893
  CScopeInfo *_Parent; // parent scope
 
55894
 
 
55895
protected:
 
55896
  CScopeInfo (ObjectId);
 
55897
 
 
55898
public:
 
55899
  ~CScopeInfo ();
 
55900
 
 
55901
  // Get ... 
 
55902
  unsigned Children () const;           // children of this scope
 
55903
  CScopeInfo *Child (unsigned) const;
 
55904
  CScopeInfo *Parent () const;          // parent scope
 
55905
  bool isFile () const;                 // is file?
 
55906
  bool isNamespace () const;            // is namespace?
 
55907
  bool isRecord () const;               // is class or union?
 
55908
  bool isClass () const;                // is class?
 
55909
  bool isUnion () const;                // is union?
 
55910
  bool isFunction () const;             // is function?
 
55911
  bool isMethod () const;               // is class method?
 
55912
  bool isClassTemplate () const;        // is class template?
 
55913
  bool isFctTemplate () const;          // is function template?
 
55914
  bool insideTemplate () const;         // is inside class or function template?
 
55915
  bool insideRecord () const;           // is inside class or union?
 
55916
  bool insideClass () const;            // is inside class?
 
55917
  bool insideUnion () const;            // is inside union?
 
55918
  bool insideFunction () const;         // is inside function?
 
55919
  bool insideMethod () const;           // is inside class method?
 
55920
  bool isLocalScope () const;           // is local (block) scope?
 
55921
  bool isLocalRecord () const;          // is local (block scope) class or union?
 
55922
  bool isLocalClass () const;           // is local (block scope) class?
 
55923
  bool isLocalUnion () const;           // is local (block scope) union?
 
55924
  
 
55925
  bool GlobalScope () const;            // global (file) scope
 
55926
 
 
55927
  // Set ...
 
55928
  void Parent (const CScopeInfo *);
 
55929
  void addChild (CScopeInfo *);
 
55930
  void removeChild (const CScopeInfo *); // WILL NOT BE DESTROYED!
 
55931
  
 
55932
  // Create/Delete ...
 
55933
  CLocalScope *newLocalScope ();
 
55934
  CFunctionInfo *newFunction (bool = false);
 
55935
  CClassInfo *newClass (bool = false);
 
55936
  CUnionInfo *newUnion (bool = false);
 
55937
  CNamespaceInfo *newNamespace ();
 
55938
  CTemplateInfo *newTemplate ();
 
55939
  void deleteLocalScope (const CLocalScope *);
 
55940
  void deleteFunction (const CFunctionInfo *);
 
55941
  void deleteClass (const CClassInfo *);
 
55942
  void deleteUnion (const CUnionInfo *);
 
55943
  void deleteNamespace (const CNamespaceInfo *);
 
55944
  void deleteTemplate (const CTemplateInfo *);
 
55945
};
 
55946
 
 
55947
 
 
55948
inline CScopeInfo::CScopeInfo (CObjectInfo::ObjectId id) :
 
55949
  CObjectInfo (id),
 
55950
  _Children (20, 20),
 
55951
  _Parent ((CScopeInfo*)this)
 
55952
 {}
 
55953
 
 
55954
inline unsigned CScopeInfo::Children () const
 
55955
 { return _Children.length (); }
 
55956
inline CScopeInfo *CScopeInfo::Child (unsigned n) const
 
55957
 { return _Children.lookup (n); }
 
55958
inline CScopeInfo *CScopeInfo::Parent () const
 
55959
 { return _Parent; }
 
55960
 
 
55961
inline bool CScopeInfo::isLocalScope () const
 
55962
 { return LocalScope (); }
 
55963
inline bool CScopeInfo::isFile () const 
 
55964
 { return FileInfo (); }
 
55965
inline bool CScopeInfo::isNamespace () const 
 
55966
 { return NamespaceInfo (); }
 
55967
inline bool CScopeInfo::isRecord () const 
 
55968
 { return Record (); }
 
55969
inline bool CScopeInfo::isClass () const 
 
55970
 { return ClassInfo (); }
 
55971
inline bool CScopeInfo::isUnion () const 
 
55972
 { return UnionInfo (); }
 
55973
inline bool CScopeInfo::isFunction () const 
 
55974
 { return FunctionInfo (); }
 
55975
inline bool CScopeInfo::GlobalScope () const 
 
55976
 { return FileInfo (); }
 
55977
 
 
55978
inline bool CScopeInfo::insideFunction () const 
 
55979
 { return isFunction () || (Parent () && Parent () != this && 
 
55980
                            Parent ()->insideFunction ()); }
 
55981
inline bool CScopeInfo::insideMethod () const 
 
55982
 { return isMethod () || (Parent () && Parent () != this && 
 
55983
                          Parent ()->insideMethod ()); }
 
55984
inline bool CScopeInfo::insideRecord () const 
 
55985
 { return isRecord () || (Parent () && Parent () != this && 
 
55986
                          Parent ()->insideRecord ()); }
 
55987
inline bool CScopeInfo::insideTemplate () const 
 
55988
 { return isTemplate () || (Parent () && Parent () != this && 
 
55989
                            Parent ()->insideTemplate ()); }
 
55990
inline bool CScopeInfo::insideClass () const 
 
55991
 { return isClass () || (Parent () && Parent () != this && 
 
55992
                         Parent ()->insideClass ()); }
 
55993
inline bool CScopeInfo::insideUnion () const 
 
55994
 { return isUnion () || (Parent () && Parent () != this && 
 
55995
                         Parent ()->insideUnion ()); }
 
55996
 
 
55997
inline bool CScopeInfo::isLocalClass () const 
 
55998
 { return isClass () && insideFunction (); }
 
55999
inline bool CScopeInfo::isLocalUnion () const 
 
56000
 { return isUnion () && insideFunction (); }
 
56001
inline bool CScopeInfo::isLocalRecord () const 
 
56002
 { return isRecord () && insideFunction (); }
 
56003
 
 
56004
 
 
56005
} // namespace Puma
 
56006
 
 
56007
#endif /* __CScopeInfo_h__ */
 
56008
 
 
56009
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
56010
#ifndef __puma
 
56011
 
 
56012
#include <map>
 
56013
#include <set>
 
56014
#include <list>
 
56015
#include <string>
 
56016
#include "Puma/DString.h"
 
56017
using namespace std;
 
56018
 
 
56019
#endif
 
56020
 
 
56021
namespace Puma {
 
56022
 
 
56023
 
 
56024
class CAttributeInfo;
 
56025
class CTemplateParamInfo;
 
56026
class CFunctionInfo;
 
56027
class CClassInfo;
 
56028
class CUnionInfo;
 
56029
class CEnumInfo;
 
56030
class CTypedefInfo;
 
56031
class CNamespaceInfo;
 
56032
class CUsingInfo;
 
56033
class CMemberAliasInfo;
 
56034
 
 
56035
 
 
56036
#line 56037 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
56037
} // closed Puma
 
56038
class CCExprResolve;
 
56039
class CExprResolve;
 
56040
class WinIfExists;
 
56041
class WinImportHandler;
 
56042
class WinMacros;
 
56043
class WinAsm;
 
56044
class WinDeclSpecs;
 
56045
class WinMemberExplSpec;
 
56046
class WinTypeKeywords;
 
56047
class WinFriend;
 
56048
class ExtAC;
 
56049
class ExtACBuilderCoupling;
 
56050
class ExtACSyntaxCoupling;
 
56051
class ExtACTree;
 
56052
class ExtACKeywords;
 
56053
class ExtGnu;
 
56054
class PragmaOnceUnitState;
 
56055
class PragmaOnce;
 
56056
class CMatchSyntax;
 
56057
namespace Puma {
 
56058
 
 
56059
#line 61 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
56060
class CStructure : public CScopeInfo {
 
56061
#line 56062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
56062
  friend class ::CCExprResolve;
 
56063
  friend class ::CExprResolve;
 
56064
  friend class ::WinIfExists;
 
56065
  friend class ::WinImportHandler;
 
56066
  friend class ::WinMacros;
 
56067
  friend class ::WinAsm;
 
56068
  friend class ::WinDeclSpecs;
 
56069
  friend class ::WinMemberExplSpec;
 
56070
  friend class ::WinTypeKeywords;
 
56071
  friend class ::WinFriend;
 
56072
  friend class ::ExtAC;
 
56073
  friend class ::ExtACBuilderCoupling;
 
56074
  friend class ::ExtACSyntaxCoupling;
 
56075
  friend class ::ExtACTree;
 
56076
  friend class ::ExtACKeywords;
 
56077
  friend class ::ExtGnu;
 
56078
  friend class ::PragmaOnceUnitState;
 
56079
  friend class ::PragmaOnce;
 
56080
  friend class ::CMatchSyntax;
 
56081
 
 
56082
#line 61 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
56083
 
 
56084
public:
 
56085
#ifndef __puma
 
56086
  typedef list<CObjectInfo*> ObjectInfoList;
 
56087
  typedef map<DString,ObjectInfoList> ObjectsByName;
 
56088
  typedef set<CObjectInfo*> ObjectInfoSet;
 
56089
#endif 
 
56090
 
 
56091
private:
 
56092
  CStructure                *_Shared;
 
56093
  Array<CObjectInfo*>        _Objects; // ALL objects (mixed, in the order added to)
 
56094
  Array<CAttributeInfo*>     _Attributes;
 
56095
  Array<CTemplateParamInfo*> _TemplateParams;
 
56096
  Array<CFunctionInfo*>      _Functions;
 
56097
  Array<CObjectInfo*>        _Types;
 
56098
  Array<CUsingInfo*>         _Usings;     
 
56099
  Array<CRecord*>            _Friends;
 
56100
  Array<CNamespaceInfo*>     _Namespaces;     
 
56101
  Array<CMemberAliasInfo*>   _Aliases;     
 
56102
#ifndef __puma
 
56103
  ObjectsByName              _ObjectMap;
 
56104
  ObjectInfoSet              _ObjectSet;
 
56105
#endif
 
56106
 
 
56107
protected:
 
56108
  CStructure (ObjectId);
 
56109
 
 
56110
public:
 
56111
  ~CStructure ();
 
56112
 
 
56113
  // Get ... 
 
56114
#ifndef __puma
 
56115
  ObjectsByName& ObjectInfoMap() { return _Shared->_ObjectMap; }
 
56116
  const ObjectInfoSet& ObjectInfos() const { return _Shared->_ObjectSet; }
 
56117
#endif 
 
56118
  unsigned Objects () const;                        // all entities in scope
 
56119
  unsigned Objects (const DString&) const;
 
56120
  unsigned Types () const;                          // type declarations
 
56121
  unsigned Types (const DString&) const;
 
56122
  unsigned Attributes () const;                     // data objects
 
56123
  unsigned Attributes (const DString&) const;
 
56124
  unsigned TemplateParams () const;                 // template parameters
 
56125
  unsigned TemplateParams (const DString&) const;
 
56126
  unsigned Functions () const;                      // functions, methods, function
 
56127
  unsigned Functions (const DString&) const;        // templates and its instances
 
56128
  unsigned Usings () const;                         // using-directives
 
56129
  unsigned Usings (const DString&) const;
 
56130
  unsigned Namespaces () const;                     // namespaces
 
56131
  unsigned Namespaces (const DString&) const;
 
56132
  unsigned Friends () const;                        // friend function declarations
 
56133
  unsigned Friends (const DString&) const;
 
56134
  CObjectInfo *Object (unsigned) const;
 
56135
  CObjectInfo *Object (const DString&, unsigned = 0) const;
 
56136
  CObjectInfo *Type (unsigned) const;
 
56137
  CObjectInfo *Type (const DString&, unsigned = 0) const;
 
56138
  CUsingInfo *Using (unsigned) const;
 
56139
  CUsingInfo *Using (const DString&, unsigned = 0) const;
 
56140
  CNamespaceInfo *Namespace (unsigned) const;
 
56141
  CNamespaceInfo *Namespace (const DString&, unsigned = 0) const;
 
56142
  CRecord *Friend (unsigned) const;
 
56143
  CRecord *Friend (const DString&, unsigned = 0) const;
 
56144
  CAttributeInfo *Attribute (unsigned) const;
 
56145
  CAttributeInfo *Attribute (const DString&, unsigned = 0) const;
 
56146
  CTemplateParamInfo *TemplateParam (unsigned) const;
 
56147
  CTemplateParamInfo *TemplateParam (const DString&, unsigned = 0) const;
 
56148
  CFunctionInfo *Function (unsigned) const;
 
56149
  CFunctionInfo *Function (const DString&, unsigned = 0) const;
 
56150
  CFunctionInfo *Function (const DString&, CTypeInfo *) const;
 
56151
 
 
56152
  bool isMemberAlias (const CObjectInfo *) const; // is a member alias info?
 
56153
  CMemberAliasInfo *MemberAlias (const CObjectInfo *) const; // get denoted member
 
56154
 
 
56155
  // Set ...
 
56156
  void setShared (CStructure *);
 
56157
  void addObject (CObjectInfo *);
 
56158
  void addAttribute (CAttributeInfo *);
 
56159
  void addTemplateParam (CTemplateParamInfo *);
 
56160
  void addFunction (CFunctionInfo *);
 
56161
  void addType (CObjectInfo *);
 
56162
  void addUsing (CUsingInfo *);
 
56163
  void addNamespace (CNamespaceInfo *);
 
56164
  void addFriend (CRecord *);
 
56165
  void removeObject (const CObjectInfo *);       // WILL NOT BE DESTROYED!
 
56166
  void removeAttribute (const CAttributeInfo *); // WILL NOT BE DESTROYED!
 
56167
  void removeTemplateParam (const CTemplateParamInfo *); // WILL NOT BE DESTROYED!
 
56168
  void removeFunction (const CFunctionInfo *);   // WILL NOT BE DESTROYED!
 
56169
  void removeType (const CObjectInfo *);         // WILL NOT BE DESTROYED!
 
56170
  void removeUsing (const CUsingInfo *);         // WILL NOT BE DESTROYED!
 
56171
  void removeNamespace (const CNamespaceInfo *); // WILL NOT BE DESTROYED!
 
56172
  void removeFriend (const CRecord *);           // WILL NOT BE DESTROYED!
 
56173
  void removeMemberAlias (const CMemberAliasInfo *); // WILL NOT BE DESTROYED!
 
56174
 
 
56175
  void removeRegisterEntry ();
 
56176
  
 
56177
  void addObjectName(CObjectInfo *); // internal use only, do not call directly
 
56178
  void removeObjectName (const DString& name, CObjectInfo *info) ; // internal use only
 
56179
 
 
56180
  // Create/Delete ...
 
56181
  CAttributeInfo *newAttribute ();
 
56182
  CEnumInfo *newEnum ();
 
56183
  CUsingInfo *newUsing ();
 
56184
  CTypedefInfo *newTypedef ();
 
56185
  CMemberAliasInfo *newMemberAlias (CObjectInfo *);
 
56186
  void deleteAttribute (const CAttributeInfo *); 
 
56187
  void deleteEnum (const CEnumInfo *);
 
56188
  void deleteUsing (const CUsingInfo *);
 
56189
  void deleteTypedef (const CTypedefInfo *);
 
56190
  void deleteMemberAlias (const CMemberAliasInfo *);
 
56191
};
 
56192
 
 
56193
#define INIT_SIZE 20
 
56194
#define INCR_SIZE 20
 
56195
 
 
56196
inline CStructure::CStructure (CObjectInfo::ObjectId id) :
 
56197
  CScopeInfo (id),
 
56198
  _Shared (this),
 
56199
  _Objects (INIT_SIZE, INCR_SIZE),
 
56200
  _Attributes (INIT_SIZE, INCR_SIZE),
 
56201
  _TemplateParams (INIT_SIZE, INCR_SIZE),
 
56202
  _Functions (INIT_SIZE, INCR_SIZE),
 
56203
  _Types (INIT_SIZE, INCR_SIZE),
 
56204
  _Usings (INIT_SIZE, INCR_SIZE),
 
56205
  _Friends (INIT_SIZE, INCR_SIZE),
 
56206
  _Namespaces (INIT_SIZE, INCR_SIZE),
 
56207
  _Aliases (INIT_SIZE, INCR_SIZE)
 
56208
 {}
 
56209
 
 
56210
inline unsigned CStructure::Objects () const
 
56211
 { return _Objects.length (); }
 
56212
inline unsigned CStructure::Types () const
 
56213
 { return _Types.length (); }
 
56214
inline unsigned CStructure::Attributes () const
 
56215
 { return _Attributes.length (); }
 
56216
inline unsigned CStructure::TemplateParams () const
 
56217
 { return _TemplateParams.length (); }
 
56218
inline unsigned CStructure::Functions () const
 
56219
 { return _Functions.length (); }
 
56220
inline unsigned CStructure::Usings () const
 
56221
 { return _Usings.length (); }
 
56222
inline unsigned CStructure::Namespaces () const
 
56223
 { return _Namespaces.length (); }
 
56224
inline unsigned CStructure::Friends () const
 
56225
 { return _Friends.length (); }
 
56226
inline CObjectInfo *CStructure::Object (unsigned n) const
 
56227
 { return _Objects.lookup (n); }
 
56228
inline CObjectInfo *CStructure::Type (unsigned n) const
 
56229
 { return _Types.lookup (n); }
 
56230
inline CAttributeInfo *CStructure::Attribute (unsigned n) const
 
56231
 { return _Attributes.lookup (n); }
 
56232
inline CTemplateParamInfo *CStructure::TemplateParam (unsigned n) const
 
56233
 { return _TemplateParams.lookup (n); }
 
56234
inline CFunctionInfo *CStructure::Function (unsigned n) const
 
56235
 { return _Functions.lookup (n); }
 
56236
inline CUsingInfo *CStructure::Using (unsigned n) const
 
56237
 { return _Usings.lookup (n); }
 
56238
inline CNamespaceInfo *CStructure::Namespace (unsigned n) const
 
56239
 { return _Namespaces.lookup (n); }
 
56240
inline CRecord *CStructure::Friend (unsigned n) const
 
56241
 { return _Friends.lookup (n); }
 
56242
 
 
56243
inline bool CStructure::isMemberAlias (const CObjectInfo *info) const
 
56244
 { return (MemberAlias (info)); }
 
56245
 
 
56246
 
 
56247
} // namespace Puma
 
56248
 
 
56249
#endif /* __CStructure_h__ */
 
56250
 
 
56251
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
56252
// This file is part of PUMA.
 
56253
// Copyright (C) 1999-2003  The PUMA developer team.
 
56254
//                                                                
 
56255
// This program is free software;  you can redistribute it and/or 
 
56256
// modify it under the terms of the GNU General Public License as 
 
56257
// published by the Free Software Foundation; either version 2 of 
 
56258
// the License, or (at your option) any later version.            
 
56259
//                                                                
 
56260
// This program is distributed in the hope that it will be useful,
 
56261
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
56262
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
56263
// GNU General Public License for more details.                   
 
56264
//                                                                
 
56265
// You should have received a copy of the GNU General Public      
 
56266
// License along with this program; if not, write to the Free     
 
56267
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
56268
// MA  02111-1307  USA                                            
 
56269
 
 
56270
#ifndef __CSemVisitor_h__
 
56271
#define __CSemVisitor_h__
 
56272
 
 
56273
 
 
56274
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CVisitor.h"
 
56275
// This file is part of PUMA.
 
56276
// Copyright (C) 1999-2003  The PUMA developer team.
 
56277
//                                                                
 
56278
// This program is free software;  you can redistribute it and/or 
 
56279
// modify it under the terms of the GNU General Public License as 
 
56280
// published by the Free Software Foundation; either version 2 of 
 
56281
// the License, or (at your option) any later version.            
 
56282
//                                                                
 
56283
// This program is distributed in the hope that it will be useful,
 
56284
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
56285
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
56286
// GNU General Public License for more details.                   
 
56287
//                                                                
 
56288
// You should have received a copy of the GNU General Public      
 
56289
// License along with this program; if not, write to the Free     
 
56290
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
56291
// MA  02111-1307  USA                                            
 
56292
 
 
56293
#ifndef __CVisitor_h__
 
56294
#define __CVisitor_h__
 
56295
 
 
56296
// Iterate through a C++ syntax tree
 
56297
 
 
56298
namespace Puma {
 
56299
 
 
56300
 
 
56301
class CTree;
 
56302
 
 
56303
 
 
56304
#line 56305 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
56305
} // closed Puma
 
56306
class CCExprResolve;
 
56307
class CExprResolve;
 
56308
class WinIfExists;
 
56309
class WinImportHandler;
 
56310
class WinMacros;
 
56311
class WinAsm;
 
56312
class WinDeclSpecs;
 
56313
class WinMemberExplSpec;
 
56314
class WinTypeKeywords;
 
56315
class WinFriend;
 
56316
class ExtAC;
 
56317
class ExtACBuilderCoupling;
 
56318
class ExtACSyntaxCoupling;
 
56319
class ExtACTree;
 
56320
class ExtACKeywords;
 
56321
class ExtGnu;
 
56322
class PragmaOnceUnitState;
 
56323
class PragmaOnce;
 
56324
class CMatchSyntax;
 
56325
namespace Puma {
 
56326
 
 
56327
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CVisitor.h"
 
56328
class CVisitor {
 
56329
#line 56330 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
56330
  friend class ::CCExprResolve;
 
56331
  friend class ::CExprResolve;
 
56332
  friend class ::WinIfExists;
 
56333
  friend class ::WinImportHandler;
 
56334
  friend class ::WinMacros;
 
56335
  friend class ::WinAsm;
 
56336
  friend class ::WinDeclSpecs;
 
56337
  friend class ::WinMemberExplSpec;
 
56338
  friend class ::WinTypeKeywords;
 
56339
  friend class ::WinFriend;
 
56340
  friend class ::ExtAC;
 
56341
  friend class ::ExtACBuilderCoupling;
 
56342
  friend class ::ExtACSyntaxCoupling;
 
56343
  friend class ::ExtACTree;
 
56344
  friend class ::ExtACKeywords;
 
56345
  friend class ::ExtGnu;
 
56346
  friend class ::PragmaOnceUnitState;
 
56347
  friend class ::PragmaOnce;
 
56348
  friend class ::CMatchSyntax;
 
56349
 
 
56350
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CVisitor.h"
 
56351
 
 
56352
  bool _aborted;
 
56353
  bool _pruned;
 
56354
 
 
56355
  void visit_sons (CTree *node);
 
56356
 
 
56357
public:
 
56358
  CVisitor () : _aborted (false), _pruned (false) {}
 
56359
  virtual ~CVisitor () {}
 
56360
 
 
56361
  void abort (bool v = true) { _aborted = v; }
 
56362
  void prune (bool v = true) { _pruned = v; }
 
56363
  bool aborted () const { return _aborted; }
 
56364
  bool pruned () const { return _pruned; }
 
56365
  
 
56366
  void visit (CTree *node);
 
56367
 
 
56368
  virtual void pre_visit (CTree *node);
 
56369
  virtual void post_visit (CTree *node);
 
56370
};
 
56371
 
 
56372
 
 
56373
} // namespace Puma
 
56374
 
 
56375
#endif /* __CVisitor_h__ */
 
56376
 
 
56377
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56378
 
 
56379
#line 56380 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
56380
 
 
56381
#ifndef __ac_fwd_ExtACTree__
 
56382
#define __ac_fwd_ExtACTree__
 
56383
class ExtACTree;
 
56384
namespace AC {
 
56385
  template <class JoinPoint>
 
56386
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
56387
  template <class JoinPoint>
 
56388
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
56389
}
 
56390
#endif
 
56391
 
 
56392
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
56393
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
56394
#endif
 
56395
 
 
56396
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56397
// This file is part of PUMA.
 
56398
// Copyright (C) 1999-2003  The PUMA developer team.
 
56399
//                                                                
 
56400
// This program is free software;  you can redistribute it and/or 
 
56401
// modify it under the terms of the GNU General Public License as 
 
56402
// published by the Free Software Foundation; either version 2 of 
 
56403
// the License, or (at your option) any later version.            
 
56404
//                                                                
 
56405
// This program is distributed in the hope that it will be useful,
 
56406
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
56407
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
56408
// GNU General Public License for more details.                   
 
56409
//                                                                
 
56410
// You should have received a copy of the GNU General Public      
 
56411
// License along with this program; if not, write to the Free     
 
56412
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
56413
// MA  02111-1307  USA                                            
 
56414
 
 
56415
#ifndef __CTree_h__
 
56416
#define __CTree_h__
 
56417
 
 
56418
namespace Puma {
 
56419
 
 
56420
 
 
56421
// Syntax tree node hierarchy:
 
56422
class CTree;
 
56423
class   CT_Statement;          
 
56424
class     CT_LabelStmt;
 
56425
class     CT_IfStmt;
 
56426
class     CT_IfElseStmt;
 
56427
class     CT_SwitchStmt;
 
56428
class     CT_BreakStmt;
 
56429
class     CT_ExprStmt;
 
56430
class     CT_WhileStmt;
 
56431
class     CT_DoStmt;
 
56432
class     CT_ForStmt;
 
56433
class     CT_ContinueStmt;
 
56434
class     CT_ReturnStmt;
 
56435
class     CT_GotoStmt;
 
56436
class     CT_DeclStmt;
 
56437
class     CT_CaseStmt;
 
56438
class     CT_DefaultStmt;
 
56439
class     CT_TryStmt;
 
56440
class   CT_Expression;
 
56441
class     CT_Call;
 
56442
class       CT_CallExpr;
 
56443
class       CT_ImplicitCall;
 
56444
class     CT_ThrowExpr;
 
56445
class     CT_NewExpr;
 
56446
class     CT_DeleteExpr;
 
56447
class     CT_ConstructExpr;
 
56448
class     CT_Integer;
 
56449
class     CT_Character;
 
56450
class       CT_WideCharacter;
 
56451
class     CT_Float;
 
56452
class     CT_Bool;
 
56453
class     CT_BracedExpr;
 
56454
class     CT_BinaryExpr;
 
56455
class       CT_MembPtrExpr;
 
56456
class         CT_MembRefExpr;
 
56457
class     CT_UnaryExpr;
 
56458
class       CT_PostfixExpr;
 
56459
class       CT_AddrExpr;
 
56460
class       CT_DerefExpr;
 
56461
class     CT_IfThenExpr;
 
56462
class     CT_CmpdLiteral;
 
56463
class     CT_IndexExpr;
 
56464
class     CT_CastExpr;
 
56465
class     CT_StaticCast;
 
56466
class       CT_ConstCast;
 
56467
class       CT_ReintCast;
 
56468
class       CT_DynamicCast;
 
56469
class     CT_TypeidExpr;
 
56470
class     CT_SizeofExpr;
 
56471
class     CT_MembDesignator;
 
56472
class     CT_IndexDesignator;
 
56473
class     CT_ImplicitCast;
 
56474
class   CT_DeclSpec;
 
56475
class     CT_PrimDeclSpec;
 
56476
class     CT_NamedType;
 
56477
class     CT_ClassSpec;
 
56478
class       CT_UnionSpec;
 
56479
class       CT_EnumSpec;
 
56480
class     CT_ExceptionSpec;
 
56481
class   CT_Declarator;
 
56482
class     CT_InitDeclarator;
 
56483
class     CT_BracedDeclarator;
 
56484
class     CT_ArrayDeclarator;
 
56485
class     CT_FctDeclarator;
 
56486
class     CT_RefDeclarator;
 
56487
class     CT_PtrDeclarator;
 
56488
class     CT_MembPtrDeclarator;
 
56489
class     CT_BitFieldDeclarator;
 
56490
class   CT_Decl;
 
56491
class     CT_ObjDecl;
 
56492
class     CT_ArgDecl;
 
56493
class     CT_AccessDecl;
 
56494
class       CT_UsingDecl;
 
56495
class     CT_FctDef;
 
56496
class     CT_AsmDef;
 
56497
class     CT_EnumDef;
 
56498
class     CT_ClassDef;
 
56499
class       CT_UnionDef;
 
56500
class     CT_Enumerator;
 
56501
class     CT_LinkageSpec;
 
56502
class     CT_Handler;
 
56503
class     CT_TemplateDecl;
 
56504
class     CT_TemplateParamDecl;
 
56505
class       CT_TypeParamDecl;
 
56506
class       CT_NonTypeParamDecl;
 
56507
class     CT_NamespaceDef;
 
56508
class     CT_NamespaceAliasDef;
 
56509
class     CT_UsingDirective;
 
56510
class     CT_Condition;
 
56511
class   CT_List;
 
56512
class     CT_CmpdStmt;
 
56513
class     CT_DeclSpecSeq;
 
56514
class     CT_HandlerSeq;
 
56515
class     CT_DesignatorSeq;
 
56516
class     CT_DeclList;
 
56517
class       CT_Program;
 
56518
class       CT_ArgDeclList;
 
56519
class         CT_ArgNameList;
 
56520
class       CT_ArgDeclSeq;
 
56521
class       CT_MembList;
 
56522
class     CT_ExprList;
 
56523
class     CT_DeclaratorList;
 
56524
class     CT_BaseSpecList;
 
56525
class     CT_MembInitList;
 
56526
class     CT_SimpleName;
 
56527
class       CT_SpecialName;
 
56528
class         CT_PrivateName;
 
56529
class         CT_OperatorName;
 
56530
class         CT_DestructorName;
 
56531
class         CT_ConversionName;
 
56532
class         CT_TemplateName;
 
56533
class       CT_QualName;
 
56534
class         CT_RootQualName;
 
56535
class     CT_String;
 
56536
class       CT_WideString;
 
56537
class     CT_TemplateParamList;
 
56538
class     CT_TemplateArgList;
 
56539
class   CT_Token;
 
56540
class   CT_Error;
 
56541
class   CT_BaseSpec;
 
56542
class   CT_AccessSpec;
 
56543
class   CT_ArrayDelimiter;
 
56544
class   CT_Any;
 
56545
class   CT_AnyList;
 
56546
class   CT_AnyExtension;
 
56547
class   CT_AnyCondition;
 
56548
 
 
56549
 
 
56550
} // namespace Puma
 
56551
 
 
56552
#include "Puma/ErrorSeverity.h"
 
56553
#include "Puma/CSemObject.h"
 
56554
#include "Puma/CSemScope.h"
 
56555
#include "Puma/CSemValue.h"
 
56556
#include "Puma/CExprValue.h"
 
56557
#include "Puma/CStrLiteral.h"
 
56558
#include "Puma/CTypeInfo.h"
 
56559
#include "Puma/Printable.h"
 
56560
#include "Puma/CTokens.h"
 
56561
#include "Puma/Token.h"
 
56562
 
 
56563
#include <iostream>
 
56564
#include <string.h>
 
56565
using namespace std;
 
56566
 
 
56567
namespace Puma {
 
56568
 
 
56569
 
 
56570
class ErrorStream;
 
56571
class CObjectInfo;
 
56572
class CStructure;
 
56573
 
 
56574
/*****************************************************************************/
 
56575
/*                                                                           */
 
56576
/*                    S y n t a x  t r e e  n o d e s                        */
 
56577
/*                                                                           */
 
56578
/*****************************************************************************/
 
56579
 
 
56580
/** \file
 
56581
 *  C/C++ syntax tree classes.
 
56582
 *  \see Puma::CTree */
 
56583
 
 
56584
/** \class CTree CTree.h Puma/CTree.h
 
56585
 *  Base class for all C/C++ syntax tree classes. */
 
56586
 
 
56587
#line 56588 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
56588
} // closed Puma
 
56589
class CCExprResolve;
 
56590
class CExprResolve;
 
56591
class WinIfExists;
 
56592
class WinImportHandler;
 
56593
class WinMacros;
 
56594
class WinAsm;
 
56595
class WinDeclSpecs;
 
56596
class WinMemberExplSpec;
 
56597
class WinTypeKeywords;
 
56598
class WinFriend;
 
56599
class ExtAC;
 
56600
class ExtACBuilderCoupling;
 
56601
class ExtACSyntaxCoupling;
 
56602
class ExtACTree;
 
56603
class ExtACKeywords;
 
56604
class ExtGnu;
 
56605
class PragmaOnceUnitState;
 
56606
class PragmaOnce;
 
56607
class CMatchSyntax;
 
56608
namespace Puma {
 
56609
 
 
56610
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56611
 
 
56612
#line 56613 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
56613
} // closed Puma
 
56614
 
 
56615
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56616
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56617
#include "CCExprResolveH.ah"
 
56618
#endif
 
56619
namespace Puma {
 
56620
 
 
56621
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56622
 
 
56623
#line 56624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
56624
} // closed Puma
 
56625
 
 
56626
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56627
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56628
#include "CExprResolveH.ah"
 
56629
#endif
 
56630
namespace Puma {
 
56631
 
 
56632
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56633
class CTree {
 
56634
#line 56635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
56635
  friend class ::CCExprResolve;
 
56636
  friend class ::CExprResolve;
 
56637
  friend class ::WinIfExists;
 
56638
  friend class ::WinImportHandler;
 
56639
  friend class ::WinMacros;
 
56640
  friend class ::WinAsm;
 
56641
  friend class ::WinDeclSpecs;
 
56642
  friend class ::WinMemberExplSpec;
 
56643
  friend class ::WinTypeKeywords;
 
56644
  friend class ::WinFriend;
 
56645
  friend class ::ExtAC;
 
56646
  friend class ::ExtACBuilderCoupling;
 
56647
  friend class ::ExtACSyntaxCoupling;
 
56648
  friend class ::ExtACTree;
 
56649
  friend class ::ExtACKeywords;
 
56650
  friend class ::ExtGnu;
 
56651
  friend class ::PragmaOnceUnitState;
 
56652
  friend class ::PragmaOnce;
 
56653
  friend class ::CMatchSyntax;
 
56654
 
 
56655
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56656
 
 
56657
  CTree * _parent;
 
56658
 
 
56659
public:
 
56660
  /*DEBUG*/static int alloc;
 
56661
  /*DEBUG*/static int release;
 
56662
 
 
56663
protected:
 
56664
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
56665
   *  \param sons The sons array.
 
56666
   *  \param len Length of the sons array.
 
56667
   *  \param n Index of the son.
 
56668
   *  \return The n-th son or NULL. */
 
56669
  CTree *Son (CTree * const *sons, int len, int n) const;
 
56670
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
56671
   *  \param sons The sons array.
 
56672
   *  \param len Length of the sons array. */
 
56673
  int Sons (CTree * const *sons, int len) const;
 
56674
  /** Replace a son.
 
56675
   *  \param sons The sons array.
 
56676
   *  \param len Length of the sons array.
 
56677
   *  \param old_son The son to replace.
 
56678
   *  \param new_son The new son. */
 
56679
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
56680
  /** Replace a son if it equals the given son.
 
56681
   *  \param son The actual son.
 
56682
   *  \param old_son The son to replace, must match the actual son.
 
56683
   *  \param new_son The new son, overwrites the actual son. */
 
56684
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
56685
  /** Add a new son.
 
56686
   *  \param son The actual son.
 
56687
   *  \param new_son The new son, overwrites the actual son. */
 
56688
  void AddSon (CTree *&son, CTree *new_son);
 
56689
  /** Set the parent tree node.
 
56690
   *  \param parent The new parent tree node. */
 
56691
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
56692
  /** Set the parent tree node of the given tree node.
 
56693
   *  \param node The tree node.
 
56694
   *  \param parent The new parent. */
 
56695
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
 
56696
  
 
56697
protected:
 
56698
  /** Default constructor. */
 
56699
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
 
56700
 
 
56701
public:
 
56702
  /** Destructor. */
 
56703
  virtual ~CTree () { /*DEBUG*/release++; }
 
56704
  /** Get the number of sons. */
 
56705
  virtual int Sons () const = 0;
 
56706
  /** Get the n-th son.
 
56707
   *  \param n The index of the son.
 
56708
   *  \return The n-th son or NULL. */
 
56709
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
56710
  /** Get the node name (node identifier). */
 
56711
  virtual const char *NodeName () const = 0;
 
56712
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
56713
   *  \return The token or NULL. */
 
56714
  virtual Token *token () const;
 
56715
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
56716
   *  \return The token or NULL. */
 
56717
  virtual Token *end_token () const;
 
56718
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
56719
   *  \return The token node or NULL. */
 
56720
  virtual CT_Token *token_node () const;
 
56721
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
56722
   *  \return The token node or NULL. */
 
56723
  virtual CT_Token *end_token_node () const;
 
56724
  /** Replace a son.
 
56725
   *  \param old_son The son to replace.
 
56726
   *  \param new_son The son with which to replace. */
 
56727
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
56728
  /** Get the parent node.
 
56729
   *  \return The parent node or NULL. */
 
56730
  virtual CTree *Parent () const { return (CTree*)_parent; }
 
56731
 
 
56732
public: // semantic information
 
56733
  /** Get the semantic type of the node.
 
56734
   *  \return The type object or NULL. */
 
56735
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
56736
  /** Get the calculated value of the expression.
 
56737
   *  \return The value object or NULL. */
 
56738
  virtual CExprValue *Value () const { return (CExprValue*)0; }
 
56739
  
 
56740
  /** Get the semantic scope of the node.
 
56741
   *  \return The scope object or NULL. */
 
56742
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
56743
  /** Get the semantic value of the node.
 
56744
   *  \return The value object or NULL. */
 
56745
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
56746
  /** Get the semantic object of the node.
 
56747
   *  \return The semantic object or NULL. */
 
56748
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
 
56749
  
 
56750
public: // node classification function
 
56751
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
56752
   *  \return The CT_SimpleName node or NULL. */
 
56753
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
56754
  /** Get a pointer to CT_String if the current node represents a string.
 
56755
   *  \return The CT_String node or NULL. */
 
56756
  virtual CT_String *IsString () { return 0; }
 
56757
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
56758
   *  \return The CT_Declarator pointer or NULL. */
 
56759
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
56760
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
56761
   *  \return The CT_Statement pointer or NULL. */
 
56762
  virtual CT_Statement *IsStatement () { return 0; }
 
56763
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
56764
   *  \return The CT_Expression pointer or NULL. */
 
56765
  virtual CT_Expression *IsExpression () { return 0; }
 
56766
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
56767
   *  \return The CT_Decl pointer or NULL. */
 
56768
  virtual CT_Decl *IsDeclaration () { return 0; }
 
56769
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
56770
   *  \return The CT_Call pointer or NULL. */
 
56771
  virtual CT_Call *IsCall () { return 0; }
 
56772
   private:
 
56773
  typedef CTree CCExprResolveCTree;
 
56774
 
 
56775
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56776
 public :
 
56777
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
56778
  typedef CTree CExprResolveCTree;
 
56779
 
 
56780
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56781
 public :
 
56782
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56783
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56784
};
 
56785
 
 
56786
/** \class CT_Error CTree.h Puma/CTree.h
 
56787
 *  Error tree node that is inserted into the tree for syntactic constructs
 
56788
 *  that could not be parsed. */
 
56789
 
 
56790
#line 56791 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
56791
} // closed Puma
 
56792
class CCExprResolve;
 
56793
class CExprResolve;
 
56794
class WinIfExists;
 
56795
class WinImportHandler;
 
56796
class WinMacros;
 
56797
class WinAsm;
 
56798
class WinDeclSpecs;
 
56799
class WinMemberExplSpec;
 
56800
class WinTypeKeywords;
 
56801
class WinFriend;
 
56802
class ExtAC;
 
56803
class ExtACBuilderCoupling;
 
56804
class ExtACSyntaxCoupling;
 
56805
class ExtACTree;
 
56806
class ExtACKeywords;
 
56807
class ExtGnu;
 
56808
class PragmaOnceUnitState;
 
56809
class PragmaOnce;
 
56810
class CMatchSyntax;
 
56811
namespace Puma {
 
56812
 
 
56813
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56814
class CT_Error : public CTree {
 
56815
#line 56816 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
56816
  friend class ::CCExprResolve;
 
56817
  friend class ::CExprResolve;
 
56818
  friend class ::WinIfExists;
 
56819
  friend class ::WinImportHandler;
 
56820
  friend class ::WinMacros;
 
56821
  friend class ::WinAsm;
 
56822
  friend class ::WinDeclSpecs;
 
56823
  friend class ::WinMemberExplSpec;
 
56824
  friend class ::WinTypeKeywords;
 
56825
  friend class ::WinFriend;
 
56826
  friend class ::ExtAC;
 
56827
  friend class ::ExtACBuilderCoupling;
 
56828
  friend class ::ExtACSyntaxCoupling;
 
56829
  friend class ::ExtACTree;
 
56830
  friend class ::ExtACKeywords;
 
56831
  friend class ::ExtGnu;
 
56832
  friend class ::PragmaOnceUnitState;
 
56833
  friend class ::PragmaOnce;
 
56834
  friend class ::CMatchSyntax;
 
56835
 
 
56836
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56837
 
 
56838
public:
 
56839
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
56840
  static const char *NodeId ();
 
56841
  /** Get the name of the node. Can be compared with NodeId(). */
 
56842
  const char *NodeName () const { return NodeId (); }
 
56843
  /** Get the number of sons. */
 
56844
  int Sons () const { return 0; }
 
56845
};
 
56846
 
 
56847
/** \class CT_Token CTree.h Puma/CTree.h
 
56848
 *  Tree node representing a single token in the source code. */
 
56849
 
 
56850
#line 56851 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
56851
} // closed Puma
 
56852
class CCExprResolve;
 
56853
class CExprResolve;
 
56854
class WinIfExists;
 
56855
class WinImportHandler;
 
56856
class WinMacros;
 
56857
class WinAsm;
 
56858
class WinDeclSpecs;
 
56859
class WinMemberExplSpec;
 
56860
class WinTypeKeywords;
 
56861
class WinFriend;
 
56862
class ExtAC;
 
56863
class ExtACBuilderCoupling;
 
56864
class ExtACSyntaxCoupling;
 
56865
class ExtACTree;
 
56866
class ExtACKeywords;
 
56867
class ExtGnu;
 
56868
class PragmaOnceUnitState;
 
56869
class PragmaOnce;
 
56870
class CMatchSyntax;
 
56871
namespace Puma {
 
56872
 
 
56873
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56874
class CT_Token : public CTree {
 
56875
#line 56876 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
56876
  friend class ::CCExprResolve;
 
56877
  friend class ::CExprResolve;
 
56878
  friend class ::WinIfExists;
 
56879
  friend class ::WinImportHandler;
 
56880
  friend class ::WinMacros;
 
56881
  friend class ::WinAsm;
 
56882
  friend class ::WinDeclSpecs;
 
56883
  friend class ::WinMemberExplSpec;
 
56884
  friend class ::WinTypeKeywords;
 
56885
  friend class ::WinFriend;
 
56886
  friend class ::ExtAC;
 
56887
  friend class ::ExtACBuilderCoupling;
 
56888
  friend class ::ExtACSyntaxCoupling;
 
56889
  friend class ::ExtACTree;
 
56890
  friend class ::ExtACKeywords;
 
56891
  friend class ::ExtGnu;
 
56892
  friend class ::PragmaOnceUnitState;
 
56893
  friend class ::PragmaOnce;
 
56894
  friend class ::CMatchSyntax;
 
56895
 
 
56896
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56897
 
 
56898
  Token *_token;
 
56899
  unsigned long int _number;
 
56900
  
 
56901
public:
 
56902
  /** Constructor. 
 
56903
   *  \param token The represented token.
 
56904
   *  \param number The token number (a consecutive number). */
 
56905
  CT_Token (Token *token, unsigned long int number = 0) : 
 
56906
    _token (token), _number (number) {}
 
56907
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
56908
  static const char *NodeId ();
 
56909
  /** Get the name of the node. Can be compared with NodeId(). */
 
56910
  const char *NodeName () const { return NodeId (); }
 
56911
  /** Get the number of sons. */
 
56912
  int Sons () const { return 0; }
 
56913
  /** Get the represented token. */
 
56914
  Token *token () const { return _token; }
 
56915
  /** Get the represented token. */
 
56916
  Token *end_token () const { return _token; }
 
56917
  /** Get this. */
 
56918
  CT_Token *token_node () const { return (CT_Token*)this; }
 
56919
  /** Get this. */
 
56920
  CT_Token *end_token_node () const { return (CT_Token*)this; }
 
56921
  /** Set the token number. 
 
56922
   *  \param number The token number. */ 
 
56923
  void Number (unsigned long int number) { _number = number; }
 
56924
  /** Get the token number. Can be used to indentify this token. */
 
56925
  unsigned long int Number () const { return _number; }
 
56926
  
 
56927
public:
 
56928
  /** Own new operator reusing memory. */
 
56929
  void *operator new (size_t);
 
56930
  /** Own delete operator. */
 
56931
  void operator delete (void *);
 
56932
};
 
56933
 
 
56934
/*****************************************************************************/
 
56935
/*                                                                           */
 
56936
/*                              List nodes                                   */
 
56937
/*                                                                           */
 
56938
/*****************************************************************************/
 
56939
 
 
56940
/** \class CT_List CTree.h Puma/CTree.h
 
56941
 *  Base class for tree nodes representing lists. */
 
56942
 
 
56943
#line 56944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
56944
} // closed Puma
 
56945
class CCExprResolve;
 
56946
class CExprResolve;
 
56947
class WinIfExists;
 
56948
class WinImportHandler;
 
56949
class WinMacros;
 
56950
class WinAsm;
 
56951
class WinDeclSpecs;
 
56952
class WinMemberExplSpec;
 
56953
class WinTypeKeywords;
 
56954
class WinFriend;
 
56955
class ExtAC;
 
56956
class ExtACBuilderCoupling;
 
56957
class ExtACSyntaxCoupling;
 
56958
class ExtACTree;
 
56959
class ExtACKeywords;
 
56960
class ExtGnu;
 
56961
class PragmaOnceUnitState;
 
56962
class PragmaOnce;
 
56963
class CMatchSyntax;
 
56964
namespace Puma {
 
56965
 
 
56966
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56967
class CT_List : public CTree {
 
56968
#line 56969 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
56969
  friend class ::CCExprResolve;
 
56970
  friend class ::CExprResolve;
 
56971
  friend class ::WinIfExists;
 
56972
  friend class ::WinImportHandler;
 
56973
  friend class ::WinMacros;
 
56974
  friend class ::WinAsm;
 
56975
  friend class ::WinDeclSpecs;
 
56976
  friend class ::WinMemberExplSpec;
 
56977
  friend class ::WinTypeKeywords;
 
56978
  friend class ::WinFriend;
 
56979
  friend class ::ExtAC;
 
56980
  friend class ::ExtACBuilderCoupling;
 
56981
  friend class ::ExtACSyntaxCoupling;
 
56982
  friend class ::ExtACTree;
 
56983
  friend class ::ExtACKeywords;
 
56984
  friend class ::ExtGnu;
 
56985
  friend class ::PragmaOnceUnitState;
 
56986
  friend class ::PragmaOnce;
 
56987
  friend class ::CMatchSyntax;
 
56988
 
 
56989
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56990
 
 
56991
  Array<CTree*> _sons;
 
56992
  int _properties;
 
56993
 
 
56994
protected:
 
56995
  /** Constructor.
 
56996
   *  \param size The initial list size.
 
56997
   *  \param incr The initial increment count. 
 
56998
   *  \param props The list properties (bit array). */
 
56999
  CT_List(int size = 5, int incr = 5, int props = 0) : 
 
57000
    _sons (size, incr), _properties (props) {}
 
57001
 
 
57002
public:
 
57003
  /** List properties. */
 
57004
  enum {
 
57005
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
57006
    CLOSE = 2,        /** List has an end token */
 
57007
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
57008
    SEPARATORS = 4,   /** List has separators, like ',' */
 
57009
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
57010
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
57011
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
57012
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
 
57013
  };
 
57014
 
 
57015
  /** Get the number of list entries. */
 
57016
  int Entries () const;
 
57017
  /** Get the n-th list entry.
 
57018
   *  \param n The index of the entry. 
 
57019
   *  \return The list entry or NULL. */
 
57020
  CTree *Entry (int n) const;
 
57021
  /** Get the number of sons. */
 
57022
  int Sons () const { return _sons.length (); }
 
57023
  /** Get the n-th son.
 
57024
   *  \param n The index of the son. 
 
57025
   *  \return The n-th son or NULL. */
 
57026
  CTree *Son (int n) const { return _sons.lookup (n); }
 
57027
  /** Get the list properties. */
 
57028
  int GetProperties () const { return _properties; }
 
57029
  /** Add a list property.
 
57030
   *  \param p The property to add. */
 
57031
  void AddProperties (int p) { _properties |= p; }
 
57032
  /** Add a son.
 
57033
   *  \param s The son to add. */
 
57034
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
57035
  /** Prepend a son.
 
57036
   *  \param s The son to prepend. */
 
57037
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
57038
  /** Insert a son before another son.
 
57039
   *  \param before The son to insert the new son before.
 
57040
   *  \param son The son to insert. */
 
57041
  void InsertSon (CTree *before, CTree *son); 
 
57042
  /** Replace a son.
 
57043
   *  \param old_son The son to replace.
 
57044
   *  \param new_son The new son. */
 
57045
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
57046
  /** Remove a son.
 
57047
   *  \param son The son to remove. */
 
57048
  void RemoveSon (CTree *son);
 
57049
  /** Insert a son at the given index. 
 
57050
   *  \param idx The index at which to insert.
 
57051
   *  \param s The son to insert. */
 
57052
  void InsertSon (int idx, CTree *s)
 
57053
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
57054
  /** Replace the son at the given index.
 
57055
   *  \param idx The index of the son to replace.
 
57056
   *  \param s The new son. */
 
57057
  void ReplaceSon (int idx, CTree *s) 
 
57058
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
57059
  /** Remove the son at the given index. 
 
57060
   *  \param idx The index of the son to remove. */
 
57061
  void RemoveSon (int idx) 
 
57062
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
 
57063
};
 
57064
 
 
57065
/** \class CT_ExprList CTree.h Puma/CTree.h
 
57066
 *  Tree node representing an expression list. */
 
57067
 
 
57068
#line 57069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57069
} // closed Puma
 
57070
class CCExprResolve;
 
57071
class CExprResolve;
 
57072
class WinIfExists;
 
57073
class WinImportHandler;
 
57074
class WinMacros;
 
57075
class WinAsm;
 
57076
class WinDeclSpecs;
 
57077
class WinMemberExplSpec;
 
57078
class WinTypeKeywords;
 
57079
class WinFriend;
 
57080
class ExtAC;
 
57081
class ExtACBuilderCoupling;
 
57082
class ExtACSyntaxCoupling;
 
57083
class ExtACTree;
 
57084
class ExtACKeywords;
 
57085
class ExtGnu;
 
57086
class PragmaOnceUnitState;
 
57087
class PragmaOnce;
 
57088
class CMatchSyntax;
 
57089
namespace Puma {
 
57090
 
 
57091
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57092
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
 
57093
#line 57094 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57094
  friend class ::CCExprResolve;
 
57095
  friend class ::CExprResolve;
 
57096
  friend class ::WinIfExists;
 
57097
  friend class ::WinImportHandler;
 
57098
  friend class ::WinMacros;
 
57099
  friend class ::WinAsm;
 
57100
  friend class ::WinDeclSpecs;
 
57101
  friend class ::WinMemberExplSpec;
 
57102
  friend class ::WinTypeKeywords;
 
57103
  friend class ::WinFriend;
 
57104
  friend class ::ExtAC;
 
57105
  friend class ::ExtACBuilderCoupling;
 
57106
  friend class ::ExtACSyntaxCoupling;
 
57107
  friend class ::ExtACTree;
 
57108
  friend class ::ExtACKeywords;
 
57109
  friend class ::ExtGnu;
 
57110
  friend class ::PragmaOnceUnitState;
 
57111
  friend class ::PragmaOnce;
 
57112
  friend class ::CMatchSyntax;
 
57113
 
 
57114
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57115
 
 
57116
public:
 
57117
  /** Constructor. */
 
57118
  CT_ExprList () { AddProperties (SEPARATORS); }
 
57119
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
57120
  static const char *NodeId ();
 
57121
  /** Get the name of the node. Can be compared with NodeId(). */
 
57122
  const char *NodeName () const { return NodeId (); }
 
57123
 
 
57124
  /** Get the type of the last expression in the expression list.
 
57125
   *  \return The type or NULL. */
 
57126
  CTypeInfo *Type () const { return type; }
 
57127
  /** Get the value of the last expression in the expression list.
 
57128
   *  \return The value of NULL. */
 
57129
  CExprValue *Value () const { return value; }
 
57130
  /** Get the semantic value of the node. */
 
57131
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
57132
  /** Get the semantic object of the node. */
 
57133
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
57134
};
 
57135
 
 
57136
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
57137
 *  Tree node representing a list of declarators. */
 
57138
 
 
57139
#line 57140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57140
} // closed Puma
 
57141
class CCExprResolve;
 
57142
class CExprResolve;
 
57143
class WinIfExists;
 
57144
class WinImportHandler;
 
57145
class WinMacros;
 
57146
class WinAsm;
 
57147
class WinDeclSpecs;
 
57148
class WinMemberExplSpec;
 
57149
class WinTypeKeywords;
 
57150
class WinFriend;
 
57151
class ExtAC;
 
57152
class ExtACBuilderCoupling;
 
57153
class ExtACSyntaxCoupling;
 
57154
class ExtACTree;
 
57155
class ExtACKeywords;
 
57156
class ExtGnu;
 
57157
class PragmaOnceUnitState;
 
57158
class PragmaOnce;
 
57159
class CMatchSyntax;
 
57160
namespace Puma {
 
57161
 
 
57162
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57163
class CT_DeclaratorList : public CT_List {
 
57164
#line 57165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57165
  friend class ::CCExprResolve;
 
57166
  friend class ::CExprResolve;
 
57167
  friend class ::WinIfExists;
 
57168
  friend class ::WinImportHandler;
 
57169
  friend class ::WinMacros;
 
57170
  friend class ::WinAsm;
 
57171
  friend class ::WinDeclSpecs;
 
57172
  friend class ::WinMemberExplSpec;
 
57173
  friend class ::WinTypeKeywords;
 
57174
  friend class ::WinFriend;
 
57175
  friend class ::ExtAC;
 
57176
  friend class ::ExtACBuilderCoupling;
 
57177
  friend class ::ExtACSyntaxCoupling;
 
57178
  friend class ::ExtACTree;
 
57179
  friend class ::ExtACKeywords;
 
57180
  friend class ::ExtGnu;
 
57181
  friend class ::PragmaOnceUnitState;
 
57182
  friend class ::PragmaOnce;
 
57183
  friend class ::CMatchSyntax;
 
57184
 
 
57185
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57186
 
 
57187
public:
 
57188
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
57189
  static const char *NodeId ();
 
57190
  /** Get the name of the node. Can be compared with NodeId(). */
 
57191
  const char *NodeName () const { return NodeId (); }
 
57192
};
 
57193
 
 
57194
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
57195
 *  Tree node representing a list of enumerator constants. */
 
57196
 
 
57197
#line 57198 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57198
} // closed Puma
 
57199
class CCExprResolve;
 
57200
class CExprResolve;
 
57201
class WinIfExists;
 
57202
class WinImportHandler;
 
57203
class WinMacros;
 
57204
class WinAsm;
 
57205
class WinDeclSpecs;
 
57206
class WinMemberExplSpec;
 
57207
class WinTypeKeywords;
 
57208
class WinFriend;
 
57209
class ExtAC;
 
57210
class ExtACBuilderCoupling;
 
57211
class ExtACSyntaxCoupling;
 
57212
class ExtACTree;
 
57213
class ExtACKeywords;
 
57214
class ExtGnu;
 
57215
class PragmaOnceUnitState;
 
57216
class PragmaOnce;
 
57217
class CMatchSyntax;
 
57218
namespace Puma {
 
57219
 
 
57220
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57221
class CT_EnumeratorList : public CT_List {
 
57222
#line 57223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57223
  friend class ::CCExprResolve;
 
57224
  friend class ::CExprResolve;
 
57225
  friend class ::WinIfExists;
 
57226
  friend class ::WinImportHandler;
 
57227
  friend class ::WinMacros;
 
57228
  friend class ::WinAsm;
 
57229
  friend class ::WinDeclSpecs;
 
57230
  friend class ::WinMemberExplSpec;
 
57231
  friend class ::WinTypeKeywords;
 
57232
  friend class ::WinFriend;
 
57233
  friend class ::ExtAC;
 
57234
  friend class ::ExtACBuilderCoupling;
 
57235
  friend class ::ExtACSyntaxCoupling;
 
57236
  friend class ::ExtACTree;
 
57237
  friend class ::ExtACKeywords;
 
57238
  friend class ::ExtGnu;
 
57239
  friend class ::PragmaOnceUnitState;
 
57240
  friend class ::PragmaOnce;
 
57241
  friend class ::CMatchSyntax;
 
57242
 
 
57243
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57244
 
 
57245
public:
 
57246
  /** Constructor. */
 
57247
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
57248
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
57249
  static const char *NodeId ();
 
57250
  /** Get the name of the node. Can be compared with NodeId(). */
 
57251
  const char *NodeName () const { return NodeId (); }
 
57252
};
 
57253
   
 
57254
/** \class CT_DeclList CTree.h Puma/CTree.h
 
57255
 *  Tree node representing a list of declarations. */
 
57256
 
 
57257
#line 57258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57258
} // closed Puma
 
57259
class CCExprResolve;
 
57260
class CExprResolve;
 
57261
class WinIfExists;
 
57262
class WinImportHandler;
 
57263
class WinMacros;
 
57264
class WinAsm;
 
57265
class WinDeclSpecs;
 
57266
class WinMemberExplSpec;
 
57267
class WinTypeKeywords;
 
57268
class WinFriend;
 
57269
class ExtAC;
 
57270
class ExtACBuilderCoupling;
 
57271
class ExtACSyntaxCoupling;
 
57272
class ExtACTree;
 
57273
class ExtACKeywords;
 
57274
class ExtGnu;
 
57275
class PragmaOnceUnitState;
 
57276
class PragmaOnce;
 
57277
class CMatchSyntax;
 
57278
namespace Puma {
 
57279
 
 
57280
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57281
class CT_DeclList : public CT_List {
 
57282
#line 57283 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57283
  friend class ::CCExprResolve;
 
57284
  friend class ::CExprResolve;
 
57285
  friend class ::WinIfExists;
 
57286
  friend class ::WinImportHandler;
 
57287
  friend class ::WinMacros;
 
57288
  friend class ::WinAsm;
 
57289
  friend class ::WinDeclSpecs;
 
57290
  friend class ::WinMemberExplSpec;
 
57291
  friend class ::WinTypeKeywords;
 
57292
  friend class ::WinFriend;
 
57293
  friend class ::ExtAC;
 
57294
  friend class ::ExtACBuilderCoupling;
 
57295
  friend class ::ExtACSyntaxCoupling;
 
57296
  friend class ::ExtACTree;
 
57297
  friend class ::ExtACKeywords;
 
57298
  friend class ::ExtGnu;
 
57299
  friend class ::PragmaOnceUnitState;
 
57300
  friend class ::PragmaOnce;
 
57301
  friend class ::CMatchSyntax;
 
57302
 
 
57303
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57304
 
 
57305
public:
 
57306
  /** Constructor. 
 
57307
   *  \param size The initial size of the list.
 
57308
   *  \param incr The initial increment count of the list. */
 
57309
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
57310
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
57311
  static const char *NodeId ();
 
57312
  /** Get the name of the node. Can be compared with NodeId(). */
 
57313
  const char *NodeName () const { return NodeId (); }
 
57314
  /** Set the linkage specifiers to each declaration in the list.
 
57315
   *  \param l The linkage specifiers node. */
 
57316
  void Linkage (CT_LinkageSpec *l);
 
57317
};
 
57318
 
 
57319
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
57320
 *  Tree node representing a sequence of declaration specifiers. */
 
57321
 
 
57322
#line 57323 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57323
} // closed Puma
 
57324
class CCExprResolve;
 
57325
class CExprResolve;
 
57326
class WinIfExists;
 
57327
class WinImportHandler;
 
57328
class WinMacros;
 
57329
class WinAsm;
 
57330
class WinDeclSpecs;
 
57331
class WinMemberExplSpec;
 
57332
class WinTypeKeywords;
 
57333
class WinFriend;
 
57334
class ExtAC;
 
57335
class ExtACBuilderCoupling;
 
57336
class ExtACSyntaxCoupling;
 
57337
class ExtACTree;
 
57338
class ExtACKeywords;
 
57339
class ExtGnu;
 
57340
class PragmaOnceUnitState;
 
57341
class PragmaOnce;
 
57342
class CMatchSyntax;
 
57343
namespace Puma {
 
57344
 
 
57345
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57346
class CT_DeclSpecSeq : public CT_List {
 
57347
#line 57348 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57348
  friend class ::CCExprResolve;
 
57349
  friend class ::CExprResolve;
 
57350
  friend class ::WinIfExists;
 
57351
  friend class ::WinImportHandler;
 
57352
  friend class ::WinMacros;
 
57353
  friend class ::WinAsm;
 
57354
  friend class ::WinDeclSpecs;
 
57355
  friend class ::WinMemberExplSpec;
 
57356
  friend class ::WinTypeKeywords;
 
57357
  friend class ::WinFriend;
 
57358
  friend class ::ExtAC;
 
57359
  friend class ::ExtACBuilderCoupling;
 
57360
  friend class ::ExtACSyntaxCoupling;
 
57361
  friend class ::ExtACTree;
 
57362
  friend class ::ExtACKeywords;
 
57363
  friend class ::ExtGnu;
 
57364
  friend class ::PragmaOnceUnitState;
 
57365
  friend class ::PragmaOnce;
 
57366
  friend class ::CMatchSyntax;
 
57367
 
 
57368
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57369
 
 
57370
public:
 
57371
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
57372
  static const char *NodeId ();
 
57373
  /** Get the name of the node. Can be compared with NodeId(). */
 
57374
  const char *NodeName () const { return NodeId (); }
 
57375
};
 
57376
 
 
57377
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
57378
 *  Tree node representing a compound statement. */
 
57379
 
 
57380
#line 57381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57381
} // closed Puma
 
57382
class CCExprResolve;
 
57383
class CExprResolve;
 
57384
class WinIfExists;
 
57385
class WinImportHandler;
 
57386
class WinMacros;
 
57387
class WinAsm;
 
57388
class WinDeclSpecs;
 
57389
class WinMemberExplSpec;
 
57390
class WinTypeKeywords;
 
57391
class WinFriend;
 
57392
class ExtAC;
 
57393
class ExtACBuilderCoupling;
 
57394
class ExtACSyntaxCoupling;
 
57395
class ExtACTree;
 
57396
class ExtACKeywords;
 
57397
class ExtGnu;
 
57398
class PragmaOnceUnitState;
 
57399
class PragmaOnce;
 
57400
class CMatchSyntax;
 
57401
namespace Puma {
 
57402
 
 
57403
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57404
class CT_CmpdStmt : public CT_List, public CSemScope {
 
57405
#line 57406 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57406
  friend class ::CCExprResolve;
 
57407
  friend class ::CExprResolve;
 
57408
  friend class ::WinIfExists;
 
57409
  friend class ::WinImportHandler;
 
57410
  friend class ::WinMacros;
 
57411
  friend class ::WinAsm;
 
57412
  friend class ::WinDeclSpecs;
 
57413
  friend class ::WinMemberExplSpec;
 
57414
  friend class ::WinTypeKeywords;
 
57415
  friend class ::WinFriend;
 
57416
  friend class ::ExtAC;
 
57417
  friend class ::ExtACBuilderCoupling;
 
57418
  friend class ::ExtACSyntaxCoupling;
 
57419
  friend class ::ExtACTree;
 
57420
  friend class ::ExtACKeywords;
 
57421
  friend class ::ExtGnu;
 
57422
  friend class ::PragmaOnceUnitState;
 
57423
  friend class ::PragmaOnce;
 
57424
  friend class ::CMatchSyntax;
 
57425
 
 
57426
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57427
 
 
57428
public:
 
57429
  /* Constructor. */
 
57430
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
57431
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
57432
  static const char *NodeId ();
 
57433
  /** Get the name of the node. Can be compared with NodeId(). */
 
57434
  const char *NodeName () const { return NodeId (); }
 
57435
  /** Get the local scope of the compound statement. */
 
57436
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
57437
};
 
57438
 
 
57439
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
57440
 *  Tree node representing an exception handler sequence. */
 
57441
 
 
57442
#line 57443 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57443
} // closed Puma
 
57444
class CCExprResolve;
 
57445
class CExprResolve;
 
57446
class WinIfExists;
 
57447
class WinImportHandler;
 
57448
class WinMacros;
 
57449
class WinAsm;
 
57450
class WinDeclSpecs;
 
57451
class WinMemberExplSpec;
 
57452
class WinTypeKeywords;
 
57453
class WinFriend;
 
57454
class ExtAC;
 
57455
class ExtACBuilderCoupling;
 
57456
class ExtACSyntaxCoupling;
 
57457
class ExtACTree;
 
57458
class ExtACKeywords;
 
57459
class ExtGnu;
 
57460
class PragmaOnceUnitState;
 
57461
class PragmaOnce;
 
57462
class CMatchSyntax;
 
57463
namespace Puma {
 
57464
 
 
57465
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57466
class CT_HandlerSeq : public CT_List {
 
57467
#line 57468 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57468
  friend class ::CCExprResolve;
 
57469
  friend class ::CExprResolve;
 
57470
  friend class ::WinIfExists;
 
57471
  friend class ::WinImportHandler;
 
57472
  friend class ::WinMacros;
 
57473
  friend class ::WinAsm;
 
57474
  friend class ::WinDeclSpecs;
 
57475
  friend class ::WinMemberExplSpec;
 
57476
  friend class ::WinTypeKeywords;
 
57477
  friend class ::WinFriend;
 
57478
  friend class ::ExtAC;
 
57479
  friend class ::ExtACBuilderCoupling;
 
57480
  friend class ::ExtACSyntaxCoupling;
 
57481
  friend class ::ExtACTree;
 
57482
  friend class ::ExtACKeywords;
 
57483
  friend class ::ExtGnu;
 
57484
  friend class ::PragmaOnceUnitState;
 
57485
  friend class ::PragmaOnce;
 
57486
  friend class ::CMatchSyntax;
 
57487
 
 
57488
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57489
 
 
57490
public:
 
57491
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
57492
  static const char *NodeId ();
 
57493
  /** Get the name of the node. Can be compared with NodeId(). */
 
57494
  const char *NodeName () const { return NodeId (); }
 
57495
};
 
57496
 
 
57497
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
57498
 *  Tree node representing a template parameter list. */
 
57499
 
 
57500
#line 57501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57501
} // closed Puma
 
57502
class CCExprResolve;
 
57503
class CExprResolve;
 
57504
class WinIfExists;
 
57505
class WinImportHandler;
 
57506
class WinMacros;
 
57507
class WinAsm;
 
57508
class WinDeclSpecs;
 
57509
class WinMemberExplSpec;
 
57510
class WinTypeKeywords;
 
57511
class WinFriend;
 
57512
class ExtAC;
 
57513
class ExtACBuilderCoupling;
 
57514
class ExtACSyntaxCoupling;
 
57515
class ExtACTree;
 
57516
class ExtACKeywords;
 
57517
class ExtGnu;
 
57518
class PragmaOnceUnitState;
 
57519
class PragmaOnce;
 
57520
class CMatchSyntax;
 
57521
namespace Puma {
 
57522
 
 
57523
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57524
class CT_TemplateParamList : public CT_List, public CSemScope {
 
57525
#line 57526 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57526
  friend class ::CCExprResolve;
 
57527
  friend class ::CExprResolve;
 
57528
  friend class ::WinIfExists;
 
57529
  friend class ::WinImportHandler;
 
57530
  friend class ::WinMacros;
 
57531
  friend class ::WinAsm;
 
57532
  friend class ::WinDeclSpecs;
 
57533
  friend class ::WinMemberExplSpec;
 
57534
  friend class ::WinTypeKeywords;
 
57535
  friend class ::WinFriend;
 
57536
  friend class ::ExtAC;
 
57537
  friend class ::ExtACBuilderCoupling;
 
57538
  friend class ::ExtACSyntaxCoupling;
 
57539
  friend class ::ExtACTree;
 
57540
  friend class ::ExtACKeywords;
 
57541
  friend class ::ExtGnu;
 
57542
  friend class ::PragmaOnceUnitState;
 
57543
  friend class ::PragmaOnce;
 
57544
  friend class ::CMatchSyntax;
 
57545
 
 
57546
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57547
 
 
57548
public:
 
57549
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
57550
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
57551
  static const char *NodeId ();
 
57552
  /** Get the name of the node. Can be compared with NodeId(). */
 
57553
  const char *NodeName () const { return NodeId (); }
 
57554
  /** Get the scope of the template parameter list. */
 
57555
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
57556
};
 
57557
 
 
57558
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
57559
 *  Tree node representing a template argument list. */
 
57560
 
 
57561
#line 57562 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57562
} // closed Puma
 
57563
class CCExprResolve;
 
57564
class CExprResolve;
 
57565
class WinIfExists;
 
57566
class WinImportHandler;
 
57567
class WinMacros;
 
57568
class WinAsm;
 
57569
class WinDeclSpecs;
 
57570
class WinMemberExplSpec;
 
57571
class WinTypeKeywords;
 
57572
class WinFriend;
 
57573
class ExtAC;
 
57574
class ExtACBuilderCoupling;
 
57575
class ExtACSyntaxCoupling;
 
57576
class ExtACTree;
 
57577
class ExtACKeywords;
 
57578
class ExtGnu;
 
57579
class PragmaOnceUnitState;
 
57580
class PragmaOnce;
 
57581
class CMatchSyntax;
 
57582
namespace Puma {
 
57583
 
 
57584
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57585
class CT_TemplateArgList : public CT_List {
 
57586
#line 57587 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57587
  friend class ::CCExprResolve;
 
57588
  friend class ::CExprResolve;
 
57589
  friend class ::WinIfExists;
 
57590
  friend class ::WinImportHandler;
 
57591
  friend class ::WinMacros;
 
57592
  friend class ::WinAsm;
 
57593
  friend class ::WinDeclSpecs;
 
57594
  friend class ::WinMemberExplSpec;
 
57595
  friend class ::WinTypeKeywords;
 
57596
  friend class ::WinFriend;
 
57597
  friend class ::ExtAC;
 
57598
  friend class ::ExtACBuilderCoupling;
 
57599
  friend class ::ExtACSyntaxCoupling;
 
57600
  friend class ::ExtACTree;
 
57601
  friend class ::ExtACKeywords;
 
57602
  friend class ::ExtGnu;
 
57603
  friend class ::PragmaOnceUnitState;
 
57604
  friend class ::PragmaOnce;
 
57605
  friend class ::CMatchSyntax;
 
57606
 
 
57607
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57608
 
 
57609
public:
 
57610
  /** Constructor. */
 
57611
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
57612
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
57613
  static const char *NodeId ();
 
57614
  /** Get the name of the node. Can be compared with NodeId(). */
 
57615
  const char *NodeName () const { return NodeId (); }
 
57616
};
 
57617
 
 
57618
/*****************************************************************************/
 
57619
/*                                                                           */
 
57620
/*                              Expressions                                  */
 
57621
/*                                                                           */
 
57622
/*****************************************************************************/
 
57623
 
 
57624
/** \class CT_Expression CTree.h Puma/CTree.h
 
57625
 *  Base class for all expression tree nodes. */
 
57626
 
 
57627
#line 57628 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57628
} // closed Puma
 
57629
class CCExprResolve;
 
57630
class CExprResolve;
 
57631
class WinIfExists;
 
57632
class WinImportHandler;
 
57633
class WinMacros;
 
57634
class WinAsm;
 
57635
class WinDeclSpecs;
 
57636
class WinMemberExplSpec;
 
57637
class WinTypeKeywords;
 
57638
class WinFriend;
 
57639
class ExtAC;
 
57640
class ExtACBuilderCoupling;
 
57641
class ExtACSyntaxCoupling;
 
57642
class ExtACTree;
 
57643
class ExtACKeywords;
 
57644
class ExtGnu;
 
57645
class PragmaOnceUnitState;
 
57646
class PragmaOnce;
 
57647
class CMatchSyntax;
 
57648
namespace Puma {
 
57649
 
 
57650
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57651
 
 
57652
#line 57653 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57653
} // closed Puma
 
57654
 
 
57655
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57656
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57657
#include "CCExprResolveH.ah"
 
57658
#endif
 
57659
namespace Puma {
 
57660
 
 
57661
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57662
 
 
57663
#line 57664 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57664
} // closed Puma
 
57665
 
 
57666
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57667
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57668
#include "CExprResolveH.ah"
 
57669
#endif
 
57670
namespace Puma {
 
57671
 
 
57672
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57673
class CT_Expression : public CTree, public CSemValue {
 
57674
#line 57675 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57675
  friend class ::CCExprResolve;
 
57676
  friend class ::CExprResolve;
 
57677
  friend class ::WinIfExists;
 
57678
  friend class ::WinImportHandler;
 
57679
  friend class ::WinMacros;
 
57680
  friend class ::WinAsm;
 
57681
  friend class ::WinDeclSpecs;
 
57682
  friend class ::WinMemberExplSpec;
 
57683
  friend class ::WinTypeKeywords;
 
57684
  friend class ::WinFriend;
 
57685
  friend class ::ExtAC;
 
57686
  friend class ::ExtACBuilderCoupling;
 
57687
  friend class ::ExtACSyntaxCoupling;
 
57688
  friend class ::ExtACTree;
 
57689
  friend class ::ExtACKeywords;
 
57690
  friend class ::ExtGnu;
 
57691
  friend class ::PragmaOnceUnitState;
 
57692
  friend class ::PragmaOnce;
 
57693
  friend class ::CMatchSyntax;
 
57694
 
 
57695
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57696
 
 
57697
protected:
 
57698
  /** Constructor. */
 
57699
  CT_Expression () {}
 
57700
 
 
57701
public:
 
57702
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
57703
  static const char *NodeId ();
 
57704
  /** Get the name of the node. Can be compared with NodeId(). */
 
57705
  const char *NodeName () const { return NodeId (); }
 
57706
  /** Get the type of the expression.
 
57707
   *  \return The type information object or NULL. */
 
57708
  CTypeInfo *Type () const { return type; }
 
57709
  /** Get the value of the expression.
 
57710
   *  \return The value object or NULL. */
 
57711
  CExprValue *Value () const { return value; }
 
57712
  /** Get the semantic value information of the expression.
 
57713
   *  \return The value object or NULL. */
 
57714
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
57715
  /** Get this. */
 
57716
  virtual CT_Expression *IsExpression () { return this; }
 
57717
   private:
 
57718
  typedef CT_Expression CCExprResolveExpr;
 
57719
 
 
57720
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57721
 public :
 
57722
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
57723
  typedef CT_Expression CExprResolveExpr;
 
57724
 
 
57725
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57726
 public :
 
57727
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57728
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57729
};
 
57730
 
 
57731
/** \class CT_Call CTree.h Puma/CTree.h
 
57732
 *  Tree node representing explicit or implicit function calls 
 
57733
 *  including built-in or user-defined functions and overloaded
 
57734
 *  operators. */
 
57735
 
 
57736
#line 57737 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57737
} // closed Puma
 
57738
class CCExprResolve;
 
57739
class CExprResolve;
 
57740
class WinIfExists;
 
57741
class WinImportHandler;
 
57742
class WinMacros;
 
57743
class WinAsm;
 
57744
class WinDeclSpecs;
 
57745
class WinMemberExplSpec;
 
57746
class WinTypeKeywords;
 
57747
class WinFriend;
 
57748
class ExtAC;
 
57749
class ExtACBuilderCoupling;
 
57750
class ExtACSyntaxCoupling;
 
57751
class ExtACTree;
 
57752
class ExtACKeywords;
 
57753
class ExtGnu;
 
57754
class PragmaOnceUnitState;
 
57755
class PragmaOnce;
 
57756
class CMatchSyntax;
 
57757
namespace Puma {
 
57758
 
 
57759
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57760
 
 
57761
#line 57762 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57762
} // closed Puma
 
57763
 
 
57764
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57765
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57766
#include "CCExprResolveH.ah"
 
57767
#endif
 
57768
namespace Puma {
 
57769
 
 
57770
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57771
 
 
57772
#line 57773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57773
} // closed Puma
 
57774
 
 
57775
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57776
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57777
#include "CExprResolveH.ah"
 
57778
#endif
 
57779
namespace Puma {
 
57780
 
 
57781
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57782
class CT_Call : public CT_Expression, public CSemObject {
 
57783
#line 57784 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57784
  friend class ::CCExprResolve;
 
57785
  friend class ::CExprResolve;
 
57786
  friend class ::WinIfExists;
 
57787
  friend class ::WinImportHandler;
 
57788
  friend class ::WinMacros;
 
57789
  friend class ::WinAsm;
 
57790
  friend class ::WinDeclSpecs;
 
57791
  friend class ::WinMemberExplSpec;
 
57792
  friend class ::WinTypeKeywords;
 
57793
  friend class ::WinFriend;
 
57794
  friend class ::ExtAC;
 
57795
  friend class ::ExtACBuilderCoupling;
 
57796
  friend class ::ExtACSyntaxCoupling;
 
57797
  friend class ::ExtACTree;
 
57798
  friend class ::ExtACKeywords;
 
57799
  friend class ::ExtGnu;
 
57800
  friend class ::PragmaOnceUnitState;
 
57801
  friend class ::PragmaOnce;
 
57802
  friend class ::CMatchSyntax;
 
57803
 
 
57804
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57805
 
 
57806
protected:
 
57807
  /** Constructor. */
 
57808
  CT_Call () {}
 
57809
  
 
57810
public:
 
57811
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
57812
  static const char *NodeId ();
 
57813
  /** Get the name of the node. Can be compared with NodeId(). */
 
57814
  const char *NodeName () const { return NodeId (); }
 
57815
  /** Get the semantic information of the call.
 
57816
   *  \return The semantic information or NULL. */
 
57817
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
57818
  /** Get this. */
 
57819
  CT_Call *IsCall () { return this; }
 
57820
   private:
 
57821
  typedef CT_Call CCExprResolveExpr;
 
57822
 
 
57823
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57824
 public :
 
57825
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
57826
  typedef CT_Call CExprResolveExpr;
 
57827
 
 
57828
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57829
 public :
 
57830
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57831
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57832
};
 
57833
 
 
57834
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
57835
 *  Tree node representing implicit function calls detected by
 
57836
 *  the semantic analysis. */
 
57837
 
 
57838
#line 57839 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57839
} // closed Puma
 
57840
class CCExprResolve;
 
57841
class CExprResolve;
 
57842
class WinIfExists;
 
57843
class WinImportHandler;
 
57844
class WinMacros;
 
57845
class WinAsm;
 
57846
class WinDeclSpecs;
 
57847
class WinMemberExplSpec;
 
57848
class WinTypeKeywords;
 
57849
class WinFriend;
 
57850
class ExtAC;
 
57851
class ExtACBuilderCoupling;
 
57852
class ExtACSyntaxCoupling;
 
57853
class ExtACTree;
 
57854
class ExtACKeywords;
 
57855
class ExtGnu;
 
57856
class PragmaOnceUnitState;
 
57857
class PragmaOnce;
 
57858
class CMatchSyntax;
 
57859
namespace Puma {
 
57860
 
 
57861
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57862
 
 
57863
#line 57864 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57864
} // closed Puma
 
57865
 
 
57866
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57867
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57868
#include "CCExprResolveH.ah"
 
57869
#endif
 
57870
namespace Puma {
 
57871
 
 
57872
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57873
 
 
57874
#line 57875 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57875
} // closed Puma
 
57876
 
 
57877
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57878
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57879
#include "CExprResolveH.ah"
 
57880
#endif
 
57881
namespace Puma {
 
57882
 
 
57883
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57884
class CT_ImplicitCall : public CT_Call {
 
57885
#line 57886 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57886
  friend class ::CCExprResolve;
 
57887
  friend class ::CExprResolve;
 
57888
  friend class ::WinIfExists;
 
57889
  friend class ::WinImportHandler;
 
57890
  friend class ::WinMacros;
 
57891
  friend class ::WinAsm;
 
57892
  friend class ::WinDeclSpecs;
 
57893
  friend class ::WinMemberExplSpec;
 
57894
  friend class ::WinTypeKeywords;
 
57895
  friend class ::WinFriend;
 
57896
  friend class ::ExtAC;
 
57897
  friend class ::ExtACBuilderCoupling;
 
57898
  friend class ::ExtACSyntaxCoupling;
 
57899
  friend class ::ExtACTree;
 
57900
  friend class ::ExtACKeywords;
 
57901
  friend class ::ExtGnu;
 
57902
  friend class ::PragmaOnceUnitState;
 
57903
  friend class ::PragmaOnce;
 
57904
  friend class ::CMatchSyntax;
 
57905
 
 
57906
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57907
 
 
57908
  CTree *_arg;
 
57909
 
 
57910
public:
 
57911
  /** Constructor.
 
57912
   *  \param arg The call argument. */
 
57913
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
57914
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
57915
  static const char *NodeId ();
 
57916
  /** Get the name of the node. Can be compared with NodeId(). */
 
57917
  const char *NodeName () const { return NodeId (); }
 
57918
  /** Get the number of sons. */
 
57919
  int Sons () const { return 1; }
 
57920
  /** Get the n-th son.
 
57921
   *  \param n The index of the son.
 
57922
   *  \return The n-th son or NULL. */
 
57923
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
57924
  /** Replace a son.
 
57925
   *  \param old_son The son to replace.
 
57926
   *  \param new_son The new son. */
 
57927
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
57928
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
57929
   private:
 
57930
  typedef CT_ImplicitCall CCExprResolveExpr;
 
57931
 
 
57932
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57933
 public :
 
57934
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
57935
  typedef CT_ImplicitCall CExprResolveExpr;
 
57936
 
 
57937
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57938
 public :
 
57939
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57940
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57941
};
 
57942
 
 
57943
/** \class CT_String CTree.h Puma/CTree.h
 
57944
 *  Tree node representing a string literal. */
 
57945
 
 
57946
#line 57947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57947
} // closed Puma
 
57948
class CCExprResolve;
 
57949
class CExprResolve;
 
57950
class WinIfExists;
 
57951
class WinImportHandler;
 
57952
class WinMacros;
 
57953
class WinAsm;
 
57954
class WinDeclSpecs;
 
57955
class WinMemberExplSpec;
 
57956
class WinTypeKeywords;
 
57957
class WinFriend;
 
57958
class ExtAC;
 
57959
class ExtACBuilderCoupling;
 
57960
class ExtACSyntaxCoupling;
 
57961
class ExtACTree;
 
57962
class ExtACKeywords;
 
57963
class ExtGnu;
 
57964
class PragmaOnceUnitState;
 
57965
class PragmaOnce;
 
57966
class CMatchSyntax;
 
57967
namespace Puma {
 
57968
 
 
57969
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57970
 
 
57971
#line 57972 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57972
} // closed Puma
 
57973
 
 
57974
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57975
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57976
#include "CCExprResolveH.ah"
 
57977
#endif
 
57978
namespace Puma {
 
57979
 
 
57980
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57981
 
 
57982
#line 57983 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57983
} // closed Puma
 
57984
 
 
57985
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57986
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57987
#include "CExprResolveH.ah"
 
57988
#endif
 
57989
namespace Puma {
 
57990
 
 
57991
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57992
class CT_String : public CT_List, public CSemValue {
 
57993
#line 57994 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
57994
  friend class ::CCExprResolve;
 
57995
  friend class ::CExprResolve;
 
57996
  friend class ::WinIfExists;
 
57997
  friend class ::WinImportHandler;
 
57998
  friend class ::WinMacros;
 
57999
  friend class ::WinAsm;
 
58000
  friend class ::WinDeclSpecs;
 
58001
  friend class ::WinMemberExplSpec;
 
58002
  friend class ::WinTypeKeywords;
 
58003
  friend class ::WinFriend;
 
58004
  friend class ::ExtAC;
 
58005
  friend class ::ExtACBuilderCoupling;
 
58006
  friend class ::ExtACSyntaxCoupling;
 
58007
  friend class ::ExtACTree;
 
58008
  friend class ::ExtACKeywords;
 
58009
  friend class ::ExtGnu;
 
58010
  friend class ::PragmaOnceUnitState;
 
58011
  friend class ::PragmaOnce;
 
58012
  friend class ::CMatchSyntax;
 
58013
 
 
58014
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58015
 
 
58016
public:
 
58017
  /** Constructor. 
 
58018
   *  \param size The number of sub-strings. */
 
58019
  CT_String (int size) : CT_List (size, 1) {}
 
58020
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
58021
  static const char *NodeId ();
 
58022
  /** Get the name of the node. Can be compared with NodeId(). */
 
58023
  const char *NodeName () const { return NodeId (); }
 
58024
 
 
58025
  /** Get the type of the string. 
 
58026
   *  \return The type or NULL. */
 
58027
  CTypeInfo *Type () const { return type; }
 
58028
  /** Get the string value.
 
58029
   *  \return The value or NULL. */
 
58030
  CExprValue *Value () const { return value; }
 
58031
  /** Get the semantic value info object.
 
58032
   *  \return The semantic value object or NULL. */
 
58033
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
58034
  /** Get this. */
 
58035
  virtual CT_String *IsString () { return this; }
 
58036
   private:
 
58037
  typedef CT_String CCExprResolveExpr;
 
58038
 
 
58039
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58040
 public :
 
58041
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
58042
  typedef CT_String CExprResolveExpr;
 
58043
 
 
58044
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58045
 public :
 
58046
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58047
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58048
};
 
58049
 
 
58050
/** \class CT_WideString CTree.h Puma/CTree.h
 
58051
 *  Tree node representing a wide string literal. */
 
58052
 
 
58053
#line 58054 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58054
} // closed Puma
 
58055
class CCExprResolve;
 
58056
class CExprResolve;
 
58057
class WinIfExists;
 
58058
class WinImportHandler;
 
58059
class WinMacros;
 
58060
class WinAsm;
 
58061
class WinDeclSpecs;
 
58062
class WinMemberExplSpec;
 
58063
class WinTypeKeywords;
 
58064
class WinFriend;
 
58065
class ExtAC;
 
58066
class ExtACBuilderCoupling;
 
58067
class ExtACSyntaxCoupling;
 
58068
class ExtACTree;
 
58069
class ExtACKeywords;
 
58070
class ExtGnu;
 
58071
class PragmaOnceUnitState;
 
58072
class PragmaOnce;
 
58073
class CMatchSyntax;
 
58074
namespace Puma {
 
58075
 
 
58076
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58077
 
 
58078
#line 58079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58079
} // closed Puma
 
58080
 
 
58081
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58082
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58083
#include "CCExprResolveH.ah"
 
58084
#endif
 
58085
namespace Puma {
 
58086
 
 
58087
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58088
 
 
58089
#line 58090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58090
} // closed Puma
 
58091
 
 
58092
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58093
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58094
#include "CExprResolveH.ah"
 
58095
#endif
 
58096
namespace Puma {
 
58097
 
 
58098
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58099
class CT_WideString : public CT_String {
 
58100
#line 58101 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58101
  friend class ::CCExprResolve;
 
58102
  friend class ::CExprResolve;
 
58103
  friend class ::WinIfExists;
 
58104
  friend class ::WinImportHandler;
 
58105
  friend class ::WinMacros;
 
58106
  friend class ::WinAsm;
 
58107
  friend class ::WinDeclSpecs;
 
58108
  friend class ::WinMemberExplSpec;
 
58109
  friend class ::WinTypeKeywords;
 
58110
  friend class ::WinFriend;
 
58111
  friend class ::ExtAC;
 
58112
  friend class ::ExtACBuilderCoupling;
 
58113
  friend class ::ExtACSyntaxCoupling;
 
58114
  friend class ::ExtACTree;
 
58115
  friend class ::ExtACKeywords;
 
58116
  friend class ::ExtGnu;
 
58117
  friend class ::PragmaOnceUnitState;
 
58118
  friend class ::PragmaOnce;
 
58119
  friend class ::CMatchSyntax;
 
58120
 
 
58121
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58122
 
 
58123
public:
 
58124
  /** Constructor.
 
58125
   *  \param size The number of sub-strings. */
 
58126
  CT_WideString (int size) : CT_String (size) {}
 
58127
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
58128
  static const char *NodeId ();
 
58129
  /** Get the name of the node. Can be compared with NodeId(). */
 
58130
  const char *NodeName () const { return NodeId (); }
 
58131
   private:
 
58132
  typedef CT_WideString CCExprResolveExpr;
 
58133
 
 
58134
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58135
 public :
 
58136
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
58137
  typedef CT_WideString CExprResolveExpr;
 
58138
 
 
58139
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58140
 public :
 
58141
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58142
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58143
};
 
58144
 
 
58145
/** \class CT_Integer CTree.h Puma/CTree.h
 
58146
 *  Tree node representing an integer constant. */
 
58147
 
 
58148
#line 58149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58149
} // closed Puma
 
58150
class CCExprResolve;
 
58151
class CExprResolve;
 
58152
class WinIfExists;
 
58153
class WinImportHandler;
 
58154
class WinMacros;
 
58155
class WinAsm;
 
58156
class WinDeclSpecs;
 
58157
class WinMemberExplSpec;
 
58158
class WinTypeKeywords;
 
58159
class WinFriend;
 
58160
class ExtAC;
 
58161
class ExtACBuilderCoupling;
 
58162
class ExtACSyntaxCoupling;
 
58163
class ExtACTree;
 
58164
class ExtACKeywords;
 
58165
class ExtGnu;
 
58166
class PragmaOnceUnitState;
 
58167
class PragmaOnce;
 
58168
class CMatchSyntax;
 
58169
namespace Puma {
 
58170
 
 
58171
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58172
 
 
58173
#line 58174 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58174
} // closed Puma
 
58175
 
 
58176
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58177
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58178
#include "CCExprResolveH.ah"
 
58179
#endif
 
58180
namespace Puma {
 
58181
 
 
58182
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58183
 
 
58184
#line 58185 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58185
} // closed Puma
 
58186
 
 
58187
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58188
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58189
#include "CExprResolveH.ah"
 
58190
#endif
 
58191
namespace Puma {
 
58192
 
 
58193
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58194
class CT_Integer : public CT_Expression {
 
58195
#line 58196 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58196
  friend class ::CCExprResolve;
 
58197
  friend class ::CExprResolve;
 
58198
  friend class ::WinIfExists;
 
58199
  friend class ::WinImportHandler;
 
58200
  friend class ::WinMacros;
 
58201
  friend class ::WinAsm;
 
58202
  friend class ::WinDeclSpecs;
 
58203
  friend class ::WinMemberExplSpec;
 
58204
  friend class ::WinTypeKeywords;
 
58205
  friend class ::WinFriend;
 
58206
  friend class ::ExtAC;
 
58207
  friend class ::ExtACBuilderCoupling;
 
58208
  friend class ::ExtACSyntaxCoupling;
 
58209
  friend class ::ExtACTree;
 
58210
  friend class ::ExtACKeywords;
 
58211
  friend class ::ExtGnu;
 
58212
  friend class ::PragmaOnceUnitState;
 
58213
  friend class ::PragmaOnce;
 
58214
  friend class ::CMatchSyntax;
 
58215
 
 
58216
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58217
 
 
58218
  CTree *_value;  // CT_Token
 
58219
 
 
58220
public:
 
58221
  /** Constructor.
 
58222
   *  \param token The token containing the integer value. */
 
58223
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
58224
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
58225
  static const char *NodeId ();
 
58226
  /** Get the name of the node. Can be compared with NodeId(). */
 
58227
  const char *NodeName () const { return NodeId (); }
 
58228
  /** Get the number of sons. */
 
58229
  int Sons () const { return _value ? 1 : 0; }
 
58230
  /** Get the n-th son.
 
58231
   *  \param n The index of the son.
 
58232
   *  \return The n-th son or NULL. */
 
58233
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
58234
  /** Replace a son.
 
58235
   *  \param old_son The son to replace.
 
58236
   *  \param new_son The new son. */
 
58237
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
58238
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
58239
   private:
 
58240
  typedef CT_Integer CCExprResolveExpr;
 
58241
 
 
58242
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58243
 public :
 
58244
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
58245
  typedef CT_Integer CExprResolveExpr;
 
58246
 
 
58247
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58248
 public :
 
58249
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58250
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58251
};
 
58252
 
 
58253
/** \class CT_Character CTree.h Puma/CTree.h
 
58254
 *  Tree node representing a single character constant. */
 
58255
 
 
58256
#line 58257 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58257
} // closed Puma
 
58258
class CCExprResolve;
 
58259
class CExprResolve;
 
58260
class WinIfExists;
 
58261
class WinImportHandler;
 
58262
class WinMacros;
 
58263
class WinAsm;
 
58264
class WinDeclSpecs;
 
58265
class WinMemberExplSpec;
 
58266
class WinTypeKeywords;
 
58267
class WinFriend;
 
58268
class ExtAC;
 
58269
class ExtACBuilderCoupling;
 
58270
class ExtACSyntaxCoupling;
 
58271
class ExtACTree;
 
58272
class ExtACKeywords;
 
58273
class ExtGnu;
 
58274
class PragmaOnceUnitState;
 
58275
class PragmaOnce;
 
58276
class CMatchSyntax;
 
58277
namespace Puma {
 
58278
 
 
58279
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58280
 
 
58281
#line 58282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58282
} // closed Puma
 
58283
 
 
58284
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58285
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58286
#include "CCExprResolveH.ah"
 
58287
#endif
 
58288
namespace Puma {
 
58289
 
 
58290
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58291
 
 
58292
#line 58293 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58293
} // closed Puma
 
58294
 
 
58295
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58296
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58297
#include "CExprResolveH.ah"
 
58298
#endif
 
58299
namespace Puma {
 
58300
 
 
58301
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58302
class CT_Character : public CT_Expression {
 
58303
#line 58304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58304
  friend class ::CCExprResolve;
 
58305
  friend class ::CExprResolve;
 
58306
  friend class ::WinIfExists;
 
58307
  friend class ::WinImportHandler;
 
58308
  friend class ::WinMacros;
 
58309
  friend class ::WinAsm;
 
58310
  friend class ::WinDeclSpecs;
 
58311
  friend class ::WinMemberExplSpec;
 
58312
  friend class ::WinTypeKeywords;
 
58313
  friend class ::WinFriend;
 
58314
  friend class ::ExtAC;
 
58315
  friend class ::ExtACBuilderCoupling;
 
58316
  friend class ::ExtACSyntaxCoupling;
 
58317
  friend class ::ExtACTree;
 
58318
  friend class ::ExtACKeywords;
 
58319
  friend class ::ExtGnu;
 
58320
  friend class ::PragmaOnceUnitState;
 
58321
  friend class ::PragmaOnce;
 
58322
  friend class ::CMatchSyntax;
 
58323
 
 
58324
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58325
 
 
58326
  CTree *_value;  // CT_Token
 
58327
 
 
58328
public:
 
58329
  /** Constructor.
 
58330
   *  \param token The token containing the character value. */
 
58331
  CT_Character (CTree *token) { AddSon (_value, token); }
 
58332
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
58333
  static const char *NodeId ();
 
58334
  /** Get the name of the node. Can be compared with NodeId(). */
 
58335
  const char *NodeName () const { return NodeId (); }
 
58336
  /** Get the number of sons. */
 
58337
  int Sons () const { return 1; }
 
58338
  /** Get the n-th son.
 
58339
   *  \param n The index of the son.
 
58340
   *  \return The n-th son or NULL. */
 
58341
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
58342
  /** Replace a son.
 
58343
   *  \param old_son The son to replace.
 
58344
   *  \param new_son The new son. */
 
58345
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
58346
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
58347
   private:
 
58348
  typedef CT_Character CCExprResolveExpr;
 
58349
 
 
58350
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58351
 public :
 
58352
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
58353
  typedef CT_Character CExprResolveExpr;
 
58354
 
 
58355
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58356
 public :
 
58357
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58358
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58359
};
 
58360
 
 
58361
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
58362
 *  Tree node representing a wide character constant. */
 
58363
 
 
58364
#line 58365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58365
} // closed Puma
 
58366
class CCExprResolve;
 
58367
class CExprResolve;
 
58368
class WinIfExists;
 
58369
class WinImportHandler;
 
58370
class WinMacros;
 
58371
class WinAsm;
 
58372
class WinDeclSpecs;
 
58373
class WinMemberExplSpec;
 
58374
class WinTypeKeywords;
 
58375
class WinFriend;
 
58376
class ExtAC;
 
58377
class ExtACBuilderCoupling;
 
58378
class ExtACSyntaxCoupling;
 
58379
class ExtACTree;
 
58380
class ExtACKeywords;
 
58381
class ExtGnu;
 
58382
class PragmaOnceUnitState;
 
58383
class PragmaOnce;
 
58384
class CMatchSyntax;
 
58385
namespace Puma {
 
58386
 
 
58387
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58388
 
 
58389
#line 58390 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58390
} // closed Puma
 
58391
 
 
58392
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58393
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58394
#include "CCExprResolveH.ah"
 
58395
#endif
 
58396
namespace Puma {
 
58397
 
 
58398
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58399
 
 
58400
#line 58401 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58401
} // closed Puma
 
58402
 
 
58403
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58404
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58405
#include "CExprResolveH.ah"
 
58406
#endif
 
58407
namespace Puma {
 
58408
 
 
58409
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58410
class CT_WideCharacter : public CT_Character {
 
58411
#line 58412 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58412
  friend class ::CCExprResolve;
 
58413
  friend class ::CExprResolve;
 
58414
  friend class ::WinIfExists;
 
58415
  friend class ::WinImportHandler;
 
58416
  friend class ::WinMacros;
 
58417
  friend class ::WinAsm;
 
58418
  friend class ::WinDeclSpecs;
 
58419
  friend class ::WinMemberExplSpec;
 
58420
  friend class ::WinTypeKeywords;
 
58421
  friend class ::WinFriend;
 
58422
  friend class ::ExtAC;
 
58423
  friend class ::ExtACBuilderCoupling;
 
58424
  friend class ::ExtACSyntaxCoupling;
 
58425
  friend class ::ExtACTree;
 
58426
  friend class ::ExtACKeywords;
 
58427
  friend class ::ExtGnu;
 
58428
  friend class ::PragmaOnceUnitState;
 
58429
  friend class ::PragmaOnce;
 
58430
  friend class ::CMatchSyntax;
 
58431
 
 
58432
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58433
 
 
58434
public:
 
58435
  /** Constructor.
 
58436
   *  \param token The token containing the wide character value. */
 
58437
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
58438
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
58439
  static const char *NodeId ();
 
58440
  /** Get the name of the node. Can be compared with NodeId(). */
 
58441
  const char *NodeName () const { return NodeId (); }
 
58442
   private:
 
58443
  typedef CT_WideCharacter CCExprResolveExpr;
 
58444
 
 
58445
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58446
 public :
 
58447
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
58448
  typedef CT_WideCharacter CExprResolveExpr;
 
58449
 
 
58450
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58451
 public :
 
58452
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58453
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58454
};
 
58455
 
 
58456
/** \class CT_Float CTree.h Puma/CTree.h
 
58457
 *  Tree node representing a floating point constant. */
 
58458
 
 
58459
#line 58460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58460
} // closed Puma
 
58461
class CCExprResolve;
 
58462
class CExprResolve;
 
58463
class WinIfExists;
 
58464
class WinImportHandler;
 
58465
class WinMacros;
 
58466
class WinAsm;
 
58467
class WinDeclSpecs;
 
58468
class WinMemberExplSpec;
 
58469
class WinTypeKeywords;
 
58470
class WinFriend;
 
58471
class ExtAC;
 
58472
class ExtACBuilderCoupling;
 
58473
class ExtACSyntaxCoupling;
 
58474
class ExtACTree;
 
58475
class ExtACKeywords;
 
58476
class ExtGnu;
 
58477
class PragmaOnceUnitState;
 
58478
class PragmaOnce;
 
58479
class CMatchSyntax;
 
58480
namespace Puma {
 
58481
 
 
58482
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58483
 
 
58484
#line 58485 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58485
} // closed Puma
 
58486
 
 
58487
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58488
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58489
#include "CCExprResolveH.ah"
 
58490
#endif
 
58491
namespace Puma {
 
58492
 
 
58493
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58494
 
 
58495
#line 58496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58496
} // closed Puma
 
58497
 
 
58498
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58499
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58500
#include "CExprResolveH.ah"
 
58501
#endif
 
58502
namespace Puma {
 
58503
 
 
58504
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58505
class CT_Float : public CT_Expression {
 
58506
#line 58507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58507
  friend class ::CCExprResolve;
 
58508
  friend class ::CExprResolve;
 
58509
  friend class ::WinIfExists;
 
58510
  friend class ::WinImportHandler;
 
58511
  friend class ::WinMacros;
 
58512
  friend class ::WinAsm;
 
58513
  friend class ::WinDeclSpecs;
 
58514
  friend class ::WinMemberExplSpec;
 
58515
  friend class ::WinTypeKeywords;
 
58516
  friend class ::WinFriend;
 
58517
  friend class ::ExtAC;
 
58518
  friend class ::ExtACBuilderCoupling;
 
58519
  friend class ::ExtACSyntaxCoupling;
 
58520
  friend class ::ExtACTree;
 
58521
  friend class ::ExtACKeywords;
 
58522
  friend class ::ExtGnu;
 
58523
  friend class ::PragmaOnceUnitState;
 
58524
  friend class ::PragmaOnce;
 
58525
  friend class ::CMatchSyntax;
 
58526
 
 
58527
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58528
 
 
58529
  CTree *_value;  // CT_Token
 
58530
 
 
58531
public:
 
58532
  /** Constructor.
 
58533
   *  \param token The token containing the floating point value. */
 
58534
  CT_Float (CTree *token) { AddSon (_value, token); }
 
58535
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
58536
  static const char *NodeId ();
 
58537
  /** Get the name of the node. Can be compared with NodeId(). */
 
58538
  const char *NodeName () const { return NodeId (); }
 
58539
  /** Get the number of sons. */
 
58540
  int Sons () const { return 1; }
 
58541
  /** Get the n-th son.
 
58542
   *  \param n The index of the son.
 
58543
   *  \return The n-th son or NULL. */
 
58544
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
58545
  /** Replace a son.
 
58546
   *  \param old_son The son to replace.
 
58547
   *  \param new_son The new son. */
 
58548
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
58549
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
58550
   private:
 
58551
  typedef CT_Float CCExprResolveExpr;
 
58552
 
 
58553
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58554
 public :
 
58555
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
58556
  typedef CT_Float CExprResolveExpr;
 
58557
 
 
58558
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58559
 public :
 
58560
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58561
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58562
};
 
58563
 
 
58564
/** \class CT_Bool CTree.h Puma/CTree.h
 
58565
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
 
58566
 
 
58567
#line 58568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58568
} // closed Puma
 
58569
class CCExprResolve;
 
58570
class CExprResolve;
 
58571
class WinIfExists;
 
58572
class WinImportHandler;
 
58573
class WinMacros;
 
58574
class WinAsm;
 
58575
class WinDeclSpecs;
 
58576
class WinMemberExplSpec;
 
58577
class WinTypeKeywords;
 
58578
class WinFriend;
 
58579
class ExtAC;
 
58580
class ExtACBuilderCoupling;
 
58581
class ExtACSyntaxCoupling;
 
58582
class ExtACTree;
 
58583
class ExtACKeywords;
 
58584
class ExtGnu;
 
58585
class PragmaOnceUnitState;
 
58586
class PragmaOnce;
 
58587
class CMatchSyntax;
 
58588
namespace Puma {
 
58589
 
 
58590
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58591
 
 
58592
#line 58593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58593
} // closed Puma
 
58594
 
 
58595
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58596
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58597
#include "CCExprResolveH.ah"
 
58598
#endif
 
58599
namespace Puma {
 
58600
 
 
58601
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58602
 
 
58603
#line 58604 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58604
} // closed Puma
 
58605
 
 
58606
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58607
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58608
#include "CExprResolveH.ah"
 
58609
#endif
 
58610
namespace Puma {
 
58611
 
 
58612
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58613
class CT_Bool : public CT_Expression {
 
58614
#line 58615 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58615
  friend class ::CCExprResolve;
 
58616
  friend class ::CExprResolve;
 
58617
  friend class ::WinIfExists;
 
58618
  friend class ::WinImportHandler;
 
58619
  friend class ::WinMacros;
 
58620
  friend class ::WinAsm;
 
58621
  friend class ::WinDeclSpecs;
 
58622
  friend class ::WinMemberExplSpec;
 
58623
  friend class ::WinTypeKeywords;
 
58624
  friend class ::WinFriend;
 
58625
  friend class ::ExtAC;
 
58626
  friend class ::ExtACBuilderCoupling;
 
58627
  friend class ::ExtACSyntaxCoupling;
 
58628
  friend class ::ExtACTree;
 
58629
  friend class ::ExtACKeywords;
 
58630
  friend class ::ExtGnu;
 
58631
  friend class ::PragmaOnceUnitState;
 
58632
  friend class ::PragmaOnce;
 
58633
  friend class ::CMatchSyntax;
 
58634
 
 
58635
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58636
 
 
58637
  CTree *_value;  // CT_Token
 
58638
 
 
58639
public:
 
58640
  /** Constructor.
 
58641
   *  \param token The token containing the boolean value. */
 
58642
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
58643
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
58644
  static const char *NodeId ();
 
58645
  /** Get the name of the node. Can be compared with NodeId(). */
 
58646
  const char *NodeName () const { return NodeId (); }
 
58647
  /** Get the number of sons. */
 
58648
  int Sons () const { return 1; }
 
58649
  /** Get the n-th son.
 
58650
   *  \param n The index of the son.
 
58651
   *  \return The n-th son or NULL. */
 
58652
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
58653
  /** Replace a son.
 
58654
   *  \param old_son The son to replace.
 
58655
   *  \param new_son The new son. */
 
58656
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
58657
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
58658
   private:
 
58659
  typedef CT_Bool CCExprResolveExpr;
 
58660
 
 
58661
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58662
 public :
 
58663
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
58664
  typedef CT_Bool CExprResolveExpr;
 
58665
 
 
58666
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58667
 public :
 
58668
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58669
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58670
};
 
58671
 
 
58672
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
58673
 *  Tree node representing a braced expression, e.g. (a+b). */
 
58674
 
 
58675
#line 58676 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58676
} // closed Puma
 
58677
class CCExprResolve;
 
58678
class CExprResolve;
 
58679
class WinIfExists;
 
58680
class WinImportHandler;
 
58681
class WinMacros;
 
58682
class WinAsm;
 
58683
class WinDeclSpecs;
 
58684
class WinMemberExplSpec;
 
58685
class WinTypeKeywords;
 
58686
class WinFriend;
 
58687
class ExtAC;
 
58688
class ExtACBuilderCoupling;
 
58689
class ExtACSyntaxCoupling;
 
58690
class ExtACTree;
 
58691
class ExtACKeywords;
 
58692
class ExtGnu;
 
58693
class PragmaOnceUnitState;
 
58694
class PragmaOnce;
 
58695
class CMatchSyntax;
 
58696
namespace Puma {
 
58697
 
 
58698
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58699
 
 
58700
#line 58701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58701
} // closed Puma
 
58702
 
 
58703
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58704
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58705
#include "CCExprResolveH.ah"
 
58706
#endif
 
58707
namespace Puma {
 
58708
 
 
58709
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58710
 
 
58711
#line 58712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58712
} // closed Puma
 
58713
 
 
58714
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58715
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58716
#include "CExprResolveH.ah"
 
58717
#endif
 
58718
namespace Puma {
 
58719
 
 
58720
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58721
class CT_BracedExpr : public CT_Expression {
 
58722
#line 58723 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58723
  friend class ::CCExprResolve;
 
58724
  friend class ::CExprResolve;
 
58725
  friend class ::WinIfExists;
 
58726
  friend class ::WinImportHandler;
 
58727
  friend class ::WinMacros;
 
58728
  friend class ::WinAsm;
 
58729
  friend class ::WinDeclSpecs;
 
58730
  friend class ::WinMemberExplSpec;
 
58731
  friend class ::WinTypeKeywords;
 
58732
  friend class ::WinFriend;
 
58733
  friend class ::ExtAC;
 
58734
  friend class ::ExtACBuilderCoupling;
 
58735
  friend class ::ExtACSyntaxCoupling;
 
58736
  friend class ::ExtACTree;
 
58737
  friend class ::ExtACKeywords;
 
58738
  friend class ::ExtGnu;
 
58739
  friend class ::PragmaOnceUnitState;
 
58740
  friend class ::PragmaOnce;
 
58741
  friend class ::CMatchSyntax;
 
58742
 
 
58743
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58744
 
 
58745
  CTree *sons[3]; // open, expr, close
 
58746
 
 
58747
public:
 
58748
  /** Constructor.
 
58749
   *  \param o The opening brace.
 
58750
   *  \param e The enclosed expression.
 
58751
   *  \param c The closing brace. */
 
58752
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
 
58753
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
 
58754
  }
 
58755
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
58756
  static const char *NodeId ();
 
58757
  /** Get the name of the node. Can be compared with NodeId(). */
 
58758
  const char *NodeName () const { return NodeId (); }
 
58759
  /** Get the number of sons. */
 
58760
  int Sons () const { return 3; }
 
58761
  /** Get the n-th son.
 
58762
   *  \param n The index of the son.
 
58763
   *  \return The n-th son or NULL. */
 
58764
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
58765
  /** Get the enclosed expression. */
 
58766
  CTree *Expr () const { return sons[1]; }
 
58767
  /** Get the type of the enclosed expression. */
 
58768
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
58769
  /** Get the value of the enclosed expression. */
 
58770
  CExprValue *Value () const { return Expr ()->Value (); }
 
58771
  /** Get the semantic value object. */
 
58772
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
58773
  /** Replace a son.
 
58774
   *  \param old_son The son to replace.
 
58775
   *  \param new_son The new son. */
 
58776
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
58777
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
58778
  }
 
58779
   private:
 
58780
  typedef CT_BracedExpr CCExprResolveExpr;
 
58781
 
 
58782
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58783
 public :
 
58784
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
58785
  typedef CT_BracedExpr CExprResolveExpr;
 
58786
 
 
58787
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58788
 public :
 
58789
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58790
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58791
};
 
58792
 
 
58793
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
58794
 *  Base class for all tree nodes representing a name. */
 
58795
 
 
58796
#line 58797 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58797
} // closed Puma
 
58798
class CCExprResolve;
 
58799
class CExprResolve;
 
58800
class WinIfExists;
 
58801
class WinImportHandler;
 
58802
class WinMacros;
 
58803
class WinAsm;
 
58804
class WinDeclSpecs;
 
58805
class WinMemberExplSpec;
 
58806
class WinTypeKeywords;
 
58807
class WinFriend;
 
58808
class ExtAC;
 
58809
class ExtACBuilderCoupling;
 
58810
class ExtACSyntaxCoupling;
 
58811
class ExtACTree;
 
58812
class ExtACKeywords;
 
58813
class ExtGnu;
 
58814
class PragmaOnceUnitState;
 
58815
class PragmaOnce;
 
58816
class CMatchSyntax;
 
58817
namespace Puma {
 
58818
 
 
58819
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58820
 
 
58821
#line 58822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58822
} // closed Puma
 
58823
 
 
58824
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58825
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58826
#include "CCExprResolveH.ah"
 
58827
#endif
 
58828
namespace Puma {
 
58829
 
 
58830
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58831
 
 
58832
#line 58833 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58833
} // closed Puma
 
58834
 
 
58835
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58836
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58837
#include "CExprResolveH.ah"
 
58838
#endif
 
58839
namespace Puma {
 
58840
 
 
58841
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58842
class CT_SimpleName : public CT_List, public Printable, 
 
58843
                      public CSemValue, public CSemObject {
 
58844
#line 58845 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58845
  friend class ::CCExprResolve;
 
58846
  friend class ::CExprResolve;
 
58847
  friend class ::WinIfExists;
 
58848
  friend class ::WinImportHandler;
 
58849
  friend class ::WinMacros;
 
58850
  friend class ::WinAsm;
 
58851
  friend class ::WinDeclSpecs;
 
58852
  friend class ::WinMemberExplSpec;
 
58853
  friend class ::WinTypeKeywords;
 
58854
  friend class ::WinFriend;
 
58855
  friend class ::ExtAC;
 
58856
  friend class ::ExtACBuilderCoupling;
 
58857
  friend class ::ExtACSyntaxCoupling;
 
58858
  friend class ::ExtACTree;
 
58859
  friend class ::ExtACKeywords;
 
58860
  friend class ::ExtGnu;
 
58861
  friend class ::PragmaOnceUnitState;
 
58862
  friend class ::PragmaOnce;
 
58863
  friend class ::CMatchSyntax;
 
58864
 
 
58865
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58866
 
 
58867
protected:
 
58868
  /** Constructor.
 
58869
   *  \param size The number of sub-names (for qualified names). */
 
58870
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
58871
  /** Constructor.
 
58872
   *  \param size The number of sub-names (for qualified names). 
 
58873
   *  \param properties Additional name list properties (for root qualified names). */
 
58874
  CT_SimpleName (int size, int properties) : 
 
58875
    CT_List (size, 2, properties) {}
 
58876
  
 
58877
public:
 
58878
  /** Constructor.
 
58879
   *  \param n The sub-tree containing the name. */
 
58880
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
58881
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
58882
  static const char *NodeId ();
 
58883
  /** Get the name of the node. Can be compared with NodeId(). */
 
58884
  const char *NodeName () const { return NodeId (); }
 
58885
  /** Get the string containing the name. */
 
58886
  virtual const char *Text () const 
 
58887
   { return Son (Sons ()-1)->token ()->text (); }
 
58888
  /** Print the name on the given stream. 
 
58889
   *  \param os The output stream. */
 
58890
  virtual void print (ostream &os) const { os << Text (); }
 
58891
  /** Get this. */
 
58892
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
58893
  /** Get the type of the entity represented by the name. */
 
58894
  CTypeInfo *Type () const { return type; }
 
58895
  /** Get the value of the entity represented by the name. */ 
 
58896
  CExprValue *Value () const { return value; }
 
58897
  /** Get the sematic value information object. */
 
58898
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
58899
  /** Get the sematic information object. */
 
58900
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
58901
  /** Get this. */
 
58902
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
58903
 
 
58904
public:
 
58905
  /** Own new operator reusing memory. */
 
58906
  void *operator new (size_t);
 
58907
  /** Own delete operator. */
 
58908
  void operator delete (void *);
 
58909
   private:
 
58910
  typedef CT_SimpleName CCExprResolveExpr;
 
58911
 
 
58912
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58913
 public :
 
58914
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
58915
  typedef CT_SimpleName CExprResolveExpr;
 
58916
 
 
58917
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58918
 public :
 
58919
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58920
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58921
};
 
58922
 
 
58923
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
58924
 *  Base class for tree nodes representing a special name, like destructor names. */
 
58925
 
 
58926
#line 58927 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58927
} // closed Puma
 
58928
class CCExprResolve;
 
58929
class CExprResolve;
 
58930
class WinIfExists;
 
58931
class WinImportHandler;
 
58932
class WinMacros;
 
58933
class WinAsm;
 
58934
class WinDeclSpecs;
 
58935
class WinMemberExplSpec;
 
58936
class WinTypeKeywords;
 
58937
class WinFriend;
 
58938
class ExtAC;
 
58939
class ExtACBuilderCoupling;
 
58940
class ExtACSyntaxCoupling;
 
58941
class ExtACTree;
 
58942
class ExtACKeywords;
 
58943
class ExtGnu;
 
58944
class PragmaOnceUnitState;
 
58945
class PragmaOnce;
 
58946
class CMatchSyntax;
 
58947
namespace Puma {
 
58948
 
 
58949
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58950
 
 
58951
#line 58952 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58952
} // closed Puma
 
58953
 
 
58954
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58955
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58956
#include "CCExprResolveH.ah"
 
58957
#endif
 
58958
namespace Puma {
 
58959
 
 
58960
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58961
 
 
58962
#line 58963 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58963
} // closed Puma
 
58964
 
 
58965
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58966
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58967
#include "CExprResolveH.ah"
 
58968
#endif
 
58969
namespace Puma {
 
58970
 
 
58971
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58972
class CT_SpecialName : public CT_SimpleName {
 
58973
#line 58974 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
58974
  friend class ::CCExprResolve;
 
58975
  friend class ::CExprResolve;
 
58976
  friend class ::WinIfExists;
 
58977
  friend class ::WinImportHandler;
 
58978
  friend class ::WinMacros;
 
58979
  friend class ::WinAsm;
 
58980
  friend class ::WinDeclSpecs;
 
58981
  friend class ::WinMemberExplSpec;
 
58982
  friend class ::WinTypeKeywords;
 
58983
  friend class ::WinFriend;
 
58984
  friend class ::ExtAC;
 
58985
  friend class ::ExtACBuilderCoupling;
 
58986
  friend class ::ExtACSyntaxCoupling;
 
58987
  friend class ::ExtACTree;
 
58988
  friend class ::ExtACKeywords;
 
58989
  friend class ::ExtGnu;
 
58990
  friend class ::PragmaOnceUnitState;
 
58991
  friend class ::PragmaOnce;
 
58992
  friend class ::CMatchSyntax;
 
58993
 
 
58994
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58995
 
 
58996
  char *_name;
 
58997
  
 
58998
protected:
 
58999
  /** Constructor.
 
59000
   *  \param size The number of sub-names (for qualified names). */
 
59001
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
 
59002
  
 
59003
public:
 
59004
  /** Destructor. Deletes the name string. */
 
59005
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
59006
  /** Get the string containing the name. */
 
59007
  const char *Text () const { return _name; }
 
59008
  /** Set the name. The name is copied.
 
59009
   *  \param n The name. */
 
59010
  void Name (const char *n) { 
 
59011
    if (n) { 
 
59012
      _name = new char[strlen(n) + 1];
 
59013
      strcpy (_name,n);
 
59014
    }
 
59015
  }
 
59016
 
 
59017
public:
 
59018
  /** Own new operator reusing memory. */
 
59019
  void *operator new (size_t);
 
59020
  /** Own delete operator. */
 
59021
  void operator delete (void *);
 
59022
   private:
 
59023
  typedef CT_SpecialName CCExprResolveExpr;
 
59024
 
 
59025
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59026
 public :
 
59027
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
59028
  typedef CT_SpecialName CExprResolveExpr;
 
59029
 
 
59030
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59031
 public :
 
59032
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59033
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59034
};
 
59035
 
 
59036
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
59037
 *  Tree node representing a private name. Private names 
 
59038
 *  are generated names for abstract declarators etc. */
 
59039
 
 
59040
#line 59041 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59041
} // closed Puma
 
59042
class CCExprResolve;
 
59043
class CExprResolve;
 
59044
class WinIfExists;
 
59045
class WinImportHandler;
 
59046
class WinMacros;
 
59047
class WinAsm;
 
59048
class WinDeclSpecs;
 
59049
class WinMemberExplSpec;
 
59050
class WinTypeKeywords;
 
59051
class WinFriend;
 
59052
class ExtAC;
 
59053
class ExtACBuilderCoupling;
 
59054
class ExtACSyntaxCoupling;
 
59055
class ExtACTree;
 
59056
class ExtACKeywords;
 
59057
class ExtGnu;
 
59058
class PragmaOnceUnitState;
 
59059
class PragmaOnce;
 
59060
class CMatchSyntax;
 
59061
namespace Puma {
 
59062
 
 
59063
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59064
 
 
59065
#line 59066 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59066
} // closed Puma
 
59067
 
 
59068
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59069
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59070
#include "CCExprResolveH.ah"
 
59071
#endif
 
59072
namespace Puma {
 
59073
 
 
59074
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59075
 
 
59076
#line 59077 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59077
} // closed Puma
 
59078
 
 
59079
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59080
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59081
#include "CExprResolveH.ah"
 
59082
#endif
 
59083
namespace Puma {
 
59084
 
 
59085
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59086
class CT_PrivateName : public CT_SpecialName {
 
59087
#line 59088 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59088
  friend class ::CCExprResolve;
 
59089
  friend class ::CExprResolve;
 
59090
  friend class ::WinIfExists;
 
59091
  friend class ::WinImportHandler;
 
59092
  friend class ::WinMacros;
 
59093
  friend class ::WinAsm;
 
59094
  friend class ::WinDeclSpecs;
 
59095
  friend class ::WinMemberExplSpec;
 
59096
  friend class ::WinTypeKeywords;
 
59097
  friend class ::WinFriend;
 
59098
  friend class ::ExtAC;
 
59099
  friend class ::ExtACBuilderCoupling;
 
59100
  friend class ::ExtACSyntaxCoupling;
 
59101
  friend class ::ExtACTree;
 
59102
  friend class ::ExtACKeywords;
 
59103
  friend class ::ExtGnu;
 
59104
  friend class ::PragmaOnceUnitState;
 
59105
  friend class ::PragmaOnce;
 
59106
  friend class ::CMatchSyntax;
 
59107
 
 
59108
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59109
 
 
59110
public:
 
59111
  /** Constructor.
 
59112
   *  \param n The private (generated) name. */
 
59113
  CT_PrivateName (const char *n) { Name (n); }
 
59114
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
59115
  static const char *NodeId ();
 
59116
  /** Get the name of the node. Can be compared with NodeId(). */
 
59117
  const char *NodeName () const { return NodeId (); }
 
59118
  /** Get the number of sons. */
 
59119
  int Sons () const { return 0; }
 
59120
  /** Get the n-th son.
 
59121
   *  \param n The index of the son.
 
59122
   *  \return The n-th son or NULL. */
 
59123
  CTree *Son (int n) const { return (CTree*)0; }
 
59124
 
 
59125
public:
 
59126
  /** Own new operator reusing memory. */
 
59127
  void *operator new (size_t);
 
59128
  /** Own delete operator. */
 
59129
  void operator delete (void *);
 
59130
   private:
 
59131
  typedef CT_PrivateName CCExprResolveExpr;
 
59132
 
 
59133
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59134
 public :
 
59135
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
59136
  typedef CT_PrivateName CExprResolveExpr;
 
59137
 
 
59138
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59139
 public :
 
59140
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59141
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59142
};
 
59143
 
 
59144
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
59145
 *  Tree node representing a destructor name. */
 
59146
 
 
59147
#line 59148 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59148
} // closed Puma
 
59149
class CCExprResolve;
 
59150
class CExprResolve;
 
59151
class WinIfExists;
 
59152
class WinImportHandler;
 
59153
class WinMacros;
 
59154
class WinAsm;
 
59155
class WinDeclSpecs;
 
59156
class WinMemberExplSpec;
 
59157
class WinTypeKeywords;
 
59158
class WinFriend;
 
59159
class ExtAC;
 
59160
class ExtACBuilderCoupling;
 
59161
class ExtACSyntaxCoupling;
 
59162
class ExtACTree;
 
59163
class ExtACKeywords;
 
59164
class ExtGnu;
 
59165
class PragmaOnceUnitState;
 
59166
class PragmaOnce;
 
59167
class CMatchSyntax;
 
59168
namespace Puma {
 
59169
 
 
59170
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59171
 
 
59172
#line 59173 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59173
} // closed Puma
 
59174
 
 
59175
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59176
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59177
#include "CCExprResolveH.ah"
 
59178
#endif
 
59179
namespace Puma {
 
59180
 
 
59181
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59182
 
 
59183
#line 59184 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59184
} // closed Puma
 
59185
 
 
59186
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59187
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59188
#include "CExprResolveH.ah"
 
59189
#endif
 
59190
namespace Puma {
 
59191
 
 
59192
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59193
class CT_DestructorName : public CT_SpecialName {
 
59194
#line 59195 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59195
  friend class ::CCExprResolve;
 
59196
  friend class ::CExprResolve;
 
59197
  friend class ::WinIfExists;
 
59198
  friend class ::WinImportHandler;
 
59199
  friend class ::WinMacros;
 
59200
  friend class ::WinAsm;
 
59201
  friend class ::WinDeclSpecs;
 
59202
  friend class ::WinMemberExplSpec;
 
59203
  friend class ::WinTypeKeywords;
 
59204
  friend class ::WinFriend;
 
59205
  friend class ::ExtAC;
 
59206
  friend class ::ExtACBuilderCoupling;
 
59207
  friend class ::ExtACSyntaxCoupling;
 
59208
  friend class ::ExtACTree;
 
59209
  friend class ::ExtACKeywords;
 
59210
  friend class ::ExtGnu;
 
59211
  friend class ::PragmaOnceUnitState;
 
59212
  friend class ::PragmaOnce;
 
59213
  friend class ::CMatchSyntax;
 
59214
 
 
59215
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59216
 
 
59217
public:
 
59218
  /** Constructor.
 
59219
   *  \param t The tilde operator.
 
59220
   *  \param n The class name. */
 
59221
  CT_DestructorName (CTree *t, CTree *n);
 
59222
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
59223
  static const char *NodeId ();
 
59224
  /** Get the name of the node. Can be compared with NodeId(). */
 
59225
  const char *NodeName () const { return NodeId (); }
 
59226
 
 
59227
public:
 
59228
  /** Own new operator reusing memory. */
 
59229
  void *operator new (size_t);
 
59230
  /** Own delete operator. */
 
59231
  void operator delete (void *);
 
59232
   private:
 
59233
  typedef CT_DestructorName CCExprResolveExpr;
 
59234
 
 
59235
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59236
 public :
 
59237
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
59238
  typedef CT_DestructorName CExprResolveExpr;
 
59239
 
 
59240
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59241
 public :
 
59242
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59243
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59244
};
 
59245
 
 
59246
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
59247
 *  Tree node representing a template name. */
 
59248
 
 
59249
#line 59250 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59250
} // closed Puma
 
59251
class CCExprResolve;
 
59252
class CExprResolve;
 
59253
class WinIfExists;
 
59254
class WinImportHandler;
 
59255
class WinMacros;
 
59256
class WinAsm;
 
59257
class WinDeclSpecs;
 
59258
class WinMemberExplSpec;
 
59259
class WinTypeKeywords;
 
59260
class WinFriend;
 
59261
class ExtAC;
 
59262
class ExtACBuilderCoupling;
 
59263
class ExtACSyntaxCoupling;
 
59264
class ExtACTree;
 
59265
class ExtACKeywords;
 
59266
class ExtGnu;
 
59267
class PragmaOnceUnitState;
 
59268
class PragmaOnce;
 
59269
class CMatchSyntax;
 
59270
namespace Puma {
 
59271
 
 
59272
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59273
 
 
59274
#line 59275 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59275
} // closed Puma
 
59276
 
 
59277
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59278
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59279
#include "CCExprResolveH.ah"
 
59280
#endif
 
59281
namespace Puma {
 
59282
 
 
59283
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59284
 
 
59285
#line 59286 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59286
} // closed Puma
 
59287
 
 
59288
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59289
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59290
#include "CExprResolveH.ah"
 
59291
#endif
 
59292
namespace Puma {
 
59293
 
 
59294
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59295
class CT_TemplateName : public CT_SpecialName {
 
59296
#line 59297 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59297
  friend class ::CCExprResolve;
 
59298
  friend class ::CExprResolve;
 
59299
  friend class ::WinIfExists;
 
59300
  friend class ::WinImportHandler;
 
59301
  friend class ::WinMacros;
 
59302
  friend class ::WinAsm;
 
59303
  friend class ::WinDeclSpecs;
 
59304
  friend class ::WinMemberExplSpec;
 
59305
  friend class ::WinTypeKeywords;
 
59306
  friend class ::WinFriend;
 
59307
  friend class ::ExtAC;
 
59308
  friend class ::ExtACBuilderCoupling;
 
59309
  friend class ::ExtACSyntaxCoupling;
 
59310
  friend class ::ExtACTree;
 
59311
  friend class ::ExtACKeywords;
 
59312
  friend class ::ExtGnu;
 
59313
  friend class ::PragmaOnceUnitState;
 
59314
  friend class ::PragmaOnce;
 
59315
  friend class ::CMatchSyntax;
 
59316
 
 
59317
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59318
 
 
59319
public:
 
59320
  /** Constructor.
 
59321
   *  \param n The template class or function name.
 
59322
   *  \param a The template argument list. */
 
59323
  CT_TemplateName (CTree *n, CTree *a) 
 
59324
   { AddSon (n); AddSon (a); }
 
59325
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
59326
  static const char *NodeId ();
 
59327
  /** Get the name of the node. Can be compared with NodeId(). */
 
59328
  const char *NodeName () const { return NodeId (); }
 
59329
  /** Get the template argument list. */
 
59330
  CT_TemplateArgList *Arguments () const 
 
59331
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
59332
  /** Get the template class or function name. */
 
59333
  CT_SimpleName *TemplateName () const 
 
59334
   { return (CT_SimpleName*)Son (Sons ()-2); }
 
59335
  // may change in the future
 
59336
  const char *Text () const { return TemplateName ()->Text (); }
 
59337
 
 
59338
public:
 
59339
  /** Own new operator reusing memory. */
 
59340
  void *operator new (size_t);
 
59341
  /** Own delete operator. */
 
59342
  void operator delete (void *);
 
59343
   private:
 
59344
  typedef CT_TemplateName CCExprResolveExpr;
 
59345
 
 
59346
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59347
 public :
 
59348
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
59349
  typedef CT_TemplateName CExprResolveExpr;
 
59350
 
 
59351
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59352
 public :
 
59353
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59354
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59355
};
 
59356
 
 
59357
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
59358
 *  Tree node representing the name of an overloaded operator. */
 
59359
 
 
59360
#line 59361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59361
} // closed Puma
 
59362
class CCExprResolve;
 
59363
class CExprResolve;
 
59364
class WinIfExists;
 
59365
class WinImportHandler;
 
59366
class WinMacros;
 
59367
class WinAsm;
 
59368
class WinDeclSpecs;
 
59369
class WinMemberExplSpec;
 
59370
class WinTypeKeywords;
 
59371
class WinFriend;
 
59372
class ExtAC;
 
59373
class ExtACBuilderCoupling;
 
59374
class ExtACSyntaxCoupling;
 
59375
class ExtACTree;
 
59376
class ExtACKeywords;
 
59377
class ExtGnu;
 
59378
class PragmaOnceUnitState;
 
59379
class PragmaOnce;
 
59380
class CMatchSyntax;
 
59381
namespace Puma {
 
59382
 
 
59383
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59384
 
 
59385
#line 59386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59386
} // closed Puma
 
59387
 
 
59388
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59389
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59390
#include "CCExprResolveH.ah"
 
59391
#endif
 
59392
namespace Puma {
 
59393
 
 
59394
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59395
 
 
59396
#line 59397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59397
} // closed Puma
 
59398
 
 
59399
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59400
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59401
#include "CExprResolveH.ah"
 
59402
#endif
 
59403
namespace Puma {
 
59404
 
 
59405
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59406
class CT_OperatorName : public CT_SpecialName {
 
59407
#line 59408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59408
  friend class ::CCExprResolve;
 
59409
  friend class ::CExprResolve;
 
59410
  friend class ::WinIfExists;
 
59411
  friend class ::WinImportHandler;
 
59412
  friend class ::WinMacros;
 
59413
  friend class ::WinAsm;
 
59414
  friend class ::WinDeclSpecs;
 
59415
  friend class ::WinMemberExplSpec;
 
59416
  friend class ::WinTypeKeywords;
 
59417
  friend class ::WinFriend;
 
59418
  friend class ::ExtAC;
 
59419
  friend class ::ExtACBuilderCoupling;
 
59420
  friend class ::ExtACSyntaxCoupling;
 
59421
  friend class ::ExtACTree;
 
59422
  friend class ::ExtACKeywords;
 
59423
  friend class ::ExtGnu;
 
59424
  friend class ::PragmaOnceUnitState;
 
59425
  friend class ::PragmaOnce;
 
59426
  friend class ::CMatchSyntax;
 
59427
 
 
59428
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59429
 
 
59430
  int _oper;
 
59431
 
 
59432
public:
 
59433
  /** Complex operator types. */
 
59434
  enum { 
 
59435
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
59436
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
59437
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
59438
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
 
59439
  };
 
59440
 
 
59441
public:
 
59442
  /** Constructor.
 
59443
   *  \param op The token containing the operator. */
 
59444
  CT_OperatorName (CTree *op);
 
59445
  /** Constructor.
 
59446
   *  \param f The operator function keyword 'operator'.
 
59447
   *  \param op The token containing the operator. 
 
59448
   *  \param o The token of '[' or '('.
 
59449
   *  \param c The token of ']' or ')'. */
 
59450
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
59451
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
59452
  static const char *NodeId ();
 
59453
  /** Get the name of the node. Can be compared with NodeId(). */
 
59454
  const char *NodeName () const { return NodeId (); }
 
59455
  /** Get the operator type (either the token type or one of 
 
59456
   *  the complex operator types). */
 
59457
  int Operator () const { return _oper; }
 
59458
 
 
59459
public:
 
59460
  /** Own new operator reusing memory. */
 
59461
  void *operator new (size_t);
 
59462
  /** Own delete operator. */
 
59463
  void operator delete (void *);
 
59464
   private:
 
59465
  typedef CT_OperatorName CCExprResolveExpr;
 
59466
 
 
59467
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59468
 public :
 
59469
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
59470
  typedef CT_OperatorName CExprResolveExpr;
 
59471
 
 
59472
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59473
 public :
 
59474
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59475
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59476
};
 
59477
 
 
59478
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
59479
 *  Tree node representing the name of a conversion function. */
 
59480
 
 
59481
#line 59482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59482
} // closed Puma
 
59483
class CCExprResolve;
 
59484
class CExprResolve;
 
59485
class WinIfExists;
 
59486
class WinImportHandler;
 
59487
class WinMacros;
 
59488
class WinAsm;
 
59489
class WinDeclSpecs;
 
59490
class WinMemberExplSpec;
 
59491
class WinTypeKeywords;
 
59492
class WinFriend;
 
59493
class ExtAC;
 
59494
class ExtACBuilderCoupling;
 
59495
class ExtACSyntaxCoupling;
 
59496
class ExtACTree;
 
59497
class ExtACKeywords;
 
59498
class ExtGnu;
 
59499
class PragmaOnceUnitState;
 
59500
class PragmaOnce;
 
59501
class CMatchSyntax;
 
59502
namespace Puma {
 
59503
 
 
59504
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59505
 
 
59506
#line 59507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59507
} // closed Puma
 
59508
 
 
59509
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59510
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59511
#include "CCExprResolveH.ah"
 
59512
#endif
 
59513
namespace Puma {
 
59514
 
 
59515
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59516
 
 
59517
#line 59518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59518
} // closed Puma
 
59519
 
 
59520
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59521
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59522
#include "CExprResolveH.ah"
 
59523
#endif
 
59524
namespace Puma {
 
59525
 
 
59526
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59527
class CT_ConversionName : public CT_SpecialName {
 
59528
#line 59529 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59529
  friend class ::CCExprResolve;
 
59530
  friend class ::CExprResolve;
 
59531
  friend class ::WinIfExists;
 
59532
  friend class ::WinImportHandler;
 
59533
  friend class ::WinMacros;
 
59534
  friend class ::WinAsm;
 
59535
  friend class ::WinDeclSpecs;
 
59536
  friend class ::WinMemberExplSpec;
 
59537
  friend class ::WinTypeKeywords;
 
59538
  friend class ::WinFriend;
 
59539
  friend class ::ExtAC;
 
59540
  friend class ::ExtACBuilderCoupling;
 
59541
  friend class ::ExtACSyntaxCoupling;
 
59542
  friend class ::ExtACTree;
 
59543
  friend class ::ExtACKeywords;
 
59544
  friend class ::ExtGnu;
 
59545
  friend class ::PragmaOnceUnitState;
 
59546
  friend class ::PragmaOnce;
 
59547
  friend class ::CMatchSyntax;
 
59548
 
 
59549
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59550
 
 
59551
public:
 
59552
  /** Constructor.
 
59553
   *  \param f The operator function keyword 'operator'.
 
59554
   *  \param t The sub-tree containing the conversion type. */
 
59555
  CT_ConversionName (CTree *f, CTree *t);
 
59556
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
59557
  static const char *NodeId ();
 
59558
  /** Get the name of the node. Can be compared with NodeId(). */
 
59559
  const char *NodeName () const { return NodeId (); }
 
59560
  /** Get the conversion type. */
 
59561
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
 
59562
 
 
59563
public:
 
59564
  /** Own new operator reusing memory. */
 
59565
  void *operator new (size_t);
 
59566
  /** Own delete operator. */
 
59567
  void operator delete (void *);
 
59568
   private:
 
59569
  typedef CT_ConversionName CCExprResolveExpr;
 
59570
 
 
59571
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59572
 public :
 
59573
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
59574
  typedef CT_ConversionName CExprResolveExpr;
 
59575
 
 
59576
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59577
 public :
 
59578
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59579
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59580
};
 
59581
 
 
59582
/** \class CT_QualName CTree.h Puma/CTree.h
 
59583
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
 
59584
 
 
59585
#line 59586 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59586
} // closed Puma
 
59587
class CCExprResolve;
 
59588
class CExprResolve;
 
59589
class WinIfExists;
 
59590
class WinImportHandler;
 
59591
class WinMacros;
 
59592
class WinAsm;
 
59593
class WinDeclSpecs;
 
59594
class WinMemberExplSpec;
 
59595
class WinTypeKeywords;
 
59596
class WinFriend;
 
59597
class ExtAC;
 
59598
class ExtACBuilderCoupling;
 
59599
class ExtACSyntaxCoupling;
 
59600
class ExtACTree;
 
59601
class ExtACKeywords;
 
59602
class ExtGnu;
 
59603
class PragmaOnceUnitState;
 
59604
class PragmaOnce;
 
59605
class CMatchSyntax;
 
59606
namespace Puma {
 
59607
 
 
59608
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59609
 
 
59610
#line 59611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59611
} // closed Puma
 
59612
 
 
59613
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59614
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59615
#include "CCExprResolveH.ah"
 
59616
#endif
 
59617
namespace Puma {
 
59618
 
 
59619
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59620
 
 
59621
#line 59622 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59622
} // closed Puma
 
59623
 
 
59624
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59625
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59626
#include "CExprResolveH.ah"
 
59627
#endif
 
59628
namespace Puma {
 
59629
 
 
59630
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59631
class CT_QualName : public CT_SimpleName {
 
59632
#line 59633 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59633
  friend class ::CCExprResolve;
 
59634
  friend class ::CExprResolve;
 
59635
  friend class ::WinIfExists;
 
59636
  friend class ::WinImportHandler;
 
59637
  friend class ::WinMacros;
 
59638
  friend class ::WinAsm;
 
59639
  friend class ::WinDeclSpecs;
 
59640
  friend class ::WinMemberExplSpec;
 
59641
  friend class ::WinTypeKeywords;
 
59642
  friend class ::WinFriend;
 
59643
  friend class ::ExtAC;
 
59644
  friend class ::ExtACBuilderCoupling;
 
59645
  friend class ::ExtACSyntaxCoupling;
 
59646
  friend class ::ExtACTree;
 
59647
  friend class ::ExtACKeywords;
 
59648
  friend class ::ExtGnu;
 
59649
  friend class ::PragmaOnceUnitState;
 
59650
  friend class ::PragmaOnce;
 
59651
  friend class ::CMatchSyntax;
 
59652
 
 
59653
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59654
 
 
59655
public:
 
59656
  /** Constructor.
 
59657
   *  \param size The initial number sub-names plus separators. */
 
59658
  CT_QualName (int size = 3) : 
 
59659
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
59660
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
59661
  static const char *NodeId ();
 
59662
  /** Get the name of the node. Can be compared with NodeId(). */
 
59663
  const char *NodeName () const { return NodeId (); }
 
59664
  /** Print the qualified name on the given stream. 
 
59665
   *  \param os The output stream. */
 
59666
  void print (ostream &os) const;
 
59667
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
 
59668
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
59669
  /** Get the string containing the last name of the qualified name. */
 
59670
  const char *Text () const { return Name ()->Text (); }
 
59671
  /** Get the type of the last name. */
 
59672
  CTypeInfo *Type () const { return Name ()->Type (); }
 
59673
  /** Get the value of the last name. */
 
59674
  CExprValue *Value () const { return Name ()->Value (); }
 
59675
  /** Get the semantic value object of the last name. */
 
59676
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
59677
  /** Get the semantic information object of the last name. */
 
59678
  CSemObject *SemObject () const { return Name ()->SemObject (); }
 
59679
 
 
59680
public:
 
59681
  /** Own new operator reusing memory. */
 
59682
  void *operator new (size_t);
 
59683
  /** Own delete operator. */
 
59684
  void operator delete (void *);
 
59685
   private:
 
59686
  typedef CT_QualName CCExprResolveExpr;
 
59687
 
 
59688
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59689
 public :
 
59690
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
59691
  typedef CT_QualName CExprResolveExpr;
 
59692
 
 
59693
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59694
 public :
 
59695
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59696
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59697
};
 
59698
 
 
59699
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
59700
 *  Tree node representing a qualified name with introducing name separator,
 
59701
 *  e.g. ::X::Y::Z. */
 
59702
 
 
59703
#line 59704 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59704
} // closed Puma
 
59705
class CCExprResolve;
 
59706
class CExprResolve;
 
59707
class WinIfExists;
 
59708
class WinImportHandler;
 
59709
class WinMacros;
 
59710
class WinAsm;
 
59711
class WinDeclSpecs;
 
59712
class WinMemberExplSpec;
 
59713
class WinTypeKeywords;
 
59714
class WinFriend;
 
59715
class ExtAC;
 
59716
class ExtACBuilderCoupling;
 
59717
class ExtACSyntaxCoupling;
 
59718
class ExtACTree;
 
59719
class ExtACKeywords;
 
59720
class ExtGnu;
 
59721
class PragmaOnceUnitState;
 
59722
class PragmaOnce;
 
59723
class CMatchSyntax;
 
59724
namespace Puma {
 
59725
 
 
59726
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59727
 
 
59728
#line 59729 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59729
} // closed Puma
 
59730
 
 
59731
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59732
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59733
#include "CCExprResolveH.ah"
 
59734
#endif
 
59735
namespace Puma {
 
59736
 
 
59737
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59738
 
 
59739
#line 59740 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59740
} // closed Puma
 
59741
 
 
59742
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59743
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59744
#include "CExprResolveH.ah"
 
59745
#endif
 
59746
namespace Puma {
 
59747
 
 
59748
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59749
class CT_RootQualName : public CT_QualName {
 
59750
#line 59751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59751
  friend class ::CCExprResolve;
 
59752
  friend class ::CExprResolve;
 
59753
  friend class ::WinIfExists;
 
59754
  friend class ::WinImportHandler;
 
59755
  friend class ::WinMacros;
 
59756
  friend class ::WinAsm;
 
59757
  friend class ::WinDeclSpecs;
 
59758
  friend class ::WinMemberExplSpec;
 
59759
  friend class ::WinTypeKeywords;
 
59760
  friend class ::WinFriend;
 
59761
  friend class ::ExtAC;
 
59762
  friend class ::ExtACBuilderCoupling;
 
59763
  friend class ::ExtACSyntaxCoupling;
 
59764
  friend class ::ExtACTree;
 
59765
  friend class ::ExtACKeywords;
 
59766
  friend class ::ExtGnu;
 
59767
  friend class ::PragmaOnceUnitState;
 
59768
  friend class ::PragmaOnce;
 
59769
  friend class ::CMatchSyntax;
 
59770
 
 
59771
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59772
 
 
59773
public:
 
59774
  /** Constructor.
 
59775
   *  \param size Initial number of sub-name plus separator. */
 
59776
  CT_RootQualName (int size = 2) : 
 
59777
    CT_QualName (size) { AddProperties (INTRO); }
 
59778
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
59779
  static const char *NodeId ();
 
59780
  /** Get the name of the node. Can be compared with NodeId(). */
 
59781
  const char *NodeName () const { return NodeId (); }
 
59782
 
 
59783
public:
 
59784
  /** Own new operator reusing memory. */
 
59785
  void *operator new (size_t);
 
59786
  /** Own delete operator. */
 
59787
  void operator delete (void *);
 
59788
   private:
 
59789
  typedef CT_RootQualName CCExprResolveExpr;
 
59790
 
 
59791
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59792
 public :
 
59793
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
59794
  typedef CT_RootQualName CExprResolveExpr;
 
59795
 
 
59796
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59797
 public :
 
59798
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59799
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59800
};
 
59801
 
 
59802
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
59803
 *  Tree node representing a binary expression, e.g. a+b. */
 
59804
 
 
59805
#line 59806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59806
} // closed Puma
 
59807
class CCExprResolve;
 
59808
class CExprResolve;
 
59809
class WinIfExists;
 
59810
class WinImportHandler;
 
59811
class WinMacros;
 
59812
class WinAsm;
 
59813
class WinDeclSpecs;
 
59814
class WinMemberExplSpec;
 
59815
class WinTypeKeywords;
 
59816
class WinFriend;
 
59817
class ExtAC;
 
59818
class ExtACBuilderCoupling;
 
59819
class ExtACSyntaxCoupling;
 
59820
class ExtACTree;
 
59821
class ExtACKeywords;
 
59822
class ExtGnu;
 
59823
class PragmaOnceUnitState;
 
59824
class PragmaOnce;
 
59825
class CMatchSyntax;
 
59826
namespace Puma {
 
59827
 
 
59828
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59829
 
 
59830
#line 59831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59831
} // closed Puma
 
59832
 
 
59833
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59834
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59835
#include "CCExprResolveH.ah"
 
59836
#endif
 
59837
namespace Puma {
 
59838
 
 
59839
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59840
 
 
59841
#line 59842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59842
} // closed Puma
 
59843
 
 
59844
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59845
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59846
#include "CExprResolveH.ah"
 
59847
#endif
 
59848
namespace Puma {
 
59849
 
 
59850
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59851
class CT_BinaryExpr : public CT_Call {
 
59852
#line 59853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59853
  friend class ::CCExprResolve;
 
59854
  friend class ::CExprResolve;
 
59855
  friend class ::WinIfExists;
 
59856
  friend class ::WinImportHandler;
 
59857
  friend class ::WinMacros;
 
59858
  friend class ::WinAsm;
 
59859
  friend class ::WinDeclSpecs;
 
59860
  friend class ::WinMemberExplSpec;
 
59861
  friend class ::WinTypeKeywords;
 
59862
  friend class ::WinFriend;
 
59863
  friend class ::ExtAC;
 
59864
  friend class ::ExtACBuilderCoupling;
 
59865
  friend class ::ExtACSyntaxCoupling;
 
59866
  friend class ::ExtACTree;
 
59867
  friend class ::ExtACKeywords;
 
59868
  friend class ::ExtGnu;
 
59869
  friend class ::PragmaOnceUnitState;
 
59870
  friend class ::PragmaOnce;
 
59871
  friend class ::CMatchSyntax;
 
59872
 
 
59873
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59874
 
 
59875
  CTree *sons[3]; // expr, oper, expr
 
59876
 
 
59877
public:
 
59878
  /** Constructor. 
 
59879
   *  \param l Left hand side of the expression. 
 
59880
   *  \param o The operator token. 
 
59881
   *  \param r Right hand side of the expression. */
 
59882
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
 
59883
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
 
59884
  }
 
59885
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
59886
  static const char *NodeId ();
 
59887
  /** Get the name of the node. Can be compared with NodeId(). */
 
59888
  const char *NodeName () const { return NodeId (); }
 
59889
  /** Get the number of sons. */
 
59890
  int Sons () const { return 3; }
 
59891
  /** Get the n-th son.
 
59892
   *  \param n The index of the son.
 
59893
   *  \return The n-th son or NULL. */
 
59894
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
59895
  /** Replace a son.
 
59896
   *  \param old_son The son to replace.
 
59897
   *  \param new_son The new son. */
 
59898
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
59899
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
59900
  }
 
59901
   private:
 
59902
  typedef CT_BinaryExpr CCExprResolveExpr;
 
59903
 
 
59904
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59905
 public :
 
59906
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
59907
  typedef CT_BinaryExpr CExprResolveExpr;
 
59908
 
 
59909
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59910
 public :
 
59911
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59912
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59913
};
 
59914
 
 
59915
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
59916
 *  Tree node representing a member pointer expression, e.g. a->b. */
 
59917
 
 
59918
#line 59919 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59919
} // closed Puma
 
59920
class CCExprResolve;
 
59921
class CExprResolve;
 
59922
class WinIfExists;
 
59923
class WinImportHandler;
 
59924
class WinMacros;
 
59925
class WinAsm;
 
59926
class WinDeclSpecs;
 
59927
class WinMemberExplSpec;
 
59928
class WinTypeKeywords;
 
59929
class WinFriend;
 
59930
class ExtAC;
 
59931
class ExtACBuilderCoupling;
 
59932
class ExtACSyntaxCoupling;
 
59933
class ExtACTree;
 
59934
class ExtACKeywords;
 
59935
class ExtGnu;
 
59936
class PragmaOnceUnitState;
 
59937
class PragmaOnce;
 
59938
class CMatchSyntax;
 
59939
namespace Puma {
 
59940
 
 
59941
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59942
 
 
59943
#line 59944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59944
} // closed Puma
 
59945
 
 
59946
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59947
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59948
#include "CCExprResolveH.ah"
 
59949
#endif
 
59950
namespace Puma {
 
59951
 
 
59952
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59953
 
 
59954
#line 59955 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59955
} // closed Puma
 
59956
 
 
59957
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59958
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59959
#include "CExprResolveH.ah"
 
59960
#endif
 
59961
namespace Puma {
 
59962
 
 
59963
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59964
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
59965
#line 59966 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
59966
  friend class ::CCExprResolve;
 
59967
  friend class ::CExprResolve;
 
59968
  friend class ::WinIfExists;
 
59969
  friend class ::WinImportHandler;
 
59970
  friend class ::WinMacros;
 
59971
  friend class ::WinAsm;
 
59972
  friend class ::WinDeclSpecs;
 
59973
  friend class ::WinMemberExplSpec;
 
59974
  friend class ::WinTypeKeywords;
 
59975
  friend class ::WinFriend;
 
59976
  friend class ::ExtAC;
 
59977
  friend class ::ExtACBuilderCoupling;
 
59978
  friend class ::ExtACSyntaxCoupling;
 
59979
  friend class ::ExtACTree;
 
59980
  friend class ::ExtACKeywords;
 
59981
  friend class ::ExtGnu;
 
59982
  friend class ::PragmaOnceUnitState;
 
59983
  friend class ::PragmaOnce;
 
59984
  friend class ::CMatchSyntax;
 
59985
 
 
59986
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59987
 
 
59988
  CTree *sons[3]; // expr, oper, expr
 
59989
  
 
59990
public:
 
59991
  /** Constructor.
 
59992
   *  \param e Expression on which to call the member.
 
59993
   *  \param o The arrow operator token.
 
59994
   *  \param i The member name. */
 
59995
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
59996
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
59997
  }
 
59998
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
59999
  static const char *NodeId ();
 
60000
  /** Get the name of the node. Can be compared with NodeId(). */
 
60001
  const char *NodeName () const { return NodeId (); }
 
60002
  /** Get the number of sons. */
 
60003
  int Sons () const { return 3; }
 
60004
  /** Get the n-th son.
 
60005
   *  \param n The index of the son.
 
60006
   *  \return The n-th son or NULL. */
 
60007
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
60008
  /** Replace a son.
 
60009
   *  \param old_son The son to replace.
 
60010
   *  \param new_son The new son. */
 
60011
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
60012
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
60013
  }
 
60014
   private:
 
60015
  typedef CT_MembPtrExpr CCExprResolveExpr;
 
60016
 
 
60017
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
60018
 public :
 
60019
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
60020
  typedef CT_MembPtrExpr CExprResolveExpr;
 
60021
 
 
60022
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60023
 public :
 
60024
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60025
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60026
};
 
60027
 
 
60028
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
60029
 *  Tree node representing a member reference expression, e.g. a.b. */
 
60030
 
 
60031
#line 60032 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60032
} // closed Puma
 
60033
class CCExprResolve;
 
60034
class CExprResolve;
 
60035
class WinIfExists;
 
60036
class WinImportHandler;
 
60037
class WinMacros;
 
60038
class WinAsm;
 
60039
class WinDeclSpecs;
 
60040
class WinMemberExplSpec;
 
60041
class WinTypeKeywords;
 
60042
class WinFriend;
 
60043
class ExtAC;
 
60044
class ExtACBuilderCoupling;
 
60045
class ExtACSyntaxCoupling;
 
60046
class ExtACTree;
 
60047
class ExtACKeywords;
 
60048
class ExtGnu;
 
60049
class PragmaOnceUnitState;
 
60050
class PragmaOnce;
 
60051
class CMatchSyntax;
 
60052
namespace Puma {
 
60053
 
 
60054
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60055
 
 
60056
#line 60057 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60057
} // closed Puma
 
60058
 
 
60059
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60060
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60061
#include "CCExprResolveH.ah"
 
60062
#endif
 
60063
namespace Puma {
 
60064
 
 
60065
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60066
 
 
60067
#line 60068 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60068
} // closed Puma
 
60069
 
 
60070
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60071
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60072
#include "CExprResolveH.ah"
 
60073
#endif
 
60074
namespace Puma {
 
60075
 
 
60076
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60077
class CT_MembRefExpr : public CT_MembPtrExpr {
 
60078
#line 60079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60079
  friend class ::CCExprResolve;
 
60080
  friend class ::CExprResolve;
 
60081
  friend class ::WinIfExists;
 
60082
  friend class ::WinImportHandler;
 
60083
  friend class ::WinMacros;
 
60084
  friend class ::WinAsm;
 
60085
  friend class ::WinDeclSpecs;
 
60086
  friend class ::WinMemberExplSpec;
 
60087
  friend class ::WinTypeKeywords;
 
60088
  friend class ::WinFriend;
 
60089
  friend class ::ExtAC;
 
60090
  friend class ::ExtACBuilderCoupling;
 
60091
  friend class ::ExtACSyntaxCoupling;
 
60092
  friend class ::ExtACTree;
 
60093
  friend class ::ExtACKeywords;
 
60094
  friend class ::ExtGnu;
 
60095
  friend class ::PragmaOnceUnitState;
 
60096
  friend class ::PragmaOnce;
 
60097
  friend class ::CMatchSyntax;
 
60098
 
 
60099
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60100
 
 
60101
public:
 
60102
  /** Constructor.
 
60103
   *  \param e Expression on which to call the member.
 
60104
   *  \param o The dot operator.
 
60105
   *  \param i The member name. */
 
60106
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
 
60107
    CT_MembPtrExpr (e, o, i) {}
 
60108
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
60109
  static const char *NodeId ();
 
60110
  /** Get the name of the node. Can be compared with NodeId(). */
 
60111
  const char *NodeName () const { return NodeId (); }
 
60112
   private:
 
60113
  typedef CT_MembRefExpr CCExprResolveExpr;
 
60114
 
 
60115
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
60116
 public :
 
60117
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
60118
  typedef CT_MembRefExpr CExprResolveExpr;
 
60119
 
 
60120
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60121
 public :
 
60122
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60123
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60124
};
 
60125
 
 
60126
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
60127
 *  Base class for tree nodes representing unary expressions. */
 
60128
 
 
60129
#line 60130 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60130
} // closed Puma
 
60131
class CCExprResolve;
 
60132
class CExprResolve;
 
60133
class WinIfExists;
 
60134
class WinImportHandler;
 
60135
class WinMacros;
 
60136
class WinAsm;
 
60137
class WinDeclSpecs;
 
60138
class WinMemberExplSpec;
 
60139
class WinTypeKeywords;
 
60140
class WinFriend;
 
60141
class ExtAC;
 
60142
class ExtACBuilderCoupling;
 
60143
class ExtACSyntaxCoupling;
 
60144
class ExtACTree;
 
60145
class ExtACKeywords;
 
60146
class ExtGnu;
 
60147
class PragmaOnceUnitState;
 
60148
class PragmaOnce;
 
60149
class CMatchSyntax;
 
60150
namespace Puma {
 
60151
 
 
60152
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60153
 
 
60154
#line 60155 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60155
} // closed Puma
 
60156
 
 
60157
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60158
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60159
#include "CCExprResolveH.ah"
 
60160
#endif
 
60161
namespace Puma {
 
60162
 
 
60163
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60164
 
 
60165
#line 60166 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60166
} // closed Puma
 
60167
 
 
60168
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60169
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60170
#include "CExprResolveH.ah"
 
60171
#endif
 
60172
namespace Puma {
 
60173
 
 
60174
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60175
class CT_UnaryExpr : public CT_Call {
 
60176
#line 60177 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60177
  friend class ::CCExprResolve;
 
60178
  friend class ::CExprResolve;
 
60179
  friend class ::WinIfExists;
 
60180
  friend class ::WinImportHandler;
 
60181
  friend class ::WinMacros;
 
60182
  friend class ::WinAsm;
 
60183
  friend class ::WinDeclSpecs;
 
60184
  friend class ::WinMemberExplSpec;
 
60185
  friend class ::WinTypeKeywords;
 
60186
  friend class ::WinFriend;
 
60187
  friend class ::ExtAC;
 
60188
  friend class ::ExtACBuilderCoupling;
 
60189
  friend class ::ExtACSyntaxCoupling;
 
60190
  friend class ::ExtACTree;
 
60191
  friend class ::ExtACKeywords;
 
60192
  friend class ::ExtGnu;
 
60193
  friend class ::PragmaOnceUnitState;
 
60194
  friend class ::PragmaOnce;
 
60195
  friend class ::CMatchSyntax;
 
60196
 
 
60197
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60198
 
 
60199
  CTree *sons[2]; // oper, expr
 
60200
 
 
60201
public:
 
60202
  /** Constructor.
 
60203
   *  \param o The unary operator.
 
60204
   *  \param e The expression on which the operator is invoked. */
 
60205
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
60206
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
60207
  static const char *NodeId ();
 
60208
  /** Get the name of the node. Can be compared with NodeId(). */
 
60209
  const char *NodeName () const { return NodeId (); }
 
60210
  /** Get the number of sons. */
 
60211
  int Sons () const { return 2; }
 
60212
  /** Get the n-th son.
 
60213
   *  \param n The index of the son.
 
60214
   *  \return The n-th son or NULL. */
 
60215
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
60216
  /** Replace a son.
 
60217
   *  \param old_son The son to replace.
 
60218
   *  \param new_son The new son. */
 
60219
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
60220
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
60221
  }
 
60222
  /** Get the expression node. */
 
60223
  CTree *Expr () const { return sons[1]; }
 
60224
   private:
 
60225
  typedef CT_UnaryExpr CCExprResolveExpr;
 
60226
 
 
60227
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
60228
 public :
 
60229
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
60230
  typedef CT_UnaryExpr CExprResolveExpr;
 
60231
 
 
60232
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60233
 public :
 
60234
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60235
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60236
};
 
60237
 
 
60238
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
60239
 *  Tree node representing a postfix expression, e.g. a++. */
 
60240
 
 
60241
#line 60242 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60242
} // closed Puma
 
60243
class CCExprResolve;
 
60244
class CExprResolve;
 
60245
class WinIfExists;
 
60246
class WinImportHandler;
 
60247
class WinMacros;
 
60248
class WinAsm;
 
60249
class WinDeclSpecs;
 
60250
class WinMemberExplSpec;
 
60251
class WinTypeKeywords;
 
60252
class WinFriend;
 
60253
class ExtAC;
 
60254
class ExtACBuilderCoupling;
 
60255
class ExtACSyntaxCoupling;
 
60256
class ExtACTree;
 
60257
class ExtACKeywords;
 
60258
class ExtGnu;
 
60259
class PragmaOnceUnitState;
 
60260
class PragmaOnce;
 
60261
class CMatchSyntax;
 
60262
namespace Puma {
 
60263
 
 
60264
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60265
 
 
60266
#line 60267 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60267
} // closed Puma
 
60268
 
 
60269
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60270
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60271
#include "CCExprResolveH.ah"
 
60272
#endif
 
60273
namespace Puma {
 
60274
 
 
60275
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60276
 
 
60277
#line 60278 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60278
} // closed Puma
 
60279
 
 
60280
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60281
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60282
#include "CExprResolveH.ah"
 
60283
#endif
 
60284
namespace Puma {
 
60285
 
 
60286
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60287
class CT_PostfixExpr : public CT_UnaryExpr {
 
60288
#line 60289 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60289
  friend class ::CCExprResolve;
 
60290
  friend class ::CExprResolve;
 
60291
  friend class ::WinIfExists;
 
60292
  friend class ::WinImportHandler;
 
60293
  friend class ::WinMacros;
 
60294
  friend class ::WinAsm;
 
60295
  friend class ::WinDeclSpecs;
 
60296
  friend class ::WinMemberExplSpec;
 
60297
  friend class ::WinTypeKeywords;
 
60298
  friend class ::WinFriend;
 
60299
  friend class ::ExtAC;
 
60300
  friend class ::ExtACBuilderCoupling;
 
60301
  friend class ::ExtACSyntaxCoupling;
 
60302
  friend class ::ExtACTree;
 
60303
  friend class ::ExtACKeywords;
 
60304
  friend class ::ExtGnu;
 
60305
  friend class ::PragmaOnceUnitState;
 
60306
  friend class ::PragmaOnce;
 
60307
  friend class ::CMatchSyntax;
 
60308
 
 
60309
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60310
 
 
60311
public:
 
60312
  /** Constructor.
 
60313
   *  \param e The expression on which to invoke the operator. 
 
60314
   *  \param o The postfix operator. */
 
60315
  CT_PostfixExpr (CTree *e, CTree *o) :
 
60316
    CT_UnaryExpr (e, o) {}
 
60317
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
60318
  static const char *NodeId ();
 
60319
  /** Get the name of the node. Can be compared with NodeId(). */
 
60320
  const char *NodeName () const { return NodeId (); }
 
60321
   private:
 
60322
  typedef CT_PostfixExpr CCExprResolveExpr;
 
60323
 
 
60324
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
60325
 public :
 
60326
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
60327
  typedef CT_PostfixExpr CExprResolveExpr;
 
60328
 
 
60329
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60330
 public :
 
60331
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60332
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60333
};
 
60334
 
 
60335
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
60336
 *  Tree node representing an address expression, e.g. &a. */
 
60337
 
 
60338
#line 60339 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60339
} // closed Puma
 
60340
class CCExprResolve;
 
60341
class CExprResolve;
 
60342
class WinIfExists;
 
60343
class WinImportHandler;
 
60344
class WinMacros;
 
60345
class WinAsm;
 
60346
class WinDeclSpecs;
 
60347
class WinMemberExplSpec;
 
60348
class WinTypeKeywords;
 
60349
class WinFriend;
 
60350
class ExtAC;
 
60351
class ExtACBuilderCoupling;
 
60352
class ExtACSyntaxCoupling;
 
60353
class ExtACTree;
 
60354
class ExtACKeywords;
 
60355
class ExtGnu;
 
60356
class PragmaOnceUnitState;
 
60357
class PragmaOnce;
 
60358
class CMatchSyntax;
 
60359
namespace Puma {
 
60360
 
 
60361
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60362
 
 
60363
#line 60364 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60364
} // closed Puma
 
60365
 
 
60366
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60367
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60368
#include "CCExprResolveH.ah"
 
60369
#endif
 
60370
namespace Puma {
 
60371
 
 
60372
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60373
 
 
60374
#line 60375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60375
} // closed Puma
 
60376
 
 
60377
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60378
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60379
#include "CExprResolveH.ah"
 
60380
#endif
 
60381
namespace Puma {
 
60382
 
 
60383
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60384
class CT_AddrExpr : public CT_UnaryExpr {
 
60385
#line 60386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60386
  friend class ::CCExprResolve;
 
60387
  friend class ::CExprResolve;
 
60388
  friend class ::WinIfExists;
 
60389
  friend class ::WinImportHandler;
 
60390
  friend class ::WinMacros;
 
60391
  friend class ::WinAsm;
 
60392
  friend class ::WinDeclSpecs;
 
60393
  friend class ::WinMemberExplSpec;
 
60394
  friend class ::WinTypeKeywords;
 
60395
  friend class ::WinFriend;
 
60396
  friend class ::ExtAC;
 
60397
  friend class ::ExtACBuilderCoupling;
 
60398
  friend class ::ExtACSyntaxCoupling;
 
60399
  friend class ::ExtACTree;
 
60400
  friend class ::ExtACKeywords;
 
60401
  friend class ::ExtGnu;
 
60402
  friend class ::PragmaOnceUnitState;
 
60403
  friend class ::PragmaOnce;
 
60404
  friend class ::CMatchSyntax;
 
60405
 
 
60406
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60407
 
 
60408
public:
 
60409
  /** Constructor.
 
60410
   *  \param o The address operator, i.e. '&'.
 
60411
   *  \param e The expression from which to take the address. */
 
60412
  CT_AddrExpr (CTree *o, CTree *e) :
 
60413
    CT_UnaryExpr (o, e) {}
 
60414
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
60415
  static const char *NodeId ();
 
60416
  /** Get the name of the node. Can be compared with NodeId(). */
 
60417
  const char *NodeName () const { return NodeId (); }
 
60418
   private:
 
60419
  typedef CT_AddrExpr CCExprResolveExpr;
 
60420
 
 
60421
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
60422
 public :
 
60423
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
60424
  typedef CT_AddrExpr CExprResolveExpr;
 
60425
 
 
60426
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60427
 public :
 
60428
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60429
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60430
};
 
60431
 
 
60432
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
60433
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
 
60434
 
 
60435
#line 60436 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60436
} // closed Puma
 
60437
class CCExprResolve;
 
60438
class CExprResolve;
 
60439
class WinIfExists;
 
60440
class WinImportHandler;
 
60441
class WinMacros;
 
60442
class WinAsm;
 
60443
class WinDeclSpecs;
 
60444
class WinMemberExplSpec;
 
60445
class WinTypeKeywords;
 
60446
class WinFriend;
 
60447
class ExtAC;
 
60448
class ExtACBuilderCoupling;
 
60449
class ExtACSyntaxCoupling;
 
60450
class ExtACTree;
 
60451
class ExtACKeywords;
 
60452
class ExtGnu;
 
60453
class PragmaOnceUnitState;
 
60454
class PragmaOnce;
 
60455
class CMatchSyntax;
 
60456
namespace Puma {
 
60457
 
 
60458
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60459
 
 
60460
#line 60461 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60461
} // closed Puma
 
60462
 
 
60463
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60464
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60465
#include "CCExprResolveH.ah"
 
60466
#endif
 
60467
namespace Puma {
 
60468
 
 
60469
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60470
 
 
60471
#line 60472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60472
} // closed Puma
 
60473
 
 
60474
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60475
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60476
#include "CExprResolveH.ah"
 
60477
#endif
 
60478
namespace Puma {
 
60479
 
 
60480
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60481
class CT_DerefExpr : public CT_UnaryExpr {
 
60482
#line 60483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60483
  friend class ::CCExprResolve;
 
60484
  friend class ::CExprResolve;
 
60485
  friend class ::WinIfExists;
 
60486
  friend class ::WinImportHandler;
 
60487
  friend class ::WinMacros;
 
60488
  friend class ::WinAsm;
 
60489
  friend class ::WinDeclSpecs;
 
60490
  friend class ::WinMemberExplSpec;
 
60491
  friend class ::WinTypeKeywords;
 
60492
  friend class ::WinFriend;
 
60493
  friend class ::ExtAC;
 
60494
  friend class ::ExtACBuilderCoupling;
 
60495
  friend class ::ExtACSyntaxCoupling;
 
60496
  friend class ::ExtACTree;
 
60497
  friend class ::ExtACKeywords;
 
60498
  friend class ::ExtGnu;
 
60499
  friend class ::PragmaOnceUnitState;
 
60500
  friend class ::PragmaOnce;
 
60501
  friend class ::CMatchSyntax;
 
60502
 
 
60503
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60504
 
 
60505
public:
 
60506
  /** Constructor.
 
60507
   *  \param o The dereferencing operator, i.e. '*'.
 
60508
   *  \param e The expression to dereference. */
 
60509
  CT_DerefExpr (CTree *o, CTree *e) :
 
60510
    CT_UnaryExpr (o, e) {}
 
60511
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
60512
  static const char *NodeId ();
 
60513
  /** Get the name of the node. Can be compared with NodeId(). */
 
60514
  const char *NodeName () const { return NodeId (); }
 
60515
   private:
 
60516
  typedef CT_DerefExpr CCExprResolveExpr;
 
60517
 
 
60518
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
60519
 public :
 
60520
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
60521
  typedef CT_DerefExpr CExprResolveExpr;
 
60522
 
 
60523
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60524
 public :
 
60525
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60526
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60527
};
 
60528
 
 
60529
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
60530
 *  Tree node representing a delete expression, e.g. delete a. */
 
60531
 
 
60532
#line 60533 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60533
} // closed Puma
 
60534
class CCExprResolve;
 
60535
class CExprResolve;
 
60536
class WinIfExists;
 
60537
class WinImportHandler;
 
60538
class WinMacros;
 
60539
class WinAsm;
 
60540
class WinDeclSpecs;
 
60541
class WinMemberExplSpec;
 
60542
class WinTypeKeywords;
 
60543
class WinFriend;
 
60544
class ExtAC;
 
60545
class ExtACBuilderCoupling;
 
60546
class ExtACSyntaxCoupling;
 
60547
class ExtACTree;
 
60548
class ExtACKeywords;
 
60549
class ExtGnu;
 
60550
class PragmaOnceUnitState;
 
60551
class PragmaOnce;
 
60552
class CMatchSyntax;
 
60553
namespace Puma {
 
60554
 
 
60555
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60556
 
 
60557
#line 60558 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60558
} // closed Puma
 
60559
 
 
60560
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60561
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60562
#include "CCExprResolveH.ah"
 
60563
#endif
 
60564
namespace Puma {
 
60565
 
 
60566
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60567
 
 
60568
#line 60569 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60569
} // closed Puma
 
60570
 
 
60571
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60572
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60573
#include "CExprResolveH.ah"
 
60574
#endif
 
60575
namespace Puma {
 
60576
 
 
60577
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60578
class CT_DeleteExpr : public CT_Expression, public CSemObject {
 
60579
#line 60580 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60580
  friend class ::CCExprResolve;
 
60581
  friend class ::CExprResolve;
 
60582
  friend class ::WinIfExists;
 
60583
  friend class ::WinImportHandler;
 
60584
  friend class ::WinMacros;
 
60585
  friend class ::WinAsm;
 
60586
  friend class ::WinDeclSpecs;
 
60587
  friend class ::WinMemberExplSpec;
 
60588
  friend class ::WinTypeKeywords;
 
60589
  friend class ::WinFriend;
 
60590
  friend class ::ExtAC;
 
60591
  friend class ::ExtACBuilderCoupling;
 
60592
  friend class ::ExtACSyntaxCoupling;
 
60593
  friend class ::ExtACTree;
 
60594
  friend class ::ExtACKeywords;
 
60595
  friend class ::ExtGnu;
 
60596
  friend class ::PragmaOnceUnitState;
 
60597
  friend class ::PragmaOnce;
 
60598
  friend class ::CMatchSyntax;
 
60599
 
 
60600
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60601
 
 
60602
  CTree *sons[2]; // oper, expr
 
60603
 
 
60604
public:
 
60605
  /** Constructor.
 
60606
   *  \param op The delete operator.
 
60607
   *  \param e The expression representing the object to delete. */
 
60608
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
60609
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
60610
  static const char *NodeId ();
 
60611
  /** Get the name of the node. Can be compared with NodeId(). */
 
60612
  const char *NodeName () const { return NodeId (); }
 
60613
  /** Get the number of sons. */
 
60614
  int Sons () const { return 2; }
 
60615
  /** Get the n-th son.
 
60616
   *  \param n The index of the son.
 
60617
   *  \return The n-th son or NULL. */
 
60618
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
60619
  /** Replace a son.
 
60620
   *  \param old_son The son to replace.
 
60621
   *  \param new_son The new son. */
 
60622
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
60623
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
60624
  }
 
60625
  /** Get the expression. */
 
60626
  CTree *Expr () const { return sons[1]; }
 
60627
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
 
60628
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
60629
  /** Get the semantic information object. */
 
60630
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
60631
   private:
 
60632
  typedef CT_DeleteExpr CCExprResolveExpr;
 
60633
 
 
60634
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
60635
 public :
 
60636
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
60637
  typedef CT_DeleteExpr CExprResolveExpr;
 
60638
 
 
60639
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60640
 public :
 
60641
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60642
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60643
};
 
60644
 
 
60645
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
60646
 *  Tree node representing a new expression, e.g. new A(). */
 
60647
 
 
60648
#line 60649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60649
} // closed Puma
 
60650
class CCExprResolve;
 
60651
class CExprResolve;
 
60652
class WinIfExists;
 
60653
class WinImportHandler;
 
60654
class WinMacros;
 
60655
class WinAsm;
 
60656
class WinDeclSpecs;
 
60657
class WinMemberExplSpec;
 
60658
class WinTypeKeywords;
 
60659
class WinFriend;
 
60660
class ExtAC;
 
60661
class ExtACBuilderCoupling;
 
60662
class ExtACSyntaxCoupling;
 
60663
class ExtACTree;
 
60664
class ExtACKeywords;
 
60665
class ExtGnu;
 
60666
class PragmaOnceUnitState;
 
60667
class PragmaOnce;
 
60668
class CMatchSyntax;
 
60669
namespace Puma {
 
60670
 
 
60671
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60672
 
 
60673
#line 60674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60674
} // closed Puma
 
60675
 
 
60676
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60677
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60678
#include "CCExprResolveH.ah"
 
60679
#endif
 
60680
namespace Puma {
 
60681
 
 
60682
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60683
 
 
60684
#line 60685 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60685
} // closed Puma
 
60686
 
 
60687
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60688
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60689
#include "CExprResolveH.ah"
 
60690
#endif
 
60691
namespace Puma {
 
60692
 
 
60693
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60694
class CT_NewExpr : public CT_Expression, public CSemObject {
 
60695
#line 60696 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60696
  friend class ::CCExprResolve;
 
60697
  friend class ::CExprResolve;
 
60698
  friend class ::WinIfExists;
 
60699
  friend class ::WinImportHandler;
 
60700
  friend class ::WinMacros;
 
60701
  friend class ::WinAsm;
 
60702
  friend class ::WinDeclSpecs;
 
60703
  friend class ::WinMemberExplSpec;
 
60704
  friend class ::WinTypeKeywords;
 
60705
  friend class ::WinFriend;
 
60706
  friend class ::ExtAC;
 
60707
  friend class ::ExtACBuilderCoupling;
 
60708
  friend class ::ExtACSyntaxCoupling;
 
60709
  friend class ::ExtACTree;
 
60710
  friend class ::ExtACKeywords;
 
60711
  friend class ::ExtGnu;
 
60712
  friend class ::PragmaOnceUnitState;
 
60713
  friend class ::PragmaOnce;
 
60714
  friend class ::CMatchSyntax;
 
60715
 
 
60716
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60717
 
 
60718
  CTree *sons[6]; // oper, placement, open, type, close, init
 
60719
 
 
60720
public:
 
60721
  /** Constructor.
 
60722
   *  \param op The new operator.
 
60723
   *  \param p The optional placement expression.
 
60724
   *  \param o The optional left parenthesis around the type identifier.
 
60725
   *  \param t The type identifier specifying the type of the object to create.
 
60726
   *  \param c The optional right parenthesis around the type identifier.
 
60727
   *  \param i The optional initializer. */
 
60728
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
 
60729
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
60730
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
 
60731
  }
 
60732
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
60733
  static const char *NodeId ();
 
60734
  /** Get the name of the node. Can be compared with NodeId(). */
 
60735
  const char *NodeName () const { return NodeId (); }
 
60736
  /** Get the number of sons. */
 
60737
  int Sons () const { return CTree::Sons (sons, 6); }
 
60738
  /** Get the n-th son.
 
60739
   *  \param n The index of the son.
 
60740
   *  \return The n-th son or NULL. */
 
60741
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
60742
  /** Replace a son.
 
60743
   *  \param old_son The son to replace.
 
60744
   *  \param new_son The new son. */
 
60745
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
60746
    CTree::ReplaceSon (sons, 6, old_son, new_son);
 
60747
  }
 
60748
  /** Get the operator name. */
 
60749
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
60750
  /** Get the placement expression. */
 
60751
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
60752
  /** Get the initializer. */
 
60753
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
60754
  /** Get the type of the object to create. */
 
60755
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
60756
  /** Get the semantic information object. */
 
60757
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
60758
   private:
 
60759
  typedef CT_NewExpr CCExprResolveExpr;
 
60760
 
 
60761
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
60762
 public :
 
60763
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
60764
  typedef CT_NewExpr CExprResolveExpr;
 
60765
 
 
60766
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60767
 public :
 
60768
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60769
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60770
};
 
60771
 
 
60772
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
60773
 *  Tree node representing an if-then expression, 
 
60774
 *  e.g. a>0?a:b or a?:b. */
 
60775
 
 
60776
#line 60777 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60777
} // closed Puma
 
60778
class CCExprResolve;
 
60779
class CExprResolve;
 
60780
class WinIfExists;
 
60781
class WinImportHandler;
 
60782
class WinMacros;
 
60783
class WinAsm;
 
60784
class WinDeclSpecs;
 
60785
class WinMemberExplSpec;
 
60786
class WinTypeKeywords;
 
60787
class WinFriend;
 
60788
class ExtAC;
 
60789
class ExtACBuilderCoupling;
 
60790
class ExtACSyntaxCoupling;
 
60791
class ExtACTree;
 
60792
class ExtACKeywords;
 
60793
class ExtGnu;
 
60794
class PragmaOnceUnitState;
 
60795
class PragmaOnce;
 
60796
class CMatchSyntax;
 
60797
namespace Puma {
 
60798
 
 
60799
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60800
 
 
60801
#line 60802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60802
} // closed Puma
 
60803
 
 
60804
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60805
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60806
#include "CCExprResolveH.ah"
 
60807
#endif
 
60808
namespace Puma {
 
60809
 
 
60810
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60811
 
 
60812
#line 60813 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60813
} // closed Puma
 
60814
 
 
60815
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60816
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60817
#include "CExprResolveH.ah"
 
60818
#endif
 
60819
namespace Puma {
 
60820
 
 
60821
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60822
class CT_IfThenExpr : public CT_Expression {
 
60823
#line 60824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60824
  friend class ::CCExprResolve;
 
60825
  friend class ::CExprResolve;
 
60826
  friend class ::WinIfExists;
 
60827
  friend class ::WinImportHandler;
 
60828
  friend class ::WinMacros;
 
60829
  friend class ::WinAsm;
 
60830
  friend class ::WinDeclSpecs;
 
60831
  friend class ::WinMemberExplSpec;
 
60832
  friend class ::WinTypeKeywords;
 
60833
  friend class ::WinFriend;
 
60834
  friend class ::ExtAC;
 
60835
  friend class ::ExtACBuilderCoupling;
 
60836
  friend class ::ExtACSyntaxCoupling;
 
60837
  friend class ::ExtACTree;
 
60838
  friend class ::ExtACKeywords;
 
60839
  friend class ::ExtGnu;
 
60840
  friend class ::PragmaOnceUnitState;
 
60841
  friend class ::PragmaOnce;
 
60842
  friend class ::CMatchSyntax;
 
60843
 
 
60844
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60845
 
 
60846
  CTree *sons[5]; // cond, oper, left, colon, right
 
60847
 
 
60848
public:
 
60849
  /** Constructor.
 
60850
   *  \param c1 The condition expression.
 
60851
   *  \param o The question mark operator. 
 
60852
   *  \param l The expression to the left of the colon.
 
60853
   *  \param c2 The colon operator.
 
60854
   *  \param r The expression to the right of the colon. */ 
 
60855
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
 
60856
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
60857
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
60858
  }
 
60859
  /** Constructor.
 
60860
   *  \param c1 The condition expression.
 
60861
   *  \param o The question mark operator. 
 
60862
   *  \param c2 The colon operator.
 
60863
   *  \param r The expression to the right of the colon. */ 
 
60864
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
 
60865
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
60866
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
60867
  }
 
60868
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
60869
  static const char *NodeId ();
 
60870
  /** Get the name of the node. Can be compared with NodeId(). */
 
60871
  const char *NodeName () const { return NodeId (); }
 
60872
  /** Get the number of sons. */
 
60873
  int Sons () const { return CTree::Sons (sons, 5); }
 
60874
  /** Get the n-th son.
 
60875
   *  \param n The index of the son.
 
60876
   *  \return The n-th son or NULL. */
 
60877
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
60878
  /** Get the condition expression. */
 
60879
  CTree *Condition () const { return sons[0]; }
 
60880
  /** Get the left expression (condition=true). */
 
60881
  CTree *LeftOperand () const { return sons[2]; }
 
60882
  /** Get the right expression (condition=false). */
 
60883
  CTree *RightOperand () const { return sons[4]; }
 
60884
  /** Replace a son.
 
60885
   *  \param old_son The son to replace.
 
60886
   *  \param new_son The new son. */
 
60887
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
60888
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
60889
  }
 
60890
   private:
 
60891
  typedef CT_IfThenExpr CCExprResolveExpr;
 
60892
 
 
60893
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
60894
 public :
 
60895
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
60896
  typedef CT_IfThenExpr CExprResolveExpr;
 
60897
 
 
60898
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60899
 public :
 
60900
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60901
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60902
};
 
60903
 
 
60904
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
60905
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
 
60906
 
 
60907
#line 60908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60908
} // closed Puma
 
60909
class CCExprResolve;
 
60910
class CExprResolve;
 
60911
class WinIfExists;
 
60912
class WinImportHandler;
 
60913
class WinMacros;
 
60914
class WinAsm;
 
60915
class WinDeclSpecs;
 
60916
class WinMemberExplSpec;
 
60917
class WinTypeKeywords;
 
60918
class WinFriend;
 
60919
class ExtAC;
 
60920
class ExtACBuilderCoupling;
 
60921
class ExtACSyntaxCoupling;
 
60922
class ExtACTree;
 
60923
class ExtACKeywords;
 
60924
class ExtGnu;
 
60925
class PragmaOnceUnitState;
 
60926
class PragmaOnce;
 
60927
class CMatchSyntax;
 
60928
namespace Puma {
 
60929
 
 
60930
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60931
 
 
60932
#line 60933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60933
} // closed Puma
 
60934
 
 
60935
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60936
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60937
#include "CCExprResolveH.ah"
 
60938
#endif
 
60939
namespace Puma {
 
60940
 
 
60941
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60942
 
 
60943
#line 60944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60944
} // closed Puma
 
60945
 
 
60946
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60947
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60948
#include "CExprResolveH.ah"
 
60949
#endif
 
60950
namespace Puma {
 
60951
 
 
60952
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60953
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
 
60954
#line 60955 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
60955
  friend class ::CCExprResolve;
 
60956
  friend class ::CExprResolve;
 
60957
  friend class ::WinIfExists;
 
60958
  friend class ::WinImportHandler;
 
60959
  friend class ::WinMacros;
 
60960
  friend class ::WinAsm;
 
60961
  friend class ::WinDeclSpecs;
 
60962
  friend class ::WinMemberExplSpec;
 
60963
  friend class ::WinTypeKeywords;
 
60964
  friend class ::WinFriend;
 
60965
  friend class ::ExtAC;
 
60966
  friend class ::ExtACBuilderCoupling;
 
60967
  friend class ::ExtACSyntaxCoupling;
 
60968
  friend class ::ExtACTree;
 
60969
  friend class ::ExtACKeywords;
 
60970
  friend class ::ExtGnu;
 
60971
  friend class ::PragmaOnceUnitState;
 
60972
  friend class ::PragmaOnce;
 
60973
  friend class ::CMatchSyntax;
 
60974
 
 
60975
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60976
 
 
60977
  CTree *sons[4]; // open, type, close, init
 
60978
 
 
60979
public:
 
60980
  /** Constructor.
 
60981
   *  \param r Left parenthesis of the type name.
 
60982
   *  \param t The type name.
 
60983
   *  \param cr Right parenthesis of the type name.
 
60984
   *  \param i The initializer list. */
 
60985
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
 
60986
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
60987
    AddSon (sons[2], cr); AddSon (sons[3], i);
 
60988
  }
 
60989
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
60990
  static const char *NodeId ();
 
60991
  /** Get the name of the node. Can be compared with NodeId(). */
 
60992
  const char *NodeName () const { return NodeId (); }
 
60993
  /** Get the number of sons. */
 
60994
  int Sons () const { return 4; }
 
60995
  /** Get the n-th son.
 
60996
   *  \param n The index of the son.
 
60997
   *  \return The n-th son or NULL. */
 
60998
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
60999
  /** Replace a son.
 
61000
   *  \param old_son The son to replace.
 
61001
   *  \param new_son The new son. */
 
61002
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
61003
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
61004
  }
 
61005
  /** Get the type name. */
 
61006
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
61007
  /** Get the initializer list. */
 
61008
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
61009
  /** Get the semantic information object. */
 
61010
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
61011
   private:
 
61012
  typedef CT_CmpdLiteral CCExprResolveExpr;
 
61013
 
 
61014
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61015
 public :
 
61016
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
61017
  typedef CT_CmpdLiteral CExprResolveExpr;
 
61018
 
 
61019
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61020
 public :
 
61021
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61022
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61023
};
 
61024
 
 
61025
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
61026
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
 
61027
 
 
61028
#line 61029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61029
} // closed Puma
 
61030
class CCExprResolve;
 
61031
class CExprResolve;
 
61032
class WinIfExists;
 
61033
class WinImportHandler;
 
61034
class WinMacros;
 
61035
class WinAsm;
 
61036
class WinDeclSpecs;
 
61037
class WinMemberExplSpec;
 
61038
class WinTypeKeywords;
 
61039
class WinFriend;
 
61040
class ExtAC;
 
61041
class ExtACBuilderCoupling;
 
61042
class ExtACSyntaxCoupling;
 
61043
class ExtACTree;
 
61044
class ExtACKeywords;
 
61045
class ExtGnu;
 
61046
class PragmaOnceUnitState;
 
61047
class PragmaOnce;
 
61048
class CMatchSyntax;
 
61049
namespace Puma {
 
61050
 
 
61051
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61052
 
 
61053
#line 61054 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61054
} // closed Puma
 
61055
 
 
61056
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61057
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61058
#include "CCExprResolveH.ah"
 
61059
#endif
 
61060
namespace Puma {
 
61061
 
 
61062
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61063
 
 
61064
#line 61065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61065
} // closed Puma
 
61066
 
 
61067
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61068
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61069
#include "CExprResolveH.ah"
 
61070
#endif
 
61071
namespace Puma {
 
61072
 
 
61073
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61074
class CT_ConstructExpr : public CT_Expression, public CSemObject {
 
61075
#line 61076 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61076
  friend class ::CCExprResolve;
 
61077
  friend class ::CExprResolve;
 
61078
  friend class ::WinIfExists;
 
61079
  friend class ::WinImportHandler;
 
61080
  friend class ::WinMacros;
 
61081
  friend class ::WinAsm;
 
61082
  friend class ::WinDeclSpecs;
 
61083
  friend class ::WinMemberExplSpec;
 
61084
  friend class ::WinTypeKeywords;
 
61085
  friend class ::WinFriend;
 
61086
  friend class ::ExtAC;
 
61087
  friend class ::ExtACBuilderCoupling;
 
61088
  friend class ::ExtACSyntaxCoupling;
 
61089
  friend class ::ExtACTree;
 
61090
  friend class ::ExtACKeywords;
 
61091
  friend class ::ExtGnu;
 
61092
  friend class ::PragmaOnceUnitState;
 
61093
  friend class ::PragmaOnce;
 
61094
  friend class ::CMatchSyntax;
 
61095
 
 
61096
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61097
 
 
61098
  CTree *sons[2]; // type, init
 
61099
 
 
61100
public:
 
61101
  /** Constructor.
 
61102
   *  \param t The type name.
 
61103
   *  \param i The initializer list. */
 
61104
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
61105
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
61106
  static const char *NodeId ();
 
61107
  /** Get the name of the node. Can be compared with NodeId(). */
 
61108
  const char *NodeName () const { return NodeId (); }
 
61109
  /** Get the number of sons. */
 
61110
  int Sons () const { return 2; }
 
61111
  /** Get the n-th son.
 
61112
   *  \param n The index of the son.
 
61113
   *  \return The n-th son or NULL. */
 
61114
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
61115
  /** Replace a son.
 
61116
   *  \param old_son The son to replace.
 
61117
   *  \param new_son The new son. */
 
61118
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
61119
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
61120
  }
 
61121
  /** Get the type name. */
 
61122
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
61123
  /** Get the initializer. */
 
61124
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
61125
  /** Get the semantic information object. */
 
61126
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
61127
   private:
 
61128
  typedef CT_ConstructExpr CCExprResolveExpr;
 
61129
 
 
61130
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61131
 public :
 
61132
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
61133
  typedef CT_ConstructExpr CExprResolveExpr;
 
61134
 
 
61135
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61136
 public :
 
61137
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61138
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61139
};
 
61140
 
 
61141
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
61142
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
 
61143
 
 
61144
#line 61145 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61145
} // closed Puma
 
61146
class CCExprResolve;
 
61147
class CExprResolve;
 
61148
class WinIfExists;
 
61149
class WinImportHandler;
 
61150
class WinMacros;
 
61151
class WinAsm;
 
61152
class WinDeclSpecs;
 
61153
class WinMemberExplSpec;
 
61154
class WinTypeKeywords;
 
61155
class WinFriend;
 
61156
class ExtAC;
 
61157
class ExtACBuilderCoupling;
 
61158
class ExtACSyntaxCoupling;
 
61159
class ExtACTree;
 
61160
class ExtACKeywords;
 
61161
class ExtGnu;
 
61162
class PragmaOnceUnitState;
 
61163
class PragmaOnce;
 
61164
class CMatchSyntax;
 
61165
namespace Puma {
 
61166
 
 
61167
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61168
 
 
61169
#line 61170 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61170
} // closed Puma
 
61171
 
 
61172
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61173
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61174
#include "CCExprResolveH.ah"
 
61175
#endif
 
61176
namespace Puma {
 
61177
 
 
61178
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61179
 
 
61180
#line 61181 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61181
} // closed Puma
 
61182
 
 
61183
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61184
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61185
#include "CExprResolveH.ah"
 
61186
#endif
 
61187
namespace Puma {
 
61188
 
 
61189
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61190
class CT_ThrowExpr : public CT_Expression {
 
61191
#line 61192 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61192
  friend class ::CCExprResolve;
 
61193
  friend class ::CExprResolve;
 
61194
  friend class ::WinIfExists;
 
61195
  friend class ::WinImportHandler;
 
61196
  friend class ::WinMacros;
 
61197
  friend class ::WinAsm;
 
61198
  friend class ::WinDeclSpecs;
 
61199
  friend class ::WinMemberExplSpec;
 
61200
  friend class ::WinTypeKeywords;
 
61201
  friend class ::WinFriend;
 
61202
  friend class ::ExtAC;
 
61203
  friend class ::ExtACBuilderCoupling;
 
61204
  friend class ::ExtACSyntaxCoupling;
 
61205
  friend class ::ExtACTree;
 
61206
  friend class ::ExtACKeywords;
 
61207
  friend class ::ExtGnu;
 
61208
  friend class ::PragmaOnceUnitState;
 
61209
  friend class ::PragmaOnce;
 
61210
  friend class ::CMatchSyntax;
 
61211
 
 
61212
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61213
 
 
61214
  CTree *sons[2]; // throw, expr
 
61215
 
 
61216
public:
 
61217
  /** Constructor.
 
61218
   *  \param t The 'throw' keyword.
 
61219
   *  \param e The expression. */
 
61220
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
61221
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
61222
  static const char *NodeId ();
 
61223
  /** Get the name of the node. Can be compared with NodeId(). */
 
61224
  const char *NodeName () const { return NodeId (); }
 
61225
  /** Get the number of sons. */
 
61226
  int Sons () const { return CTree::Sons (sons, 2); }
 
61227
  /** Get the n-th son.
 
61228
   *  \param n The index of the son.
 
61229
   *  \return The n-th son or NULL. */
 
61230
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
61231
  /** Replace a son.
 
61232
   *  \param old_son The son to replace.
 
61233
   *  \param new_son The new son. */
 
61234
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
61235
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
61236
  }
 
61237
  /** Get the expression. */
 
61238
  CTree *Expr () const { return sons[1]; }
 
61239
   private:
 
61240
  typedef CT_ThrowExpr CCExprResolveExpr;
 
61241
 
 
61242
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61243
 public :
 
61244
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
61245
  typedef CT_ThrowExpr CExprResolveExpr;
 
61246
 
 
61247
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61248
 public :
 
61249
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61250
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61251
};
 
61252
 
 
61253
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
61254
 *  Tree node representing an index expression. */
 
61255
 
 
61256
#line 61257 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61257
} // closed Puma
 
61258
class CCExprResolve;
 
61259
class CExprResolve;
 
61260
class WinIfExists;
 
61261
class WinImportHandler;
 
61262
class WinMacros;
 
61263
class WinAsm;
 
61264
class WinDeclSpecs;
 
61265
class WinMemberExplSpec;
 
61266
class WinTypeKeywords;
 
61267
class WinFriend;
 
61268
class ExtAC;
 
61269
class ExtACBuilderCoupling;
 
61270
class ExtACSyntaxCoupling;
 
61271
class ExtACTree;
 
61272
class ExtACKeywords;
 
61273
class ExtGnu;
 
61274
class PragmaOnceUnitState;
 
61275
class PragmaOnce;
 
61276
class CMatchSyntax;
 
61277
namespace Puma {
 
61278
 
 
61279
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61280
 
 
61281
#line 61282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61282
} // closed Puma
 
61283
 
 
61284
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61285
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61286
#include "CCExprResolveH.ah"
 
61287
#endif
 
61288
namespace Puma {
 
61289
 
 
61290
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61291
 
 
61292
#line 61293 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61293
} // closed Puma
 
61294
 
 
61295
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61296
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61297
#include "CExprResolveH.ah"
 
61298
#endif
 
61299
namespace Puma {
 
61300
 
 
61301
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61302
class CT_IndexExpr : public CT_Call {
 
61303
#line 61304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61304
  friend class ::CCExprResolve;
 
61305
  friend class ::CExprResolve;
 
61306
  friend class ::WinIfExists;
 
61307
  friend class ::WinImportHandler;
 
61308
  friend class ::WinMacros;
 
61309
  friend class ::WinAsm;
 
61310
  friend class ::WinDeclSpecs;
 
61311
  friend class ::WinMemberExplSpec;
 
61312
  friend class ::WinTypeKeywords;
 
61313
  friend class ::WinFriend;
 
61314
  friend class ::ExtAC;
 
61315
  friend class ::ExtACBuilderCoupling;
 
61316
  friend class ::ExtACSyntaxCoupling;
 
61317
  friend class ::ExtACTree;
 
61318
  friend class ::ExtACKeywords;
 
61319
  friend class ::ExtGnu;
 
61320
  friend class ::PragmaOnceUnitState;
 
61321
  friend class ::PragmaOnce;
 
61322
  friend class ::CMatchSyntax;
 
61323
 
 
61324
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61325
 
 
61326
  CTree *sons[4]; // expr, open, index, close
 
61327
 
 
61328
public:
 
61329
  /** Constructor.
 
61330
   *  \param e The expression on which to invoke the index operator.
 
61331
   *  \param o Left parenthesis of the index expression.
 
61332
   *  \param i The index expression. 
 
61333
   *  \param c Right parenthesis of the index expression. */
 
61334
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
 
61335
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
61336
    AddSon (sons[2], i); AddSon (sons[3], c);
 
61337
  }
 
61338
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
61339
  static const char *NodeId ();
 
61340
  /** Get the name of the node. Can be compared with NodeId(). */
 
61341
  const char *NodeName () const { return NodeId (); }
 
61342
  /** Get the number of sons. */
 
61343
  int Sons () const { return 4; }
 
61344
  /** Get the n-th son.
 
61345
   *  \param n The index of the son.
 
61346
   *  \return The n-th son or NULL. */
 
61347
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
61348
  /** Replace a son.
 
61349
   *  \param old_son The son to replace.
 
61350
   *  \param new_son The new son. */
 
61351
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
61352
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
61353
  }
 
61354
   private:
 
61355
  typedef CT_IndexExpr CCExprResolveExpr;
 
61356
 
 
61357
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61358
 public :
 
61359
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
61360
  typedef CT_IndexExpr CExprResolveExpr;
 
61361
 
 
61362
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61363
 public :
 
61364
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61365
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61366
};
 
61367
 
 
61368
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
61369
 *  Tree node representing a function call expression, e.g. f(i). */
 
61370
 
 
61371
#line 61372 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61372
} // closed Puma
 
61373
class CCExprResolve;
 
61374
class CExprResolve;
 
61375
class WinIfExists;
 
61376
class WinImportHandler;
 
61377
class WinMacros;
 
61378
class WinAsm;
 
61379
class WinDeclSpecs;
 
61380
class WinMemberExplSpec;
 
61381
class WinTypeKeywords;
 
61382
class WinFriend;
 
61383
class ExtAC;
 
61384
class ExtACBuilderCoupling;
 
61385
class ExtACSyntaxCoupling;
 
61386
class ExtACTree;
 
61387
class ExtACKeywords;
 
61388
class ExtGnu;
 
61389
class PragmaOnceUnitState;
 
61390
class PragmaOnce;
 
61391
class CMatchSyntax;
 
61392
namespace Puma {
 
61393
 
 
61394
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61395
 
 
61396
#line 61397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61397
} // closed Puma
 
61398
 
 
61399
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61400
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61401
#include "CCExprResolveH.ah"
 
61402
#endif
 
61403
namespace Puma {
 
61404
 
 
61405
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61406
 
 
61407
#line 61408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61408
} // closed Puma
 
61409
 
 
61410
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61411
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61412
#include "CExprResolveH.ah"
 
61413
#endif
 
61414
namespace Puma {
 
61415
 
 
61416
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61417
class CT_CallExpr : public CT_Call {
 
61418
#line 61419 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61419
  friend class ::CCExprResolve;
 
61420
  friend class ::CExprResolve;
 
61421
  friend class ::WinIfExists;
 
61422
  friend class ::WinImportHandler;
 
61423
  friend class ::WinMacros;
 
61424
  friend class ::WinAsm;
 
61425
  friend class ::WinDeclSpecs;
 
61426
  friend class ::WinMemberExplSpec;
 
61427
  friend class ::WinTypeKeywords;
 
61428
  friend class ::WinFriend;
 
61429
  friend class ::ExtAC;
 
61430
  friend class ::ExtACBuilderCoupling;
 
61431
  friend class ::ExtACSyntaxCoupling;
 
61432
  friend class ::ExtACTree;
 
61433
  friend class ::ExtACKeywords;
 
61434
  friend class ::ExtGnu;
 
61435
  friend class ::PragmaOnceUnitState;
 
61436
  friend class ::PragmaOnce;
 
61437
  friend class ::CMatchSyntax;
 
61438
 
 
61439
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61440
 
 
61441
  CTree *sons[2]; // expr, args
 
61442
 
 
61443
public:
 
61444
  /** Constructor.
 
61445
   *  \param e The expression on which the call is invoked. */
 
61446
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
61447
  /** Constructor.
 
61448
   *  \param e The expression on which the call is invoked.
 
61449
   *  \param l The argument list of the call. */
 
61450
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
61451
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
61452
  static const char *NodeId ();
 
61453
  /** Get the name of the node. Can be compared with NodeId(). */
 
61454
  const char *NodeName () const { return NodeId (); }
 
61455
  /** Get the number of sons. */
 
61456
  int Sons () const { return CTree::Sons (sons, 2); }
 
61457
  /** Get the n-th son.
 
61458
   *  \param n The index of the son.
 
61459
   *  \return The n-th son or NULL. */
 
61460
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
61461
  /** Replace a son.
 
61462
   *  \param old_son The son to replace.
 
61463
   *  \param new_son The new son. */
 
61464
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
61465
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
61466
  }
 
61467
  CTree *Expr () const { return sons[0]; }
 
61468
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
 
61469
   private:
 
61470
  typedef CT_CallExpr CCExprResolveExpr;
 
61471
 
 
61472
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61473
 public :
 
61474
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
61475
  typedef CT_CallExpr CExprResolveExpr;
 
61476
 
 
61477
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61478
 public :
 
61479
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61480
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61481
};
 
61482
 
 
61483
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
61484
 *  Tree node representing a cast expression, e.g. (int)a. */
 
61485
 
 
61486
#line 61487 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61487
} // closed Puma
 
61488
class CCExprResolve;
 
61489
class CExprResolve;
 
61490
class WinIfExists;
 
61491
class WinImportHandler;
 
61492
class WinMacros;
 
61493
class WinAsm;
 
61494
class WinDeclSpecs;
 
61495
class WinMemberExplSpec;
 
61496
class WinTypeKeywords;
 
61497
class WinFriend;
 
61498
class ExtAC;
 
61499
class ExtACBuilderCoupling;
 
61500
class ExtACSyntaxCoupling;
 
61501
class ExtACTree;
 
61502
class ExtACKeywords;
 
61503
class ExtGnu;
 
61504
class PragmaOnceUnitState;
 
61505
class PragmaOnce;
 
61506
class CMatchSyntax;
 
61507
namespace Puma {
 
61508
 
 
61509
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61510
 
 
61511
#line 61512 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61512
} // closed Puma
 
61513
 
 
61514
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61515
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61516
#include "CCExprResolveH.ah"
 
61517
#endif
 
61518
namespace Puma {
 
61519
 
 
61520
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61521
 
 
61522
#line 61523 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61523
} // closed Puma
 
61524
 
 
61525
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61526
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61527
#include "CExprResolveH.ah"
 
61528
#endif
 
61529
namespace Puma {
 
61530
 
 
61531
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61532
class CT_CastExpr : public CT_Expression {
 
61533
#line 61534 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61534
  friend class ::CCExprResolve;
 
61535
  friend class ::CExprResolve;
 
61536
  friend class ::WinIfExists;
 
61537
  friend class ::WinImportHandler;
 
61538
  friend class ::WinMacros;
 
61539
  friend class ::WinAsm;
 
61540
  friend class ::WinDeclSpecs;
 
61541
  friend class ::WinMemberExplSpec;
 
61542
  friend class ::WinTypeKeywords;
 
61543
  friend class ::WinFriend;
 
61544
  friend class ::ExtAC;
 
61545
  friend class ::ExtACBuilderCoupling;
 
61546
  friend class ::ExtACSyntaxCoupling;
 
61547
  friend class ::ExtACTree;
 
61548
  friend class ::ExtACKeywords;
 
61549
  friend class ::ExtGnu;
 
61550
  friend class ::PragmaOnceUnitState;
 
61551
  friend class ::PragmaOnce;
 
61552
  friend class ::CMatchSyntax;
 
61553
 
 
61554
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61555
 
 
61556
  CTree *sons[4]; // open, type, close, expr
 
61557
 
 
61558
public:
 
61559
  /** Constructor.
 
61560
   *  \param o Left parenthesis of the type name.
 
61561
   *  \param t The type to cast to.
 
61562
   *  \param c Right parenthesis of the type name. 
 
61563
   *  \param e The expression to cast. */
 
61564
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
 
61565
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
61566
    AddSon (sons[2], c); AddSon (sons[3], e);
 
61567
  }
 
61568
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
61569
  static const char *NodeId ();
 
61570
  /** Get the name of the node. Can be compared with NodeId(). */
 
61571
  const char *NodeName () const { return NodeId (); }
 
61572
  /** Get the number of sons. */
 
61573
  int Sons () const { return 4; }
 
61574
  /** Get the n-th son.
 
61575
   *  \param n The index of the son.
 
61576
   *  \return The n-th son or NULL. */
 
61577
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
61578
  /** Replace a son.
 
61579
   *  \param old_son The son to replace.
 
61580
   *  \param new_son The new son. */
 
61581
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
61582
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
61583
  }
 
61584
  /** Get the casted expression. */
 
61585
  CTree *Expr () const { return sons[3]; }
 
61586
  /** Get the type to cast to. */
 
61587
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
61588
   private:
 
61589
  typedef CT_CastExpr CCExprResolveExpr;
 
61590
 
 
61591
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61592
 public :
 
61593
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
61594
  typedef CT_CastExpr CExprResolveExpr;
 
61595
 
 
61596
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61597
 public :
 
61598
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61599
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61600
};
 
61601
 
 
61602
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
61603
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
 
61604
 
 
61605
#line 61606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61606
} // closed Puma
 
61607
class CCExprResolve;
 
61608
class CExprResolve;
 
61609
class WinIfExists;
 
61610
class WinImportHandler;
 
61611
class WinMacros;
 
61612
class WinAsm;
 
61613
class WinDeclSpecs;
 
61614
class WinMemberExplSpec;
 
61615
class WinTypeKeywords;
 
61616
class WinFriend;
 
61617
class ExtAC;
 
61618
class ExtACBuilderCoupling;
 
61619
class ExtACSyntaxCoupling;
 
61620
class ExtACTree;
 
61621
class ExtACKeywords;
 
61622
class ExtGnu;
 
61623
class PragmaOnceUnitState;
 
61624
class PragmaOnce;
 
61625
class CMatchSyntax;
 
61626
namespace Puma {
 
61627
 
 
61628
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61629
 
 
61630
#line 61631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61631
} // closed Puma
 
61632
 
 
61633
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61634
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61635
#include "CCExprResolveH.ah"
 
61636
#endif
 
61637
namespace Puma {
 
61638
 
 
61639
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61640
 
 
61641
#line 61642 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61642
} // closed Puma
 
61643
 
 
61644
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61645
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61646
#include "CExprResolveH.ah"
 
61647
#endif
 
61648
namespace Puma {
 
61649
 
 
61650
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61651
class CT_StaticCast : public CT_Expression {
 
61652
#line 61653 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61653
  friend class ::CCExprResolve;
 
61654
  friend class ::CExprResolve;
 
61655
  friend class ::WinIfExists;
 
61656
  friend class ::WinImportHandler;
 
61657
  friend class ::WinMacros;
 
61658
  friend class ::WinAsm;
 
61659
  friend class ::WinDeclSpecs;
 
61660
  friend class ::WinMemberExplSpec;
 
61661
  friend class ::WinTypeKeywords;
 
61662
  friend class ::WinFriend;
 
61663
  friend class ::ExtAC;
 
61664
  friend class ::ExtACBuilderCoupling;
 
61665
  friend class ::ExtACSyntaxCoupling;
 
61666
  friend class ::ExtACTree;
 
61667
  friend class ::ExtACKeywords;
 
61668
  friend class ::ExtGnu;
 
61669
  friend class ::PragmaOnceUnitState;
 
61670
  friend class ::PragmaOnce;
 
61671
  friend class ::CMatchSyntax;
 
61672
 
 
61673
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61674
 
 
61675
  CTree *sons[5]; // cast, open, type, close, expr
 
61676
 
 
61677
public:
 
61678
  /** Constructor.
 
61679
   *  \param cst The cast operator, i.e. 'static_cast'.
 
61680
   *  \param o Left arrow bracket of the type name.
 
61681
   *  \param t The type to cast to.
 
61682
   *  \param c Right array bracket of the type name.
 
61683
   *  \param e The expression to cast. */
 
61684
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
 
61685
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
61686
    AddSon (sons[3], c); AddSon (sons[4], e);
 
61687
  }
 
61688
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
61689
  static const char *NodeId ();
 
61690
  /** Get the name of the node. Can be compared with NodeId(). */
 
61691
  const char *NodeName () const { return NodeId (); }
 
61692
  /** Get the number of sons. */
 
61693
  int Sons () const { return 5; }
 
61694
  /** Get the n-th son.
 
61695
   *  \param n The index of the son.
 
61696
   *  \return The n-th son or NULL. */
 
61697
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
61698
  /** Replace a son.
 
61699
   *  \param old_son The son to replace.
 
61700
   *  \param new_son The new son. */
 
61701
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
61702
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
61703
  }
 
61704
  /** Get the casted expression. */
 
61705
  CTree *Expr () const { return sons[4]; }
 
61706
  /** Get the type to cast to. */
 
61707
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
61708
   private:
 
61709
  typedef CT_StaticCast CCExprResolveExpr;
 
61710
 
 
61711
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61712
 public :
 
61713
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
61714
  typedef CT_StaticCast CExprResolveExpr;
 
61715
 
 
61716
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61717
 public :
 
61718
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61719
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61720
};
 
61721
 
 
61722
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
61723
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
 
61724
 
 
61725
#line 61726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61726
} // closed Puma
 
61727
class CCExprResolve;
 
61728
class CExprResolve;
 
61729
class WinIfExists;
 
61730
class WinImportHandler;
 
61731
class WinMacros;
 
61732
class WinAsm;
 
61733
class WinDeclSpecs;
 
61734
class WinMemberExplSpec;
 
61735
class WinTypeKeywords;
 
61736
class WinFriend;
 
61737
class ExtAC;
 
61738
class ExtACBuilderCoupling;
 
61739
class ExtACSyntaxCoupling;
 
61740
class ExtACTree;
 
61741
class ExtACKeywords;
 
61742
class ExtGnu;
 
61743
class PragmaOnceUnitState;
 
61744
class PragmaOnce;
 
61745
class CMatchSyntax;
 
61746
namespace Puma {
 
61747
 
 
61748
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61749
 
 
61750
#line 61751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61751
} // closed Puma
 
61752
 
 
61753
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61754
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61755
#include "CCExprResolveH.ah"
 
61756
#endif
 
61757
namespace Puma {
 
61758
 
 
61759
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61760
 
 
61761
#line 61762 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61762
} // closed Puma
 
61763
 
 
61764
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61765
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61766
#include "CExprResolveH.ah"
 
61767
#endif
 
61768
namespace Puma {
 
61769
 
 
61770
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61771
class CT_ConstCast : public CT_StaticCast {
 
61772
#line 61773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61773
  friend class ::CCExprResolve;
 
61774
  friend class ::CExprResolve;
 
61775
  friend class ::WinIfExists;
 
61776
  friend class ::WinImportHandler;
 
61777
  friend class ::WinMacros;
 
61778
  friend class ::WinAsm;
 
61779
  friend class ::WinDeclSpecs;
 
61780
  friend class ::WinMemberExplSpec;
 
61781
  friend class ::WinTypeKeywords;
 
61782
  friend class ::WinFriend;
 
61783
  friend class ::ExtAC;
 
61784
  friend class ::ExtACBuilderCoupling;
 
61785
  friend class ::ExtACSyntaxCoupling;
 
61786
  friend class ::ExtACTree;
 
61787
  friend class ::ExtACKeywords;
 
61788
  friend class ::ExtGnu;
 
61789
  friend class ::PragmaOnceUnitState;
 
61790
  friend class ::PragmaOnce;
 
61791
  friend class ::CMatchSyntax;
 
61792
 
 
61793
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61794
 
 
61795
public:
 
61796
  /** Constructor.
 
61797
   *  \param cst The cast operator, i.e. 'const_cast'.
 
61798
   *  \param o Left arrow bracket of the type name.
 
61799
   *  \param t The type to cast to.
 
61800
   *  \param c Right array bracket of the type name.
 
61801
   *  \param e The expression to cast. */
 
61802
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
61803
    CT_StaticCast (cst, o, t, c, e) {}
 
61804
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
61805
  static const char *NodeId ();
 
61806
  /** Get the name of the node. Can be compared with NodeId(). */
 
61807
  const char *NodeName () const { return NodeId (); }
 
61808
   private:
 
61809
  typedef CT_ConstCast CCExprResolveExpr;
 
61810
 
 
61811
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61812
 public :
 
61813
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
61814
  typedef CT_ConstCast CExprResolveExpr;
 
61815
 
 
61816
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61817
 public :
 
61818
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61819
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61820
};
 
61821
 
 
61822
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
61823
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
 
61824
 
 
61825
#line 61826 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61826
} // closed Puma
 
61827
class CCExprResolve;
 
61828
class CExprResolve;
 
61829
class WinIfExists;
 
61830
class WinImportHandler;
 
61831
class WinMacros;
 
61832
class WinAsm;
 
61833
class WinDeclSpecs;
 
61834
class WinMemberExplSpec;
 
61835
class WinTypeKeywords;
 
61836
class WinFriend;
 
61837
class ExtAC;
 
61838
class ExtACBuilderCoupling;
 
61839
class ExtACSyntaxCoupling;
 
61840
class ExtACTree;
 
61841
class ExtACKeywords;
 
61842
class ExtGnu;
 
61843
class PragmaOnceUnitState;
 
61844
class PragmaOnce;
 
61845
class CMatchSyntax;
 
61846
namespace Puma {
 
61847
 
 
61848
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61849
 
 
61850
#line 61851 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61851
} // closed Puma
 
61852
 
 
61853
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61854
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61855
#include "CCExprResolveH.ah"
 
61856
#endif
 
61857
namespace Puma {
 
61858
 
 
61859
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61860
 
 
61861
#line 61862 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61862
} // closed Puma
 
61863
 
 
61864
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61865
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61866
#include "CExprResolveH.ah"
 
61867
#endif
 
61868
namespace Puma {
 
61869
 
 
61870
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61871
class CT_ReintCast : public CT_StaticCast {
 
61872
#line 61873 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61873
  friend class ::CCExprResolve;
 
61874
  friend class ::CExprResolve;
 
61875
  friend class ::WinIfExists;
 
61876
  friend class ::WinImportHandler;
 
61877
  friend class ::WinMacros;
 
61878
  friend class ::WinAsm;
 
61879
  friend class ::WinDeclSpecs;
 
61880
  friend class ::WinMemberExplSpec;
 
61881
  friend class ::WinTypeKeywords;
 
61882
  friend class ::WinFriend;
 
61883
  friend class ::ExtAC;
 
61884
  friend class ::ExtACBuilderCoupling;
 
61885
  friend class ::ExtACSyntaxCoupling;
 
61886
  friend class ::ExtACTree;
 
61887
  friend class ::ExtACKeywords;
 
61888
  friend class ::ExtGnu;
 
61889
  friend class ::PragmaOnceUnitState;
 
61890
  friend class ::PragmaOnce;
 
61891
  friend class ::CMatchSyntax;
 
61892
 
 
61893
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61894
 
 
61895
public:
 
61896
  /** Constructor.
 
61897
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
61898
   *  \param o Left arrow bracket of the type name.
 
61899
   *  \param t The type to cast to.
 
61900
   *  \param c Right array bracket of the type name.
 
61901
   *  \param e The expression to cast. */
 
61902
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
61903
    CT_StaticCast (cst, o, t, c, e) {}
 
61904
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
61905
  static const char *NodeId ();
 
61906
  /** Get the name of the node. Can be compared with NodeId(). */
 
61907
  const char *NodeName () const { return NodeId (); }
 
61908
   private:
 
61909
  typedef CT_ReintCast CCExprResolveExpr;
 
61910
 
 
61911
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61912
 public :
 
61913
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
61914
  typedef CT_ReintCast CExprResolveExpr;
 
61915
 
 
61916
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61917
 public :
 
61918
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61919
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61920
};
 
61921
 
 
61922
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
61923
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
 
61924
 
 
61925
#line 61926 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61926
} // closed Puma
 
61927
class CCExprResolve;
 
61928
class CExprResolve;
 
61929
class WinIfExists;
 
61930
class WinImportHandler;
 
61931
class WinMacros;
 
61932
class WinAsm;
 
61933
class WinDeclSpecs;
 
61934
class WinMemberExplSpec;
 
61935
class WinTypeKeywords;
 
61936
class WinFriend;
 
61937
class ExtAC;
 
61938
class ExtACBuilderCoupling;
 
61939
class ExtACSyntaxCoupling;
 
61940
class ExtACTree;
 
61941
class ExtACKeywords;
 
61942
class ExtGnu;
 
61943
class PragmaOnceUnitState;
 
61944
class PragmaOnce;
 
61945
class CMatchSyntax;
 
61946
namespace Puma {
 
61947
 
 
61948
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61949
 
 
61950
#line 61951 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61951
} // closed Puma
 
61952
 
 
61953
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61954
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61955
#include "CCExprResolveH.ah"
 
61956
#endif
 
61957
namespace Puma {
 
61958
 
 
61959
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61960
 
 
61961
#line 61962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61962
} // closed Puma
 
61963
 
 
61964
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61965
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61966
#include "CExprResolveH.ah"
 
61967
#endif
 
61968
namespace Puma {
 
61969
 
 
61970
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61971
class CT_DynamicCast : public CT_StaticCast {
 
61972
#line 61973 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
61973
  friend class ::CCExprResolve;
 
61974
  friend class ::CExprResolve;
 
61975
  friend class ::WinIfExists;
 
61976
  friend class ::WinImportHandler;
 
61977
  friend class ::WinMacros;
 
61978
  friend class ::WinAsm;
 
61979
  friend class ::WinDeclSpecs;
 
61980
  friend class ::WinMemberExplSpec;
 
61981
  friend class ::WinTypeKeywords;
 
61982
  friend class ::WinFriend;
 
61983
  friend class ::ExtAC;
 
61984
  friend class ::ExtACBuilderCoupling;
 
61985
  friend class ::ExtACSyntaxCoupling;
 
61986
  friend class ::ExtACTree;
 
61987
  friend class ::ExtACKeywords;
 
61988
  friend class ::ExtGnu;
 
61989
  friend class ::PragmaOnceUnitState;
 
61990
  friend class ::PragmaOnce;
 
61991
  friend class ::CMatchSyntax;
 
61992
 
 
61993
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61994
 
 
61995
public:
 
61996
  /** Constructor.
 
61997
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
61998
   *  \param o Left arrow bracket of the type name.
 
61999
   *  \param t The type to cast to.
 
62000
   *  \param c Right array bracket of the type name.
 
62001
   *  \param e The expression to cast. */
 
62002
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
62003
    CT_StaticCast (cst, o, t, c, e) {}
 
62004
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
62005
  static const char *NodeId ();
 
62006
  /** Get the name of the node. Can be compared with NodeId(). */
 
62007
  const char *NodeName () const { return NodeId (); }
 
62008
   private:
 
62009
  typedef CT_DynamicCast CCExprResolveExpr;
 
62010
 
 
62011
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
62012
 public :
 
62013
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
62014
  typedef CT_DynamicCast CExprResolveExpr;
 
62015
 
 
62016
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
62017
 public :
 
62018
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
62019
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62020
};
 
62021
 
 
62022
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
62023
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
62024
 *  where 1.2 is implicitely casted from float to int. */
 
62025
 
 
62026
#line 62027 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62027
} // closed Puma
 
62028
class CCExprResolve;
 
62029
class CExprResolve;
 
62030
class WinIfExists;
 
62031
class WinImportHandler;
 
62032
class WinMacros;
 
62033
class WinAsm;
 
62034
class WinDeclSpecs;
 
62035
class WinMemberExplSpec;
 
62036
class WinTypeKeywords;
 
62037
class WinFriend;
 
62038
class ExtAC;
 
62039
class ExtACBuilderCoupling;
 
62040
class ExtACSyntaxCoupling;
 
62041
class ExtACTree;
 
62042
class ExtACKeywords;
 
62043
class ExtGnu;
 
62044
class PragmaOnceUnitState;
 
62045
class PragmaOnce;
 
62046
class CMatchSyntax;
 
62047
namespace Puma {
 
62048
 
 
62049
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62050
 
 
62051
#line 62052 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62052
} // closed Puma
 
62053
 
 
62054
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62055
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62056
#include "CCExprResolveH.ah"
 
62057
#endif
 
62058
namespace Puma {
 
62059
 
 
62060
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62061
 
 
62062
#line 62063 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62063
} // closed Puma
 
62064
 
 
62065
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62066
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62067
#include "CExprResolveH.ah"
 
62068
#endif
 
62069
namespace Puma {
 
62070
 
 
62071
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62072
class CT_ImplicitCast : public CT_Expression {
 
62073
#line 62074 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62074
  friend class ::CCExprResolve;
 
62075
  friend class ::CExprResolve;
 
62076
  friend class ::WinIfExists;
 
62077
  friend class ::WinImportHandler;
 
62078
  friend class ::WinMacros;
 
62079
  friend class ::WinAsm;
 
62080
  friend class ::WinDeclSpecs;
 
62081
  friend class ::WinMemberExplSpec;
 
62082
  friend class ::WinTypeKeywords;
 
62083
  friend class ::WinFriend;
 
62084
  friend class ::ExtAC;
 
62085
  friend class ::ExtACBuilderCoupling;
 
62086
  friend class ::ExtACSyntaxCoupling;
 
62087
  friend class ::ExtACTree;
 
62088
  friend class ::ExtACKeywords;
 
62089
  friend class ::ExtGnu;
 
62090
  friend class ::PragmaOnceUnitState;
 
62091
  friend class ::PragmaOnce;
 
62092
  friend class ::CMatchSyntax;
 
62093
 
 
62094
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62095
 
 
62096
  CTree *_expr; // casted expression
 
62097
 
 
62098
public:
 
62099
  /** Constructor.
 
62100
   *  \param e The expression that is implicitely casted. */
 
62101
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
62102
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
62103
  static const char *NodeId ();
 
62104
  /** Get the name of the node. Can be compared with NodeId(). */
 
62105
  const char *NodeName () const { return NodeId (); }
 
62106
  /** Get the number of sons. */
 
62107
  int Sons () const { return 1; }
 
62108
  /** Get the n-th son.
 
62109
   *  \param n The index of the son.
 
62110
   *  \return The n-th son or NULL. */
 
62111
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
62112
  /** Get the casted expression. */
 
62113
  CTree *Expr () const { return _expr; }
 
62114
  /** Replace a son.
 
62115
   *  \param old_son The son to replace.
 
62116
   *  \param new_son The new son. */
 
62117
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
62118
   { CTree::ReplaceSon (_expr, old_son, new_son); }
 
62119
   private:
 
62120
  typedef CT_ImplicitCast CCExprResolveExpr;
 
62121
 
 
62122
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
62123
 public :
 
62124
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
62125
  typedef CT_ImplicitCast CExprResolveExpr;
 
62126
 
 
62127
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
62128
 public :
 
62129
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
62130
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62131
};
 
62132
 
 
62133
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
62134
 *  Tree node representing a typeid expression, e.g. typeid(X). */
 
62135
 
 
62136
#line 62137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62137
} // closed Puma
 
62138
class CCExprResolve;
 
62139
class CExprResolve;
 
62140
class WinIfExists;
 
62141
class WinImportHandler;
 
62142
class WinMacros;
 
62143
class WinAsm;
 
62144
class WinDeclSpecs;
 
62145
class WinMemberExplSpec;
 
62146
class WinTypeKeywords;
 
62147
class WinFriend;
 
62148
class ExtAC;
 
62149
class ExtACBuilderCoupling;
 
62150
class ExtACSyntaxCoupling;
 
62151
class ExtACTree;
 
62152
class ExtACKeywords;
 
62153
class ExtGnu;
 
62154
class PragmaOnceUnitState;
 
62155
class PragmaOnce;
 
62156
class CMatchSyntax;
 
62157
namespace Puma {
 
62158
 
 
62159
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62160
 
 
62161
#line 62162 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62162
} // closed Puma
 
62163
 
 
62164
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62165
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62166
#include "CCExprResolveH.ah"
 
62167
#endif
 
62168
namespace Puma {
 
62169
 
 
62170
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62171
 
 
62172
#line 62173 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62173
} // closed Puma
 
62174
 
 
62175
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62176
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62177
#include "CExprResolveH.ah"
 
62178
#endif
 
62179
namespace Puma {
 
62180
 
 
62181
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62182
class CT_TypeidExpr : public CT_Expression {
 
62183
#line 62184 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62184
  friend class ::CCExprResolve;
 
62185
  friend class ::CExprResolve;
 
62186
  friend class ::WinIfExists;
 
62187
  friend class ::WinImportHandler;
 
62188
  friend class ::WinMacros;
 
62189
  friend class ::WinAsm;
 
62190
  friend class ::WinDeclSpecs;
 
62191
  friend class ::WinMemberExplSpec;
 
62192
  friend class ::WinTypeKeywords;
 
62193
  friend class ::WinFriend;
 
62194
  friend class ::ExtAC;
 
62195
  friend class ::ExtACBuilderCoupling;
 
62196
  friend class ::ExtACSyntaxCoupling;
 
62197
  friend class ::ExtACTree;
 
62198
  friend class ::ExtACKeywords;
 
62199
  friend class ::ExtGnu;
 
62200
  friend class ::PragmaOnceUnitState;
 
62201
  friend class ::PragmaOnce;
 
62202
  friend class ::CMatchSyntax;
 
62203
 
 
62204
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62205
 
 
62206
  CTree *sons[4]; // typeid, open, type_id/expr, close
 
62207
 
 
62208
public:
 
62209
  /** Constructor.
 
62210
   *  \param tid The 'typeid' operator.
 
62211
   *  \param o The left parenthesis of the type name or expression.
 
62212
   *  \param e The expression or type name for which to get the type identifier.
 
62213
   *  \param c The right parenthesis of the type name or expression. */
 
62214
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
 
62215
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
62216
    AddSon (sons[2], e); AddSon (sons[3], c);
 
62217
  }
 
62218
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
62219
  static const char *NodeId ();
 
62220
  /** Get the name of the node. Can be compared with NodeId(). */
 
62221
  const char *NodeName () const { return NodeId (); }
 
62222
  /** Get the number of sons. */
 
62223
  int Sons () const { return 4; }
 
62224
  /** Get the n-th son.
 
62225
   *  \param n The index of the son.
 
62226
   *  \return The n-th son or NULL. */
 
62227
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
62228
  /** Replace a son.
 
62229
   *  \param old_son The son to replace.
 
62230
   *  \param new_son The new son. */
 
62231
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
62232
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
62233
  }
 
62234
  /** Get the typeid argument, i.e. the expression or type name for
 
62235
   *  which to get the type identifier. */
 
62236
  CTree *Arg () const { return sons[2]; }
 
62237
   private:
 
62238
  typedef CT_TypeidExpr CCExprResolveExpr;
 
62239
 
 
62240
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
62241
 public :
 
62242
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
62243
  typedef CT_TypeidExpr CExprResolveExpr;
 
62244
 
 
62245
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
62246
 public :
 
62247
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
62248
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62249
};
 
62250
 
 
62251
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
62252
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
 
62253
 
 
62254
#line 62255 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62255
} // closed Puma
 
62256
class CCExprResolve;
 
62257
class CExprResolve;
 
62258
class WinIfExists;
 
62259
class WinImportHandler;
 
62260
class WinMacros;
 
62261
class WinAsm;
 
62262
class WinDeclSpecs;
 
62263
class WinMemberExplSpec;
 
62264
class WinTypeKeywords;
 
62265
class WinFriend;
 
62266
class ExtAC;
 
62267
class ExtACBuilderCoupling;
 
62268
class ExtACSyntaxCoupling;
 
62269
class ExtACTree;
 
62270
class ExtACKeywords;
 
62271
class ExtGnu;
 
62272
class PragmaOnceUnitState;
 
62273
class PragmaOnce;
 
62274
class CMatchSyntax;
 
62275
namespace Puma {
 
62276
 
 
62277
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62278
 
 
62279
#line 62280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62280
} // closed Puma
 
62281
 
 
62282
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62283
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62284
#include "CCExprResolveH.ah"
 
62285
#endif
 
62286
namespace Puma {
 
62287
 
 
62288
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62289
 
 
62290
#line 62291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62291
} // closed Puma
 
62292
 
 
62293
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62294
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62295
#include "CExprResolveH.ah"
 
62296
#endif
 
62297
namespace Puma {
 
62298
 
 
62299
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62300
class CT_SizeofExpr : public CT_Expression {
 
62301
#line 62302 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62302
  friend class ::CCExprResolve;
 
62303
  friend class ::CExprResolve;
 
62304
  friend class ::WinIfExists;
 
62305
  friend class ::WinImportHandler;
 
62306
  friend class ::WinMacros;
 
62307
  friend class ::WinAsm;
 
62308
  friend class ::WinDeclSpecs;
 
62309
  friend class ::WinMemberExplSpec;
 
62310
  friend class ::WinTypeKeywords;
 
62311
  friend class ::WinFriend;
 
62312
  friend class ::ExtAC;
 
62313
  friend class ::ExtACBuilderCoupling;
 
62314
  friend class ::ExtACSyntaxCoupling;
 
62315
  friend class ::ExtACTree;
 
62316
  friend class ::ExtACKeywords;
 
62317
  friend class ::ExtGnu;
 
62318
  friend class ::PragmaOnceUnitState;
 
62319
  friend class ::PragmaOnce;
 
62320
  friend class ::CMatchSyntax;
 
62321
 
 
62322
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62323
 
 
62324
  CTree *sons[5]; // key, open, type, close, expr
 
62325
 
 
62326
public:
 
62327
  /** Constructor.
 
62328
   *  \param k The 'sizeof' keyword.
 
62329
   *  \param o Left parenthesis around the type name.
 
62330
   *  \param t The type from which to get the size.
 
62331
   *  \param c Right parenthesis around the type name. */
 
62332
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
 
62333
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
62334
    AddSon (sons[3], c); AddSon (sons[4], 0);
 
62335
  }
 
62336
  /** Constructor.
 
62337
   *  \param k The 'sizeof' keyword.
 
62338
   *  \param e The expression from which to get the size. */
 
62339
  CT_SizeofExpr (CTree *k, CTree *e) {
 
62340
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
62341
    AddSon (sons[3], 0); AddSon (sons[4], e);
 
62342
  }
 
62343
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
62344
  static const char *NodeId ();
 
62345
  /** Get the name of the node. Can be compared with NodeId(). */
 
62346
  const char *NodeName () const { return NodeId (); }
 
62347
  /** Get the number of sons. */
 
62348
  int Sons () const { return CTree::Sons (sons, 5); }
 
62349
  /** Get the n-th son.
 
62350
   *  \param n The index of the son.
 
62351
   *  \return The n-th son or NULL. */
 
62352
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
62353
  /** Replace a son.
 
62354
   *  \param old_son The son to replace.
 
62355
   *  \param new_son The new son. */
 
62356
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
62357
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
62358
  }
 
62359
  /** Get the expression. */
 
62360
  CTree *Expr () const { return sons[4]; }
 
62361
  /** Get the type name. */
 
62362
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
62363
   private:
 
62364
  typedef CT_SizeofExpr CCExprResolveExpr;
 
62365
 
 
62366
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
62367
 public :
 
62368
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
62369
  typedef CT_SizeofExpr CExprResolveExpr;
 
62370
 
 
62371
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
62372
 public :
 
62373
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
62374
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62375
};
 
62376
 
 
62377
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
62378
 *  Tree node representing an index designator, i.e. [1]. */
 
62379
 
 
62380
#line 62381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62381
} // closed Puma
 
62382
class CCExprResolve;
 
62383
class CExprResolve;
 
62384
class WinIfExists;
 
62385
class WinImportHandler;
 
62386
class WinMacros;
 
62387
class WinAsm;
 
62388
class WinDeclSpecs;
 
62389
class WinMemberExplSpec;
 
62390
class WinTypeKeywords;
 
62391
class WinFriend;
 
62392
class ExtAC;
 
62393
class ExtACBuilderCoupling;
 
62394
class ExtACSyntaxCoupling;
 
62395
class ExtACTree;
 
62396
class ExtACKeywords;
 
62397
class ExtGnu;
 
62398
class PragmaOnceUnitState;
 
62399
class PragmaOnce;
 
62400
class CMatchSyntax;
 
62401
namespace Puma {
 
62402
 
 
62403
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62404
 
 
62405
#line 62406 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62406
} // closed Puma
 
62407
 
 
62408
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62409
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62410
#include "CCExprResolveH.ah"
 
62411
#endif
 
62412
namespace Puma {
 
62413
 
 
62414
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62415
 
 
62416
#line 62417 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62417
} // closed Puma
 
62418
 
 
62419
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62420
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62421
#include "CExprResolveH.ah"
 
62422
#endif
 
62423
namespace Puma {
 
62424
 
 
62425
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62426
class CT_IndexDesignator : public CT_Expression {
 
62427
#line 62428 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62428
  friend class ::CCExprResolve;
 
62429
  friend class ::CExprResolve;
 
62430
  friend class ::WinIfExists;
 
62431
  friend class ::WinImportHandler;
 
62432
  friend class ::WinMacros;
 
62433
  friend class ::WinAsm;
 
62434
  friend class ::WinDeclSpecs;
 
62435
  friend class ::WinMemberExplSpec;
 
62436
  friend class ::WinTypeKeywords;
 
62437
  friend class ::WinFriend;
 
62438
  friend class ::ExtAC;
 
62439
  friend class ::ExtACBuilderCoupling;
 
62440
  friend class ::ExtACSyntaxCoupling;
 
62441
  friend class ::ExtACTree;
 
62442
  friend class ::ExtACKeywords;
 
62443
  friend class ::ExtGnu;
 
62444
  friend class ::PragmaOnceUnitState;
 
62445
  friend class ::PragmaOnce;
 
62446
  friend class ::CMatchSyntax;
 
62447
 
 
62448
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62449
 
 
62450
  CTree *sons[3]; // open, index, close
 
62451
 
 
62452
public:
 
62453
  /** Constructor.
 
62454
   *  \param o Left bracket of the index designator.
 
62455
   *  \param i The index expression.
 
62456
   *  \param c Right bracket of the index designator. */
 
62457
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
 
62458
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
 
62459
  }
 
62460
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
62461
  static const char *NodeId ();
 
62462
  /** Get the name of the node. Can be compared with NodeId(). */
 
62463
  const char *NodeName () const { return NodeId (); }
 
62464
  /** Get the number of sons. */
 
62465
  int Sons () const { return 3; }
 
62466
  /** Get the n-th son.
 
62467
   *  \param n The index of the son.
 
62468
   *  \return The n-th son or NULL. */
 
62469
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
62470
  /** Replace a son.
 
62471
   *  \param old_son The son to replace.
 
62472
   *  \param new_son The new son. */
 
62473
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
62474
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
62475
  }
 
62476
   private:
 
62477
  typedef CT_IndexDesignator CCExprResolveExpr;
 
62478
 
 
62479
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
62480
 public :
 
62481
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
62482
  typedef CT_IndexDesignator CExprResolveExpr;
 
62483
 
 
62484
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
62485
 public :
 
62486
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
62487
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62488
};
 
62489
 
 
62490
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
62491
 *  Tree node representing a member designator, e.g. .a. */
 
62492
 
 
62493
#line 62494 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62494
} // closed Puma
 
62495
class CCExprResolve;
 
62496
class CExprResolve;
 
62497
class WinIfExists;
 
62498
class WinImportHandler;
 
62499
class WinMacros;
 
62500
class WinAsm;
 
62501
class WinDeclSpecs;
 
62502
class WinMemberExplSpec;
 
62503
class WinTypeKeywords;
 
62504
class WinFriend;
 
62505
class ExtAC;
 
62506
class ExtACBuilderCoupling;
 
62507
class ExtACSyntaxCoupling;
 
62508
class ExtACTree;
 
62509
class ExtACKeywords;
 
62510
class ExtGnu;
 
62511
class PragmaOnceUnitState;
 
62512
class PragmaOnce;
 
62513
class CMatchSyntax;
 
62514
namespace Puma {
 
62515
 
 
62516
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62517
 
 
62518
#line 62519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62519
} // closed Puma
 
62520
 
 
62521
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62522
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62523
#include "CCExprResolveH.ah"
 
62524
#endif
 
62525
namespace Puma {
 
62526
 
 
62527
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62528
 
 
62529
#line 62530 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62530
} // closed Puma
 
62531
 
 
62532
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62533
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62534
#include "CExprResolveH.ah"
 
62535
#endif
 
62536
namespace Puma {
 
62537
 
 
62538
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62539
class CT_MembDesignator : public CT_Expression {
 
62540
#line 62541 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62541
  friend class ::CCExprResolve;
 
62542
  friend class ::CExprResolve;
 
62543
  friend class ::WinIfExists;
 
62544
  friend class ::WinImportHandler;
 
62545
  friend class ::WinMacros;
 
62546
  friend class ::WinAsm;
 
62547
  friend class ::WinDeclSpecs;
 
62548
  friend class ::WinMemberExplSpec;
 
62549
  friend class ::WinTypeKeywords;
 
62550
  friend class ::WinFriend;
 
62551
  friend class ::ExtAC;
 
62552
  friend class ::ExtACBuilderCoupling;
 
62553
  friend class ::ExtACSyntaxCoupling;
 
62554
  friend class ::ExtACTree;
 
62555
  friend class ::ExtACKeywords;
 
62556
  friend class ::ExtGnu;
 
62557
  friend class ::PragmaOnceUnitState;
 
62558
  friend class ::PragmaOnce;
 
62559
  friend class ::CMatchSyntax;
 
62560
 
 
62561
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62562
 
 
62563
  CTree *sons[2]; // dot, member
 
62564
 
 
62565
public:
 
62566
  /** Constructor.
 
62567
   *  \param d The dot before the member name.
 
62568
   *  \param m The member name. */
 
62569
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
62570
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
62571
  static const char *NodeId ();
 
62572
  /** Get the name of the node. Can be compared with NodeId(). */
 
62573
  const char *NodeName () const { return NodeId (); }
 
62574
  /** Get the number of sons. */
 
62575
  int Sons () const { return 2; }
 
62576
  /** Get the n-th son.
 
62577
   *  \param n The index of the son.
 
62578
   *  \return The n-th son or NULL. */
 
62579
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
62580
  /** Replace a son.
 
62581
   *  \param old_son The son to replace.
 
62582
   *  \param new_son The new son. */
 
62583
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
62584
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
62585
  }
 
62586
   private:
 
62587
  typedef CT_MembDesignator CCExprResolveExpr;
 
62588
 
 
62589
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
62590
 public :
 
62591
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
62592
  typedef CT_MembDesignator CExprResolveExpr;
 
62593
 
 
62594
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
62595
 public :
 
62596
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
62597
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62598
};
 
62599
 
 
62600
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
62601
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
 
62602
 
 
62603
#line 62604 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62604
} // closed Puma
 
62605
class CCExprResolve;
 
62606
class CExprResolve;
 
62607
class WinIfExists;
 
62608
class WinImportHandler;
 
62609
class WinMacros;
 
62610
class WinAsm;
 
62611
class WinDeclSpecs;
 
62612
class WinMemberExplSpec;
 
62613
class WinTypeKeywords;
 
62614
class WinFriend;
 
62615
class ExtAC;
 
62616
class ExtACBuilderCoupling;
 
62617
class ExtACSyntaxCoupling;
 
62618
class ExtACTree;
 
62619
class ExtACKeywords;
 
62620
class ExtGnu;
 
62621
class PragmaOnceUnitState;
 
62622
class PragmaOnce;
 
62623
class CMatchSyntax;
 
62624
namespace Puma {
 
62625
 
 
62626
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62627
class CT_DesignatorSeq : public CT_List, public CSemValue {
 
62628
#line 62629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62629
  friend class ::CCExprResolve;
 
62630
  friend class ::CExprResolve;
 
62631
  friend class ::WinIfExists;
 
62632
  friend class ::WinImportHandler;
 
62633
  friend class ::WinMacros;
 
62634
  friend class ::WinAsm;
 
62635
  friend class ::WinDeclSpecs;
 
62636
  friend class ::WinMemberExplSpec;
 
62637
  friend class ::WinTypeKeywords;
 
62638
  friend class ::WinFriend;
 
62639
  friend class ::ExtAC;
 
62640
  friend class ::ExtACBuilderCoupling;
 
62641
  friend class ::ExtACSyntaxCoupling;
 
62642
  friend class ::ExtACTree;
 
62643
  friend class ::ExtACKeywords;
 
62644
  friend class ::ExtGnu;
 
62645
  friend class ::PragmaOnceUnitState;
 
62646
  friend class ::PragmaOnce;
 
62647
  friend class ::CMatchSyntax;
 
62648
 
 
62649
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62650
 
 
62651
public:
 
62652
  /** Constructor.
 
62653
   *  \param size Initial number of designators. */
 
62654
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
62655
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
62656
  static const char *NodeId ();
 
62657
  /** Get the name of the node. Can be compared with NodeId(). */
 
62658
  const char *NodeName () const { return NodeId (); }
 
62659
 
 
62660
  /** Get the type of the entity to initialize. */
 
62661
  CTypeInfo *Type () const { return type; }
 
62662
  /** Get the value of the entity to initialize. */
 
62663
  CExprValue *Value () const { return value; }
 
62664
  /** Get the semantic value object. */
 
62665
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
62666
};
 
62667
 
 
62668
/*****************************************************************************/
 
62669
/*                                                                           */
 
62670
/*                         Declaration specifiers                            */
 
62671
/*                                                                           */
 
62672
/*****************************************************************************/
 
62673
 
 
62674
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
62675
 *  Base class for all tree nodes representing declaration specifiers. */
 
62676
 
 
62677
#line 62678 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62678
} // closed Puma
 
62679
class CCExprResolve;
 
62680
class CExprResolve;
 
62681
class WinIfExists;
 
62682
class WinImportHandler;
 
62683
class WinMacros;
 
62684
class WinAsm;
 
62685
class WinDeclSpecs;
 
62686
class WinMemberExplSpec;
 
62687
class WinTypeKeywords;
 
62688
class WinFriend;
 
62689
class ExtAC;
 
62690
class ExtACBuilderCoupling;
 
62691
class ExtACSyntaxCoupling;
 
62692
class ExtACTree;
 
62693
class ExtACKeywords;
 
62694
class ExtGnu;
 
62695
class PragmaOnceUnitState;
 
62696
class PragmaOnce;
 
62697
class CMatchSyntax;
 
62698
namespace Puma {
 
62699
 
 
62700
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62701
class CT_DeclSpec : public CTree {
 
62702
#line 62703 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62703
  friend class ::CCExprResolve;
 
62704
  friend class ::CExprResolve;
 
62705
  friend class ::WinIfExists;
 
62706
  friend class ::WinImportHandler;
 
62707
  friend class ::WinMacros;
 
62708
  friend class ::WinAsm;
 
62709
  friend class ::WinDeclSpecs;
 
62710
  friend class ::WinMemberExplSpec;
 
62711
  friend class ::WinTypeKeywords;
 
62712
  friend class ::WinFriend;
 
62713
  friend class ::ExtAC;
 
62714
  friend class ::ExtACBuilderCoupling;
 
62715
  friend class ::ExtACSyntaxCoupling;
 
62716
  friend class ::ExtACTree;
 
62717
  friend class ::ExtACKeywords;
 
62718
  friend class ::ExtGnu;
 
62719
  friend class ::PragmaOnceUnitState;
 
62720
  friend class ::PragmaOnce;
 
62721
  friend class ::CMatchSyntax;
 
62722
 
 
62723
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62724
 
 
62725
protected:
 
62726
  /** Constructor. */
 
62727
  CT_DeclSpec () {}
 
62728
};
 
62729
 
 
62730
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
62731
 *  Tree node representing a primitive declaration specifier. */
 
62732
 
 
62733
#line 62734 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62734
} // closed Puma
 
62735
class CCExprResolve;
 
62736
class CExprResolve;
 
62737
class WinIfExists;
 
62738
class WinImportHandler;
 
62739
class WinMacros;
 
62740
class WinAsm;
 
62741
class WinDeclSpecs;
 
62742
class WinMemberExplSpec;
 
62743
class WinTypeKeywords;
 
62744
class WinFriend;
 
62745
class ExtAC;
 
62746
class ExtACBuilderCoupling;
 
62747
class ExtACSyntaxCoupling;
 
62748
class ExtACTree;
 
62749
class ExtACKeywords;
 
62750
class ExtGnu;
 
62751
class PragmaOnceUnitState;
 
62752
class PragmaOnce;
 
62753
class CMatchSyntax;
 
62754
namespace Puma {
 
62755
 
 
62756
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62757
class CT_PrimDeclSpec : public CT_DeclSpec {
 
62758
#line 62759 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62759
  friend class ::CCExprResolve;
 
62760
  friend class ::CExprResolve;
 
62761
  friend class ::WinIfExists;
 
62762
  friend class ::WinImportHandler;
 
62763
  friend class ::WinMacros;
 
62764
  friend class ::WinAsm;
 
62765
  friend class ::WinDeclSpecs;
 
62766
  friend class ::WinMemberExplSpec;
 
62767
  friend class ::WinTypeKeywords;
 
62768
  friend class ::WinFriend;
 
62769
  friend class ::ExtAC;
 
62770
  friend class ::ExtACBuilderCoupling;
 
62771
  friend class ::ExtACSyntaxCoupling;
 
62772
  friend class ::ExtACTree;
 
62773
  friend class ::ExtACKeywords;
 
62774
  friend class ::ExtGnu;
 
62775
  friend class ::PragmaOnceUnitState;
 
62776
  friend class ::PragmaOnce;
 
62777
  friend class ::CMatchSyntax;
 
62778
 
 
62779
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62780
 
 
62781
public:
 
62782
  /** Declaration specifier types. */
 
62783
  enum Type { 
 
62784
    PDS_FRIEND,    /** friend */
 
62785
    PDS_TYPEDEF,   /** typedef */
 
62786
    PDS_AUTO,      /** auto */
 
62787
    PDS_REGISTER,  /** register */
 
62788
    PDS_STATIC,    /** static */
 
62789
    PDS_EXTERN,    /** extern */
 
62790
    PDS_MUTABLE,   /** mutable */
 
62791
    PDS_INLINE,    /** inline */
 
62792
    PDS_VIRTUAL,   /** virtual */
 
62793
    PDS_EXPLICIT,  /** explicit */
 
62794
    PDS_CONST,     /** const */
 
62795
    PDS_VOLATILE,  /** volatile */
 
62796
    PDS_RESTRICT,  /** restrict */
 
62797
    PDS_CHAR,      /** char */
 
62798
    PDS_WCHAR_T,   /** wchar_t */
 
62799
    PDS_BOOL,      /** bool */
 
62800
    PDS_SHORT,     /** short */
 
62801
    PDS_INT,       /** int */
 
62802
    PDS_LONG,      /** long */
 
62803
    PDS_SIGNED,    /** signed */
 
62804
    PDS_UNSIGNED,  /** unsigned */
 
62805
    PDS_FLOAT,     /** float */
 
62806
    PDS_DOUBLE,    /** double */
 
62807
    PDS_VOID,      /** void */
 
62808
    // AspectC++ specific type specifier
 
62809
    PDS_UNKNOWN_T, /** unknown_t */
 
62810
    // Win specific declaration specifiers
 
62811
    PDS_CDECL,     /** __cdecl */
 
62812
    PDS_STDCALL,   /** __stdcall */
 
62813
    PDS_FASTCALL,  /** __fastcall */
 
62814
    PDS_INT64,     /** __int64 */
 
62815
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
62816
    PDS_NUM        /** Number of declaration specifier types. */
 
62817
  };
 
62818
 
 
62819
private:
 
62820
  Type _type;
 
62821
  CTree *_token; // has to be a CT_Token
 
62822
 
 
62823
  void determine_type ();
 
62824
 
 
62825
public:
 
62826
  /** Constructor.
 
62827
   *  \param t The token containing the declaration specifier. */
 
62828
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
62829
  /** Constructor.
 
62830
   *  \param t The declaration specifier type. */
 
62831
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
62832
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
62833
  static const char *NodeId ();
 
62834
  /** Get the name of the node. Can be compared with NodeId(). */
 
62835
  const char *NodeName () const { return NodeId (); }
 
62836
  /** Get the number of sons. */
 
62837
  int Sons () const { return _token ? 1 : 0; }
 
62838
  /** Get the n-th son.
 
62839
   *  \param n The index of the son.
 
62840
   *  \return The n-th son or NULL. */
 
62841
  CTree *Son (int n) const 
 
62842
   { return (n == 0) ? _token : (CTree*)0; }
 
62843
  /** Get the textual representation of the declaration specifier.
 
62844
   *  \return The string representation or " ". */
 
62845
  const char *SpecText () const 
 
62846
   { return _token ? _token->token ()->text () : " "; }
 
62847
  /** Get the declaration specifier type. */
 
62848
  Type SpecType () const { return _type; }
 
62849
  /** Number of declaration specifier types. */
 
62850
  static const int NumTypes = PDS_NUM;
 
62851
  /** Replace a son.
 
62852
   *  \param old_son The son to replace.
 
62853
   *  \param new_son The new son. */
 
62854
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
62855
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
62856
    determine_type ();
 
62857
  }
 
62858
};
 
62859
 
 
62860
/** \class CT_NamedType CTree.h Puma/CTree.h
 
62861
 *  Tree node representing a named type, e.g. (int*)a. 
 
62862
 *  where int* is a type with a generated name. */
 
62863
 
 
62864
#line 62865 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62865
} // closed Puma
 
62866
class CCExprResolve;
 
62867
class CExprResolve;
 
62868
class WinIfExists;
 
62869
class WinImportHandler;
 
62870
class WinMacros;
 
62871
class WinAsm;
 
62872
class WinDeclSpecs;
 
62873
class WinMemberExplSpec;
 
62874
class WinTypeKeywords;
 
62875
class WinFriend;
 
62876
class ExtAC;
 
62877
class ExtACBuilderCoupling;
 
62878
class ExtACSyntaxCoupling;
 
62879
class ExtACTree;
 
62880
class ExtACKeywords;
 
62881
class ExtGnu;
 
62882
class PragmaOnceUnitState;
 
62883
class PragmaOnce;
 
62884
class CMatchSyntax;
 
62885
namespace Puma {
 
62886
 
 
62887
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62888
class CT_NamedType : public CT_DeclSpec, public CSemObject {
 
62889
#line 62890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62890
  friend class ::CCExprResolve;
 
62891
  friend class ::CExprResolve;
 
62892
  friend class ::WinIfExists;
 
62893
  friend class ::WinImportHandler;
 
62894
  friend class ::WinMacros;
 
62895
  friend class ::WinAsm;
 
62896
  friend class ::WinDeclSpecs;
 
62897
  friend class ::WinMemberExplSpec;
 
62898
  friend class ::WinTypeKeywords;
 
62899
  friend class ::WinFriend;
 
62900
  friend class ::ExtAC;
 
62901
  friend class ::ExtACBuilderCoupling;
 
62902
  friend class ::ExtACSyntaxCoupling;
 
62903
  friend class ::ExtACTree;
 
62904
  friend class ::ExtACKeywords;
 
62905
  friend class ::ExtGnu;
 
62906
  friend class ::PragmaOnceUnitState;
 
62907
  friend class ::PragmaOnce;
 
62908
  friend class ::CMatchSyntax;
 
62909
 
 
62910
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62911
 
 
62912
  CTree *sons[2]; // declspecs, declarator
 
62913
 
 
62914
public:
 
62915
  /** Constructor.
 
62916
   *  \param dss The declaration specifier sequence of the type.
 
62917
   *  \param d The type declarator. */
 
62918
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
62919
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
62920
  static const char *NodeId ();
 
62921
  /** Get the name of the node. Can be compared with NodeId(). */
 
62922
  const char *NodeName () const { return NodeId (); }
 
62923
  /** Get the number of sons. */
 
62924
  int Sons () const { return CTree::Sons (sons, 2); }
 
62925
  /** Get the n-th son.
 
62926
   *  \param n The index of the son.
 
62927
   *  \return The n-th son or NULL. */
 
62928
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
62929
  /** Get the declarator. */
 
62930
  CTree *Declarator () const { return sons[1]; }
 
62931
  /** Replace a son.
 
62932
   *  \param old_son The son to replace.
 
62933
   *  \param new_son The new son. */
 
62934
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
62935
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
62936
  }
 
62937
  /** Get the semantic information object. */
 
62938
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
62939
};
 
62940
      
 
62941
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
62942
 *  Tree node representing a class specifier, e.g. class X. */
 
62943
 
 
62944
#line 62945 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62945
} // closed Puma
 
62946
class CCExprResolve;
 
62947
class CExprResolve;
 
62948
class WinIfExists;
 
62949
class WinImportHandler;
 
62950
class WinMacros;
 
62951
class WinAsm;
 
62952
class WinDeclSpecs;
 
62953
class WinMemberExplSpec;
 
62954
class WinTypeKeywords;
 
62955
class WinFriend;
 
62956
class ExtAC;
 
62957
class ExtACBuilderCoupling;
 
62958
class ExtACSyntaxCoupling;
 
62959
class ExtACTree;
 
62960
class ExtACKeywords;
 
62961
class ExtGnu;
 
62962
class PragmaOnceUnitState;
 
62963
class PragmaOnce;
 
62964
class CMatchSyntax;
 
62965
namespace Puma {
 
62966
 
 
62967
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62968
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
 
62969
#line 62970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
62970
  friend class ::CCExprResolve;
 
62971
  friend class ::CExprResolve;
 
62972
  friend class ::WinIfExists;
 
62973
  friend class ::WinImportHandler;
 
62974
  friend class ::WinMacros;
 
62975
  friend class ::WinAsm;
 
62976
  friend class ::WinDeclSpecs;
 
62977
  friend class ::WinMemberExplSpec;
 
62978
  friend class ::WinTypeKeywords;
 
62979
  friend class ::WinFriend;
 
62980
  friend class ::ExtAC;
 
62981
  friend class ::ExtACBuilderCoupling;
 
62982
  friend class ::ExtACSyntaxCoupling;
 
62983
  friend class ::ExtACTree;
 
62984
  friend class ::ExtACKeywords;
 
62985
  friend class ::ExtGnu;
 
62986
  friend class ::PragmaOnceUnitState;
 
62987
  friend class ::PragmaOnce;
 
62988
  friend class ::CMatchSyntax;
 
62989
 
 
62990
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62991
 
 
62992
  CTree *sons[2]; // key, name
 
62993
  
 
62994
public:
 
62995
  /** Constructor.
 
62996
   *  \param k The 'class' or 'struct' keyword.
 
62997
   *  \param n The class name. */
 
62998
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
62999
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
63000
  static const char *NodeId ();
 
63001
  /** Get the name of the node. Can be compared with NodeId(). */
 
63002
  const char *NodeName () const { return NodeId (); }
 
63003
  /** Get the number of sons. */
 
63004
  int Sons () const { return 2; }
 
63005
  /** Get the n-th son.
 
63006
   *  \param n The index of the son.
 
63007
   *  \return The n-th son or NULL. */
 
63008
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
63009
  /** Get the class name. */
 
63010
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
63011
  /** Get the semantic information object. */
 
63012
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
63013
  /** Replace a son.
 
63014
   *  \param old_son The son to replace.
 
63015
   *  \param new_son The new son. */
 
63016
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
63017
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
63018
  }
 
63019
};
 
63020
 
 
63021
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
63022
 *  Tree node representing a union specifier, e.g. union X. */
 
63023
 
 
63024
#line 63025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63025
} // closed Puma
 
63026
class CCExprResolve;
 
63027
class CExprResolve;
 
63028
class WinIfExists;
 
63029
class WinImportHandler;
 
63030
class WinMacros;
 
63031
class WinAsm;
 
63032
class WinDeclSpecs;
 
63033
class WinMemberExplSpec;
 
63034
class WinTypeKeywords;
 
63035
class WinFriend;
 
63036
class ExtAC;
 
63037
class ExtACBuilderCoupling;
 
63038
class ExtACSyntaxCoupling;
 
63039
class ExtACTree;
 
63040
class ExtACKeywords;
 
63041
class ExtGnu;
 
63042
class PragmaOnceUnitState;
 
63043
class PragmaOnce;
 
63044
class CMatchSyntax;
 
63045
namespace Puma {
 
63046
 
 
63047
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63048
class CT_UnionSpec : public CT_ClassSpec {
 
63049
#line 63050 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63050
  friend class ::CCExprResolve;
 
63051
  friend class ::CExprResolve;
 
63052
  friend class ::WinIfExists;
 
63053
  friend class ::WinImportHandler;
 
63054
  friend class ::WinMacros;
 
63055
  friend class ::WinAsm;
 
63056
  friend class ::WinDeclSpecs;
 
63057
  friend class ::WinMemberExplSpec;
 
63058
  friend class ::WinTypeKeywords;
 
63059
  friend class ::WinFriend;
 
63060
  friend class ::ExtAC;
 
63061
  friend class ::ExtACBuilderCoupling;
 
63062
  friend class ::ExtACSyntaxCoupling;
 
63063
  friend class ::ExtACTree;
 
63064
  friend class ::ExtACKeywords;
 
63065
  friend class ::ExtGnu;
 
63066
  friend class ::PragmaOnceUnitState;
 
63067
  friend class ::PragmaOnce;
 
63068
  friend class ::CMatchSyntax;
 
63069
 
 
63070
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63071
 
 
63072
public:
 
63073
  /** Constructor.
 
63074
   *  \param k The 'union' keyword.
 
63075
   *  \param n The name of the union. */
 
63076
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
63077
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
63078
  static const char *NodeId ();
 
63079
  /** Get the name of the node. Can be compared with NodeId(). */
 
63080
  const char *NodeName () const { return NodeId (); }
 
63081
};
 
63082
 
 
63083
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
63084
 *  Tree node representing an enumeration specifier, e.g. enum X. */
 
63085
 
 
63086
#line 63087 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63087
} // closed Puma
 
63088
class CCExprResolve;
 
63089
class CExprResolve;
 
63090
class WinIfExists;
 
63091
class WinImportHandler;
 
63092
class WinMacros;
 
63093
class WinAsm;
 
63094
class WinDeclSpecs;
 
63095
class WinMemberExplSpec;
 
63096
class WinTypeKeywords;
 
63097
class WinFriend;
 
63098
class ExtAC;
 
63099
class ExtACBuilderCoupling;
 
63100
class ExtACSyntaxCoupling;
 
63101
class ExtACTree;
 
63102
class ExtACKeywords;
 
63103
class ExtGnu;
 
63104
class PragmaOnceUnitState;
 
63105
class PragmaOnce;
 
63106
class CMatchSyntax;
 
63107
namespace Puma {
 
63108
 
 
63109
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63110
class CT_EnumSpec : public CT_ClassSpec {
 
63111
#line 63112 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63112
  friend class ::CCExprResolve;
 
63113
  friend class ::CExprResolve;
 
63114
  friend class ::WinIfExists;
 
63115
  friend class ::WinImportHandler;
 
63116
  friend class ::WinMacros;
 
63117
  friend class ::WinAsm;
 
63118
  friend class ::WinDeclSpecs;
 
63119
  friend class ::WinMemberExplSpec;
 
63120
  friend class ::WinTypeKeywords;
 
63121
  friend class ::WinFriend;
 
63122
  friend class ::ExtAC;
 
63123
  friend class ::ExtACBuilderCoupling;
 
63124
  friend class ::ExtACSyntaxCoupling;
 
63125
  friend class ::ExtACTree;
 
63126
  friend class ::ExtACKeywords;
 
63127
  friend class ::ExtGnu;
 
63128
  friend class ::PragmaOnceUnitState;
 
63129
  friend class ::PragmaOnce;
 
63130
  friend class ::CMatchSyntax;
 
63131
 
 
63132
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63133
 
 
63134
public:
 
63135
  /** Constructor.
 
63136
   *  \param k The 'enum' keyword. 
 
63137
   *  \param n The name of the enumeration. */
 
63138
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
63139
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
63140
  static const char *NodeId ();
 
63141
  /** Get the name of the node. Can be compared with NodeId(). */
 
63142
  const char *NodeName () const { return NodeId (); }
 
63143
};
 
63144
 
 
63145
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
63146
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
 
63147
 
 
63148
#line 63149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63149
} // closed Puma
 
63150
class CCExprResolve;
 
63151
class CExprResolve;
 
63152
class WinIfExists;
 
63153
class WinImportHandler;
 
63154
class WinMacros;
 
63155
class WinAsm;
 
63156
class WinDeclSpecs;
 
63157
class WinMemberExplSpec;
 
63158
class WinTypeKeywords;
 
63159
class WinFriend;
 
63160
class ExtAC;
 
63161
class ExtACBuilderCoupling;
 
63162
class ExtACSyntaxCoupling;
 
63163
class ExtACTree;
 
63164
class ExtACKeywords;
 
63165
class ExtGnu;
 
63166
class PragmaOnceUnitState;
 
63167
class PragmaOnce;
 
63168
class CMatchSyntax;
 
63169
namespace Puma {
 
63170
 
 
63171
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63172
class CT_ExceptionSpec : public CT_DeclSpec {
 
63173
#line 63174 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63174
  friend class ::CCExprResolve;
 
63175
  friend class ::CExprResolve;
 
63176
  friend class ::WinIfExists;
 
63177
  friend class ::WinImportHandler;
 
63178
  friend class ::WinMacros;
 
63179
  friend class ::WinAsm;
 
63180
  friend class ::WinDeclSpecs;
 
63181
  friend class ::WinMemberExplSpec;
 
63182
  friend class ::WinTypeKeywords;
 
63183
  friend class ::WinFriend;
 
63184
  friend class ::ExtAC;
 
63185
  friend class ::ExtACBuilderCoupling;
 
63186
  friend class ::ExtACSyntaxCoupling;
 
63187
  friend class ::ExtACTree;
 
63188
  friend class ::ExtACKeywords;
 
63189
  friend class ::ExtGnu;
 
63190
  friend class ::PragmaOnceUnitState;
 
63191
  friend class ::PragmaOnce;
 
63192
  friend class ::CMatchSyntax;
 
63193
 
 
63194
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63195
 
 
63196
  CTree *sons[2]; // throw, type_id_list
 
63197
  
 
63198
public:
 
63199
  /** Constructor.
 
63200
   *  \param k The 'throw' keyword.
 
63201
   *  \param l The type list for the exception type to throw. */
 
63202
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
63203
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
63204
  static const char *NodeId ();
 
63205
  /** Get the name of the node. Can be compared with NodeId(). */
 
63206
  const char *NodeName () const { return NodeId (); }
 
63207
  /** Get the number of sons. */
 
63208
  int Sons () const { return 2; }
 
63209
  /** Get the n-th son.
 
63210
   *  \param n The index of the son.
 
63211
   *  \return The n-th son or NULL. */
 
63212
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
63213
  /** Get the exception type list. */
 
63214
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
63215
  /** Replace a son.
 
63216
   *  \param old_son The son to replace.
 
63217
   *  \param new_son The new son. */
 
63218
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
63219
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
63220
  }
 
63221
};
 
63222
 
 
63223
/*****************************************************************************/
 
63224
/*                                                                           */
 
63225
/*                              Declarations                                 */
 
63226
/*                                                                           */
 
63227
/*****************************************************************************/
 
63228
 
 
63229
/** \class CT_Decl CTree.h Puma/CTree.h
 
63230
 *  Base class for all tree nodes representing declarations. */
 
63231
 
 
63232
#line 63233 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63233
} // closed Puma
 
63234
class CCExprResolve;
 
63235
class CExprResolve;
 
63236
class WinIfExists;
 
63237
class WinImportHandler;
 
63238
class WinMacros;
 
63239
class WinAsm;
 
63240
class WinDeclSpecs;
 
63241
class WinMemberExplSpec;
 
63242
class WinTypeKeywords;
 
63243
class WinFriend;
 
63244
class ExtAC;
 
63245
class ExtACBuilderCoupling;
 
63246
class ExtACSyntaxCoupling;
 
63247
class ExtACTree;
 
63248
class ExtACKeywords;
 
63249
class ExtGnu;
 
63250
class PragmaOnceUnitState;
 
63251
class PragmaOnce;
 
63252
class CMatchSyntax;
 
63253
namespace Puma {
 
63254
 
 
63255
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63256
class CT_Decl : public CTree {
 
63257
#line 63258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63258
  friend class ::CCExprResolve;
 
63259
  friend class ::CExprResolve;
 
63260
  friend class ::WinIfExists;
 
63261
  friend class ::WinImportHandler;
 
63262
  friend class ::WinMacros;
 
63263
  friend class ::WinAsm;
 
63264
  friend class ::WinDeclSpecs;
 
63265
  friend class ::WinMemberExplSpec;
 
63266
  friend class ::WinTypeKeywords;
 
63267
  friend class ::WinFriend;
 
63268
  friend class ::ExtAC;
 
63269
  friend class ::ExtACBuilderCoupling;
 
63270
  friend class ::ExtACSyntaxCoupling;
 
63271
  friend class ::ExtACTree;
 
63272
  friend class ::ExtACKeywords;
 
63273
  friend class ::ExtGnu;
 
63274
  friend class ::PragmaOnceUnitState;
 
63275
  friend class ::PragmaOnce;
 
63276
  friend class ::CMatchSyntax;
 
63277
 
 
63278
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63279
 
 
63280
  CT_LinkageSpec *_linkage;
 
63281
  
 
63282
protected:
 
63283
  /** Constructor. */
 
63284
  CT_Decl () : _linkage (0) {}
 
63285
  
 
63286
public:
 
63287
  /** Set the linkage of the declared entity.
 
63288
   *  \param l The linkage specifiers. */
 
63289
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
63290
  /** Get the linkage specifiers. */
 
63291
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
63292
  /** Get this. */
 
63293
  virtual CT_Decl *IsDeclaration () { return this; }
 
63294
};
 
63295
 
 
63296
/** \class CT_Program CTree.h Puma/CTree.h
 
63297
 *  Root node of C/C++ syntax tree. */
 
63298
 
 
63299
#line 63300 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63300
} // closed Puma
 
63301
class CCExprResolve;
 
63302
class CExprResolve;
 
63303
class WinIfExists;
 
63304
class WinImportHandler;
 
63305
class WinMacros;
 
63306
class WinAsm;
 
63307
class WinDeclSpecs;
 
63308
class WinMemberExplSpec;
 
63309
class WinTypeKeywords;
 
63310
class WinFriend;
 
63311
class ExtAC;
 
63312
class ExtACBuilderCoupling;
 
63313
class ExtACSyntaxCoupling;
 
63314
class ExtACTree;
 
63315
class ExtACKeywords;
 
63316
class ExtGnu;
 
63317
class PragmaOnceUnitState;
 
63318
class PragmaOnce;
 
63319
class CMatchSyntax;
 
63320
namespace Puma {
 
63321
 
 
63322
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63323
class CT_Program : public CT_DeclList, public CSemScope {
 
63324
#line 63325 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63325
  friend class ::CCExprResolve;
 
63326
  friend class ::CExprResolve;
 
63327
  friend class ::WinIfExists;
 
63328
  friend class ::WinImportHandler;
 
63329
  friend class ::WinMacros;
 
63330
  friend class ::WinAsm;
 
63331
  friend class ::WinDeclSpecs;
 
63332
  friend class ::WinMemberExplSpec;
 
63333
  friend class ::WinTypeKeywords;
 
63334
  friend class ::WinFriend;
 
63335
  friend class ::ExtAC;
 
63336
  friend class ::ExtACBuilderCoupling;
 
63337
  friend class ::ExtACSyntaxCoupling;
 
63338
  friend class ::ExtACTree;
 
63339
  friend class ::ExtACKeywords;
 
63340
  friend class ::ExtGnu;
 
63341
  friend class ::PragmaOnceUnitState;
 
63342
  friend class ::PragmaOnce;
 
63343
  friend class ::CMatchSyntax;
 
63344
 
 
63345
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63346
 
 
63347
public:
 
63348
  /** Constructor.
 
63349
   *  \param size The initial number of declarations in the program.
 
63350
   *  \param incr The initial increment count. */
 
63351
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
63352
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
63353
  static const char *NodeId ();
 
63354
  /** Get the name of the node. Can be compared with NodeId(). */
 
63355
  const char *NodeName () const { return NodeId (); }
 
63356
  /** Get the semantic scope object. */
 
63357
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
63358
};
 
63359
   
 
63360
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
63361
 *  Tree node representing an object declaration, e.g. int *i. */
 
63362
 
 
63363
#line 63364 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63364
} // closed Puma
 
63365
class CCExprResolve;
 
63366
class CExprResolve;
 
63367
class WinIfExists;
 
63368
class WinImportHandler;
 
63369
class WinMacros;
 
63370
class WinAsm;
 
63371
class WinDeclSpecs;
 
63372
class WinMemberExplSpec;
 
63373
class WinTypeKeywords;
 
63374
class WinFriend;
 
63375
class ExtAC;
 
63376
class ExtACBuilderCoupling;
 
63377
class ExtACSyntaxCoupling;
 
63378
class ExtACTree;
 
63379
class ExtACKeywords;
 
63380
class ExtGnu;
 
63381
class PragmaOnceUnitState;
 
63382
class PragmaOnce;
 
63383
class CMatchSyntax;
 
63384
namespace Puma {
 
63385
 
 
63386
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63387
class CT_ObjDecl : public CT_Decl {
 
63388
#line 63389 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63389
  friend class ::CCExprResolve;
 
63390
  friend class ::CExprResolve;
 
63391
  friend class ::WinIfExists;
 
63392
  friend class ::WinImportHandler;
 
63393
  friend class ::WinMacros;
 
63394
  friend class ::WinAsm;
 
63395
  friend class ::WinDeclSpecs;
 
63396
  friend class ::WinMemberExplSpec;
 
63397
  friend class ::WinTypeKeywords;
 
63398
  friend class ::WinFriend;
 
63399
  friend class ::ExtAC;
 
63400
  friend class ::ExtACBuilderCoupling;
 
63401
  friend class ::ExtACSyntaxCoupling;
 
63402
  friend class ::ExtACTree;
 
63403
  friend class ::ExtACKeywords;
 
63404
  friend class ::ExtGnu;
 
63405
  friend class ::PragmaOnceUnitState;
 
63406
  friend class ::PragmaOnce;
 
63407
  friend class ::CMatchSyntax;
 
63408
 
 
63409
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63410
 
 
63411
  CTree *sons[3]; // declspecs, declarators, colon
 
63412
 
 
63413
public:
 
63414
  /** Constructor.
 
63415
   *  \param dsl The declaration specifier sequence.
 
63416
   *  \param dl The declarator list.
 
63417
   *  \param c Optional colon. */
 
63418
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
 
63419
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
 
63420
  }
 
63421
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
63422
  static const char *NodeId ();
 
63423
  /** Get the name of the node. Can be compared with NodeId(). */
 
63424
  const char *NodeName () const { return NodeId (); }
 
63425
  /** Get the number of sons. */
 
63426
  int Sons () const { return 3; }
 
63427
  /** Get the n-th son.
 
63428
   *  \param n The index of the son.
 
63429
   *  \return The n-th son or NULL. */
 
63430
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
63431
  /** Get the declaration specifier sequence. */
 
63432
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
63433
  /** Get the declarator list. */
 
63434
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
63435
  /** Replace a son.
 
63436
   *  \param old_son The son to replace.
 
63437
   *  \param new_son The new son. */
 
63438
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
63439
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
63440
  }
 
63441
};
 
63442
 
 
63443
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
63444
 *  Tree node representing a template declaration. */
 
63445
 
 
63446
#line 63447 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63447
} // closed Puma
 
63448
class CCExprResolve;
 
63449
class CExprResolve;
 
63450
class WinIfExists;
 
63451
class WinImportHandler;
 
63452
class WinMacros;
 
63453
class WinAsm;
 
63454
class WinDeclSpecs;
 
63455
class WinMemberExplSpec;
 
63456
class WinTypeKeywords;
 
63457
class WinFriend;
 
63458
class ExtAC;
 
63459
class ExtACBuilderCoupling;
 
63460
class ExtACSyntaxCoupling;
 
63461
class ExtACTree;
 
63462
class ExtACKeywords;
 
63463
class ExtGnu;
 
63464
class PragmaOnceUnitState;
 
63465
class PragmaOnce;
 
63466
class CMatchSyntax;
 
63467
namespace Puma {
 
63468
 
 
63469
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63470
class CT_TemplateDecl : public CT_Decl, public CSemScope {
 
63471
#line 63472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63472
  friend class ::CCExprResolve;
 
63473
  friend class ::CExprResolve;
 
63474
  friend class ::WinIfExists;
 
63475
  friend class ::WinImportHandler;
 
63476
  friend class ::WinMacros;
 
63477
  friend class ::WinAsm;
 
63478
  friend class ::WinDeclSpecs;
 
63479
  friend class ::WinMemberExplSpec;
 
63480
  friend class ::WinTypeKeywords;
 
63481
  friend class ::WinFriend;
 
63482
  friend class ::ExtAC;
 
63483
  friend class ::ExtACBuilderCoupling;
 
63484
  friend class ::ExtACSyntaxCoupling;
 
63485
  friend class ::ExtACTree;
 
63486
  friend class ::ExtACKeywords;
 
63487
  friend class ::ExtGnu;
 
63488
  friend class ::PragmaOnceUnitState;
 
63489
  friend class ::PragmaOnce;
 
63490
  friend class ::CMatchSyntax;
 
63491
 
 
63492
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63493
 
 
63494
  CTree *sons[3]; // export, param_list, decl
 
63495
 
 
63496
public:
 
63497
  /** Constructor.
 
63498
   *  \param e Optional 'export' keyword. 
 
63499
   *  \param p The template parameter list.
 
63500
   *  \param d The class or function declaration. */
 
63501
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
 
63502
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
 
63503
  }
 
63504
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
63505
  static const char *NodeId ();
 
63506
  /** Get the name of the node. Can be compared with NodeId(). */
 
63507
  const char *NodeName () const { return NodeId (); }
 
63508
  /** Get the number of sons. */
 
63509
  int Sons () const { return CTree::Sons (sons, 3); }
 
63510
  /** Get the n-th son.
 
63511
   *  \param n The index of the son.
 
63512
   *  \return The n-th son or NULL. */
 
63513
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
63514
  /** Replace a son.
 
63515
   *  \param old_son The son to replace.
 
63516
   *  \param new_son The new son. */
 
63517
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
63518
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
 
63519
  }
 
63520
  /** Get the 'export' keyword. */
 
63521
  CTree *Export () const { return sons[0]; }
 
63522
  /** Get the template parameter list. */
 
63523
  CT_TemplateParamList *Parameters () const { 
 
63524
    return (CT_TemplateParamList*)sons[1]; 
 
63525
  }
 
63526
  /** Get the class or function declaration. */
 
63527
  CTree *Declaration () const { return sons[2]; }
 
63528
  /** Get the semantic scope object. */
 
63529
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
63530
};
 
63531
 
 
63532
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
63533
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
 
63534
 
 
63535
#line 63536 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63536
} // closed Puma
 
63537
class CCExprResolve;
 
63538
class CExprResolve;
 
63539
class WinIfExists;
 
63540
class WinImportHandler;
 
63541
class WinMacros;
 
63542
class WinAsm;
 
63543
class WinDeclSpecs;
 
63544
class WinMemberExplSpec;
 
63545
class WinTypeKeywords;
 
63546
class WinFriend;
 
63547
class ExtAC;
 
63548
class ExtACBuilderCoupling;
 
63549
class ExtACSyntaxCoupling;
 
63550
class ExtACTree;
 
63551
class ExtACKeywords;
 
63552
class ExtGnu;
 
63553
class PragmaOnceUnitState;
 
63554
class PragmaOnce;
 
63555
class CMatchSyntax;
 
63556
namespace Puma {
 
63557
 
 
63558
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63559
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
 
63560
#line 63561 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63561
  friend class ::CCExprResolve;
 
63562
  friend class ::CExprResolve;
 
63563
  friend class ::WinIfExists;
 
63564
  friend class ::WinImportHandler;
 
63565
  friend class ::WinMacros;
 
63566
  friend class ::WinAsm;
 
63567
  friend class ::WinDeclSpecs;
 
63568
  friend class ::WinMemberExplSpec;
 
63569
  friend class ::WinTypeKeywords;
 
63570
  friend class ::WinFriend;
 
63571
  friend class ::ExtAC;
 
63572
  friend class ::ExtACBuilderCoupling;
 
63573
  friend class ::ExtACSyntaxCoupling;
 
63574
  friend class ::ExtACTree;
 
63575
  friend class ::ExtACKeywords;
 
63576
  friend class ::ExtGnu;
 
63577
  friend class ::PragmaOnceUnitState;
 
63578
  friend class ::PragmaOnce;
 
63579
  friend class ::CMatchSyntax;
 
63580
 
 
63581
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63582
 
 
63583
protected:
 
63584
  /** Constructor. */
 
63585
  CT_TemplateParamDecl () {}
 
63586
  
 
63587
public:
 
63588
  /** Get the template default argument. */
 
63589
  virtual CT_ExprList *DefaultArgument () const = 0;
 
63590
  /** Get the semantic information object. */
 
63591
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
63592
};
 
63593
 
 
63594
 
 
63595
#line 63596 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63596
} // closed Puma
 
63597
class CCExprResolve;
 
63598
class CExprResolve;
 
63599
class WinIfExists;
 
63600
class WinImportHandler;
 
63601
class WinMacros;
 
63602
class WinAsm;
 
63603
class WinDeclSpecs;
 
63604
class WinMemberExplSpec;
 
63605
class WinTypeKeywords;
 
63606
class WinFriend;
 
63607
class ExtAC;
 
63608
class ExtACBuilderCoupling;
 
63609
class ExtACSyntaxCoupling;
 
63610
class ExtACTree;
 
63611
class ExtACKeywords;
 
63612
class ExtGnu;
 
63613
class PragmaOnceUnitState;
 
63614
class PragmaOnce;
 
63615
class CMatchSyntax;
 
63616
namespace Puma {
 
63617
 
 
63618
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63619
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
 
63620
#line 63621 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63621
  friend class ::CCExprResolve;
 
63622
  friend class ::CExprResolve;
 
63623
  friend class ::WinIfExists;
 
63624
  friend class ::WinImportHandler;
 
63625
  friend class ::WinMacros;
 
63626
  friend class ::WinAsm;
 
63627
  friend class ::WinDeclSpecs;
 
63628
  friend class ::WinMemberExplSpec;
 
63629
  friend class ::WinTypeKeywords;
 
63630
  friend class ::WinFriend;
 
63631
  friend class ::ExtAC;
 
63632
  friend class ::ExtACBuilderCoupling;
 
63633
  friend class ::ExtACSyntaxCoupling;
 
63634
  friend class ::ExtACTree;
 
63635
  friend class ::ExtACKeywords;
 
63636
  friend class ::ExtGnu;
 
63637
  friend class ::PragmaOnceUnitState;
 
63638
  friend class ::PragmaOnce;
 
63639
  friend class ::CMatchSyntax;
 
63640
 
 
63641
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63642
 
 
63643
  CTree *sons[3]; // declspecs, declarator, init
 
63644
 
 
63645
public:
 
63646
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
 
63647
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
 
63648
  }
 
63649
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
63650
  static const char *NodeId ();
 
63651
  /** Get the name of the node. Can be compared with NodeId(). */
 
63652
  const char *NodeName () const { return NodeId (); }
 
63653
  /** Get the number of sons. */
 
63654
  int Sons () const { return CTree::Sons (sons, 3); }
 
63655
  /** Get the n-th son.
 
63656
   *  \param n The index of the son.
 
63657
   *  \return The n-th son or NULL. */
 
63658
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
63659
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
63660
  CTree *Declarator () const { return sons[1]; }
 
63661
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
 
63662
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
63663
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
63664
  /** Replace a son.
 
63665
   *  \param old_son The son to replace.
 
63666
   *  \param new_son The new son. */
 
63667
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
63668
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
63669
  }
 
63670
};
 
63671
 
 
63672
 
 
63673
#line 63674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63674
} // closed Puma
 
63675
class CCExprResolve;
 
63676
class CExprResolve;
 
63677
class WinIfExists;
 
63678
class WinImportHandler;
 
63679
class WinMacros;
 
63680
class WinAsm;
 
63681
class WinDeclSpecs;
 
63682
class WinMemberExplSpec;
 
63683
class WinTypeKeywords;
 
63684
class WinFriend;
 
63685
class ExtAC;
 
63686
class ExtACBuilderCoupling;
 
63687
class ExtACSyntaxCoupling;
 
63688
class ExtACTree;
 
63689
class ExtACKeywords;
 
63690
class ExtGnu;
 
63691
class PragmaOnceUnitState;
 
63692
class PragmaOnce;
 
63693
class CMatchSyntax;
 
63694
namespace Puma {
 
63695
 
 
63696
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63697
class CT_TypeParamDecl : public CT_TemplateParamDecl {
 
63698
#line 63699 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63699
  friend class ::CCExprResolve;
 
63700
  friend class ::CExprResolve;
 
63701
  friend class ::WinIfExists;
 
63702
  friend class ::WinImportHandler;
 
63703
  friend class ::WinMacros;
 
63704
  friend class ::WinAsm;
 
63705
  friend class ::WinDeclSpecs;
 
63706
  friend class ::WinMemberExplSpec;
 
63707
  friend class ::WinTypeKeywords;
 
63708
  friend class ::WinFriend;
 
63709
  friend class ::ExtAC;
 
63710
  friend class ::ExtACBuilderCoupling;
 
63711
  friend class ::ExtACSyntaxCoupling;
 
63712
  friend class ::ExtACTree;
 
63713
  friend class ::ExtACKeywords;
 
63714
  friend class ::ExtGnu;
 
63715
  friend class ::PragmaOnceUnitState;
 
63716
  friend class ::PragmaOnce;
 
63717
  friend class ::CMatchSyntax;
 
63718
 
 
63719
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63720
 
 
63721
  CTree *sons[4]; // params, key, id, init
 
63722
 
 
63723
public:
 
63724
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
 
63725
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
63726
    AddSon (sons[2], id); AddSon (sons[3], i);
 
63727
  }
 
63728
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
63729
  static const char *NodeId ();
 
63730
  /** Get the name of the node. Can be compared with NodeId(). */
 
63731
  const char *NodeName () const { return NodeId (); }
 
63732
  /** Get the number of sons. */
 
63733
  int Sons () const { return CTree::Sons (sons, 4); }
 
63734
  /** Get the n-th son.
 
63735
   *  \param n The index of the son.
 
63736
   *  \return The n-th son or NULL. */
 
63737
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
63738
  CT_TemplateParamList *Parameters () const { 
 
63739
    return (CT_TemplateParamList*)sons[0]; 
 
63740
  }
 
63741
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
63742
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
 
63743
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
63744
  /** Replace a son.
 
63745
   *  \param old_son The son to replace.
 
63746
   *  \param new_son The new son. */
 
63747
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
63748
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
63749
  }
 
63750
};
 
63751
 
 
63752
 
 
63753
#line 63754 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63754
} // closed Puma
 
63755
class CCExprResolve;
 
63756
class CExprResolve;
 
63757
class WinIfExists;
 
63758
class WinImportHandler;
 
63759
class WinMacros;
 
63760
class WinAsm;
 
63761
class WinDeclSpecs;
 
63762
class WinMemberExplSpec;
 
63763
class WinTypeKeywords;
 
63764
class WinFriend;
 
63765
class ExtAC;
 
63766
class ExtACBuilderCoupling;
 
63767
class ExtACSyntaxCoupling;
 
63768
class ExtACTree;
 
63769
class ExtACKeywords;
 
63770
class ExtGnu;
 
63771
class PragmaOnceUnitState;
 
63772
class PragmaOnce;
 
63773
class CMatchSyntax;
 
63774
namespace Puma {
 
63775
 
 
63776
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63777
class CT_EnumDef : public CT_Decl, public CSemObject {
 
63778
#line 63779 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63779
  friend class ::CCExprResolve;
 
63780
  friend class ::CExprResolve;
 
63781
  friend class ::WinIfExists;
 
63782
  friend class ::WinImportHandler;
 
63783
  friend class ::WinMacros;
 
63784
  friend class ::WinAsm;
 
63785
  friend class ::WinDeclSpecs;
 
63786
  friend class ::WinMemberExplSpec;
 
63787
  friend class ::WinTypeKeywords;
 
63788
  friend class ::WinFriend;
 
63789
  friend class ::ExtAC;
 
63790
  friend class ::ExtACBuilderCoupling;
 
63791
  friend class ::ExtACSyntaxCoupling;
 
63792
  friend class ::ExtACTree;
 
63793
  friend class ::ExtACKeywords;
 
63794
  friend class ::ExtGnu;
 
63795
  friend class ::PragmaOnceUnitState;
 
63796
  friend class ::PragmaOnce;
 
63797
  friend class ::CMatchSyntax;
 
63798
 
 
63799
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63800
 
 
63801
  CTree *sons[3]; // key, name, enumerators
 
63802
 
 
63803
public:
 
63804
  CT_EnumDef (CTree *k, CTree *n) {
 
63805
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
 
63806
  }
 
63807
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
63808
  static const char *NodeId ();
 
63809
  /** Get the name of the node. Can be compared with NodeId(). */
 
63810
  const char *NodeName () const { return NodeId (); }
 
63811
  /** Get the number of sons. */
 
63812
  int Sons () const { return CTree::Sons (sons, 3); }
 
63813
  /** Get the n-th son.
 
63814
   *  \param n The index of the son.
 
63815
   *  \return The n-th son or NULL. */
 
63816
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
63817
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
63818
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
 
63819
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
63820
  /** Replace a son.
 
63821
   *  \param old_son The son to replace.
 
63822
   *  \param new_son The new son. */
 
63823
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
63824
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
63825
  }
 
63826
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
63827
};
 
63828
 
 
63829
 
 
63830
#line 63831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63831
} // closed Puma
 
63832
class CCExprResolve;
 
63833
class CExprResolve;
 
63834
class WinIfExists;
 
63835
class WinImportHandler;
 
63836
class WinMacros;
 
63837
class WinAsm;
 
63838
class WinDeclSpecs;
 
63839
class WinMemberExplSpec;
 
63840
class WinTypeKeywords;
 
63841
class WinFriend;
 
63842
class ExtAC;
 
63843
class ExtACBuilderCoupling;
 
63844
class ExtACSyntaxCoupling;
 
63845
class ExtACTree;
 
63846
class ExtACKeywords;
 
63847
class ExtGnu;
 
63848
class PragmaOnceUnitState;
 
63849
class PragmaOnce;
 
63850
class CMatchSyntax;
 
63851
namespace Puma {
 
63852
 
 
63853
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63854
class CT_Enumerator : public CT_Decl, public CSemObject {
 
63855
#line 63856 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63856
  friend class ::CCExprResolve;
 
63857
  friend class ::CExprResolve;
 
63858
  friend class ::WinIfExists;
 
63859
  friend class ::WinImportHandler;
 
63860
  friend class ::WinMacros;
 
63861
  friend class ::WinAsm;
 
63862
  friend class ::WinDeclSpecs;
 
63863
  friend class ::WinMemberExplSpec;
 
63864
  friend class ::WinTypeKeywords;
 
63865
  friend class ::WinFriend;
 
63866
  friend class ::ExtAC;
 
63867
  friend class ::ExtACBuilderCoupling;
 
63868
  friend class ::ExtACSyntaxCoupling;
 
63869
  friend class ::ExtACTree;
 
63870
  friend class ::ExtACKeywords;
 
63871
  friend class ::ExtGnu;
 
63872
  friend class ::PragmaOnceUnitState;
 
63873
  friend class ::PragmaOnce;
 
63874
  friend class ::CMatchSyntax;
 
63875
 
 
63876
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63877
 
 
63878
  CTree *sons[2]; // name, init
 
63879
 
 
63880
public:
 
63881
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
63882
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
63883
  static const char *NodeId ();
 
63884
  /** Get the name of the node. Can be compared with NodeId(). */
 
63885
  const char *NodeName () const { return NodeId (); }
 
63886
  /** Get the number of sons. */
 
63887
  int Sons () const { return CTree::Sons (sons, 2); }
 
63888
  /** Get the n-th son.
 
63889
   *  \param n The index of the son.
 
63890
   *  \return The n-th son or NULL. */
 
63891
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
63892
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
63893
  void Initializer (CTree *i) { AddSon (sons[1], i); }
 
63894
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
63895
  /** Replace a son.
 
63896
   *  \param old_son The son to replace.
 
63897
   *  \param new_son The new son. */
 
63898
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
63899
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
 
63900
  }
 
63901
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
63902
};
 
63903
 
 
63904
 
 
63905
#line 63906 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63906
} // closed Puma
 
63907
class CCExprResolve;
 
63908
class CExprResolve;
 
63909
class WinIfExists;
 
63910
class WinImportHandler;
 
63911
class WinMacros;
 
63912
class WinAsm;
 
63913
class WinDeclSpecs;
 
63914
class WinMemberExplSpec;
 
63915
class WinTypeKeywords;
 
63916
class WinFriend;
 
63917
class ExtAC;
 
63918
class ExtACBuilderCoupling;
 
63919
class ExtACSyntaxCoupling;
 
63920
class ExtACTree;
 
63921
class ExtACKeywords;
 
63922
class ExtGnu;
 
63923
class PragmaOnceUnitState;
 
63924
class PragmaOnce;
 
63925
class CMatchSyntax;
 
63926
namespace Puma {
 
63927
 
 
63928
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63929
class CT_FctDef : public CT_Decl, public CSemObject {
 
63930
#line 63931 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63931
  friend class ::CCExprResolve;
 
63932
  friend class ::CExprResolve;
 
63933
  friend class ::WinIfExists;
 
63934
  friend class ::WinImportHandler;
 
63935
  friend class ::WinMacros;
 
63936
  friend class ::WinAsm;
 
63937
  friend class ::WinDeclSpecs;
 
63938
  friend class ::WinMemberExplSpec;
 
63939
  friend class ::WinTypeKeywords;
 
63940
  friend class ::WinFriend;
 
63941
  friend class ::ExtAC;
 
63942
  friend class ::ExtACBuilderCoupling;
 
63943
  friend class ::ExtACSyntaxCoupling;
 
63944
  friend class ::ExtACTree;
 
63945
  friend class ::ExtACKeywords;
 
63946
  friend class ::ExtGnu;
 
63947
  friend class ::PragmaOnceUnitState;
 
63948
  friend class ::PragmaOnce;
 
63949
  friend class ::CMatchSyntax;
 
63950
 
 
63951
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63952
 
 
63953
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
 
63954
 
 
63955
public:
 
63956
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
 
63957
             CTree *b, CTree *hs) {
 
63958
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
63959
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
63960
    AddSon (sons[6], hs); 
 
63961
  }
 
63962
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
63963
  static const char *NodeId ();
 
63964
  /** Get the name of the node. Can be compared with NodeId(). */
 
63965
  const char *NodeName () const { return NodeId (); }
 
63966
  /** Get the number of sons. */
 
63967
  int Sons () const { return CTree::Sons (sons, 7); }
 
63968
  /** Get the n-th son.
 
63969
   *  \param n The index of the son.
 
63970
   *  \return The n-th son or NULL. */
 
63971
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
63972
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
63973
  CTree *Declarator () const { return sons[1]; }
 
63974
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
 
63975
  CTree *CtorInit () const { return sons[3]; }
 
63976
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
 
63977
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
 
63978
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
 
63979
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
63980
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
63981
  void Body (CTree *b) { AddSon (sons[5], b); }
 
63982
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
 
63983
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
63984
    AddSon (sons[5], b); AddSon (sons[6], h);
 
63985
  }
 
63986
  /** Replace a son.
 
63987
   *  \param old_son The son to replace.
 
63988
   *  \param new_son The new son. */
 
63989
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
63990
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
63991
  }
 
63992
};
 
63993
 
 
63994
 
 
63995
#line 63996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
63996
} // closed Puma
 
63997
class CCExprResolve;
 
63998
class CExprResolve;
 
63999
class WinIfExists;
 
64000
class WinImportHandler;
 
64001
class WinMacros;
 
64002
class WinAsm;
 
64003
class WinDeclSpecs;
 
64004
class WinMemberExplSpec;
 
64005
class WinTypeKeywords;
 
64006
class WinFriend;
 
64007
class ExtAC;
 
64008
class ExtACBuilderCoupling;
 
64009
class ExtACSyntaxCoupling;
 
64010
class ExtACTree;
 
64011
class ExtACKeywords;
 
64012
class ExtGnu;
 
64013
class PragmaOnceUnitState;
 
64014
class PragmaOnce;
 
64015
class CMatchSyntax;
 
64016
namespace Puma {
 
64017
 
 
64018
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64019
class CT_AsmDef : public CT_Decl {
 
64020
#line 64021 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64021
  friend class ::CCExprResolve;
 
64022
  friend class ::CExprResolve;
 
64023
  friend class ::WinIfExists;
 
64024
  friend class ::WinImportHandler;
 
64025
  friend class ::WinMacros;
 
64026
  friend class ::WinAsm;
 
64027
  friend class ::WinDeclSpecs;
 
64028
  friend class ::WinMemberExplSpec;
 
64029
  friend class ::WinTypeKeywords;
 
64030
  friend class ::WinFriend;
 
64031
  friend class ::ExtAC;
 
64032
  friend class ::ExtACBuilderCoupling;
 
64033
  friend class ::ExtACSyntaxCoupling;
 
64034
  friend class ::ExtACTree;
 
64035
  friend class ::ExtACKeywords;
 
64036
  friend class ::ExtGnu;
 
64037
  friend class ::PragmaOnceUnitState;
 
64038
  friend class ::PragmaOnce;
 
64039
  friend class ::CMatchSyntax;
 
64040
 
 
64041
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64042
 
 
64043
  CTree *sons[5]; // asm, open, str, close, semi_colon
 
64044
 
 
64045
public:
 
64046
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
 
64047
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
64048
    AddSon (sons[3], c); AddSon (sons[4], sc); 
 
64049
  }
 
64050
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
64051
  static const char *NodeId ();
 
64052
  /** Get the name of the node. Can be compared with NodeId(). */
 
64053
  const char *NodeName () const { return NodeId (); }
 
64054
  /** Get the number of sons. */
 
64055
  int Sons () const { return 5; }
 
64056
  /** Get the n-th son.
 
64057
   *  \param n The index of the son.
 
64058
   *  \return The n-th son or NULL. */
 
64059
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
64060
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
64061
  /** Replace a son.
 
64062
   *  \param old_son The son to replace.
 
64063
   *  \param new_son The new son. */
 
64064
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
64065
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
64066
  }
 
64067
};
 
64068
 
 
64069
 
 
64070
#line 64071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64071
} // closed Puma
 
64072
class CCExprResolve;
 
64073
class CExprResolve;
 
64074
class WinIfExists;
 
64075
class WinImportHandler;
 
64076
class WinMacros;
 
64077
class WinAsm;
 
64078
class WinDeclSpecs;
 
64079
class WinMemberExplSpec;
 
64080
class WinTypeKeywords;
 
64081
class WinFriend;
 
64082
class ExtAC;
 
64083
class ExtACBuilderCoupling;
 
64084
class ExtACSyntaxCoupling;
 
64085
class ExtACTree;
 
64086
class ExtACKeywords;
 
64087
class ExtGnu;
 
64088
class PragmaOnceUnitState;
 
64089
class PragmaOnce;
 
64090
class CMatchSyntax;
 
64091
namespace Puma {
 
64092
 
 
64093
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64094
class CT_Handler : public CT_Decl, public CSemScope {
 
64095
#line 64096 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64096
  friend class ::CCExprResolve;
 
64097
  friend class ::CExprResolve;
 
64098
  friend class ::WinIfExists;
 
64099
  friend class ::WinImportHandler;
 
64100
  friend class ::WinMacros;
 
64101
  friend class ::WinAsm;
 
64102
  friend class ::WinDeclSpecs;
 
64103
  friend class ::WinMemberExplSpec;
 
64104
  friend class ::WinTypeKeywords;
 
64105
  friend class ::WinFriend;
 
64106
  friend class ::ExtAC;
 
64107
  friend class ::ExtACBuilderCoupling;
 
64108
  friend class ::ExtACSyntaxCoupling;
 
64109
  friend class ::ExtACTree;
 
64110
  friend class ::ExtACKeywords;
 
64111
  friend class ::ExtGnu;
 
64112
  friend class ::PragmaOnceUnitState;
 
64113
  friend class ::PragmaOnce;
 
64114
  friend class ::CMatchSyntax;
 
64115
 
 
64116
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64117
 
 
64118
  CTree *sons[3]; // catch, exception_decl, stmt
 
64119
 
 
64120
public:
 
64121
  CT_Handler (CTree *c, CTree *e, CTree *s) {
 
64122
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
 
64123
  }
 
64124
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
64125
  static const char *NodeId ();
 
64126
  /** Get the name of the node. Can be compared with NodeId(). */
 
64127
  const char *NodeName () const { return NodeId (); }
 
64128
  /** Get the number of sons. */
 
64129
  int Sons () const { return 3; }
 
64130
  /** Get the n-th son.
 
64131
   *  \param n The index of the son.
 
64132
   *  \return The n-th son or NULL. */
 
64133
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
64134
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
64135
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
64136
  /** Replace a son.
 
64137
   *  \param old_son The son to replace.
 
64138
   *  \param new_son The new son. */
 
64139
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
64140
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
64141
  }
 
64142
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
64143
};
 
64144
 
 
64145
 
 
64146
#line 64147 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64147
} // closed Puma
 
64148
class CCExprResolve;
 
64149
class CExprResolve;
 
64150
class WinIfExists;
 
64151
class WinImportHandler;
 
64152
class WinMacros;
 
64153
class WinAsm;
 
64154
class WinDeclSpecs;
 
64155
class WinMemberExplSpec;
 
64156
class WinTypeKeywords;
 
64157
class WinFriend;
 
64158
class ExtAC;
 
64159
class ExtACBuilderCoupling;
 
64160
class ExtACSyntaxCoupling;
 
64161
class ExtACTree;
 
64162
class ExtACKeywords;
 
64163
class ExtGnu;
 
64164
class PragmaOnceUnitState;
 
64165
class PragmaOnce;
 
64166
class CMatchSyntax;
 
64167
namespace Puma {
 
64168
 
 
64169
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64170
class CT_LinkageSpec : public CT_Decl {
 
64171
#line 64172 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64172
  friend class ::CCExprResolve;
 
64173
  friend class ::CExprResolve;
 
64174
  friend class ::WinIfExists;
 
64175
  friend class ::WinImportHandler;
 
64176
  friend class ::WinMacros;
 
64177
  friend class ::WinAsm;
 
64178
  friend class ::WinDeclSpecs;
 
64179
  friend class ::WinMemberExplSpec;
 
64180
  friend class ::WinTypeKeywords;
 
64181
  friend class ::WinFriend;
 
64182
  friend class ::ExtAC;
 
64183
  friend class ::ExtACBuilderCoupling;
 
64184
  friend class ::ExtACSyntaxCoupling;
 
64185
  friend class ::ExtACTree;
 
64186
  friend class ::ExtACKeywords;
 
64187
  friend class ::ExtGnu;
 
64188
  friend class ::PragmaOnceUnitState;
 
64189
  friend class ::PragmaOnce;
 
64190
  friend class ::CMatchSyntax;
 
64191
 
 
64192
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64193
 
 
64194
  CTree *sons[5]; // extern, str, open, decls, close
 
64195
 
 
64196
public:
 
64197
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
 
64198
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
64199
    AddSon (sons[3], d); AddSon (sons[4], c);
 
64200
    if (isList ())
 
64201
      ((CT_DeclList*)Decls ())->Linkage (this);
 
64202
    else
 
64203
      ((CT_Decl*)Decls ())->Linkage (this);
 
64204
  }
 
64205
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
64206
  static const char *NodeId ();
 
64207
  /** Get the name of the node. Can be compared with NodeId(). */
 
64208
  const char *NodeName () const { return NodeId (); }
 
64209
  /** Get the number of sons. */
 
64210
  int Sons () const { return CTree::Sons (sons, 5); }
 
64211
  /** Get the n-th son.
 
64212
   *  \param n The index of the son.
 
64213
   *  \return The n-th son or NULL. */
 
64214
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
64215
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
 
64216
  CTree *Decls () const { return sons[3]; }
 
64217
  bool isList () const {
 
64218
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
 
64219
  }
 
64220
  /** Replace a son.
 
64221
   *  \param old_son The son to replace.
 
64222
   *  \param new_son The new son. */
 
64223
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
64224
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
64225
  }
 
64226
};
 
64227
 
 
64228
 
 
64229
#line 64230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64230
} // closed Puma
 
64231
class CCExprResolve;
 
64232
class CExprResolve;
 
64233
class WinIfExists;
 
64234
class WinImportHandler;
 
64235
class WinMacros;
 
64236
class WinAsm;
 
64237
class WinDeclSpecs;
 
64238
class WinMemberExplSpec;
 
64239
class WinTypeKeywords;
 
64240
class WinFriend;
 
64241
class ExtAC;
 
64242
class ExtACBuilderCoupling;
 
64243
class ExtACSyntaxCoupling;
 
64244
class ExtACTree;
 
64245
class ExtACKeywords;
 
64246
class ExtGnu;
 
64247
class PragmaOnceUnitState;
 
64248
class PragmaOnce;
 
64249
class CMatchSyntax;
 
64250
namespace Puma {
 
64251
 
 
64252
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64253
class CT_ArgDecl : public CT_Decl, public CSemObject {
 
64254
#line 64255 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64255
  friend class ::CCExprResolve;
 
64256
  friend class ::CExprResolve;
 
64257
  friend class ::WinIfExists;
 
64258
  friend class ::WinImportHandler;
 
64259
  friend class ::WinMacros;
 
64260
  friend class ::WinAsm;
 
64261
  friend class ::WinDeclSpecs;
 
64262
  friend class ::WinMemberExplSpec;
 
64263
  friend class ::WinTypeKeywords;
 
64264
  friend class ::WinFriend;
 
64265
  friend class ::ExtAC;
 
64266
  friend class ::ExtACBuilderCoupling;
 
64267
  friend class ::ExtACSyntaxCoupling;
 
64268
  friend class ::ExtACTree;
 
64269
  friend class ::ExtACKeywords;
 
64270
  friend class ::ExtGnu;
 
64271
  friend class ::PragmaOnceUnitState;
 
64272
  friend class ::PragmaOnce;
 
64273
  friend class ::CMatchSyntax;
 
64274
 
 
64275
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64276
 
 
64277
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
 
64278
 
 
64279
public:
 
64280
  CT_ArgDecl (CTree *dsl, CTree *d) {
 
64281
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
64282
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
 
64283
  }
 
64284
  CT_ArgDecl (CTree *ellipsis) {
 
64285
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
64286
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
 
64287
  }
 
64288
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
64289
  static const char *NodeId ();
 
64290
  /** Get the name of the node. Can be compared with NodeId(). */
 
64291
  const char *NodeName () const { return NodeId (); }
 
64292
  /** Get the number of sons. */
 
64293
  int Sons () const { return CTree::Sons (sons, 4); }
 
64294
  /** Get the n-th son.
 
64295
   *  \param n The index of the son.
 
64296
   *  \return The n-th son or NULL. */
 
64297
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
64298
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
64299
  CTree *Declarator () const { return sons[1]; }
 
64300
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
64301
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
 
64302
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
64303
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
64304
  /** Replace a son.
 
64305
   *  \param old_son The son to replace.
 
64306
   *  \param new_son The new son. */
 
64307
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
64308
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
64309
  }
 
64310
};
 
64311
 
 
64312
 
 
64313
#line 64314 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64314
} // closed Puma
 
64315
class CCExprResolve;
 
64316
class CExprResolve;
 
64317
class WinIfExists;
 
64318
class WinImportHandler;
 
64319
class WinMacros;
 
64320
class WinAsm;
 
64321
class WinDeclSpecs;
 
64322
class WinMemberExplSpec;
 
64323
class WinTypeKeywords;
 
64324
class WinFriend;
 
64325
class ExtAC;
 
64326
class ExtACBuilderCoupling;
 
64327
class ExtACSyntaxCoupling;
 
64328
class ExtACTree;
 
64329
class ExtACKeywords;
 
64330
class ExtGnu;
 
64331
class PragmaOnceUnitState;
 
64332
class PragmaOnce;
 
64333
class CMatchSyntax;
 
64334
namespace Puma {
 
64335
 
 
64336
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64337
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
 
64338
#line 64339 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64339
  friend class ::CCExprResolve;
 
64340
  friend class ::CExprResolve;
 
64341
  friend class ::WinIfExists;
 
64342
  friend class ::WinImportHandler;
 
64343
  friend class ::WinMacros;
 
64344
  friend class ::WinAsm;
 
64345
  friend class ::WinDeclSpecs;
 
64346
  friend class ::WinMemberExplSpec;
 
64347
  friend class ::WinTypeKeywords;
 
64348
  friend class ::WinFriend;
 
64349
  friend class ::ExtAC;
 
64350
  friend class ::ExtACBuilderCoupling;
 
64351
  friend class ::ExtACSyntaxCoupling;
 
64352
  friend class ::ExtACTree;
 
64353
  friend class ::ExtACKeywords;
 
64354
  friend class ::ExtGnu;
 
64355
  friend class ::PragmaOnceUnitState;
 
64356
  friend class ::PragmaOnce;
 
64357
  friend class ::CMatchSyntax;
 
64358
 
 
64359
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64360
 
 
64361
public:
 
64362
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
 
64363
   CT_DeclList (size, 2) { AddProperties (props); }
 
64364
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
64365
  static const char *NodeId ();
 
64366
  /** Get the name of the node. Can be compared with NodeId(). */
 
64367
  const char *NodeName () const { return NodeId (); }
 
64368
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
64369
};
 
64370
 
 
64371
 
 
64372
#line 64373 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64373
} // closed Puma
 
64374
class CCExprResolve;
 
64375
class CExprResolve;
 
64376
class WinIfExists;
 
64377
class WinImportHandler;
 
64378
class WinMacros;
 
64379
class WinAsm;
 
64380
class WinDeclSpecs;
 
64381
class WinMemberExplSpec;
 
64382
class WinTypeKeywords;
 
64383
class WinFriend;
 
64384
class ExtAC;
 
64385
class ExtACBuilderCoupling;
 
64386
class ExtACSyntaxCoupling;
 
64387
class ExtACTree;
 
64388
class ExtACKeywords;
 
64389
class ExtGnu;
 
64390
class PragmaOnceUnitState;
 
64391
class PragmaOnce;
 
64392
class CMatchSyntax;
 
64393
namespace Puma {
 
64394
 
 
64395
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64396
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
 
64397
#line 64398 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64398
  friend class ::CCExprResolve;
 
64399
  friend class ::CExprResolve;
 
64400
  friend class ::WinIfExists;
 
64401
  friend class ::WinImportHandler;
 
64402
  friend class ::WinMacros;
 
64403
  friend class ::WinAsm;
 
64404
  friend class ::WinDeclSpecs;
 
64405
  friend class ::WinMemberExplSpec;
 
64406
  friend class ::WinTypeKeywords;
 
64407
  friend class ::WinFriend;
 
64408
  friend class ::ExtAC;
 
64409
  friend class ::ExtACBuilderCoupling;
 
64410
  friend class ::ExtACSyntaxCoupling;
 
64411
  friend class ::ExtACTree;
 
64412
  friend class ::ExtACKeywords;
 
64413
  friend class ::ExtGnu;
 
64414
  friend class ::PragmaOnceUnitState;
 
64415
  friend class ::PragmaOnce;
 
64416
  friend class ::CMatchSyntax;
 
64417
 
 
64418
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64419
 
 
64420
public:
 
64421
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
64422
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
64423
  static const char *NodeId ();
 
64424
  /** Get the name of the node. Can be compared with NodeId(). */
 
64425
  const char *NodeName () const { return NodeId (); }
 
64426
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
64427
};
 
64428
 
 
64429
 
 
64430
#line 64431 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64431
} // closed Puma
 
64432
class CCExprResolve;
 
64433
class CExprResolve;
 
64434
class WinIfExists;
 
64435
class WinImportHandler;
 
64436
class WinMacros;
 
64437
class WinAsm;
 
64438
class WinDeclSpecs;
 
64439
class WinMemberExplSpec;
 
64440
class WinTypeKeywords;
 
64441
class WinFriend;
 
64442
class ExtAC;
 
64443
class ExtACBuilderCoupling;
 
64444
class ExtACSyntaxCoupling;
 
64445
class ExtACTree;
 
64446
class ExtACKeywords;
 
64447
class ExtGnu;
 
64448
class PragmaOnceUnitState;
 
64449
class PragmaOnce;
 
64450
class CMatchSyntax;
 
64451
namespace Puma {
 
64452
 
 
64453
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64454
class CT_ArgNameList : public CT_ArgDeclList {
 
64455
#line 64456 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64456
  friend class ::CCExprResolve;
 
64457
  friend class ::CExprResolve;
 
64458
  friend class ::WinIfExists;
 
64459
  friend class ::WinImportHandler;
 
64460
  friend class ::WinMacros;
 
64461
  friend class ::WinAsm;
 
64462
  friend class ::WinDeclSpecs;
 
64463
  friend class ::WinMemberExplSpec;
 
64464
  friend class ::WinTypeKeywords;
 
64465
  friend class ::WinFriend;
 
64466
  friend class ::ExtAC;
 
64467
  friend class ::ExtACBuilderCoupling;
 
64468
  friend class ::ExtACSyntaxCoupling;
 
64469
  friend class ::ExtACTree;
 
64470
  friend class ::ExtACKeywords;
 
64471
  friend class ::ExtGnu;
 
64472
  friend class ::PragmaOnceUnitState;
 
64473
  friend class ::PragmaOnce;
 
64474
  friend class ::CMatchSyntax;
 
64475
 
 
64476
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64477
 
 
64478
public:
 
64479
  CT_ArgNameList () : CT_ArgDeclList () {}
 
64480
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
64481
  static const char *NodeId ();
 
64482
  /** Get the name of the node. Can be compared with NodeId(). */
 
64483
  const char *NodeName () const { return NodeId (); }
 
64484
};
 
64485
 
 
64486
 
 
64487
#line 64488 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64488
} // closed Puma
 
64489
class CCExprResolve;
 
64490
class CExprResolve;
 
64491
class WinIfExists;
 
64492
class WinImportHandler;
 
64493
class WinMacros;
 
64494
class WinAsm;
 
64495
class WinDeclSpecs;
 
64496
class WinMemberExplSpec;
 
64497
class WinTypeKeywords;
 
64498
class WinFriend;
 
64499
class ExtAC;
 
64500
class ExtACBuilderCoupling;
 
64501
class ExtACSyntaxCoupling;
 
64502
class ExtACTree;
 
64503
class ExtACKeywords;
 
64504
class ExtGnu;
 
64505
class PragmaOnceUnitState;
 
64506
class PragmaOnce;
 
64507
class CMatchSyntax;
 
64508
namespace Puma {
 
64509
 
 
64510
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64511
class CT_NamespaceDef : public CT_Decl, public CSemObject {
 
64512
#line 64513 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64513
  friend class ::CCExprResolve;
 
64514
  friend class ::CExprResolve;
 
64515
  friend class ::WinIfExists;
 
64516
  friend class ::WinImportHandler;
 
64517
  friend class ::WinMacros;
 
64518
  friend class ::WinAsm;
 
64519
  friend class ::WinDeclSpecs;
 
64520
  friend class ::WinMemberExplSpec;
 
64521
  friend class ::WinTypeKeywords;
 
64522
  friend class ::WinFriend;
 
64523
  friend class ::ExtAC;
 
64524
  friend class ::ExtACBuilderCoupling;
 
64525
  friend class ::ExtACSyntaxCoupling;
 
64526
  friend class ::ExtACTree;
 
64527
  friend class ::ExtACKeywords;
 
64528
  friend class ::ExtGnu;
 
64529
  friend class ::PragmaOnceUnitState;
 
64530
  friend class ::PragmaOnce;
 
64531
  friend class ::CMatchSyntax;
 
64532
 
 
64533
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64534
 
 
64535
  CTree *sons[3]; // ns, name, members
 
64536
 
 
64537
public:
 
64538
  CT_NamespaceDef (CTree *n, CTree *nm) {
 
64539
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
 
64540
  }
 
64541
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
 
64542
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
 
64543
  }
 
64544
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
64545
  static const char *NodeId ();
 
64546
  /** Get the name of the node. Can be compared with NodeId(). */
 
64547
  const char *NodeName () const { return NodeId (); }
 
64548
  /** Get the number of sons. */
 
64549
  int Sons () const { return CTree::Sons (sons, 3); }
 
64550
  /** Get the n-th son.
 
64551
   *  \param n The index of the son.
 
64552
   *  \return The n-th son or NULL. */
 
64553
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
64554
  void Members (CTree *m) { AddSon (sons[2], m); }
 
64555
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
 
64556
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
64557
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
64558
  /** Replace a son.
 
64559
   *  \param old_son The son to replace.
 
64560
   *  \param new_son The new son. */
 
64561
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
64562
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
64563
  }
 
64564
};
 
64565
 
 
64566
 
 
64567
#line 64568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64568
} // closed Puma
 
64569
class CCExprResolve;
 
64570
class CExprResolve;
 
64571
class WinIfExists;
 
64572
class WinImportHandler;
 
64573
class WinMacros;
 
64574
class WinAsm;
 
64575
class WinDeclSpecs;
 
64576
class WinMemberExplSpec;
 
64577
class WinTypeKeywords;
 
64578
class WinFriend;
 
64579
class ExtAC;
 
64580
class ExtACBuilderCoupling;
 
64581
class ExtACSyntaxCoupling;
 
64582
class ExtACTree;
 
64583
class ExtACKeywords;
 
64584
class ExtGnu;
 
64585
class PragmaOnceUnitState;
 
64586
class PragmaOnce;
 
64587
class CMatchSyntax;
 
64588
namespace Puma {
 
64589
 
 
64590
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64591
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
 
64592
#line 64593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64593
  friend class ::CCExprResolve;
 
64594
  friend class ::CExprResolve;
 
64595
  friend class ::WinIfExists;
 
64596
  friend class ::WinImportHandler;
 
64597
  friend class ::WinMacros;
 
64598
  friend class ::WinAsm;
 
64599
  friend class ::WinDeclSpecs;
 
64600
  friend class ::WinMemberExplSpec;
 
64601
  friend class ::WinTypeKeywords;
 
64602
  friend class ::WinFriend;
 
64603
  friend class ::ExtAC;
 
64604
  friend class ::ExtACBuilderCoupling;
 
64605
  friend class ::ExtACSyntaxCoupling;
 
64606
  friend class ::ExtACTree;
 
64607
  friend class ::ExtACKeywords;
 
64608
  friend class ::ExtGnu;
 
64609
  friend class ::PragmaOnceUnitState;
 
64610
  friend class ::PragmaOnce;
 
64611
  friend class ::CMatchSyntax;
 
64612
 
 
64613
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64614
 
 
64615
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
 
64616
 
 
64617
public:
 
64618
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
 
64619
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
64620
    AddSon (sons[3], nm); AddSon (sons[4], s); 
 
64621
  }
 
64622
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
64623
  static const char *NodeId ();
 
64624
  /** Get the name of the node. Can be compared with NodeId(). */
 
64625
  const char *NodeName () const { return NodeId (); }
 
64626
  /** Get the number of sons. */
 
64627
  int Sons () const { return 5; }
 
64628
  /** Get the n-th son.
 
64629
   *  \param n The index of the son.
 
64630
   *  \return The n-th son or NULL. */
 
64631
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
64632
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
 
64633
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
 
64634
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
64635
  /** Replace a son.
 
64636
   *  \param old_son The son to replace.
 
64637
   *  \param new_son The new son. */
 
64638
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
64639
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
64640
  }
 
64641
};
 
64642
 
 
64643
 
 
64644
#line 64645 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64645
} // closed Puma
 
64646
class CCExprResolve;
 
64647
class CExprResolve;
 
64648
class WinIfExists;
 
64649
class WinImportHandler;
 
64650
class WinMacros;
 
64651
class WinAsm;
 
64652
class WinDeclSpecs;
 
64653
class WinMemberExplSpec;
 
64654
class WinTypeKeywords;
 
64655
class WinFriend;
 
64656
class ExtAC;
 
64657
class ExtACBuilderCoupling;
 
64658
class ExtACSyntaxCoupling;
 
64659
class ExtACTree;
 
64660
class ExtACKeywords;
 
64661
class ExtGnu;
 
64662
class PragmaOnceUnitState;
 
64663
class PragmaOnce;
 
64664
class CMatchSyntax;
 
64665
namespace Puma {
 
64666
 
 
64667
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64668
class CT_UsingDirective : public CT_Decl {
 
64669
#line 64670 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64670
  friend class ::CCExprResolve;
 
64671
  friend class ::CExprResolve;
 
64672
  friend class ::WinIfExists;
 
64673
  friend class ::WinImportHandler;
 
64674
  friend class ::WinMacros;
 
64675
  friend class ::WinAsm;
 
64676
  friend class ::WinDeclSpecs;
 
64677
  friend class ::WinMemberExplSpec;
 
64678
  friend class ::WinTypeKeywords;
 
64679
  friend class ::WinFriend;
 
64680
  friend class ::ExtAC;
 
64681
  friend class ::ExtACBuilderCoupling;
 
64682
  friend class ::ExtACSyntaxCoupling;
 
64683
  friend class ::ExtACTree;
 
64684
  friend class ::ExtACKeywords;
 
64685
  friend class ::ExtGnu;
 
64686
  friend class ::PragmaOnceUnitState;
 
64687
  friend class ::PragmaOnce;
 
64688
  friend class ::CMatchSyntax;
 
64689
 
 
64690
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64691
 
 
64692
  CTree *sons[4]; // using, ns, name, semi_colon
 
64693
 
 
64694
public:
 
64695
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
 
64696
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
64697
    AddSon (sons[3], s); 
 
64698
  }
 
64699
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
64700
  static const char *NodeId ();
 
64701
  /** Get the name of the node. Can be compared with NodeId(). */
 
64702
  const char *NodeName () const { return NodeId (); }
 
64703
  /** Get the number of sons. */
 
64704
  int Sons () const { return 4; }
 
64705
  /** Get the n-th son.
 
64706
   *  \param n The index of the son.
 
64707
   *  \return The n-th son or NULL. */
 
64708
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
64709
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
64710
  /** Replace a son.
 
64711
   *  \param old_son The son to replace.
 
64712
   *  \param new_son The new son. */
 
64713
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
64714
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
64715
  }
 
64716
};
 
64717
 
 
64718
/*****************************************************************************/
 
64719
/*                                                                           */
 
64720
/*                              Declarators                                  */
 
64721
/*                                                                           */
 
64722
/*****************************************************************************/
 
64723
 
 
64724
 
 
64725
#line 64726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64726
} // closed Puma
 
64727
class CCExprResolve;
 
64728
class CExprResolve;
 
64729
class WinIfExists;
 
64730
class WinImportHandler;
 
64731
class WinMacros;
 
64732
class WinAsm;
 
64733
class WinDeclSpecs;
 
64734
class WinMemberExplSpec;
 
64735
class WinTypeKeywords;
 
64736
class WinFriend;
 
64737
class ExtAC;
 
64738
class ExtACBuilderCoupling;
 
64739
class ExtACSyntaxCoupling;
 
64740
class ExtACTree;
 
64741
class ExtACKeywords;
 
64742
class ExtGnu;
 
64743
class PragmaOnceUnitState;
 
64744
class PragmaOnce;
 
64745
class CMatchSyntax;
 
64746
namespace Puma {
 
64747
 
 
64748
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64749
class CT_Declarator : public CTree {
 
64750
#line 64751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64751
  friend class ::CCExprResolve;
 
64752
  friend class ::CExprResolve;
 
64753
  friend class ::WinIfExists;
 
64754
  friend class ::WinImportHandler;
 
64755
  friend class ::WinMacros;
 
64756
  friend class ::WinAsm;
 
64757
  friend class ::WinDeclSpecs;
 
64758
  friend class ::WinMemberExplSpec;
 
64759
  friend class ::WinTypeKeywords;
 
64760
  friend class ::WinFriend;
 
64761
  friend class ::ExtAC;
 
64762
  friend class ::ExtACBuilderCoupling;
 
64763
  friend class ::ExtACSyntaxCoupling;
 
64764
  friend class ::ExtACTree;
 
64765
  friend class ::ExtACKeywords;
 
64766
  friend class ::ExtGnu;
 
64767
  friend class ::PragmaOnceUnitState;
 
64768
  friend class ::PragmaOnce;
 
64769
  friend class ::CMatchSyntax;
 
64770
 
 
64771
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64772
 
 
64773
protected:
 
64774
  CT_Declarator () {}
 
64775
 
 
64776
public:
 
64777
  virtual CTree *Declarator () const = 0;
 
64778
  //classification function
 
64779
  virtual CT_Declarator *IsDeclarator () { return this; }
 
64780
  // locate the name node
 
64781
  CT_SimpleName *Name ();
 
64782
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
 
64783
};
 
64784
 
 
64785
 
 
64786
#line 64787 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64787
} // closed Puma
 
64788
class CCExprResolve;
 
64789
class CExprResolve;
 
64790
class WinIfExists;
 
64791
class WinImportHandler;
 
64792
class WinMacros;
 
64793
class WinAsm;
 
64794
class WinDeclSpecs;
 
64795
class WinMemberExplSpec;
 
64796
class WinTypeKeywords;
 
64797
class WinFriend;
 
64798
class ExtAC;
 
64799
class ExtACBuilderCoupling;
 
64800
class ExtACSyntaxCoupling;
 
64801
class ExtACTree;
 
64802
class ExtACKeywords;
 
64803
class ExtGnu;
 
64804
class PragmaOnceUnitState;
 
64805
class PragmaOnce;
 
64806
class CMatchSyntax;
 
64807
namespace Puma {
 
64808
 
 
64809
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64810
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
 
64811
#line 64812 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64812
  friend class ::CCExprResolve;
 
64813
  friend class ::CExprResolve;
 
64814
  friend class ::WinIfExists;
 
64815
  friend class ::WinImportHandler;
 
64816
  friend class ::WinMacros;
 
64817
  friend class ::WinAsm;
 
64818
  friend class ::WinDeclSpecs;
 
64819
  friend class ::WinMemberExplSpec;
 
64820
  friend class ::WinTypeKeywords;
 
64821
  friend class ::WinFriend;
 
64822
  friend class ::ExtAC;
 
64823
  friend class ::ExtACBuilderCoupling;
 
64824
  friend class ::ExtACSyntaxCoupling;
 
64825
  friend class ::ExtACTree;
 
64826
  friend class ::ExtACKeywords;
 
64827
  friend class ::ExtGnu;
 
64828
  friend class ::PragmaOnceUnitState;
 
64829
  friend class ::PragmaOnce;
 
64830
  friend class ::CMatchSyntax;
 
64831
 
 
64832
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64833
 
 
64834
  CTree *sons[3]; // declarator, ext, init
 
64835
  CTree *obj_decl;
 
64836
 
 
64837
public:
 
64838
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
64839
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
64840
    AddSon (obj_decl, 0); 
 
64841
  }
 
64842
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
64843
  static const char *NodeId ();
 
64844
  /** Get the name of the node. Can be compared with NodeId(). */
 
64845
  const char *NodeName () const { return NodeId (); }
 
64846
  /** Get the number of sons. */
 
64847
  int Sons () const { return CTree::Sons (sons, 3); }
 
64848
  /** Get the n-th son.
 
64849
   *  \param n The index of the son.
 
64850
   *  \return The n-th son or NULL. */
 
64851
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
64852
  CTree *Declarator () const { return sons[0]; }
 
64853
  CTree *Extension () const { return sons[1]; }
 
64854
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
64855
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
64856
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
64857
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
64858
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
64859
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
64860
  /** Replace a son.
 
64861
   *  \param old_son The son to replace.
 
64862
   *  \param new_son The new son. */
 
64863
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
64864
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
64865
  }
 
64866
};
 
64867
 
 
64868
 
 
64869
#line 64870 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64870
} // closed Puma
 
64871
class CCExprResolve;
 
64872
class CExprResolve;
 
64873
class WinIfExists;
 
64874
class WinImportHandler;
 
64875
class WinMacros;
 
64876
class WinAsm;
 
64877
class WinDeclSpecs;
 
64878
class WinMemberExplSpec;
 
64879
class WinTypeKeywords;
 
64880
class WinFriend;
 
64881
class ExtAC;
 
64882
class ExtACBuilderCoupling;
 
64883
class ExtACSyntaxCoupling;
 
64884
class ExtACTree;
 
64885
class ExtACKeywords;
 
64886
class ExtGnu;
 
64887
class PragmaOnceUnitState;
 
64888
class PragmaOnce;
 
64889
class CMatchSyntax;
 
64890
namespace Puma {
 
64891
 
 
64892
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64893
class CT_BracedDeclarator : public CT_Declarator {
 
64894
#line 64895 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64895
  friend class ::CCExprResolve;
 
64896
  friend class ::CExprResolve;
 
64897
  friend class ::WinIfExists;
 
64898
  friend class ::WinImportHandler;
 
64899
  friend class ::WinMacros;
 
64900
  friend class ::WinAsm;
 
64901
  friend class ::WinDeclSpecs;
 
64902
  friend class ::WinMemberExplSpec;
 
64903
  friend class ::WinTypeKeywords;
 
64904
  friend class ::WinFriend;
 
64905
  friend class ::ExtAC;
 
64906
  friend class ::ExtACBuilderCoupling;
 
64907
  friend class ::ExtACSyntaxCoupling;
 
64908
  friend class ::ExtACTree;
 
64909
  friend class ::ExtACKeywords;
 
64910
  friend class ::ExtGnu;
 
64911
  friend class ::PragmaOnceUnitState;
 
64912
  friend class ::PragmaOnce;
 
64913
  friend class ::CMatchSyntax;
 
64914
 
 
64915
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64916
 
 
64917
  CTree *sons[4]; // open, win_specs, declarator, close
 
64918
 
 
64919
public:
 
64920
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
 
64921
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
64922
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
64923
  }
 
64924
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
 
64925
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
64926
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
64927
  }
 
64928
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
64929
  static const char *NodeId ();
 
64930
  /** Get the name of the node. Can be compared with NodeId(). */
 
64931
  const char *NodeName () const { return NodeId (); }
 
64932
  /** Get the number of sons. */
 
64933
  int Sons () const { return CTree::Sons (sons, 4); }
 
64934
  /** Get the n-th son.
 
64935
   *  \param n The index of the son.
 
64936
   *  \return The n-th son or NULL. */
 
64937
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
64938
  CTree *Declarator () const { return sons[2]; }
 
64939
  /** Replace a son.
 
64940
   *  \param old_son The son to replace.
 
64941
   *  \param new_son The new son. */
 
64942
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
64943
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
64944
  }
 
64945
};
 
64946
 
 
64947
 
 
64948
#line 64949 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64949
} // closed Puma
 
64950
class CCExprResolve;
 
64951
class CExprResolve;
 
64952
class WinIfExists;
 
64953
class WinImportHandler;
 
64954
class WinMacros;
 
64955
class WinAsm;
 
64956
class WinDeclSpecs;
 
64957
class WinMemberExplSpec;
 
64958
class WinTypeKeywords;
 
64959
class WinFriend;
 
64960
class ExtAC;
 
64961
class ExtACBuilderCoupling;
 
64962
class ExtACSyntaxCoupling;
 
64963
class ExtACTree;
 
64964
class ExtACKeywords;
 
64965
class ExtGnu;
 
64966
class PragmaOnceUnitState;
 
64967
class PragmaOnce;
 
64968
class CMatchSyntax;
 
64969
namespace Puma {
 
64970
 
 
64971
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64972
class CT_ArrayDelimiter : public CTree {
 
64973
#line 64974 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
64974
  friend class ::CCExprResolve;
 
64975
  friend class ::CExprResolve;
 
64976
  friend class ::WinIfExists;
 
64977
  friend class ::WinImportHandler;
 
64978
  friend class ::WinMacros;
 
64979
  friend class ::WinAsm;
 
64980
  friend class ::WinDeclSpecs;
 
64981
  friend class ::WinMemberExplSpec;
 
64982
  friend class ::WinTypeKeywords;
 
64983
  friend class ::WinFriend;
 
64984
  friend class ::ExtAC;
 
64985
  friend class ::ExtACBuilderCoupling;
 
64986
  friend class ::ExtACSyntaxCoupling;
 
64987
  friend class ::ExtACTree;
 
64988
  friend class ::ExtACKeywords;
 
64989
  friend class ::ExtGnu;
 
64990
  friend class ::PragmaOnceUnitState;
 
64991
  friend class ::PragmaOnce;
 
64992
  friend class ::CMatchSyntax;
 
64993
 
 
64994
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64995
 
 
64996
  CTree *sons[4]; // star, static, quals, expr
 
64997
  bool pos0;
 
64998
 
 
64999
public:
 
65000
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
 
65001
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
65002
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
 
65003
  }
 
65004
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
65005
  static const char *NodeId ();
 
65006
  /** Get the name of the node. Can be compared with NodeId(). */
 
65007
  const char *NodeName () const { return NodeId (); }
 
65008
  /** Get the number of sons. */
 
65009
  int Sons () const { return CTree::Sons (sons, 4); }
 
65010
  /** Get the n-th son.
 
65011
   *  \param n The index of the son.
 
65012
   *  \return The n-th son or NULL. */
 
65013
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
65014
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
 
65015
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
 
65016
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
 
65017
  CTree *Expr () const { return sons[3]; }
 
65018
  /** Replace a son.
 
65019
   *  \param old_son The son to replace.
 
65020
   *  \param new_son The new son. */
 
65021
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
65022
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
65023
  }
 
65024
};
 
65025
 
 
65026
 
 
65027
#line 65028 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65028
} // closed Puma
 
65029
class CCExprResolve;
 
65030
class CExprResolve;
 
65031
class WinIfExists;
 
65032
class WinImportHandler;
 
65033
class WinMacros;
 
65034
class WinAsm;
 
65035
class WinDeclSpecs;
 
65036
class WinMemberExplSpec;
 
65037
class WinTypeKeywords;
 
65038
class WinFriend;
 
65039
class ExtAC;
 
65040
class ExtACBuilderCoupling;
 
65041
class ExtACSyntaxCoupling;
 
65042
class ExtACTree;
 
65043
class ExtACKeywords;
 
65044
class ExtGnu;
 
65045
class PragmaOnceUnitState;
 
65046
class PragmaOnce;
 
65047
class CMatchSyntax;
 
65048
namespace Puma {
 
65049
 
 
65050
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65051
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
 
65052
#line 65053 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65053
  friend class ::CCExprResolve;
 
65054
  friend class ::CExprResolve;
 
65055
  friend class ::WinIfExists;
 
65056
  friend class ::WinImportHandler;
 
65057
  friend class ::WinMacros;
 
65058
  friend class ::WinAsm;
 
65059
  friend class ::WinDeclSpecs;
 
65060
  friend class ::WinMemberExplSpec;
 
65061
  friend class ::WinTypeKeywords;
 
65062
  friend class ::WinFriend;
 
65063
  friend class ::ExtAC;
 
65064
  friend class ::ExtACBuilderCoupling;
 
65065
  friend class ::ExtACSyntaxCoupling;
 
65066
  friend class ::ExtACTree;
 
65067
  friend class ::ExtACKeywords;
 
65068
  friend class ::ExtGnu;
 
65069
  friend class ::PragmaOnceUnitState;
 
65070
  friend class ::PragmaOnce;
 
65071
  friend class ::CMatchSyntax;
 
65072
 
 
65073
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65074
 
 
65075
  CTree *sons[4]; // declarator, open, delim, close
 
65076
 
 
65077
public:
 
65078
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
 
65079
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
65080
    AddSon (sons[2], ad); AddSon (sons[3], c); 
 
65081
  }
 
65082
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
65083
  static const char *NodeId ();
 
65084
  /** Get the name of the node. Can be compared with NodeId(). */
 
65085
  const char *NodeName () const { return NodeId (); }
 
65086
  /** Get the number of sons. */
 
65087
  int Sons () const { return 4; }
 
65088
  /** Get the n-th son.
 
65089
   *  \param n The index of the son.
 
65090
   *  \return The n-th son or NULL. */
 
65091
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
65092
  CTree *Declarator () const { return sons[0]; }
 
65093
  CT_ArrayDelimiter *Delimiter () const 
 
65094
   { return (CT_ArrayDelimiter*)sons[2]; }
 
65095
  /** Replace a son.
 
65096
   *  \param old_son The son to replace.
 
65097
   *  \param new_son The new son. */
 
65098
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
65099
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
65100
  }
 
65101
  CTypeInfo *Type () const { return type; }
 
65102
  CExprValue *Value () const { return value; }
 
65103
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
65104
};
 
65105
 
 
65106
 
 
65107
#line 65108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65108
} // closed Puma
 
65109
class CCExprResolve;
 
65110
class CExprResolve;
 
65111
class WinIfExists;
 
65112
class WinImportHandler;
 
65113
class WinMacros;
 
65114
class WinAsm;
 
65115
class WinDeclSpecs;
 
65116
class WinMemberExplSpec;
 
65117
class WinTypeKeywords;
 
65118
class WinFriend;
 
65119
class ExtAC;
 
65120
class ExtACBuilderCoupling;
 
65121
class ExtACSyntaxCoupling;
 
65122
class ExtACTree;
 
65123
class ExtACKeywords;
 
65124
class ExtGnu;
 
65125
class PragmaOnceUnitState;
 
65126
class PragmaOnce;
 
65127
class CMatchSyntax;
 
65128
namespace Puma {
 
65129
 
 
65130
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65131
class CT_FctDeclarator : public CT_Declarator {
 
65132
#line 65133 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65133
  friend class ::CCExprResolve;
 
65134
  friend class ::CExprResolve;
 
65135
  friend class ::WinIfExists;
 
65136
  friend class ::WinImportHandler;
 
65137
  friend class ::WinMacros;
 
65138
  friend class ::WinAsm;
 
65139
  friend class ::WinDeclSpecs;
 
65140
  friend class ::WinMemberExplSpec;
 
65141
  friend class ::WinTypeKeywords;
 
65142
  friend class ::WinFriend;
 
65143
  friend class ::ExtAC;
 
65144
  friend class ::ExtACBuilderCoupling;
 
65145
  friend class ::ExtACSyntaxCoupling;
 
65146
  friend class ::ExtACTree;
 
65147
  friend class ::ExtACKeywords;
 
65148
  friend class ::ExtGnu;
 
65149
  friend class ::PragmaOnceUnitState;
 
65150
  friend class ::PragmaOnce;
 
65151
  friend class ::CMatchSyntax;
 
65152
 
 
65153
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65154
 
 
65155
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
 
65156
 
 
65157
public:
 
65158
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
 
65159
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
65160
    AddSon (sons[2], cv); AddSon (sons[3], es); 
 
65161
  }
 
65162
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
65163
  static const char *NodeId ();
 
65164
  /** Get the name of the node. Can be compared with NodeId(). */
 
65165
  const char *NodeName () const { return NodeId (); }
 
65166
  /** Get the number of sons. */
 
65167
  int Sons () const { return CTree::Sons (sons, 4); }
 
65168
  /** Get the n-th son.
 
65169
   *  \param n The index of the son.
 
65170
   *  \return The n-th son or NULL. */
 
65171
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
65172
  CTree *Declarator () const { return sons[0]; }
 
65173
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
65174
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
 
65175
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
65176
  /** Replace a son.
 
65177
   *  \param old_son The son to replace.
 
65178
   *  \param new_son The new son. */
 
65179
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
65180
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
65181
  }
 
65182
};
 
65183
 
 
65184
 
 
65185
#line 65186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65186
} // closed Puma
 
65187
class CCExprResolve;
 
65188
class CExprResolve;
 
65189
class WinIfExists;
 
65190
class WinImportHandler;
 
65191
class WinMacros;
 
65192
class WinAsm;
 
65193
class WinDeclSpecs;
 
65194
class WinMemberExplSpec;
 
65195
class WinTypeKeywords;
 
65196
class WinFriend;
 
65197
class ExtAC;
 
65198
class ExtACBuilderCoupling;
 
65199
class ExtACSyntaxCoupling;
 
65200
class ExtACTree;
 
65201
class ExtACKeywords;
 
65202
class ExtGnu;
 
65203
class PragmaOnceUnitState;
 
65204
class PragmaOnce;
 
65205
class CMatchSyntax;
 
65206
namespace Puma {
 
65207
 
 
65208
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65209
class CT_RefDeclarator : public CT_Declarator {
 
65210
#line 65211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65211
  friend class ::CCExprResolve;
 
65212
  friend class ::CExprResolve;
 
65213
  friend class ::WinIfExists;
 
65214
  friend class ::WinImportHandler;
 
65215
  friend class ::WinMacros;
 
65216
  friend class ::WinAsm;
 
65217
  friend class ::WinDeclSpecs;
 
65218
  friend class ::WinMemberExplSpec;
 
65219
  friend class ::WinTypeKeywords;
 
65220
  friend class ::WinFriend;
 
65221
  friend class ::ExtAC;
 
65222
  friend class ::ExtACBuilderCoupling;
 
65223
  friend class ::ExtACSyntaxCoupling;
 
65224
  friend class ::ExtACTree;
 
65225
  friend class ::ExtACKeywords;
 
65226
  friend class ::ExtGnu;
 
65227
  friend class ::PragmaOnceUnitState;
 
65228
  friend class ::PragmaOnce;
 
65229
  friend class ::CMatchSyntax;
 
65230
 
 
65231
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65232
 
 
65233
  CTree *sons[2]; // ref, declarator
 
65234
 
 
65235
public:
 
65236
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
65237
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
65238
  static const char *NodeId ();
 
65239
  /** Get the name of the node. Can be compared with NodeId(). */
 
65240
  const char *NodeName () const { return NodeId (); }
 
65241
  /** Get the number of sons. */
 
65242
  int Sons () const { return 2; }
 
65243
  /** Get the n-th son.
 
65244
   *  \param n The index of the son.
 
65245
   *  \return The n-th son or NULL. */
 
65246
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
65247
  CTree *Declarator () const { return sons[1]; }
 
65248
  /** Replace a son.
 
65249
   *  \param old_son The son to replace.
 
65250
   *  \param new_son The new son. */
 
65251
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
65252
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
65253
  }
 
65254
};
 
65255
 
 
65256
 
 
65257
#line 65258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65258
} // closed Puma
 
65259
class CCExprResolve;
 
65260
class CExprResolve;
 
65261
class WinIfExists;
 
65262
class WinImportHandler;
 
65263
class WinMacros;
 
65264
class WinAsm;
 
65265
class WinDeclSpecs;
 
65266
class WinMemberExplSpec;
 
65267
class WinTypeKeywords;
 
65268
class WinFriend;
 
65269
class ExtAC;
 
65270
class ExtACBuilderCoupling;
 
65271
class ExtACSyntaxCoupling;
 
65272
class ExtACTree;
 
65273
class ExtACKeywords;
 
65274
class ExtGnu;
 
65275
class PragmaOnceUnitState;
 
65276
class PragmaOnce;
 
65277
class CMatchSyntax;
 
65278
namespace Puma {
 
65279
 
 
65280
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65281
class CT_PtrDeclarator : public CT_Declarator {
 
65282
#line 65283 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65283
  friend class ::CCExprResolve;
 
65284
  friend class ::CExprResolve;
 
65285
  friend class ::WinIfExists;
 
65286
  friend class ::WinImportHandler;
 
65287
  friend class ::WinMacros;
 
65288
  friend class ::WinAsm;
 
65289
  friend class ::WinDeclSpecs;
 
65290
  friend class ::WinMemberExplSpec;
 
65291
  friend class ::WinTypeKeywords;
 
65292
  friend class ::WinFriend;
 
65293
  friend class ::ExtAC;
 
65294
  friend class ::ExtACBuilderCoupling;
 
65295
  friend class ::ExtACSyntaxCoupling;
 
65296
  friend class ::ExtACTree;
 
65297
  friend class ::ExtACKeywords;
 
65298
  friend class ::ExtGnu;
 
65299
  friend class ::PragmaOnceUnitState;
 
65300
  friend class ::PragmaOnce;
 
65301
  friend class ::CMatchSyntax;
 
65302
 
 
65303
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65304
 
 
65305
  CTree *sons[3]; // ptr, cv_quals, declarator
 
65306
 
 
65307
public:
 
65308
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
 
65309
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
 
65310
  }
 
65311
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
65312
  static const char *NodeId ();
 
65313
  /** Get the name of the node. Can be compared with NodeId(). */
 
65314
  const char *NodeName () const { return NodeId (); }
 
65315
  /** Get the number of sons. */
 
65316
  int Sons () const { return CTree::Sons (sons, 3); }
 
65317
  /** Get the n-th son.
 
65318
   *  \param n The index of the son.
 
65319
   *  \return The n-th son or NULL. */
 
65320
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
65321
  CTree *Declarator () const { return sons[2]; }
 
65322
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
65323
  /** Replace a son.
 
65324
   *  \param old_son The son to replace.
 
65325
   *  \param new_son The new son. */
 
65326
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
65327
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
65328
  }
 
65329
};
 
65330
 
 
65331
 
 
65332
#line 65333 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65333
} // closed Puma
 
65334
class CCExprResolve;
 
65335
class CExprResolve;
 
65336
class WinIfExists;
 
65337
class WinImportHandler;
 
65338
class WinMacros;
 
65339
class WinAsm;
 
65340
class WinDeclSpecs;
 
65341
class WinMemberExplSpec;
 
65342
class WinTypeKeywords;
 
65343
class WinFriend;
 
65344
class ExtAC;
 
65345
class ExtACBuilderCoupling;
 
65346
class ExtACSyntaxCoupling;
 
65347
class ExtACTree;
 
65348
class ExtACKeywords;
 
65349
class ExtGnu;
 
65350
class PragmaOnceUnitState;
 
65351
class PragmaOnce;
 
65352
class CMatchSyntax;
 
65353
namespace Puma {
 
65354
 
 
65355
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65356
class CT_MembPtrDeclarator : public CT_Declarator {
 
65357
#line 65358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65358
  friend class ::CCExprResolve;
 
65359
  friend class ::CExprResolve;
 
65360
  friend class ::WinIfExists;
 
65361
  friend class ::WinImportHandler;
 
65362
  friend class ::WinMacros;
 
65363
  friend class ::WinAsm;
 
65364
  friend class ::WinDeclSpecs;
 
65365
  friend class ::WinMemberExplSpec;
 
65366
  friend class ::WinTypeKeywords;
 
65367
  friend class ::WinFriend;
 
65368
  friend class ::ExtAC;
 
65369
  friend class ::ExtACBuilderCoupling;
 
65370
  friend class ::ExtACSyntaxCoupling;
 
65371
  friend class ::ExtACTree;
 
65372
  friend class ::ExtACKeywords;
 
65373
  friend class ::ExtGnu;
 
65374
  friend class ::PragmaOnceUnitState;
 
65375
  friend class ::PragmaOnce;
 
65376
  friend class ::CMatchSyntax;
 
65377
 
 
65378
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65379
 
 
65380
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
 
65381
 
 
65382
public:
 
65383
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
 
65384
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
65385
    AddSon (sons[3], q); AddSon (sons[4], d); 
 
65386
  }
 
65387
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
65388
  static const char *NodeId ();
 
65389
  /** Get the name of the node. Can be compared with NodeId(). */
 
65390
  const char *NodeName () const { return NodeId (); }
 
65391
  /** Get the number of sons. */
 
65392
  int Sons () const { return CTree::Sons (sons, 5); }
 
65393
  /** Get the n-th son.
 
65394
   *  \param n The index of the son.
 
65395
   *  \return The n-th son or NULL. */
 
65396
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
65397
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
65398
  CTree *Declarator () const { return sons[4]; }
 
65399
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
65400
  /** Replace a son.
 
65401
   *  \param old_son The son to replace.
 
65402
   *  \param new_son The new son. */
 
65403
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
65404
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
65405
  }
 
65406
};
 
65407
 
 
65408
 
 
65409
#line 65410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65410
} // closed Puma
 
65411
class CCExprResolve;
 
65412
class CExprResolve;
 
65413
class WinIfExists;
 
65414
class WinImportHandler;
 
65415
class WinMacros;
 
65416
class WinAsm;
 
65417
class WinDeclSpecs;
 
65418
class WinMemberExplSpec;
 
65419
class WinTypeKeywords;
 
65420
class WinFriend;
 
65421
class ExtAC;
 
65422
class ExtACBuilderCoupling;
 
65423
class ExtACSyntaxCoupling;
 
65424
class ExtACTree;
 
65425
class ExtACKeywords;
 
65426
class ExtGnu;
 
65427
class PragmaOnceUnitState;
 
65428
class PragmaOnce;
 
65429
class CMatchSyntax;
 
65430
namespace Puma {
 
65431
 
 
65432
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65433
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
 
65434
#line 65435 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65435
  friend class ::CCExprResolve;
 
65436
  friend class ::CExprResolve;
 
65437
  friend class ::WinIfExists;
 
65438
  friend class ::WinImportHandler;
 
65439
  friend class ::WinMacros;
 
65440
  friend class ::WinAsm;
 
65441
  friend class ::WinDeclSpecs;
 
65442
  friend class ::WinMemberExplSpec;
 
65443
  friend class ::WinTypeKeywords;
 
65444
  friend class ::WinFriend;
 
65445
  friend class ::ExtAC;
 
65446
  friend class ::ExtACBuilderCoupling;
 
65447
  friend class ::ExtACSyntaxCoupling;
 
65448
  friend class ::ExtACTree;
 
65449
  friend class ::ExtACKeywords;
 
65450
  friend class ::ExtGnu;
 
65451
  friend class ::PragmaOnceUnitState;
 
65452
  friend class ::PragmaOnce;
 
65453
  friend class ::CMatchSyntax;
 
65454
 
 
65455
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65456
 
 
65457
  CTree *sons[3]; // declarator, colon, expr
 
65458
 
 
65459
public:
 
65460
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
 
65461
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
 
65462
  }
 
65463
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
65464
  static const char *NodeId ();
 
65465
  /** Get the name of the node. Can be compared with NodeId(). */
 
65466
  const char *NodeName () const { return NodeId (); }
 
65467
  /** Get the number of sons. */
 
65468
  int Sons () const { return CTree::Sons (sons, 3); }
 
65469
  /** Get the n-th son.
 
65470
   *  \param n The index of the son.
 
65471
   *  \return The n-th son or NULL. */
 
65472
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
65473
  CTree *Declarator () const { return sons[0]; }
 
65474
  CTree *Expr () const { return sons[2]; }
 
65475
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
 
65476
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
65477
  /** Replace a son.
 
65478
   *  \param old_son The son to replace.
 
65479
   *  \param new_son The new son. */
 
65480
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
65481
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
65482
  }
 
65483
};
 
65484
 
 
65485
/*****************************************************************************/
 
65486
/*                                                                           */
 
65487
/*                              Statements                                   */
 
65488
/*                                                                           */
 
65489
/*****************************************************************************/
 
65490
 
 
65491
 
 
65492
#line 65493 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65493
} // closed Puma
 
65494
class CCExprResolve;
 
65495
class CExprResolve;
 
65496
class WinIfExists;
 
65497
class WinImportHandler;
 
65498
class WinMacros;
 
65499
class WinAsm;
 
65500
class WinDeclSpecs;
 
65501
class WinMemberExplSpec;
 
65502
class WinTypeKeywords;
 
65503
class WinFriend;
 
65504
class ExtAC;
 
65505
class ExtACBuilderCoupling;
 
65506
class ExtACSyntaxCoupling;
 
65507
class ExtACTree;
 
65508
class ExtACKeywords;
 
65509
class ExtGnu;
 
65510
class PragmaOnceUnitState;
 
65511
class PragmaOnce;
 
65512
class CMatchSyntax;
 
65513
namespace Puma {
 
65514
 
 
65515
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65516
class CT_Statement : public CTree {
 
65517
#line 65518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65518
  friend class ::CCExprResolve;
 
65519
  friend class ::CExprResolve;
 
65520
  friend class ::WinIfExists;
 
65521
  friend class ::WinImportHandler;
 
65522
  friend class ::WinMacros;
 
65523
  friend class ::WinAsm;
 
65524
  friend class ::WinDeclSpecs;
 
65525
  friend class ::WinMemberExplSpec;
 
65526
  friend class ::WinTypeKeywords;
 
65527
  friend class ::WinFriend;
 
65528
  friend class ::ExtAC;
 
65529
  friend class ::ExtACBuilderCoupling;
 
65530
  friend class ::ExtACSyntaxCoupling;
 
65531
  friend class ::ExtACTree;
 
65532
  friend class ::ExtACKeywords;
 
65533
  friend class ::ExtGnu;
 
65534
  friend class ::PragmaOnceUnitState;
 
65535
  friend class ::PragmaOnce;
 
65536
  friend class ::CMatchSyntax;
 
65537
 
 
65538
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65539
 
 
65540
protected:
 
65541
  CT_Statement () {}
 
65542
  virtual CT_Statement *IsStatement () { return this; }
 
65543
};
 
65544
 
 
65545
 
 
65546
#line 65547 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65547
} // closed Puma
 
65548
class CCExprResolve;
 
65549
class CExprResolve;
 
65550
class WinIfExists;
 
65551
class WinImportHandler;
 
65552
class WinMacros;
 
65553
class WinAsm;
 
65554
class WinDeclSpecs;
 
65555
class WinMemberExplSpec;
 
65556
class WinTypeKeywords;
 
65557
class WinFriend;
 
65558
class ExtAC;
 
65559
class ExtACBuilderCoupling;
 
65560
class ExtACSyntaxCoupling;
 
65561
class ExtACTree;
 
65562
class ExtACKeywords;
 
65563
class ExtGnu;
 
65564
class PragmaOnceUnitState;
 
65565
class PragmaOnce;
 
65566
class CMatchSyntax;
 
65567
namespace Puma {
 
65568
 
 
65569
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65570
class CT_LabelStmt : public CT_Statement {
 
65571
#line 65572 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65572
  friend class ::CCExprResolve;
 
65573
  friend class ::CExprResolve;
 
65574
  friend class ::WinIfExists;
 
65575
  friend class ::WinImportHandler;
 
65576
  friend class ::WinMacros;
 
65577
  friend class ::WinAsm;
 
65578
  friend class ::WinDeclSpecs;
 
65579
  friend class ::WinMemberExplSpec;
 
65580
  friend class ::WinTypeKeywords;
 
65581
  friend class ::WinFriend;
 
65582
  friend class ::ExtAC;
 
65583
  friend class ::ExtACBuilderCoupling;
 
65584
  friend class ::ExtACSyntaxCoupling;
 
65585
  friend class ::ExtACTree;
 
65586
  friend class ::ExtACKeywords;
 
65587
  friend class ::ExtGnu;
 
65588
  friend class ::PragmaOnceUnitState;
 
65589
  friend class ::PragmaOnce;
 
65590
  friend class ::CMatchSyntax;
 
65591
 
 
65592
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65593
 
 
65594
  CTree *sons[3]; // id, colon, stmt
 
65595
 
 
65596
public:
 
65597
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
 
65598
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
65599
  }
 
65600
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
65601
  static const char *NodeId ();
 
65602
  /** Get the name of the node. Can be compared with NodeId(). */
 
65603
  const char *NodeName () const { return NodeId (); }
 
65604
  /** Get the number of sons. */
 
65605
  int Sons () const { return 3; }
 
65606
  /** Get the n-th son.
 
65607
   *  \param n The index of the son.
 
65608
   *  \return The n-th son or NULL. */
 
65609
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
65610
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
65611
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
65612
  /** Replace a son.
 
65613
   *  \param old_son The son to replace.
 
65614
   *  \param new_son The new son. */
 
65615
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
65616
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
65617
  }
 
65618
};
 
65619
 
 
65620
 
 
65621
#line 65622 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65622
} // closed Puma
 
65623
class CCExprResolve;
 
65624
class CExprResolve;
 
65625
class WinIfExists;
 
65626
class WinImportHandler;
 
65627
class WinMacros;
 
65628
class WinAsm;
 
65629
class WinDeclSpecs;
 
65630
class WinMemberExplSpec;
 
65631
class WinTypeKeywords;
 
65632
class WinFriend;
 
65633
class ExtAC;
 
65634
class ExtACBuilderCoupling;
 
65635
class ExtACSyntaxCoupling;
 
65636
class ExtACTree;
 
65637
class ExtACKeywords;
 
65638
class ExtGnu;
 
65639
class PragmaOnceUnitState;
 
65640
class PragmaOnce;
 
65641
class CMatchSyntax;
 
65642
namespace Puma {
 
65643
 
 
65644
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65645
class CT_DefaultStmt : public CT_Statement {
 
65646
#line 65647 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65647
  friend class ::CCExprResolve;
 
65648
  friend class ::CExprResolve;
 
65649
  friend class ::WinIfExists;
 
65650
  friend class ::WinImportHandler;
 
65651
  friend class ::WinMacros;
 
65652
  friend class ::WinAsm;
 
65653
  friend class ::WinDeclSpecs;
 
65654
  friend class ::WinMemberExplSpec;
 
65655
  friend class ::WinTypeKeywords;
 
65656
  friend class ::WinFriend;
 
65657
  friend class ::ExtAC;
 
65658
  friend class ::ExtACBuilderCoupling;
 
65659
  friend class ::ExtACSyntaxCoupling;
 
65660
  friend class ::ExtACTree;
 
65661
  friend class ::ExtACKeywords;
 
65662
  friend class ::ExtGnu;
 
65663
  friend class ::PragmaOnceUnitState;
 
65664
  friend class ::PragmaOnce;
 
65665
  friend class ::CMatchSyntax;
 
65666
 
 
65667
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65668
 
 
65669
  CTree *sons[3]; // keyword, colon, stmt
 
65670
 
 
65671
public:
 
65672
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
 
65673
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
65674
  }
 
65675
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
65676
  static const char *NodeId ();
 
65677
  /** Get the name of the node. Can be compared with NodeId(). */
 
65678
  const char *NodeName () const { return NodeId (); }
 
65679
  /** Get the number of sons. */
 
65680
  int Sons () const { return 3; }
 
65681
  /** Get the n-th son.
 
65682
   *  \param n The index of the son.
 
65683
   *  \return The n-th son or NULL. */
 
65684
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
65685
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
65686
  /** Replace a son.
 
65687
   *  \param old_son The son to replace.
 
65688
   *  \param new_son The new son. */
 
65689
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
65690
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
65691
  }
 
65692
};
 
65693
 
 
65694
 
 
65695
#line 65696 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65696
} // closed Puma
 
65697
class CCExprResolve;
 
65698
class CExprResolve;
 
65699
class WinIfExists;
 
65700
class WinImportHandler;
 
65701
class WinMacros;
 
65702
class WinAsm;
 
65703
class WinDeclSpecs;
 
65704
class WinMemberExplSpec;
 
65705
class WinTypeKeywords;
 
65706
class WinFriend;
 
65707
class ExtAC;
 
65708
class ExtACBuilderCoupling;
 
65709
class ExtACSyntaxCoupling;
 
65710
class ExtACTree;
 
65711
class ExtACKeywords;
 
65712
class ExtGnu;
 
65713
class PragmaOnceUnitState;
 
65714
class PragmaOnce;
 
65715
class CMatchSyntax;
 
65716
namespace Puma {
 
65717
 
 
65718
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65719
class CT_TryStmt : public CT_Statement {
 
65720
#line 65721 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65721
  friend class ::CCExprResolve;
 
65722
  friend class ::CExprResolve;
 
65723
  friend class ::WinIfExists;
 
65724
  friend class ::WinImportHandler;
 
65725
  friend class ::WinMacros;
 
65726
  friend class ::WinAsm;
 
65727
  friend class ::WinDeclSpecs;
 
65728
  friend class ::WinMemberExplSpec;
 
65729
  friend class ::WinTypeKeywords;
 
65730
  friend class ::WinFriend;
 
65731
  friend class ::ExtAC;
 
65732
  friend class ::ExtACBuilderCoupling;
 
65733
  friend class ::ExtACSyntaxCoupling;
 
65734
  friend class ::ExtACTree;
 
65735
  friend class ::ExtACKeywords;
 
65736
  friend class ::ExtGnu;
 
65737
  friend class ::PragmaOnceUnitState;
 
65738
  friend class ::PragmaOnce;
 
65739
  friend class ::CMatchSyntax;
 
65740
 
 
65741
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65742
 
 
65743
  CTree *sons[3]; // try, stmt, handlers
 
65744
 
 
65745
public:
 
65746
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
 
65747
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
 
65748
  }
 
65749
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
65750
  static const char *NodeId ();
 
65751
  /** Get the name of the node. Can be compared with NodeId(). */
 
65752
  const char *NodeName () const { return NodeId (); }
 
65753
  /** Get the number of sons. */
 
65754
  int Sons () const { return 3; }
 
65755
  /** Get the n-th son.
 
65756
   *  \param n The index of the son.
 
65757
   *  \return The n-th son or NULL. */
 
65758
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
65759
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
65760
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
65761
  /** Replace a son.
 
65762
   *  \param old_son The son to replace.
 
65763
   *  \param new_son The new son. */
 
65764
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
65765
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
65766
  }
 
65767
};
 
65768
 
 
65769
 
 
65770
#line 65771 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65771
} // closed Puma
 
65772
class CCExprResolve;
 
65773
class CExprResolve;
 
65774
class WinIfExists;
 
65775
class WinImportHandler;
 
65776
class WinMacros;
 
65777
class WinAsm;
 
65778
class WinDeclSpecs;
 
65779
class WinMemberExplSpec;
 
65780
class WinTypeKeywords;
 
65781
class WinFriend;
 
65782
class ExtAC;
 
65783
class ExtACBuilderCoupling;
 
65784
class ExtACSyntaxCoupling;
 
65785
class ExtACTree;
 
65786
class ExtACKeywords;
 
65787
class ExtGnu;
 
65788
class PragmaOnceUnitState;
 
65789
class PragmaOnce;
 
65790
class CMatchSyntax;
 
65791
namespace Puma {
 
65792
 
 
65793
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65794
class CT_CaseStmt : public CT_Statement {
 
65795
#line 65796 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65796
  friend class ::CCExprResolve;
 
65797
  friend class ::CExprResolve;
 
65798
  friend class ::WinIfExists;
 
65799
  friend class ::WinImportHandler;
 
65800
  friend class ::WinMacros;
 
65801
  friend class ::WinAsm;
 
65802
  friend class ::WinDeclSpecs;
 
65803
  friend class ::WinMemberExplSpec;
 
65804
  friend class ::WinTypeKeywords;
 
65805
  friend class ::WinFriend;
 
65806
  friend class ::ExtAC;
 
65807
  friend class ::ExtACBuilderCoupling;
 
65808
  friend class ::ExtACSyntaxCoupling;
 
65809
  friend class ::ExtACTree;
 
65810
  friend class ::ExtACKeywords;
 
65811
  friend class ::ExtGnu;
 
65812
  friend class ::PragmaOnceUnitState;
 
65813
  friend class ::PragmaOnce;
 
65814
  friend class ::CMatchSyntax;
 
65815
 
 
65816
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65817
 
 
65818
  CTree *sons[4]; // keyword, expr, colon, stmt
 
65819
 
 
65820
public:
 
65821
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
 
65822
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
65823
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
 
65824
  }
 
65825
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
65826
  static const char *NodeId ();
 
65827
  /** Get the name of the node. Can be compared with NodeId(). */
 
65828
  const char *NodeName () const { return NodeId (); }
 
65829
  /** Get the number of sons. */
 
65830
  int Sons () const { return 4; }
 
65831
  /** Get the n-th son.
 
65832
   *  \param n The index of the son.
 
65833
   *  \return The n-th son or NULL. */
 
65834
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
65835
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
 
65836
  CTree *Expr () const { return sons[1]; }
 
65837
  /** Replace a son.
 
65838
   *  \param old_son The son to replace.
 
65839
   *  \param new_son The new son. */
 
65840
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
65841
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
65842
  }
 
65843
};
 
65844
 
 
65845
 
 
65846
#line 65847 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65847
} // closed Puma
 
65848
class CCExprResolve;
 
65849
class CExprResolve;
 
65850
class WinIfExists;
 
65851
class WinImportHandler;
 
65852
class WinMacros;
 
65853
class WinAsm;
 
65854
class WinDeclSpecs;
 
65855
class WinMemberExplSpec;
 
65856
class WinTypeKeywords;
 
65857
class WinFriend;
 
65858
class ExtAC;
 
65859
class ExtACBuilderCoupling;
 
65860
class ExtACSyntaxCoupling;
 
65861
class ExtACTree;
 
65862
class ExtACKeywords;
 
65863
class ExtGnu;
 
65864
class PragmaOnceUnitState;
 
65865
class PragmaOnce;
 
65866
class CMatchSyntax;
 
65867
namespace Puma {
 
65868
 
 
65869
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65870
class CT_ExprStmt : public CT_Statement {
 
65871
#line 65872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65872
  friend class ::CCExprResolve;
 
65873
  friend class ::CExprResolve;
 
65874
  friend class ::WinIfExists;
 
65875
  friend class ::WinImportHandler;
 
65876
  friend class ::WinMacros;
 
65877
  friend class ::WinAsm;
 
65878
  friend class ::WinDeclSpecs;
 
65879
  friend class ::WinMemberExplSpec;
 
65880
  friend class ::WinTypeKeywords;
 
65881
  friend class ::WinFriend;
 
65882
  friend class ::ExtAC;
 
65883
  friend class ::ExtACBuilderCoupling;
 
65884
  friend class ::ExtACSyntaxCoupling;
 
65885
  friend class ::ExtACTree;
 
65886
  friend class ::ExtACKeywords;
 
65887
  friend class ::ExtGnu;
 
65888
  friend class ::PragmaOnceUnitState;
 
65889
  friend class ::PragmaOnce;
 
65890
  friend class ::CMatchSyntax;
 
65891
 
 
65892
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65893
 
 
65894
  CTree *sons[2]; // expr, semi_colon
 
65895
 
 
65896
public:
 
65897
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
65898
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
65899
  static const char *NodeId ();
 
65900
  /** Get the name of the node. Can be compared with NodeId(). */
 
65901
  const char *NodeName () const { return NodeId (); }
 
65902
  /** Get the number of sons. */
 
65903
  int Sons () const { return CTree::Sons (sons, 2); }
 
65904
  /** Get the n-th son.
 
65905
   *  \param n The index of the son.
 
65906
   *  \return The n-th son or NULL. */
 
65907
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
65908
  CTree *Expr () const { return sons[0]; }
 
65909
  /** Replace a son.
 
65910
   *  \param old_son The son to replace.
 
65911
   *  \param new_son The new son. */
 
65912
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
65913
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
65914
  }
 
65915
};
 
65916
 
 
65917
 
 
65918
#line 65919 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65919
} // closed Puma
 
65920
class CCExprResolve;
 
65921
class CExprResolve;
 
65922
class WinIfExists;
 
65923
class WinImportHandler;
 
65924
class WinMacros;
 
65925
class WinAsm;
 
65926
class WinDeclSpecs;
 
65927
class WinMemberExplSpec;
 
65928
class WinTypeKeywords;
 
65929
class WinFriend;
 
65930
class ExtAC;
 
65931
class ExtACBuilderCoupling;
 
65932
class ExtACSyntaxCoupling;
 
65933
class ExtACTree;
 
65934
class ExtACKeywords;
 
65935
class ExtGnu;
 
65936
class PragmaOnceUnitState;
 
65937
class PragmaOnce;
 
65938
class CMatchSyntax;
 
65939
namespace Puma {
 
65940
 
 
65941
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65942
class CT_DeclStmt : public CT_Statement {
 
65943
#line 65944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65944
  friend class ::CCExprResolve;
 
65945
  friend class ::CExprResolve;
 
65946
  friend class ::WinIfExists;
 
65947
  friend class ::WinImportHandler;
 
65948
  friend class ::WinMacros;
 
65949
  friend class ::WinAsm;
 
65950
  friend class ::WinDeclSpecs;
 
65951
  friend class ::WinMemberExplSpec;
 
65952
  friend class ::WinTypeKeywords;
 
65953
  friend class ::WinFriend;
 
65954
  friend class ::ExtAC;
 
65955
  friend class ::ExtACBuilderCoupling;
 
65956
  friend class ::ExtACSyntaxCoupling;
 
65957
  friend class ::ExtACTree;
 
65958
  friend class ::ExtACKeywords;
 
65959
  friend class ::ExtGnu;
 
65960
  friend class ::PragmaOnceUnitState;
 
65961
  friend class ::PragmaOnce;
 
65962
  friend class ::CMatchSyntax;
 
65963
 
 
65964
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65965
 
 
65966
  CTree *_decl;
 
65967
 
 
65968
public:
 
65969
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
65970
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
65971
  static const char *NodeId ();
 
65972
  /** Get the name of the node. Can be compared with NodeId(). */
 
65973
  const char *NodeName () const { return NodeId (); }
 
65974
  /** Get the number of sons. */
 
65975
  int Sons () const { return 1; }
 
65976
  /** Get the n-th son.
 
65977
   *  \param n The index of the son.
 
65978
   *  \return The n-th son or NULL. */
 
65979
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
65980
  /** Replace a son.
 
65981
   *  \param old_son The son to replace.
 
65982
   *  \param new_son The new son. */
 
65983
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
65984
   { CTree::ReplaceSon (_decl, old_son, new_son); }
 
65985
};
 
65986
 
 
65987
 
 
65988
#line 65989 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
65989
} // closed Puma
 
65990
class CCExprResolve;
 
65991
class CExprResolve;
 
65992
class WinIfExists;
 
65993
class WinImportHandler;
 
65994
class WinMacros;
 
65995
class WinAsm;
 
65996
class WinDeclSpecs;
 
65997
class WinMemberExplSpec;
 
65998
class WinTypeKeywords;
 
65999
class WinFriend;
 
66000
class ExtAC;
 
66001
class ExtACBuilderCoupling;
 
66002
class ExtACSyntaxCoupling;
 
66003
class ExtACTree;
 
66004
class ExtACKeywords;
 
66005
class ExtGnu;
 
66006
class PragmaOnceUnitState;
 
66007
class PragmaOnce;
 
66008
class CMatchSyntax;
 
66009
namespace Puma {
 
66010
 
 
66011
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66012
class CT_SwitchStmt : public CT_Statement, public CSemScope {
 
66013
#line 66014 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66014
  friend class ::CCExprResolve;
 
66015
  friend class ::CExprResolve;
 
66016
  friend class ::WinIfExists;
 
66017
  friend class ::WinImportHandler;
 
66018
  friend class ::WinMacros;
 
66019
  friend class ::WinAsm;
 
66020
  friend class ::WinDeclSpecs;
 
66021
  friend class ::WinMemberExplSpec;
 
66022
  friend class ::WinTypeKeywords;
 
66023
  friend class ::WinFriend;
 
66024
  friend class ::ExtAC;
 
66025
  friend class ::ExtACBuilderCoupling;
 
66026
  friend class ::ExtACSyntaxCoupling;
 
66027
  friend class ::ExtACTree;
 
66028
  friend class ::ExtACKeywords;
 
66029
  friend class ::ExtGnu;
 
66030
  friend class ::PragmaOnceUnitState;
 
66031
  friend class ::PragmaOnce;
 
66032
  friend class ::CMatchSyntax;
 
66033
 
 
66034
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66035
 
 
66036
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
66037
 
 
66038
public:
 
66039
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
66040
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
66041
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
66042
  }
 
66043
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
66044
  static const char *NodeId ();
 
66045
  /** Get the name of the node. Can be compared with NodeId(). */
 
66046
  const char *NodeName () const { return NodeId (); }
 
66047
  /** Get the number of sons. */
 
66048
  int Sons () const { return 5; }
 
66049
  /** Get the n-th son.
 
66050
   *  \param n The index of the son.
 
66051
   *  \return The n-th son or NULL. */
 
66052
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
66053
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
66054
  CTree *Condition () const { return sons[2]; }
 
66055
  /** Replace a son.
 
66056
   *  \param old_son The son to replace.
 
66057
   *  \param new_son The new son. */
 
66058
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
66059
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
66060
  }
 
66061
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
66062
};
 
66063
 
 
66064
 
 
66065
#line 66066 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66066
} // closed Puma
 
66067
class CCExprResolve;
 
66068
class CExprResolve;
 
66069
class WinIfExists;
 
66070
class WinImportHandler;
 
66071
class WinMacros;
 
66072
class WinAsm;
 
66073
class WinDeclSpecs;
 
66074
class WinMemberExplSpec;
 
66075
class WinTypeKeywords;
 
66076
class WinFriend;
 
66077
class ExtAC;
 
66078
class ExtACBuilderCoupling;
 
66079
class ExtACSyntaxCoupling;
 
66080
class ExtACTree;
 
66081
class ExtACKeywords;
 
66082
class ExtGnu;
 
66083
class PragmaOnceUnitState;
 
66084
class PragmaOnce;
 
66085
class CMatchSyntax;
 
66086
namespace Puma {
 
66087
 
 
66088
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66089
class CT_IfStmt : public CT_Statement, public CSemScope {
 
66090
#line 66091 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66091
  friend class ::CCExprResolve;
 
66092
  friend class ::CExprResolve;
 
66093
  friend class ::WinIfExists;
 
66094
  friend class ::WinImportHandler;
 
66095
  friend class ::WinMacros;
 
66096
  friend class ::WinAsm;
 
66097
  friend class ::WinDeclSpecs;
 
66098
  friend class ::WinMemberExplSpec;
 
66099
  friend class ::WinTypeKeywords;
 
66100
  friend class ::WinFriend;
 
66101
  friend class ::ExtAC;
 
66102
  friend class ::ExtACBuilderCoupling;
 
66103
  friend class ::ExtACSyntaxCoupling;
 
66104
  friend class ::ExtACTree;
 
66105
  friend class ::ExtACKeywords;
 
66106
  friend class ::ExtGnu;
 
66107
  friend class ::PragmaOnceUnitState;
 
66108
  friend class ::PragmaOnce;
 
66109
  friend class ::CMatchSyntax;
 
66110
 
 
66111
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66112
 
 
66113
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
66114
 
 
66115
public:
 
66116
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
66117
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
66118
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
66119
  }
 
66120
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
66121
  static const char *NodeId ();
 
66122
  /** Get the name of the node. Can be compared with NodeId(). */
 
66123
  const char *NodeName () const { return NodeId (); }
 
66124
  /** Get the number of sons. */
 
66125
  int Sons () const { return 5; }
 
66126
  /** Get the n-th son.
 
66127
   *  \param n The index of the son.
 
66128
   *  \return The n-th son or NULL. */
 
66129
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
66130
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
66131
  CTree *Condition () const { return sons[2]; }
 
66132
  /** Replace a son.
 
66133
   *  \param old_son The son to replace.
 
66134
   *  \param new_son The new son. */
 
66135
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
66136
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
66137
  }
 
66138
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
66139
};
 
66140
 
 
66141
 
 
66142
#line 66143 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66143
} // closed Puma
 
66144
class CCExprResolve;
 
66145
class CExprResolve;
 
66146
class WinIfExists;
 
66147
class WinImportHandler;
 
66148
class WinMacros;
 
66149
class WinAsm;
 
66150
class WinDeclSpecs;
 
66151
class WinMemberExplSpec;
 
66152
class WinTypeKeywords;
 
66153
class WinFriend;
 
66154
class ExtAC;
 
66155
class ExtACBuilderCoupling;
 
66156
class ExtACSyntaxCoupling;
 
66157
class ExtACTree;
 
66158
class ExtACKeywords;
 
66159
class ExtGnu;
 
66160
class PragmaOnceUnitState;
 
66161
class PragmaOnce;
 
66162
class CMatchSyntax;
 
66163
namespace Puma {
 
66164
 
 
66165
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66166
class CT_IfElseStmt : public CT_Statement, public CSemScope {
 
66167
#line 66168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66168
  friend class ::CCExprResolve;
 
66169
  friend class ::CExprResolve;
 
66170
  friend class ::WinIfExists;
 
66171
  friend class ::WinImportHandler;
 
66172
  friend class ::WinMacros;
 
66173
  friend class ::WinAsm;
 
66174
  friend class ::WinDeclSpecs;
 
66175
  friend class ::WinMemberExplSpec;
 
66176
  friend class ::WinTypeKeywords;
 
66177
  friend class ::WinFriend;
 
66178
  friend class ::ExtAC;
 
66179
  friend class ::ExtACBuilderCoupling;
 
66180
  friend class ::ExtACSyntaxCoupling;
 
66181
  friend class ::ExtACTree;
 
66182
  friend class ::ExtACKeywords;
 
66183
  friend class ::ExtGnu;
 
66184
  friend class ::PragmaOnceUnitState;
 
66185
  friend class ::PragmaOnce;
 
66186
  friend class ::CMatchSyntax;
 
66187
 
 
66188
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66189
 
 
66190
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
 
66191
 
 
66192
public:
 
66193
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
 
66194
                 CTree *is, CTree *e, CTree *es) {
 
66195
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
66196
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
66197
    AddSon (sons[6], es); 
 
66198
  }
 
66199
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
66200
  static const char *NodeId ();
 
66201
  /** Get the name of the node. Can be compared with NodeId(). */
 
66202
  const char *NodeName () const { return NodeId (); }
 
66203
  /** Get the number of sons. */
 
66204
  int Sons () const { return 7; }
 
66205
  /** Get the n-th son.
 
66206
   *  \param n The index of the son.
 
66207
   *  \return The n-th son or NULL. */
 
66208
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
66209
  CTree *Condition () const { return sons[2]; }
 
66210
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
 
66211
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
66212
  /** Replace a son.
 
66213
   *  \param old_son The son to replace.
 
66214
   *  \param new_son The new son. */
 
66215
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
66216
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
66217
  }
 
66218
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
66219
};
 
66220
 
 
66221
 
 
66222
#line 66223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66223
} // closed Puma
 
66224
class CCExprResolve;
 
66225
class CExprResolve;
 
66226
class WinIfExists;
 
66227
class WinImportHandler;
 
66228
class WinMacros;
 
66229
class WinAsm;
 
66230
class WinDeclSpecs;
 
66231
class WinMemberExplSpec;
 
66232
class WinTypeKeywords;
 
66233
class WinFriend;
 
66234
class ExtAC;
 
66235
class ExtACBuilderCoupling;
 
66236
class ExtACSyntaxCoupling;
 
66237
class ExtACTree;
 
66238
class ExtACKeywords;
 
66239
class ExtGnu;
 
66240
class PragmaOnceUnitState;
 
66241
class PragmaOnce;
 
66242
class CMatchSyntax;
 
66243
namespace Puma {
 
66244
 
 
66245
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66246
class CT_BreakStmt : public CT_Statement {
 
66247
#line 66248 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66248
  friend class ::CCExprResolve;
 
66249
  friend class ::CExprResolve;
 
66250
  friend class ::WinIfExists;
 
66251
  friend class ::WinImportHandler;
 
66252
  friend class ::WinMacros;
 
66253
  friend class ::WinAsm;
 
66254
  friend class ::WinDeclSpecs;
 
66255
  friend class ::WinMemberExplSpec;
 
66256
  friend class ::WinTypeKeywords;
 
66257
  friend class ::WinFriend;
 
66258
  friend class ::ExtAC;
 
66259
  friend class ::ExtACBuilderCoupling;
 
66260
  friend class ::ExtACSyntaxCoupling;
 
66261
  friend class ::ExtACTree;
 
66262
  friend class ::ExtACKeywords;
 
66263
  friend class ::ExtGnu;
 
66264
  friend class ::PragmaOnceUnitState;
 
66265
  friend class ::PragmaOnce;
 
66266
  friend class ::CMatchSyntax;
 
66267
 
 
66268
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66269
 
 
66270
  CTree *sons[2]; // key, semi_colon
 
66271
 
 
66272
public:
 
66273
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
66274
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
66275
  static const char *NodeId ();
 
66276
  /** Get the name of the node. Can be compared with NodeId(). */
 
66277
  const char *NodeName () const { return NodeId (); }
 
66278
  /** Get the number of sons. */
 
66279
  int Sons () const { return 2; }
 
66280
  /** Get the n-th son.
 
66281
   *  \param n The index of the son.
 
66282
   *  \return The n-th son or NULL. */
 
66283
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
66284
  /** Replace a son.
 
66285
   *  \param old_son The son to replace.
 
66286
   *  \param new_son The new son. */
 
66287
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
66288
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
66289
  }
 
66290
};
 
66291
 
 
66292
 
 
66293
#line 66294 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66294
} // closed Puma
 
66295
class CCExprResolve;
 
66296
class CExprResolve;
 
66297
class WinIfExists;
 
66298
class WinImportHandler;
 
66299
class WinMacros;
 
66300
class WinAsm;
 
66301
class WinDeclSpecs;
 
66302
class WinMemberExplSpec;
 
66303
class WinTypeKeywords;
 
66304
class WinFriend;
 
66305
class ExtAC;
 
66306
class ExtACBuilderCoupling;
 
66307
class ExtACSyntaxCoupling;
 
66308
class ExtACTree;
 
66309
class ExtACKeywords;
 
66310
class ExtGnu;
 
66311
class PragmaOnceUnitState;
 
66312
class PragmaOnce;
 
66313
class CMatchSyntax;
 
66314
namespace Puma {
 
66315
 
 
66316
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66317
class CT_ContinueStmt : public CT_Statement {
 
66318
#line 66319 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66319
  friend class ::CCExprResolve;
 
66320
  friend class ::CExprResolve;
 
66321
  friend class ::WinIfExists;
 
66322
  friend class ::WinImportHandler;
 
66323
  friend class ::WinMacros;
 
66324
  friend class ::WinAsm;
 
66325
  friend class ::WinDeclSpecs;
 
66326
  friend class ::WinMemberExplSpec;
 
66327
  friend class ::WinTypeKeywords;
 
66328
  friend class ::WinFriend;
 
66329
  friend class ::ExtAC;
 
66330
  friend class ::ExtACBuilderCoupling;
 
66331
  friend class ::ExtACSyntaxCoupling;
 
66332
  friend class ::ExtACTree;
 
66333
  friend class ::ExtACKeywords;
 
66334
  friend class ::ExtGnu;
 
66335
  friend class ::PragmaOnceUnitState;
 
66336
  friend class ::PragmaOnce;
 
66337
  friend class ::CMatchSyntax;
 
66338
 
 
66339
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66340
 
 
66341
  CTree *sons[2]; // key, semi_colon
 
66342
 
 
66343
public:
 
66344
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
66345
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
66346
  static const char *NodeId ();
 
66347
  /** Get the name of the node. Can be compared with NodeId(). */
 
66348
  const char *NodeName () const { return NodeId (); }
 
66349
  /** Get the number of sons. */
 
66350
  int Sons () const { return 2; }
 
66351
  /** Get the n-th son.
 
66352
   *  \param n The index of the son.
 
66353
   *  \return The n-th son or NULL. */
 
66354
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
66355
  /** Replace a son.
 
66356
   *  \param old_son The son to replace.
 
66357
   *  \param new_son The new son. */
 
66358
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
66359
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
66360
  }
 
66361
};
 
66362
 
 
66363
 
 
66364
#line 66365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66365
} // closed Puma
 
66366
class CCExprResolve;
 
66367
class CExprResolve;
 
66368
class WinIfExists;
 
66369
class WinImportHandler;
 
66370
class WinMacros;
 
66371
class WinAsm;
 
66372
class WinDeclSpecs;
 
66373
class WinMemberExplSpec;
 
66374
class WinTypeKeywords;
 
66375
class WinFriend;
 
66376
class ExtAC;
 
66377
class ExtACBuilderCoupling;
 
66378
class ExtACSyntaxCoupling;
 
66379
class ExtACTree;
 
66380
class ExtACKeywords;
 
66381
class ExtGnu;
 
66382
class PragmaOnceUnitState;
 
66383
class PragmaOnce;
 
66384
class CMatchSyntax;
 
66385
namespace Puma {
 
66386
 
 
66387
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66388
class CT_GotoStmt : public CT_Statement {
 
66389
#line 66390 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66390
  friend class ::CCExprResolve;
 
66391
  friend class ::CExprResolve;
 
66392
  friend class ::WinIfExists;
 
66393
  friend class ::WinImportHandler;
 
66394
  friend class ::WinMacros;
 
66395
  friend class ::WinAsm;
 
66396
  friend class ::WinDeclSpecs;
 
66397
  friend class ::WinMemberExplSpec;
 
66398
  friend class ::WinTypeKeywords;
 
66399
  friend class ::WinFriend;
 
66400
  friend class ::ExtAC;
 
66401
  friend class ::ExtACBuilderCoupling;
 
66402
  friend class ::ExtACSyntaxCoupling;
 
66403
  friend class ::ExtACTree;
 
66404
  friend class ::ExtACKeywords;
 
66405
  friend class ::ExtGnu;
 
66406
  friend class ::PragmaOnceUnitState;
 
66407
  friend class ::PragmaOnce;
 
66408
  friend class ::CMatchSyntax;
 
66409
 
 
66410
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66411
 
 
66412
  CTree *sons[3]; // key, label, semi_colon
 
66413
 
 
66414
public:
 
66415
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
 
66416
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
 
66417
  }
 
66418
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
66419
  static const char *NodeId ();
 
66420
  /** Get the name of the node. Can be compared with NodeId(). */
 
66421
  const char *NodeName () const { return NodeId (); }
 
66422
  /** Get the number of sons. */
 
66423
  int Sons () const { return 3; }
 
66424
  /** Get the n-th son.
 
66425
   *  \param n The index of the son.
 
66426
   *  \return The n-th son or NULL. */
 
66427
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
66428
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
66429
  /** Replace a son.
 
66430
   *  \param old_son The son to replace.
 
66431
   *  \param new_son The new son. */
 
66432
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
66433
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
66434
  }
 
66435
};
 
66436
 
 
66437
 
 
66438
#line 66439 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66439
} // closed Puma
 
66440
class CCExprResolve;
 
66441
class CExprResolve;
 
66442
class WinIfExists;
 
66443
class WinImportHandler;
 
66444
class WinMacros;
 
66445
class WinAsm;
 
66446
class WinDeclSpecs;
 
66447
class WinMemberExplSpec;
 
66448
class WinTypeKeywords;
 
66449
class WinFriend;
 
66450
class ExtAC;
 
66451
class ExtACBuilderCoupling;
 
66452
class ExtACSyntaxCoupling;
 
66453
class ExtACTree;
 
66454
class ExtACKeywords;
 
66455
class ExtGnu;
 
66456
class PragmaOnceUnitState;
 
66457
class PragmaOnce;
 
66458
class CMatchSyntax;
 
66459
namespace Puma {
 
66460
 
 
66461
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66462
class CT_ReturnStmt : public CT_Statement {
 
66463
#line 66464 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66464
  friend class ::CCExprResolve;
 
66465
  friend class ::CExprResolve;
 
66466
  friend class ::WinIfExists;
 
66467
  friend class ::WinImportHandler;
 
66468
  friend class ::WinMacros;
 
66469
  friend class ::WinAsm;
 
66470
  friend class ::WinDeclSpecs;
 
66471
  friend class ::WinMemberExplSpec;
 
66472
  friend class ::WinTypeKeywords;
 
66473
  friend class ::WinFriend;
 
66474
  friend class ::ExtAC;
 
66475
  friend class ::ExtACBuilderCoupling;
 
66476
  friend class ::ExtACSyntaxCoupling;
 
66477
  friend class ::ExtACTree;
 
66478
  friend class ::ExtACKeywords;
 
66479
  friend class ::ExtGnu;
 
66480
  friend class ::PragmaOnceUnitState;
 
66481
  friend class ::PragmaOnce;
 
66482
  friend class ::CMatchSyntax;
 
66483
 
 
66484
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66485
 
 
66486
  CTree *sons[3]; // key, expr, semi_colon
 
66487
 
 
66488
public:
 
66489
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
 
66490
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
 
66491
  }
 
66492
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
66493
  static const char *NodeId ();
 
66494
  /** Get the name of the node. Can be compared with NodeId(). */
 
66495
  const char *NodeName () const { return NodeId (); }
 
66496
  /** Get the number of sons. */
 
66497
  int Sons () const { return CTree::Sons (sons, 3); }
 
66498
  /** Get the n-th son.
 
66499
   *  \param n The index of the son.
 
66500
   *  \return The n-th son or NULL. */
 
66501
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
66502
  CTree *Expr () const { return sons[1]; }
 
66503
  /** Replace a son.
 
66504
   *  \param old_son The son to replace.
 
66505
   *  \param new_son The new son. */
 
66506
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
66507
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
66508
  }
 
66509
};
 
66510
 
 
66511
 
 
66512
#line 66513 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66513
} // closed Puma
 
66514
class CCExprResolve;
 
66515
class CExprResolve;
 
66516
class WinIfExists;
 
66517
class WinImportHandler;
 
66518
class WinMacros;
 
66519
class WinAsm;
 
66520
class WinDeclSpecs;
 
66521
class WinMemberExplSpec;
 
66522
class WinTypeKeywords;
 
66523
class WinFriend;
 
66524
class ExtAC;
 
66525
class ExtACBuilderCoupling;
 
66526
class ExtACSyntaxCoupling;
 
66527
class ExtACTree;
 
66528
class ExtACKeywords;
 
66529
class ExtGnu;
 
66530
class PragmaOnceUnitState;
 
66531
class PragmaOnce;
 
66532
class CMatchSyntax;
 
66533
namespace Puma {
 
66534
 
 
66535
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66536
class CT_WhileStmt : public CT_Statement, public CSemScope {
 
66537
#line 66538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66538
  friend class ::CCExprResolve;
 
66539
  friend class ::CExprResolve;
 
66540
  friend class ::WinIfExists;
 
66541
  friend class ::WinImportHandler;
 
66542
  friend class ::WinMacros;
 
66543
  friend class ::WinAsm;
 
66544
  friend class ::WinDeclSpecs;
 
66545
  friend class ::WinMemberExplSpec;
 
66546
  friend class ::WinTypeKeywords;
 
66547
  friend class ::WinFriend;
 
66548
  friend class ::ExtAC;
 
66549
  friend class ::ExtACBuilderCoupling;
 
66550
  friend class ::ExtACSyntaxCoupling;
 
66551
  friend class ::ExtACTree;
 
66552
  friend class ::ExtACKeywords;
 
66553
  friend class ::ExtGnu;
 
66554
  friend class ::PragmaOnceUnitState;
 
66555
  friend class ::PragmaOnce;
 
66556
  friend class ::CMatchSyntax;
 
66557
 
 
66558
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66559
 
 
66560
  CTree *sons[5]; // key, open, cond, close, stmt
 
66561
 
 
66562
public:
 
66563
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
66564
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
66565
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
66566
  }
 
66567
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
66568
  static const char *NodeId ();
 
66569
  /** Get the name of the node. Can be compared with NodeId(). */
 
66570
  const char *NodeName () const { return NodeId (); }
 
66571
  /** Get the number of sons. */
 
66572
  int Sons () const { return 5; }
 
66573
  /** Get the n-th son.
 
66574
   *  \param n The index of the son.
 
66575
   *  \return The n-th son or NULL. */
 
66576
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
66577
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
66578
  CTree *Condition () const { return sons[2]; }
 
66579
  /** Replace a son.
 
66580
   *  \param old_son The son to replace.
 
66581
   *  \param new_son The new son. */
 
66582
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
66583
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
66584
  }
 
66585
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
66586
};
 
66587
 
 
66588
 
 
66589
#line 66590 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66590
} // closed Puma
 
66591
class CCExprResolve;
 
66592
class CExprResolve;
 
66593
class WinIfExists;
 
66594
class WinImportHandler;
 
66595
class WinMacros;
 
66596
class WinAsm;
 
66597
class WinDeclSpecs;
 
66598
class WinMemberExplSpec;
 
66599
class WinTypeKeywords;
 
66600
class WinFriend;
 
66601
class ExtAC;
 
66602
class ExtACBuilderCoupling;
 
66603
class ExtACSyntaxCoupling;
 
66604
class ExtACTree;
 
66605
class ExtACKeywords;
 
66606
class ExtGnu;
 
66607
class PragmaOnceUnitState;
 
66608
class PragmaOnce;
 
66609
class CMatchSyntax;
 
66610
namespace Puma {
 
66611
 
 
66612
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66613
class CT_DoStmt : public CT_Statement {
 
66614
#line 66615 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66615
  friend class ::CCExprResolve;
 
66616
  friend class ::CExprResolve;
 
66617
  friend class ::WinIfExists;
 
66618
  friend class ::WinImportHandler;
 
66619
  friend class ::WinMacros;
 
66620
  friend class ::WinAsm;
 
66621
  friend class ::WinDeclSpecs;
 
66622
  friend class ::WinMemberExplSpec;
 
66623
  friend class ::WinTypeKeywords;
 
66624
  friend class ::WinFriend;
 
66625
  friend class ::ExtAC;
 
66626
  friend class ::ExtACBuilderCoupling;
 
66627
  friend class ::ExtACSyntaxCoupling;
 
66628
  friend class ::ExtACTree;
 
66629
  friend class ::ExtACKeywords;
 
66630
  friend class ::ExtGnu;
 
66631
  friend class ::PragmaOnceUnitState;
 
66632
  friend class ::PragmaOnce;
 
66633
  friend class ::CMatchSyntax;
 
66634
 
 
66635
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66636
 
 
66637
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
 
66638
 
 
66639
public:
 
66640
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
 
66641
             CTree *c, CTree *sc) {
 
66642
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
66643
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
66644
    AddSon (sons[6], sc); 
 
66645
  }
 
66646
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
66647
  static const char *NodeId ();
 
66648
  /** Get the name of the node. Can be compared with NodeId(). */
 
66649
  const char *NodeName () const { return NodeId (); }
 
66650
  /** Get the number of sons. */
 
66651
  int Sons () const { return 7; }
 
66652
  /** Get the n-th son.
 
66653
   *  \param n The index of the son.
 
66654
   *  \return The n-th son or NULL. */
 
66655
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
66656
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
66657
  CTree *Expr () const { return sons[4]; }
 
66658
  /** Replace a son.
 
66659
   *  \param old_son The son to replace.
 
66660
   *  \param new_son The new son. */
 
66661
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
66662
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
66663
  }
 
66664
};
 
66665
 
 
66666
 
 
66667
#line 66668 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66668
} // closed Puma
 
66669
class CCExprResolve;
 
66670
class CExprResolve;
 
66671
class WinIfExists;
 
66672
class WinImportHandler;
 
66673
class WinMacros;
 
66674
class WinAsm;
 
66675
class WinDeclSpecs;
 
66676
class WinMemberExplSpec;
 
66677
class WinTypeKeywords;
 
66678
class WinFriend;
 
66679
class ExtAC;
 
66680
class ExtACBuilderCoupling;
 
66681
class ExtACSyntaxCoupling;
 
66682
class ExtACTree;
 
66683
class ExtACKeywords;
 
66684
class ExtGnu;
 
66685
class PragmaOnceUnitState;
 
66686
class PragmaOnce;
 
66687
class CMatchSyntax;
 
66688
namespace Puma {
 
66689
 
 
66690
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66691
class CT_ForStmt : public CT_Statement, public CSemScope {
 
66692
#line 66693 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66693
  friend class ::CCExprResolve;
 
66694
  friend class ::CExprResolve;
 
66695
  friend class ::WinIfExists;
 
66696
  friend class ::WinImportHandler;
 
66697
  friend class ::WinMacros;
 
66698
  friend class ::WinAsm;
 
66699
  friend class ::WinDeclSpecs;
 
66700
  friend class ::WinMemberExplSpec;
 
66701
  friend class ::WinTypeKeywords;
 
66702
  friend class ::WinFriend;
 
66703
  friend class ::ExtAC;
 
66704
  friend class ::ExtACBuilderCoupling;
 
66705
  friend class ::ExtACSyntaxCoupling;
 
66706
  friend class ::ExtACTree;
 
66707
  friend class ::ExtACKeywords;
 
66708
  friend class ::ExtGnu;
 
66709
  friend class ::PragmaOnceUnitState;
 
66710
  friend class ::PragmaOnce;
 
66711
  friend class ::CMatchSyntax;
 
66712
 
 
66713
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66714
 
 
66715
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
 
66716
 
 
66717
public:
 
66718
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
 
66719
              CTree *e, CTree *c, CTree *stmt) {
 
66720
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
66721
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
66722
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
 
66723
  }
 
66724
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
66725
  static const char *NodeId ();
 
66726
  /** Get the name of the node. Can be compared with NodeId(). */
 
66727
  const char *NodeName () const { return NodeId (); }
 
66728
  /** Get the number of sons. */
 
66729
  int Sons () const { return CTree::Sons (sons, 8); }
 
66730
  /** Get the n-th son.
 
66731
   *  \param n The index of the son.
 
66732
   *  \return The n-th son or NULL. */
 
66733
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
 
66734
  CTree *InitStmt () const { return sons[2]; }
 
66735
  CTree *Condition () const { return sons[3]; }
 
66736
  CTree *Expr () const { return sons[5]; }
 
66737
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
66738
  /** Replace a son.
 
66739
   *  \param old_son The son to replace.
 
66740
   *  \param new_son The new son. */
 
66741
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
66742
    CTree::ReplaceSon (sons, 8, old_son, new_son);
 
66743
  }
 
66744
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
66745
};
 
66746
 
 
66747
 
 
66748
#line 66749 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66749
} // closed Puma
 
66750
class CCExprResolve;
 
66751
class CExprResolve;
 
66752
class WinIfExists;
 
66753
class WinImportHandler;
 
66754
class WinMacros;
 
66755
class WinAsm;
 
66756
class WinDeclSpecs;
 
66757
class WinMemberExplSpec;
 
66758
class WinTypeKeywords;
 
66759
class WinFriend;
 
66760
class ExtAC;
 
66761
class ExtACBuilderCoupling;
 
66762
class ExtACSyntaxCoupling;
 
66763
class ExtACTree;
 
66764
class ExtACKeywords;
 
66765
class ExtGnu;
 
66766
class PragmaOnceUnitState;
 
66767
class PragmaOnce;
 
66768
class CMatchSyntax;
 
66769
namespace Puma {
 
66770
 
 
66771
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66772
class CT_Condition : public CT_Decl, public CSemObject {
 
66773
#line 66774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66774
  friend class ::CCExprResolve;
 
66775
  friend class ::CExprResolve;
 
66776
  friend class ::WinIfExists;
 
66777
  friend class ::WinImportHandler;
 
66778
  friend class ::WinMacros;
 
66779
  friend class ::WinAsm;
 
66780
  friend class ::WinDeclSpecs;
 
66781
  friend class ::WinMemberExplSpec;
 
66782
  friend class ::WinTypeKeywords;
 
66783
  friend class ::WinFriend;
 
66784
  friend class ::ExtAC;
 
66785
  friend class ::ExtACBuilderCoupling;
 
66786
  friend class ::ExtACSyntaxCoupling;
 
66787
  friend class ::ExtACTree;
 
66788
  friend class ::ExtACKeywords;
 
66789
  friend class ::ExtGnu;
 
66790
  friend class ::PragmaOnceUnitState;
 
66791
  friend class ::PragmaOnce;
 
66792
  friend class ::CMatchSyntax;
 
66793
 
 
66794
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66795
 
 
66796
  CTree *sons[3]; // declspecs, declarator, init
 
66797
 
 
66798
public:
 
66799
  CT_Condition (CTree *dsl, CTree *d) {
 
66800
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
 
66801
  }
 
66802
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
66803
  static const char *NodeId ();
 
66804
  /** Get the name of the node. Can be compared with NodeId(). */
 
66805
  const char *NodeName () const { return NodeId (); }
 
66806
  /** Get the number of sons. */
 
66807
  int Sons () const { return CTree::Sons (sons, 3); }
 
66808
  /** Get the n-th son.
 
66809
   *  \param n The index of the son.
 
66810
   *  \return The n-th son or NULL. */
 
66811
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
66812
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
66813
  CTree *Declarator () const { return sons[1]; }
 
66814
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
66815
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
66816
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
66817
  /** Replace a son.
 
66818
   *  \param old_son The son to replace.
 
66819
   *  \param new_son The new son. */
 
66820
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
66821
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
66822
  }
 
66823
};
 
66824
 
 
66825
/*****************************************************************************/
 
66826
/*                                                                           */
 
66827
/*                              Classes                                      */
 
66828
/*                                                                           */
 
66829
/*****************************************************************************/
 
66830
 
 
66831
 
 
66832
#line 66833 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66833
} // closed Puma
 
66834
class CCExprResolve;
 
66835
class CExprResolve;
 
66836
class WinIfExists;
 
66837
class WinImportHandler;
 
66838
class WinMacros;
 
66839
class WinAsm;
 
66840
class WinDeclSpecs;
 
66841
class WinMemberExplSpec;
 
66842
class WinTypeKeywords;
 
66843
class WinFriend;
 
66844
class ExtAC;
 
66845
class ExtACBuilderCoupling;
 
66846
class ExtACSyntaxCoupling;
 
66847
class ExtACTree;
 
66848
class ExtACKeywords;
 
66849
class ExtGnu;
 
66850
class PragmaOnceUnitState;
 
66851
class PragmaOnce;
 
66852
class CMatchSyntax;
 
66853
namespace Puma {
 
66854
 
 
66855
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66856
 
 
66857
#line 66858 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66858
} // closed Puma
 
66859
 
 
66860
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
66861
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
66862
#include "ExtACTree.ah"
 
66863
#endif
 
66864
namespace Puma {
 
66865
 
 
66866
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66867
class CT_ClassDef : public CT_Decl, public CSemObject {
 
66868
#line 66869 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66869
  friend class ::CCExprResolve;
 
66870
  friend class ::CExprResolve;
 
66871
  friend class ::WinIfExists;
 
66872
  friend class ::WinImportHandler;
 
66873
  friend class ::WinMacros;
 
66874
  friend class ::WinAsm;
 
66875
  friend class ::WinDeclSpecs;
 
66876
  friend class ::WinMemberExplSpec;
 
66877
  friend class ::WinTypeKeywords;
 
66878
  friend class ::WinFriend;
 
66879
  friend class ::ExtAC;
 
66880
  friend class ::ExtACBuilderCoupling;
 
66881
  friend class ::ExtACSyntaxCoupling;
 
66882
  friend class ::ExtACTree;
 
66883
  friend class ::ExtACKeywords;
 
66884
  friend class ::ExtGnu;
 
66885
  friend class ::PragmaOnceUnitState;
 
66886
  friend class ::PragmaOnce;
 
66887
  friend class ::CMatchSyntax;
 
66888
 
 
66889
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66890
 
 
66891
   
 
66892
#line 66893 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66893
 
 
66894
  struct __ac_wrapper_sons {
 
66895
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
 
66896
    operator A& () { return _data; }
 
66897
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
 
66898
    operator const A& () { return _data; }
 
66899
    operator const A& () const { return _data; }
 
66900
    operator void* () { return _data; }
 
66901
    operator void* () const { return (void*)_data; }
 
66902
    operator const void* () { return _data; }
 
66903
    operator const void* () const { return _data; }
 
66904
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
 
66905
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
 
66906
  } sons
 
66907
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66908
 
 
66909
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66910
; // key, name, bases, members
 
66911
  CTree *obj_decl;
 
66912
 
 
66913
public:
 
66914
  
 
66915
#line 66916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66916
 
 
66917
 
 
66918
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
66919
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
66920
  typedef TResult Result;
 
66921
  typedef TThat   That;
 
66922
  typedef TTarget Target;
 
66923
  enum { ARGS = TArgs::ARGS };
 
66924
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
66925
  static const int JPID = 55;
 
66926
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
66927
  struct Res {
 
66928
    typedef void Type;
 
66929
    typedef void ReferredType;
 
66930
  };
 
66931
 
 
66932
  That *_that;
 
66933
 
 
66934
  inline That *that() {return (That*)_that;}
 
66935
 
 
66936
};
 
66937
 
 
66938
 
 
66939
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66940
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
 
66941
#line 66942 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66942
{
 
66943
  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;
 
66944
    __TJP tjp;
 
66945
  tjp._that =  (__TJP::That*)this;
 
66946
    this->__exec_old_C1(arg0, arg1, arg2);
 
66947
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
66948
  
 
66949
}
 
66950
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
66951
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66952
{
 
66953
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
66954
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
 
66955
  }
 
66956
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
66957
  static const char *NodeId ();
 
66958
  /** Get the name of the node. Can be compared with NodeId(). */
 
66959
  const char *NodeName () const { return NodeId (); }
 
66960
  /** Get the number of sons. */
 
66961
  int Sons () const { return CTree::Sons (sons, 4); }
 
66962
  /** Get the n-th son.
 
66963
   *  \param n The index of the son.
 
66964
   *  \return The n-th son or NULL. */
 
66965
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
66966
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
66967
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
 
66968
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
 
66969
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
66970
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
66971
  void Members (CTree *m) { AddSon (sons[3], m); }
 
66972
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
66973
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
66974
  /** Replace a son.
 
66975
   *  \param old_son The son to replace.
 
66976
   *  \param new_son The new son. */
 
66977
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
66978
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
66979
  }
 
66980
   private:
 
66981
 
 
66982
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
66983
 Puma :: CTree * _intro_members ;
 
66984
Puma :: CTree * _base_intros ;
 
66985
public :
 
66986
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
66987
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
66988
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
66989
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
66990
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66991
 
 
66992
#line 66993 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
66993
 
 
66994
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
66995
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
66996
  typedef TResult Result;
 
66997
  typedef TThat   That;
 
66998
  typedef TTarget Target;
 
66999
  enum { ARGS = TArgs::ARGS };
 
67000
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
67001
  static const int JPID = 6191;
 
67002
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
67003
  struct Res {
 
67004
    typedef void Type;
 
67005
    typedef void ReferredType;
 
67006
  };
 
67007
 
 
67008
  That *_that;
 
67009
 
 
67010
  inline That *that() {return (That*)_that;}
 
67011
 
 
67012
};
 
67013
 
 
67014
 
 
67015
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67016
 
 
67017
#line 67018 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67018
 
 
67019
public:
 
67020
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) {
 
67021
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
67022
  __TJP tjp;
 
67023
  tjp._that =  (__TJP::That*)this;
 
67024
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
67025
 
 
67026
}
 
67027
 
 
67028
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67029
 
 
67030
#line 67031 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67031
 
 
67032
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
67033
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
67034
  typedef TResult Result;
 
67035
  typedef TThat   That;
 
67036
  typedef TTarget Target;
 
67037
  enum { ARGS = TArgs::ARGS };
 
67038
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
67039
  static const int JPID = 6189;
 
67040
  static const AC::JPType JPTYPE = (AC::JPType)32;
 
67041
  struct Res {
 
67042
    typedef void Type;
 
67043
    typedef void ReferredType;
 
67044
  };
 
67045
 
 
67046
  That *_that;
 
67047
 
 
67048
  inline That *that() {return (That*)_that;}
 
67049
 
 
67050
};
 
67051
 
 
67052
 
 
67053
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67054
 
 
67055
#line 67056 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67056
 
 
67057
public:
 
67058
inline ~CT_ClassDef () {
 
67059
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
67060
  __TJP tjp;
 
67061
  tjp._that =  (__TJP::That*)this;
 
67062
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
 
67063
 
 
67064
}
 
67065
 
 
67066
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67067
};
 
67068
      
 
67069
 
 
67070
#line 67071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67071
} // closed Puma
 
67072
class CCExprResolve;
 
67073
class CExprResolve;
 
67074
class WinIfExists;
 
67075
class WinImportHandler;
 
67076
class WinMacros;
 
67077
class WinAsm;
 
67078
class WinDeclSpecs;
 
67079
class WinMemberExplSpec;
 
67080
class WinTypeKeywords;
 
67081
class WinFriend;
 
67082
class ExtAC;
 
67083
class ExtACBuilderCoupling;
 
67084
class ExtACSyntaxCoupling;
 
67085
class ExtACTree;
 
67086
class ExtACKeywords;
 
67087
class ExtGnu;
 
67088
class PragmaOnceUnitState;
 
67089
class PragmaOnce;
 
67090
class CMatchSyntax;
 
67091
namespace Puma {
 
67092
 
 
67093
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67094
class CT_UnionDef : public CT_ClassDef {
 
67095
#line 67096 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67096
  friend class ::CCExprResolve;
 
67097
  friend class ::CExprResolve;
 
67098
  friend class ::WinIfExists;
 
67099
  friend class ::WinImportHandler;
 
67100
  friend class ::WinMacros;
 
67101
  friend class ::WinAsm;
 
67102
  friend class ::WinDeclSpecs;
 
67103
  friend class ::WinMemberExplSpec;
 
67104
  friend class ::WinTypeKeywords;
 
67105
  friend class ::WinFriend;
 
67106
  friend class ::ExtAC;
 
67107
  friend class ::ExtACBuilderCoupling;
 
67108
  friend class ::ExtACSyntaxCoupling;
 
67109
  friend class ::ExtACTree;
 
67110
  friend class ::ExtACKeywords;
 
67111
  friend class ::ExtGnu;
 
67112
  friend class ::PragmaOnceUnitState;
 
67113
  friend class ::PragmaOnce;
 
67114
  friend class ::CMatchSyntax;
 
67115
 
 
67116
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67117
 
 
67118
public:
 
67119
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
 
67120
  static const char *NodeId ();
 
67121
  /** Get the name of the node. Can be compared with NodeId(). */
 
67122
  const char *NodeName () const { return NodeId (); }
 
67123
};
 
67124
      
 
67125
 
 
67126
#line 67127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67127
} // closed Puma
 
67128
class CCExprResolve;
 
67129
class CExprResolve;
 
67130
class WinIfExists;
 
67131
class WinImportHandler;
 
67132
class WinMacros;
 
67133
class WinAsm;
 
67134
class WinDeclSpecs;
 
67135
class WinMemberExplSpec;
 
67136
class WinTypeKeywords;
 
67137
class WinFriend;
 
67138
class ExtAC;
 
67139
class ExtACBuilderCoupling;
 
67140
class ExtACSyntaxCoupling;
 
67141
class ExtACTree;
 
67142
class ExtACKeywords;
 
67143
class ExtGnu;
 
67144
class PragmaOnceUnitState;
 
67145
class PragmaOnce;
 
67146
class CMatchSyntax;
 
67147
namespace Puma {
 
67148
 
 
67149
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67150
class CT_MembList : public CT_DeclList, public CSemScope {
 
67151
#line 67152 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67152
  friend class ::CCExprResolve;
 
67153
  friend class ::CExprResolve;
 
67154
  friend class ::WinIfExists;
 
67155
  friend class ::WinImportHandler;
 
67156
  friend class ::WinMacros;
 
67157
  friend class ::WinAsm;
 
67158
  friend class ::WinDeclSpecs;
 
67159
  friend class ::WinMemberExplSpec;
 
67160
  friend class ::WinTypeKeywords;
 
67161
  friend class ::WinFriend;
 
67162
  friend class ::ExtAC;
 
67163
  friend class ::ExtACBuilderCoupling;
 
67164
  friend class ::ExtACSyntaxCoupling;
 
67165
  friend class ::ExtACTree;
 
67166
  friend class ::ExtACKeywords;
 
67167
  friend class ::ExtGnu;
 
67168
  friend class ::PragmaOnceUnitState;
 
67169
  friend class ::PragmaOnce;
 
67170
  friend class ::CMatchSyntax;
 
67171
 
 
67172
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67173
 
 
67174
public:
 
67175
  CT_MembList (int size = 10, int incr = 10) : 
 
67176
    CT_DeclList (size, incr) {}
 
67177
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
67178
  static const char *NodeId ();
 
67179
  /** Get the name of the node. Can be compared with NodeId(). */
 
67180
  const char *NodeName () const { return NodeId (); }
 
67181
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
67182
};
 
67183
 
 
67184
 
 
67185
#line 67186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67186
} // closed Puma
 
67187
class CCExprResolve;
 
67188
class CExprResolve;
 
67189
class WinIfExists;
 
67190
class WinImportHandler;
 
67191
class WinMacros;
 
67192
class WinAsm;
 
67193
class WinDeclSpecs;
 
67194
class WinMemberExplSpec;
 
67195
class WinTypeKeywords;
 
67196
class WinFriend;
 
67197
class ExtAC;
 
67198
class ExtACBuilderCoupling;
 
67199
class ExtACSyntaxCoupling;
 
67200
class ExtACTree;
 
67201
class ExtACKeywords;
 
67202
class ExtGnu;
 
67203
class PragmaOnceUnitState;
 
67204
class PragmaOnce;
 
67205
class CMatchSyntax;
 
67206
namespace Puma {
 
67207
 
 
67208
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67209
class CT_MembInitList : public CT_List, public CSemScope {
 
67210
#line 67211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67211
  friend class ::CCExprResolve;
 
67212
  friend class ::CExprResolve;
 
67213
  friend class ::WinIfExists;
 
67214
  friend class ::WinImportHandler;
 
67215
  friend class ::WinMacros;
 
67216
  friend class ::WinAsm;
 
67217
  friend class ::WinDeclSpecs;
 
67218
  friend class ::WinMemberExplSpec;
 
67219
  friend class ::WinTypeKeywords;
 
67220
  friend class ::WinFriend;
 
67221
  friend class ::ExtAC;
 
67222
  friend class ::ExtACBuilderCoupling;
 
67223
  friend class ::ExtACSyntaxCoupling;
 
67224
  friend class ::ExtACTree;
 
67225
  friend class ::ExtACKeywords;
 
67226
  friend class ::ExtGnu;
 
67227
  friend class ::PragmaOnceUnitState;
 
67228
  friend class ::PragmaOnce;
 
67229
  friend class ::CMatchSyntax;
 
67230
 
 
67231
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67232
 
 
67233
public:
 
67234
  CT_MembInitList (int size = 2) : 
 
67235
    CT_List (size, 2, CT_List::OPEN) {}
 
67236
  static const char *NodeId ();
 
67237
  /** Get the name of the node. Can be compared with NodeId(). */
 
67238
  const char *NodeName () const { return NodeId (); }
 
67239
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
67240
};
 
67241
 
 
67242
 
 
67243
#line 67244 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67244
} // closed Puma
 
67245
class CCExprResolve;
 
67246
class CExprResolve;
 
67247
class WinIfExists;
 
67248
class WinImportHandler;
 
67249
class WinMacros;
 
67250
class WinAsm;
 
67251
class WinDeclSpecs;
 
67252
class WinMemberExplSpec;
 
67253
class WinTypeKeywords;
 
67254
class WinFriend;
 
67255
class ExtAC;
 
67256
class ExtACBuilderCoupling;
 
67257
class ExtACSyntaxCoupling;
 
67258
class ExtACTree;
 
67259
class ExtACKeywords;
 
67260
class ExtGnu;
 
67261
class PragmaOnceUnitState;
 
67262
class PragmaOnce;
 
67263
class CMatchSyntax;
 
67264
namespace Puma {
 
67265
 
 
67266
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67267
 
 
67268
#line 67269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67269
} // closed Puma
 
67270
 
 
67271
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67272
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67273
#include "CCExprResolveH.ah"
 
67274
#endif
 
67275
namespace Puma {
 
67276
 
 
67277
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67278
 
 
67279
#line 67280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67280
} // closed Puma
 
67281
 
 
67282
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67283
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67284
#include "CExprResolveH.ah"
 
67285
#endif
 
67286
namespace Puma {
 
67287
 
 
67288
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67289
class CT_MembInit : public CT_Expression, public CSemObject {
 
67290
#line 67291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67291
  friend class ::CCExprResolve;
 
67292
  friend class ::CExprResolve;
 
67293
  friend class ::WinIfExists;
 
67294
  friend class ::WinImportHandler;
 
67295
  friend class ::WinMacros;
 
67296
  friend class ::WinAsm;
 
67297
  friend class ::WinDeclSpecs;
 
67298
  friend class ::WinMemberExplSpec;
 
67299
  friend class ::WinTypeKeywords;
 
67300
  friend class ::WinFriend;
 
67301
  friend class ::ExtAC;
 
67302
  friend class ::ExtACBuilderCoupling;
 
67303
  friend class ::ExtACSyntaxCoupling;
 
67304
  friend class ::ExtACTree;
 
67305
  friend class ::ExtACKeywords;
 
67306
  friend class ::ExtGnu;
 
67307
  friend class ::PragmaOnceUnitState;
 
67308
  friend class ::PragmaOnce;
 
67309
  friend class ::CMatchSyntax;
 
67310
 
 
67311
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67312
 
 
67313
  CTree *sons[2]; // name, init
 
67314
 
 
67315
public:
 
67316
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
67317
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
67318
  static const char *NodeId ();
 
67319
  /** Get the name of the node. Can be compared with NodeId(). */
 
67320
  const char *NodeName () const { return NodeId (); }
 
67321
  /** Get the number of sons. */
 
67322
  int Sons () const { return 2; }
 
67323
  /** Get the n-th son.
 
67324
   *  \param n The index of the son.
 
67325
   *  \return The n-th son or NULL. */
 
67326
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
67327
  /** Replace a son.
 
67328
   *  \param old_son The son to replace.
 
67329
   *  \param new_son The new son. */
 
67330
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
67331
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
67332
  }
 
67333
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
67334
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
67335
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
67336
   private:
 
67337
  typedef CT_MembInit CCExprResolveExpr;
 
67338
 
 
67339
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
67340
 public :
 
67341
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
67342
  typedef CT_MembInit CExprResolveExpr;
 
67343
 
 
67344
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
67345
 public :
 
67346
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
67347
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67348
};
 
67349
 
 
67350
 
 
67351
#line 67352 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67352
} // closed Puma
 
67353
class CCExprResolve;
 
67354
class CExprResolve;
 
67355
class WinIfExists;
 
67356
class WinImportHandler;
 
67357
class WinMacros;
 
67358
class WinAsm;
 
67359
class WinDeclSpecs;
 
67360
class WinMemberExplSpec;
 
67361
class WinTypeKeywords;
 
67362
class WinFriend;
 
67363
class ExtAC;
 
67364
class ExtACBuilderCoupling;
 
67365
class ExtACSyntaxCoupling;
 
67366
class ExtACTree;
 
67367
class ExtACKeywords;
 
67368
class ExtGnu;
 
67369
class PragmaOnceUnitState;
 
67370
class PragmaOnce;
 
67371
class CMatchSyntax;
 
67372
namespace Puma {
 
67373
 
 
67374
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67375
class CT_BaseSpecList : public CT_List {
 
67376
#line 67377 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67377
  friend class ::CCExprResolve;
 
67378
  friend class ::CExprResolve;
 
67379
  friend class ::WinIfExists;
 
67380
  friend class ::WinImportHandler;
 
67381
  friend class ::WinMacros;
 
67382
  friend class ::WinAsm;
 
67383
  friend class ::WinDeclSpecs;
 
67384
  friend class ::WinMemberExplSpec;
 
67385
  friend class ::WinTypeKeywords;
 
67386
  friend class ::WinFriend;
 
67387
  friend class ::ExtAC;
 
67388
  friend class ::ExtACBuilderCoupling;
 
67389
  friend class ::ExtACSyntaxCoupling;
 
67390
  friend class ::ExtACTree;
 
67391
  friend class ::ExtACKeywords;
 
67392
  friend class ::ExtGnu;
 
67393
  friend class ::PragmaOnceUnitState;
 
67394
  friend class ::PragmaOnce;
 
67395
  friend class ::CMatchSyntax;
 
67396
 
 
67397
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67398
 
 
67399
public:
 
67400
  CT_BaseSpecList (int size = 2) : 
 
67401
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
67402
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
67403
  static const char *NodeId ();
 
67404
  /** Get the name of the node. Can be compared with NodeId(). */
 
67405
  const char *NodeName () const { return NodeId (); }
 
67406
};
 
67407
 
 
67408
 
 
67409
#line 67410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67410
} // closed Puma
 
67411
class CCExprResolve;
 
67412
class CExprResolve;
 
67413
class WinIfExists;
 
67414
class WinImportHandler;
 
67415
class WinMacros;
 
67416
class WinAsm;
 
67417
class WinDeclSpecs;
 
67418
class WinMemberExplSpec;
 
67419
class WinTypeKeywords;
 
67420
class WinFriend;
 
67421
class ExtAC;
 
67422
class ExtACBuilderCoupling;
 
67423
class ExtACSyntaxCoupling;
 
67424
class ExtACTree;
 
67425
class ExtACKeywords;
 
67426
class ExtGnu;
 
67427
class PragmaOnceUnitState;
 
67428
class PragmaOnce;
 
67429
class CMatchSyntax;
 
67430
namespace Puma {
 
67431
 
 
67432
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67433
class CT_AccessSpec : public CTree {
 
67434
#line 67435 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67435
  friend class ::CCExprResolve;
 
67436
  friend class ::CExprResolve;
 
67437
  friend class ::WinIfExists;
 
67438
  friend class ::WinImportHandler;
 
67439
  friend class ::WinMacros;
 
67440
  friend class ::WinAsm;
 
67441
  friend class ::WinDeclSpecs;
 
67442
  friend class ::WinMemberExplSpec;
 
67443
  friend class ::WinTypeKeywords;
 
67444
  friend class ::WinFriend;
 
67445
  friend class ::ExtAC;
 
67446
  friend class ::ExtACBuilderCoupling;
 
67447
  friend class ::ExtACSyntaxCoupling;
 
67448
  friend class ::ExtACTree;
 
67449
  friend class ::ExtACKeywords;
 
67450
  friend class ::ExtGnu;
 
67451
  friend class ::PragmaOnceUnitState;
 
67452
  friend class ::PragmaOnce;
 
67453
  friend class ::CMatchSyntax;
 
67454
 
 
67455
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67456
 
 
67457
  CTree *sons[2]; // access, colon
 
67458
 
 
67459
public:
 
67460
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
67461
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
67462
  static const char *NodeId ();
 
67463
  /** Get the name of the node. Can be compared with NodeId(). */
 
67464
  const char *NodeName () const { return NodeId (); }
 
67465
  /** Get the number of sons. */
 
67466
  int Sons () const { return 2; }
 
67467
  /** Get the n-th son.
 
67468
   *  \param n The index of the son.
 
67469
   *  \return The n-th son or NULL. */
 
67470
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
67471
  int Access () const { return sons[0]->token ()->type (); }
 
67472
  /** Replace a son.
 
67473
   *  \param old_son The son to replace.
 
67474
   *  \param new_son The new son. */
 
67475
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
67476
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
67477
  }
 
67478
};
 
67479
 
 
67480
 
 
67481
#line 67482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67482
} // closed Puma
 
67483
class CCExprResolve;
 
67484
class CExprResolve;
 
67485
class WinIfExists;
 
67486
class WinImportHandler;
 
67487
class WinMacros;
 
67488
class WinAsm;
 
67489
class WinDeclSpecs;
 
67490
class WinMemberExplSpec;
 
67491
class WinTypeKeywords;
 
67492
class WinFriend;
 
67493
class ExtAC;
 
67494
class ExtACBuilderCoupling;
 
67495
class ExtACSyntaxCoupling;
 
67496
class ExtACTree;
 
67497
class ExtACKeywords;
 
67498
class ExtGnu;
 
67499
class PragmaOnceUnitState;
 
67500
class PragmaOnce;
 
67501
class CMatchSyntax;
 
67502
namespace Puma {
 
67503
 
 
67504
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67505
class CT_BaseSpec : public CTree {
 
67506
#line 67507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67507
  friend class ::CCExprResolve;
 
67508
  friend class ::CExprResolve;
 
67509
  friend class ::WinIfExists;
 
67510
  friend class ::WinImportHandler;
 
67511
  friend class ::WinMacros;
 
67512
  friend class ::WinAsm;
 
67513
  friend class ::WinDeclSpecs;
 
67514
  friend class ::WinMemberExplSpec;
 
67515
  friend class ::WinTypeKeywords;
 
67516
  friend class ::WinFriend;
 
67517
  friend class ::ExtAC;
 
67518
  friend class ::ExtACBuilderCoupling;
 
67519
  friend class ::ExtACSyntaxCoupling;
 
67520
  friend class ::ExtACTree;
 
67521
  friend class ::ExtACKeywords;
 
67522
  friend class ::ExtGnu;
 
67523
  friend class ::PragmaOnceUnitState;
 
67524
  friend class ::PragmaOnce;
 
67525
  friend class ::CMatchSyntax;
 
67526
 
 
67527
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67528
 
 
67529
  CTree *sons[3]; // virtual, access, name
 
67530
 
 
67531
public:
 
67532
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
 
67533
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
 
67534
  }
 
67535
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
67536
  static const char *NodeId ();
 
67537
  /** Get the name of the node. Can be compared with NodeId(). */
 
67538
  const char *NodeName () const { return NodeId (); }
 
67539
  /** Get the number of sons. */
 
67540
  int Sons () const { return CTree::Sons (sons, 3); }
 
67541
  /** Get the n-th son.
 
67542
   *  \param n The index of the son.
 
67543
   *  \return The n-th son or NULL. */
 
67544
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
67545
  int Access () const { return sons[1]->token ()->type (); }
 
67546
  CTree *AccessSpec () const { return sons[1]; }
 
67547
  CTree *Virtual () const { return sons[0]; }
 
67548
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
67549
  /** Replace a son.
 
67550
   *  \param old_son The son to replace.
 
67551
   *  \param new_son The new son. */
 
67552
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
67553
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
67554
  }
 
67555
};
 
67556
 
 
67557
 
 
67558
#line 67559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67559
} // closed Puma
 
67560
class CCExprResolve;
 
67561
class CExprResolve;
 
67562
class WinIfExists;
 
67563
class WinImportHandler;
 
67564
class WinMacros;
 
67565
class WinAsm;
 
67566
class WinDeclSpecs;
 
67567
class WinMemberExplSpec;
 
67568
class WinTypeKeywords;
 
67569
class WinFriend;
 
67570
class ExtAC;
 
67571
class ExtACBuilderCoupling;
 
67572
class ExtACSyntaxCoupling;
 
67573
class ExtACTree;
 
67574
class ExtACKeywords;
 
67575
class ExtGnu;
 
67576
class PragmaOnceUnitState;
 
67577
class PragmaOnce;
 
67578
class CMatchSyntax;
 
67579
namespace Puma {
 
67580
 
 
67581
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67582
class CT_AccessDecl : public CT_Decl {
 
67583
#line 67584 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67584
  friend class ::CCExprResolve;
 
67585
  friend class ::CExprResolve;
 
67586
  friend class ::WinIfExists;
 
67587
  friend class ::WinImportHandler;
 
67588
  friend class ::WinMacros;
 
67589
  friend class ::WinAsm;
 
67590
  friend class ::WinDeclSpecs;
 
67591
  friend class ::WinMemberExplSpec;
 
67592
  friend class ::WinTypeKeywords;
 
67593
  friend class ::WinFriend;
 
67594
  friend class ::ExtAC;
 
67595
  friend class ::ExtACBuilderCoupling;
 
67596
  friend class ::ExtACSyntaxCoupling;
 
67597
  friend class ::ExtACTree;
 
67598
  friend class ::ExtACKeywords;
 
67599
  friend class ::ExtGnu;
 
67600
  friend class ::PragmaOnceUnitState;
 
67601
  friend class ::PragmaOnce;
 
67602
  friend class ::CMatchSyntax;
 
67603
 
 
67604
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67605
 
 
67606
  CTree *sons[2]; // name, semi_colon
 
67607
 
 
67608
public:
 
67609
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
67610
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
67611
  static const char *NodeId ();
 
67612
  /** Get the name of the node. Can be compared with NodeId(). */
 
67613
  const char *NodeName () const { return NodeId (); }
 
67614
  /** Get the number of sons. */
 
67615
  int Sons () const { return 2; }
 
67616
  /** Get the n-th son.
 
67617
   *  \param n The index of the son.
 
67618
   *  \return The n-th son or NULL. */
 
67619
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
67620
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
67621
  /** Replace a son.
 
67622
   *  \param old_son The son to replace.
 
67623
   *  \param new_son The new son. */
 
67624
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
67625
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
67626
  }
 
67627
};
 
67628
 
 
67629
 
 
67630
#line 67631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67631
} // closed Puma
 
67632
class CCExprResolve;
 
67633
class CExprResolve;
 
67634
class WinIfExists;
 
67635
class WinImportHandler;
 
67636
class WinMacros;
 
67637
class WinAsm;
 
67638
class WinDeclSpecs;
 
67639
class WinMemberExplSpec;
 
67640
class WinTypeKeywords;
 
67641
class WinFriend;
 
67642
class ExtAC;
 
67643
class ExtACBuilderCoupling;
 
67644
class ExtACSyntaxCoupling;
 
67645
class ExtACTree;
 
67646
class ExtACKeywords;
 
67647
class ExtGnu;
 
67648
class PragmaOnceUnitState;
 
67649
class PragmaOnce;
 
67650
class CMatchSyntax;
 
67651
namespace Puma {
 
67652
 
 
67653
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67654
class CT_UsingDecl : public CT_AccessDecl {
 
67655
#line 67656 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67656
  friend class ::CCExprResolve;
 
67657
  friend class ::CExprResolve;
 
67658
  friend class ::WinIfExists;
 
67659
  friend class ::WinImportHandler;
 
67660
  friend class ::WinMacros;
 
67661
  friend class ::WinAsm;
 
67662
  friend class ::WinDeclSpecs;
 
67663
  friend class ::WinMemberExplSpec;
 
67664
  friend class ::WinTypeKeywords;
 
67665
  friend class ::WinFriend;
 
67666
  friend class ::ExtAC;
 
67667
  friend class ::ExtACBuilderCoupling;
 
67668
  friend class ::ExtACSyntaxCoupling;
 
67669
  friend class ::ExtACTree;
 
67670
  friend class ::ExtACKeywords;
 
67671
  friend class ::ExtGnu;
 
67672
  friend class ::PragmaOnceUnitState;
 
67673
  friend class ::PragmaOnce;
 
67674
  friend class ::CMatchSyntax;
 
67675
 
 
67676
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67677
 
 
67678
  CTree *sons[2]; // using, typename
 
67679
 
 
67680
public:
 
67681
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
67682
    AddSon (sons[0], u); AddSon (sons[1], 0); 
 
67683
  }
 
67684
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
67685
    AddSon (sons[0], u); AddSon (sons[1], t); 
 
67686
  }
 
67687
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
67688
  static const char *NodeId ();
 
67689
  /** Get the name of the node. Can be compared with NodeId(). */
 
67690
  const char *NodeName () const { return NodeId (); }
 
67691
  /** Get the number of sons. */
 
67692
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
67693
  /** Get the n-th son.
 
67694
   *  \param n The index of the son.
 
67695
   *  \return The n-th son or NULL. */
 
67696
  CTree *Son (int n) const {
 
67697
    int num = CTree::Sons (sons, 2);
 
67698
    CTree *result = CTree::Son (sons, 2, n);
 
67699
    return result ? result : CT_AccessDecl::Son (n-num);
 
67700
  }
 
67701
  CTree *Typename () const { return sons[1]; }
 
67702
  /** Replace a son.
 
67703
   *  \param old_son The son to replace.
 
67704
   *  \param new_son The new son. */
 
67705
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
67706
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
67707
    CT_AccessDecl::ReplaceSon (old_son, new_son);
 
67708
  }
 
67709
};
 
67710
 
 
67711
/*****************************************************************************/
 
67712
/*                                                                           */
 
67713
/*                              Wildcards                                    */
 
67714
/*                                                                           */
 
67715
/*****************************************************************************/
 
67716
 
 
67717
 
 
67718
#line 67719 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67719
} // closed Puma
 
67720
class CCExprResolve;
 
67721
class CExprResolve;
 
67722
class WinIfExists;
 
67723
class WinImportHandler;
 
67724
class WinMacros;
 
67725
class WinAsm;
 
67726
class WinDeclSpecs;
 
67727
class WinMemberExplSpec;
 
67728
class WinTypeKeywords;
 
67729
class WinFriend;
 
67730
class ExtAC;
 
67731
class ExtACBuilderCoupling;
 
67732
class ExtACSyntaxCoupling;
 
67733
class ExtACTree;
 
67734
class ExtACKeywords;
 
67735
class ExtGnu;
 
67736
class PragmaOnceUnitState;
 
67737
class PragmaOnce;
 
67738
class CMatchSyntax;
 
67739
namespace Puma {
 
67740
 
 
67741
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67742
class CT_Any : public CTree {
 
67743
#line 67744 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67744
  friend class ::CCExprResolve;
 
67745
  friend class ::CExprResolve;
 
67746
  friend class ::WinIfExists;
 
67747
  friend class ::WinImportHandler;
 
67748
  friend class ::WinMacros;
 
67749
  friend class ::WinAsm;
 
67750
  friend class ::WinDeclSpecs;
 
67751
  friend class ::WinMemberExplSpec;
 
67752
  friend class ::WinTypeKeywords;
 
67753
  friend class ::WinFriend;
 
67754
  friend class ::ExtAC;
 
67755
  friend class ::ExtACBuilderCoupling;
 
67756
  friend class ::ExtACSyntaxCoupling;
 
67757
  friend class ::ExtACTree;
 
67758
  friend class ::ExtACKeywords;
 
67759
  friend class ::ExtGnu;
 
67760
  friend class ::PragmaOnceUnitState;
 
67761
  friend class ::PragmaOnce;
 
67762
  friend class ::CMatchSyntax;
 
67763
 
 
67764
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67765
 
 
67766
  CTree *sons[2]; // keyword, extension
 
67767
 
 
67768
public:
 
67769
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
67770
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
67771
  static const char *NodeId ();
 
67772
  /** Get the name of the node. Can be compared with NodeId(). */
 
67773
  const char *NodeName () const { return NodeId (); }
 
67774
  /** Get the number of sons. */
 
67775
  int Sons () const { return CTree::Sons (sons, 2); }
 
67776
  /** Get the n-th son.
 
67777
   *  \param n The index of the son.
 
67778
   *  \return The n-th son or NULL. */
 
67779
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
67780
  /** Replace a son.
 
67781
   *  \param old_son The son to replace.
 
67782
   *  \param new_son The new son. */
 
67783
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
67784
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
67785
  }
 
67786
  int AnyType () const { return sons[0]->token ()->type (); }
 
67787
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
 
67788
};
 
67789
 
 
67790
 
 
67791
#line 67792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67792
} // closed Puma
 
67793
class CCExprResolve;
 
67794
class CExprResolve;
 
67795
class WinIfExists;
 
67796
class WinImportHandler;
 
67797
class WinMacros;
 
67798
class WinAsm;
 
67799
class WinDeclSpecs;
 
67800
class WinMemberExplSpec;
 
67801
class WinTypeKeywords;
 
67802
class WinFriend;
 
67803
class ExtAC;
 
67804
class ExtACBuilderCoupling;
 
67805
class ExtACSyntaxCoupling;
 
67806
class ExtACTree;
 
67807
class ExtACKeywords;
 
67808
class ExtGnu;
 
67809
class PragmaOnceUnitState;
 
67810
class PragmaOnce;
 
67811
class CMatchSyntax;
 
67812
namespace Puma {
 
67813
 
 
67814
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67815
class CT_AnyList : public CT_Any {
 
67816
#line 67817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67817
  friend class ::CCExprResolve;
 
67818
  friend class ::CExprResolve;
 
67819
  friend class ::WinIfExists;
 
67820
  friend class ::WinImportHandler;
 
67821
  friend class ::WinMacros;
 
67822
  friend class ::WinAsm;
 
67823
  friend class ::WinDeclSpecs;
 
67824
  friend class ::WinMemberExplSpec;
 
67825
  friend class ::WinTypeKeywords;
 
67826
  friend class ::WinFriend;
 
67827
  friend class ::ExtAC;
 
67828
  friend class ::ExtACBuilderCoupling;
 
67829
  friend class ::ExtACSyntaxCoupling;
 
67830
  friend class ::ExtACTree;
 
67831
  friend class ::ExtACKeywords;
 
67832
  friend class ::ExtGnu;
 
67833
  friend class ::PragmaOnceUnitState;
 
67834
  friend class ::PragmaOnce;
 
67835
  friend class ::CMatchSyntax;
 
67836
 
 
67837
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67838
 
 
67839
public:
 
67840
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
67841
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
67842
  static const char *NodeId ();
 
67843
  /** Get the name of the node. Can be compared with NodeId(). */
 
67844
  const char *NodeName () const { return NodeId (); }
 
67845
};
 
67846
 
 
67847
 
 
67848
#line 67849 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67849
} // closed Puma
 
67850
class CCExprResolve;
 
67851
class CExprResolve;
 
67852
class WinIfExists;
 
67853
class WinImportHandler;
 
67854
class WinMacros;
 
67855
class WinAsm;
 
67856
class WinDeclSpecs;
 
67857
class WinMemberExplSpec;
 
67858
class WinTypeKeywords;
 
67859
class WinFriend;
 
67860
class ExtAC;
 
67861
class ExtACBuilderCoupling;
 
67862
class ExtACSyntaxCoupling;
 
67863
class ExtACTree;
 
67864
class ExtACKeywords;
 
67865
class ExtGnu;
 
67866
class PragmaOnceUnitState;
 
67867
class PragmaOnce;
 
67868
class CMatchSyntax;
 
67869
namespace Puma {
 
67870
 
 
67871
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67872
class CT_AnyExtension : public CTree, public CSemValue {
 
67873
#line 67874 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67874
  friend class ::CCExprResolve;
 
67875
  friend class ::CExprResolve;
 
67876
  friend class ::WinIfExists;
 
67877
  friend class ::WinImportHandler;
 
67878
  friend class ::WinMacros;
 
67879
  friend class ::WinAsm;
 
67880
  friend class ::WinDeclSpecs;
 
67881
  friend class ::WinMemberExplSpec;
 
67882
  friend class ::WinTypeKeywords;
 
67883
  friend class ::WinFriend;
 
67884
  friend class ::ExtAC;
 
67885
  friend class ::ExtACBuilderCoupling;
 
67886
  friend class ::ExtACSyntaxCoupling;
 
67887
  friend class ::ExtACTree;
 
67888
  friend class ::ExtACKeywords;
 
67889
  friend class ::ExtGnu;
 
67890
  friend class ::PragmaOnceUnitState;
 
67891
  friend class ::PragmaOnce;
 
67892
  friend class ::CMatchSyntax;
 
67893
 
 
67894
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67895
 
 
67896
  CTree *sons[5]; // open, string, comma, cond, close
 
67897
 
 
67898
public:
 
67899
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
 
67900
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
67901
    AddSon (sons[3], c); AddSon (sons[4], cr); 
 
67902
  }
 
67903
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
67904
  static const char *NodeId ();
 
67905
  /** Get the name of the node. Can be compared with NodeId(). */
 
67906
  const char *NodeName () const { return NodeId (); }
 
67907
  /** Get the number of sons. */
 
67908
  int Sons () const { return CTree::Sons (sons, 5); }
 
67909
  /** Get the n-th son.
 
67910
   *  \param n The index of the son.
 
67911
   *  \return The n-th son or NULL. */
 
67912
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
67913
  /** Replace a son.
 
67914
   *  \param old_son The son to replace.
 
67915
   *  \param new_son The new son. */
 
67916
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
67917
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
67918
  }
 
67919
  CTree *Condition () const { return sons[3]; }
 
67920
  CT_Token *String () const { return (CT_Token*)sons[1]; }
 
67921
  const char *Name () const { 
 
67922
    return value ? value->StrLiteral ()->String () : (const char*)0; }
 
67923
 
 
67924
  CExprValue *Value () const { return value; }
 
67925
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
67926
};
 
67927
 
 
67928
 
 
67929
#line 67930 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67930
} // closed Puma
 
67931
class CCExprResolve;
 
67932
class CExprResolve;
 
67933
class WinIfExists;
 
67934
class WinImportHandler;
 
67935
class WinMacros;
 
67936
class WinAsm;
 
67937
class WinDeclSpecs;
 
67938
class WinMemberExplSpec;
 
67939
class WinTypeKeywords;
 
67940
class WinFriend;
 
67941
class ExtAC;
 
67942
class ExtACBuilderCoupling;
 
67943
class ExtACSyntaxCoupling;
 
67944
class ExtACTree;
 
67945
class ExtACKeywords;
 
67946
class ExtGnu;
 
67947
class PragmaOnceUnitState;
 
67948
class PragmaOnce;
 
67949
class CMatchSyntax;
 
67950
namespace Puma {
 
67951
 
 
67952
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67953
class CT_AnyCondition : public CTree {
 
67954
#line 67955 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
67955
  friend class ::CCExprResolve;
 
67956
  friend class ::CExprResolve;
 
67957
  friend class ::WinIfExists;
 
67958
  friend class ::WinImportHandler;
 
67959
  friend class ::WinMacros;
 
67960
  friend class ::WinAsm;
 
67961
  friend class ::WinDeclSpecs;
 
67962
  friend class ::WinMemberExplSpec;
 
67963
  friend class ::WinTypeKeywords;
 
67964
  friend class ::WinFriend;
 
67965
  friend class ::ExtAC;
 
67966
  friend class ::ExtACBuilderCoupling;
 
67967
  friend class ::ExtACSyntaxCoupling;
 
67968
  friend class ::ExtACTree;
 
67969
  friend class ::ExtACKeywords;
 
67970
  friend class ::ExtGnu;
 
67971
  friend class ::PragmaOnceUnitState;
 
67972
  friend class ::PragmaOnce;
 
67973
  friend class ::CMatchSyntax;
 
67974
 
 
67975
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67976
 
 
67977
  CTree *sons[3]; // arg1, arg2, arg3
 
67978
 
 
67979
public:
 
67980
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
 
67981
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
 
67982
  }
 
67983
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
67984
  static const char *NodeId ();
 
67985
  /** Get the name of the node. Can be compared with NodeId(). */
 
67986
  const char *NodeName () const { return NodeId (); }
 
67987
  /** Get the number of sons. */
 
67988
  int Sons () const { return CTree::Sons (sons, 3); }
 
67989
  /** Get the n-th son.
 
67990
   *  \param n The index of the son.
 
67991
   *  \return The n-th son or NULL. */
 
67992
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
67993
  /** Replace a son.
 
67994
   *  \param old_son The son to replace.
 
67995
   *  \param new_son The new son. */
 
67996
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
67997
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
67998
  }
 
67999
};
 
68000
 
 
68001
 
 
68002
} // namespace Puma
 
68003
 
 
68004
#endif /* __CTree_h__ */
 
68005
 
 
68006
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
26089
68007
namespace Puma {
26090
68008
 
26091
68009
 
26094
68012
class CTypeInfo;
26095
68013
 
26096
68014
 
26097
 
#line 26098 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
68015
#line 68016 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
26098
68016
} // closed Puma
 
68017
class CCExprResolve;
 
68018
class CExprResolve;
26099
68019
class WinIfExists;
26100
68020
class WinImportHandler;
26101
68021
class WinMacros;
26102
 
class CMatchSyntax;
26103
 
class ExtGnu;
 
68022
class WinAsm;
 
68023
class WinDeclSpecs;
 
68024
class WinMemberExplSpec;
 
68025
class WinTypeKeywords;
 
68026
class WinFriend;
26104
68027
class ExtAC;
26105
68028
class ExtACBuilderCoupling;
26106
68029
class ExtACSyntaxCoupling;
26107
68030
class ExtACTree;
26108
68031
class ExtACKeywords;
26109
 
class WinAsm;
26110
 
class WinDeclSpecs;
26111
 
class WinMemberExplSpec;
26112
 
class WinTypeKeywords;
 
68032
class ExtGnu;
26113
68033
class PragmaOnceUnitState;
26114
68034
class PragmaOnce;
26115
 
class CCExprResolve;
26116
 
class CExprResolve;
 
68035
class CMatchSyntax;
26117
68036
namespace Puma {
26118
68037
 
26119
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
68038
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
26120
68039
class CSemVisitor : private CVisitor {
26121
 
#line 26122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
68040
#line 68041 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
68041
  friend class ::CCExprResolve;
 
68042
  friend class ::CExprResolve;
26122
68043
  friend class ::WinIfExists;
26123
68044
  friend class ::WinImportHandler;
26124
68045
  friend class ::WinMacros;
26125
 
  friend class ::CMatchSyntax;
26126
 
  friend class ::ExtGnu;
 
68046
  friend class ::WinAsm;
 
68047
  friend class ::WinDeclSpecs;
 
68048
  friend class ::WinMemberExplSpec;
 
68049
  friend class ::WinTypeKeywords;
 
68050
  friend class ::WinFriend;
26127
68051
  friend class ::ExtAC;
26128
68052
  friend class ::ExtACBuilderCoupling;
26129
68053
  friend class ::ExtACSyntaxCoupling;
26130
68054
  friend class ::ExtACTree;
26131
68055
  friend class ::ExtACKeywords;
26132
 
  friend class ::WinAsm;
26133
 
  friend class ::WinDeclSpecs;
26134
 
  friend class ::WinMemberExplSpec;
26135
 
  friend class ::WinTypeKeywords;
 
68056
  friend class ::ExtGnu;
26136
68057
  friend class ::PragmaOnceUnitState;
26137
68058
  friend class ::PragmaOnce;
26138
 
  friend class ::CCExprResolve;
26139
 
  friend class ::CExprResolve;
 
68059
  friend class ::CMatchSyntax;
26140
68060
 
26141
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
68061
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
26142
68062
 
26143
68063
protected:
26144
68064
  CStructure *current_scope;
26145
68065
  ErrorSink &err;
26146
68066
 
26147
68067
public:
26148
 
  CSemVisitor (ErrorSink &);
 
68068
  CSemVisitor (ErrorSink &, CStructure * = (CStructure*)0);
26149
68069
 
26150
68070
  void run (CTree *, CStructure * = (CStructure*)0);
26151
68071
  void configure (Config &) {}
 
68072
 
 
68073
  CTypeInfo *resolveExpr (CTree *, CTree *) const;
 
68074
  void resolveInit (CObjectInfo *info, CTree *, CTree *) const;
26152
68075
  
26153
68076
protected:
26154
68077
  void pre_visit (CTree *);
26192
68115
  void post_action (CT_WhileStmt *);
26193
68116
 
26194
68117
  CT_SimpleName *findName (CTree *) const;
26195
 
 
26196
 
public:
26197
 
  CTypeInfo *resolveExpr (CTree *, CTree *) const;
26198
 
  void resolveInit (CObjectInfo *info, CTree *, CTree *) const;
26199
 
 
26200
68118
};
26201
68119
 
26202
68120
} // namespace Puma
26203
68121
 
26204
68122
#endif /* __CSemVisitor_h__ */
26205
68123
 
26206
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
68124
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
26207
68125
 
26208
 
#line 26209 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
68126
#line 68127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
26209
68127
 
26210
68128
#ifndef __ac_fwd_ExtGnu__
26211
68129
#define __ac_fwd_ExtGnu__
26212
68130
class ExtGnu;
26213
68131
namespace AC {
26214
 
  template <class JoinPoint, class Binding>
26215
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp);
26216
 
  template <class JoinPoint, class Binding>
26217
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp);
26218
 
  template <class JoinPoint>
26219
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
26220
 
  template <class JoinPoint>
26221
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
26222
 
  template <class JoinPoint>
26223
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
26224
 
  template <class JoinPoint>
26225
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
26226
 
  template <class JoinPoint>
26227
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
26228
 
  template <class JoinPoint, class Binding>
26229
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
26230
 
  template <class JoinPoint, class Binding>
26231
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
26232
 
  template <class JoinPoint, class Binding>
26233
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
26234
 
  template <class JoinPoint, class Binding>
26235
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
26236
 
  template <class JoinPoint, class Binding>
26237
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
26238
 
  template <class JoinPoint, class Binding>
26239
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
26240
 
  template <class JoinPoint>
26241
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
26242
 
  template <class JoinPoint>
26243
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
26244
 
  template <class JoinPoint, class Binding>
26245
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
68132
  template <class JoinPoint>
 
68133
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp);
 
68134
  template <class JoinPoint>
 
68135
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp);
 
68136
  template <class JoinPoint>
 
68137
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
 
68138
  template <class JoinPoint>
 
68139
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
 
68140
  template <class JoinPoint>
 
68141
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
 
68142
  template <class JoinPoint>
 
68143
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
 
68144
  template <class JoinPoint>
 
68145
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
 
68146
  template <class JoinPoint>
 
68147
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
 
68148
  template <class JoinPoint>
 
68149
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
 
68150
  template <class JoinPoint>
 
68151
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
 
68152
  template <class JoinPoint>
 
68153
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
 
68154
  template <class JoinPoint>
 
68155
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
 
68156
  template <class JoinPoint>
 
68157
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
 
68158
  template <class JoinPoint>
 
68159
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
 
68160
  template <class JoinPoint>
 
68161
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
 
68162
  template <class JoinPoint>
 
68163
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
68164
  template <class JoinPoint>
 
68165
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp);
26246
68166
}
26247
68167
#endif
26248
68168
 
26249
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
26250
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
68169
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
68170
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
26251
68171
#endif
26252
68172
 
26253
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
26254
 
 
26255
 
#line 26256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
26256
 
 
26257
 
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
26258
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
26259
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
26260
 
 
26261
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
68173
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
26262
68174
// This file is part of PUMA.
26263
68175
// Copyright (C) 1999-2003  The PUMA developer team.
26264
68176
//                                                                
26281
68193
#define __c_sem_decl_specs_h__
26282
68194
 
26283
68195
 
26284
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68196
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26285
68197
 
26286
 
#line 26287 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
68198
#line 68199 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
26287
68199
 
26288
68200
#ifndef __ac_fwd_ExtACTree__
26289
68201
#define __ac_fwd_ExtACTree__
26290
68202
class ExtACTree;
26291
68203
namespace AC {
26292
68204
  template <class JoinPoint>
26293
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
68205
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
26294
68206
  template <class JoinPoint>
26295
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
68207
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
26296
68208
}
26297
68209
#endif
26298
68210
 
26299
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
26300
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
68211
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
68212
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
26301
68213
#endif
26302
68214
 
26303
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26304
 
 
26305
 
#line 26306 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
26306
 
 
26307
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26308
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
26309
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
26310
 
 
26311
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68215
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26312
68216
// This file is part of PUMA.
26313
68217
// Copyright (C) 1999-2003  The PUMA developer team.
26314
68218
//                                                                
26353
68257
class     CT_DefaultStmt;
26354
68258
class     CT_TryStmt;
26355
68259
class   CT_Expression;
 
68260
class     CT_Call;
 
68261
class       CT_CallExpr;
 
68262
class       CT_ImplicitCall;
26356
68263
class     CT_ThrowExpr;
26357
68264
class     CT_NewExpr;
26358
68265
class     CT_DeleteExpr;
26373
68280
class     CT_IfThenExpr;
26374
68281
class     CT_CmpdLiteral;
26375
68282
class     CT_IndexExpr;
26376
 
class     CT_CallExpr;
26377
68283
class     CT_CastExpr;
26378
68284
class     CT_StaticCast;
26379
68285
class       CT_ConstCast;
26420
68326
class     CT_NamespaceDef;
26421
68327
class     CT_NamespaceAliasDef;
26422
68328
class     CT_UsingDirective;
 
68329
class     CT_Condition;
26423
68330
class   CT_List;
26424
68331
class     CT_CmpdStmt;
26425
68332
class     CT_DeclSpecSeq;
26450
68357
class     CT_TemplateArgList;
26451
68358
class   CT_Token;
26452
68359
class   CT_Error;
26453
 
class   CT_Condition;
26454
68360
class   CT_BaseSpec;
26455
68361
class   CT_AccessSpec;
26456
68362
class   CT_ArrayDelimiter;
26490
68396
/*                                                                           */
26491
68397
/*****************************************************************************/
26492
68398
 
26493
 
 
26494
 
#line 26495 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
68399
/** \file
 
68400
 *  C/C++ syntax tree classes.
 
68401
 *  \see Puma::CTree */
 
68402
 
 
68403
/** \class CTree CTree.h Puma/CTree.h
 
68404
 *  Base class for all C/C++ syntax tree classes. */
 
68405
 
 
68406
#line 68407 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
26495
68407
} // closed Puma
 
68408
class CCExprResolve;
 
68409
class CExprResolve;
26496
68410
class WinIfExists;
26497
68411
class WinImportHandler;
26498
68412
class WinMacros;
26499
 
class CMatchSyntax;
26500
 
class ExtGnu;
 
68413
class WinAsm;
 
68414
class WinDeclSpecs;
 
68415
class WinMemberExplSpec;
 
68416
class WinTypeKeywords;
 
68417
class WinFriend;
26501
68418
class ExtAC;
26502
68419
class ExtACBuilderCoupling;
26503
68420
class ExtACSyntaxCoupling;
26504
68421
class ExtACTree;
26505
68422
class ExtACKeywords;
26506
 
class WinAsm;
26507
 
class WinDeclSpecs;
26508
 
class WinMemberExplSpec;
26509
 
class WinTypeKeywords;
 
68423
class ExtGnu;
26510
68424
class PragmaOnceUnitState;
26511
68425
class PragmaOnce;
26512
 
class CCExprResolve;
26513
 
class CExprResolve;
26514
 
namespace Puma {
26515
 
 
26516
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68426
class CMatchSyntax;
 
68427
namespace Puma {
 
68428
 
 
68429
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68430
 
 
68431
#line 68432 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
68432
} // closed Puma
 
68433
 
 
68434
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68435
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68436
#include "CCExprResolveH.ah"
 
68437
#endif
 
68438
namespace Puma {
 
68439
 
 
68440
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68441
 
 
68442
#line 68443 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
68443
} // closed Puma
 
68444
 
 
68445
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68446
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68447
#include "CExprResolveH.ah"
 
68448
#endif
 
68449
namespace Puma {
 
68450
 
 
68451
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26517
68452
class CTree {
26518
 
#line 26519 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
68453
#line 68454 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
68454
  friend class ::CCExprResolve;
 
68455
  friend class ::CExprResolve;
26519
68456
  friend class ::WinIfExists;
26520
68457
  friend class ::WinImportHandler;
26521
68458
  friend class ::WinMacros;
26522
 
  friend class ::CMatchSyntax;
26523
 
  friend class ::ExtGnu;
 
68459
  friend class ::WinAsm;
 
68460
  friend class ::WinDeclSpecs;
 
68461
  friend class ::WinMemberExplSpec;
 
68462
  friend class ::WinTypeKeywords;
 
68463
  friend class ::WinFriend;
26524
68464
  friend class ::ExtAC;
26525
68465
  friend class ::ExtACBuilderCoupling;
26526
68466
  friend class ::ExtACSyntaxCoupling;
26527
68467
  friend class ::ExtACTree;
26528
68468
  friend class ::ExtACKeywords;
26529
 
  friend class ::WinAsm;
26530
 
  friend class ::WinDeclSpecs;
26531
 
  friend class ::WinMemberExplSpec;
26532
 
  friend class ::WinTypeKeywords;
 
68469
  friend class ::ExtGnu;
26533
68470
  friend class ::PragmaOnceUnitState;
26534
68471
  friend class ::PragmaOnce;
26535
 
  friend class ::CCExprResolve;
26536
 
  friend class ::CExprResolve;
26537
 
 
26538
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68472
  friend class ::CMatchSyntax;
 
68473
 
 
68474
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68475
 
 
68476
  CTree * _parent;
26539
68477
 
26540
68478
public:
26541
68479
  /*DEBUG*/static int alloc;
26542
68480
  /*DEBUG*/static int release;
26543
68481
 
26544
68482
protected:
26545
 
  CTree *Son (CTree * const *, int, int) const;
26546
 
  int Sons (CTree * const *, int) const;
26547
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
68483
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
68484
   *  \param sons The sons array.
 
68485
   *  \param len Length of the sons array.
 
68486
   *  \param n Index of the son.
 
68487
   *  \return The n-th son or NULL. */
 
68488
  CTree *Son (CTree * const *sons, int len, int n) const;
 
68489
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
68490
   *  \param sons The sons array.
 
68491
   *  \param len Length of the sons array. */
 
68492
  int Sons (CTree * const *sons, int len) const;
 
68493
  /** Replace a son.
 
68494
   *  \param sons The sons array.
 
68495
   *  \param len Length of the sons array.
 
68496
   *  \param old_son The son to replace.
 
68497
   *  \param new_son The new son. */
 
68498
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
68499
  /** Replace a son if it equals the given son.
 
68500
   *  \param son The actual son.
 
68501
   *  \param old_son The son to replace, must match the actual son.
 
68502
   *  \param new_son The new son, overwrites the actual son. */
 
68503
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
68504
  /** Add a new son.
 
68505
   *  \param son The actual son.
 
68506
   *  \param new_son The new son, overwrites the actual son. */
 
68507
  void AddSon (CTree *&son, CTree *new_son);
 
68508
  /** Set the parent tree node.
 
68509
   *  \param parent The new parent tree node. */
 
68510
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
68511
  /** Set the parent tree node of the given tree node.
 
68512
   *  \param node The tree node.
 
68513
   *  \param parent The new parent. */
 
68514
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
26548
68515
  
26549
68516
protected:
26550
 
  CTree () { /*DEBUG*/alloc++; }
 
68517
  /** Default constructor. */
 
68518
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
26551
68519
 
26552
68520
public:
 
68521
  /** Destructor. */
26553
68522
  virtual ~CTree () { /*DEBUG*/release++; }
 
68523
  /** Get the number of sons. */
26554
68524
  virtual int Sons () const = 0;
 
68525
  /** Get the n-th son.
 
68526
   *  \param n The index of the son.
 
68527
   *  \return The n-th son or NULL. */
26555
68528
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
68529
  /** Get the node name (node identifier). */
26556
68530
  virtual const char *NodeName () const = 0;
 
68531
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
68532
   *  \return The token or NULL. */
26557
68533
  virtual Token *token () const;
 
68534
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
68535
   *  \return The token or NULL. */
26558
68536
  virtual Token *end_token () const;
 
68537
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
68538
   *  \return The token node or NULL. */
26559
68539
  virtual CT_Token *token_node () const;
 
68540
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
68541
   *  \return The token node or NULL. */
26560
68542
  virtual CT_Token *end_token_node () const;
26561
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
68543
  /** Replace a son.
 
68544
   *  \param old_son The son to replace.
 
68545
   *  \param new_son The son with which to replace. */
 
68546
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
68547
  /** Get the parent node.
 
68548
   *  \return The parent node or NULL. */
 
68549
  virtual CTree *Parent () const { return (CTree*)_parent; }
26562
68550
 
26563
68551
public: // semantic information
 
68552
  /** Get the semantic type of the node.
 
68553
   *  \return The type object or NULL. */
26564
68554
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
68555
  /** Get the calculated value of the expression.
 
68556
   *  \return The value object or NULL. */
26565
68557
  virtual CExprValue *Value () const { return (CExprValue*)0; }
26566
68558
  
 
68559
  /** Get the semantic scope of the node.
 
68560
   *  \return The scope object or NULL. */
 
68561
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
68562
  /** Get the semantic value of the node.
 
68563
   *  \return The value object or NULL. */
26567
68564
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
68565
  /** Get the semantic object of the node.
 
68566
   *  \return The semantic object or NULL. */
26568
68567
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
26569
68568
  
26570
68569
public: // node classification function
 
68570
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
68571
   *  \return The CT_SimpleName node or NULL. */
26571
68572
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
68573
  /** Get a pointer to CT_String if the current node represents a string.
 
68574
   *  \return The CT_String node or NULL. */
 
68575
  virtual CT_String *IsString () { return 0; }
 
68576
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
68577
   *  \return The CT_Declarator pointer or NULL. */
26572
68578
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
68579
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
68580
   *  \return The CT_Statement pointer or NULL. */
 
68581
  virtual CT_Statement *IsStatement () { return 0; }
 
68582
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
68583
   *  \return The CT_Expression pointer or NULL. */
 
68584
  virtual CT_Expression *IsExpression () { return 0; }
 
68585
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
68586
   *  \return The CT_Decl pointer or NULL. */
 
68587
  virtual CT_Decl *IsDeclaration () { return 0; }
 
68588
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
68589
   *  \return The CT_Call pointer or NULL. */
 
68590
  virtual CT_Call *IsCall () { return 0; }
26573
68591
   private:
26574
68592
  typedef CTree CCExprResolveCTree;
26575
68593
 
26576
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68594
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
26577
68595
 public :
26578
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68596
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
26579
68597
  typedef CTree CExprResolveCTree;
26580
68598
 
26581
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68599
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
26582
68600
 public :
26583
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
26584
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68601
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68602
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26585
68603
};
26586
68604
 
 
68605
/** \class CT_Error CTree.h Puma/CTree.h
 
68606
 *  Error tree node that is inserted into the tree for syntactic constructs
 
68607
 *  that could not be parsed. */
26587
68608
 
26588
 
#line 26589 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
68609
#line 68610 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
26589
68610
} // closed Puma
 
68611
class CCExprResolve;
 
68612
class CExprResolve;
26590
68613
class WinIfExists;
26591
68614
class WinImportHandler;
26592
68615
class WinMacros;
26593
 
class CMatchSyntax;
26594
 
class ExtGnu;
 
68616
class WinAsm;
 
68617
class WinDeclSpecs;
 
68618
class WinMemberExplSpec;
 
68619
class WinTypeKeywords;
 
68620
class WinFriend;
26595
68621
class ExtAC;
26596
68622
class ExtACBuilderCoupling;
26597
68623
class ExtACSyntaxCoupling;
26598
68624
class ExtACTree;
26599
68625
class ExtACKeywords;
26600
 
class WinAsm;
26601
 
class WinDeclSpecs;
26602
 
class WinMemberExplSpec;
26603
 
class WinTypeKeywords;
 
68626
class ExtGnu;
26604
68627
class PragmaOnceUnitState;
26605
68628
class PragmaOnce;
26606
 
class CCExprResolve;
26607
 
class CExprResolve;
 
68629
class CMatchSyntax;
26608
68630
namespace Puma {
26609
68631
 
26610
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68632
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26611
68633
class CT_Error : public CTree {
26612
 
#line 26613 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
68634
#line 68635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
68635
  friend class ::CCExprResolve;
 
68636
  friend class ::CExprResolve;
26613
68637
  friend class ::WinIfExists;
26614
68638
  friend class ::WinImportHandler;
26615
68639
  friend class ::WinMacros;
26616
 
  friend class ::CMatchSyntax;
26617
 
  friend class ::ExtGnu;
 
68640
  friend class ::WinAsm;
 
68641
  friend class ::WinDeclSpecs;
 
68642
  friend class ::WinMemberExplSpec;
 
68643
  friend class ::WinTypeKeywords;
 
68644
  friend class ::WinFriend;
26618
68645
  friend class ::ExtAC;
26619
68646
  friend class ::ExtACBuilderCoupling;
26620
68647
  friend class ::ExtACSyntaxCoupling;
26621
68648
  friend class ::ExtACTree;
26622
68649
  friend class ::ExtACKeywords;
26623
 
  friend class ::WinAsm;
26624
 
  friend class ::WinDeclSpecs;
26625
 
  friend class ::WinMemberExplSpec;
26626
 
  friend class ::WinTypeKeywords;
 
68650
  friend class ::ExtGnu;
26627
68651
  friend class ::PragmaOnceUnitState;
26628
68652
  friend class ::PragmaOnce;
26629
 
  friend class ::CCExprResolve;
26630
 
  friend class ::CExprResolve;
 
68653
  friend class ::CMatchSyntax;
26631
68654
 
26632
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68655
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26633
68656
 
26634
68657
public:
 
68658
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26635
68659
  static const char *NodeId ();
 
68660
  /** Get the name of the node. Can be compared with NodeId(). */
26636
68661
  const char *NodeName () const { return NodeId (); }
 
68662
  /** Get the number of sons. */
26637
68663
  int Sons () const { return 0; }
26638
68664
};
26639
68665
 
 
68666
/** \class CT_Token CTree.h Puma/CTree.h
 
68667
 *  Tree node representing a single token in the source code. */
26640
68668
 
26641
 
#line 26642 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
68669
#line 68670 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
26642
68670
} // closed Puma
 
68671
class CCExprResolve;
 
68672
class CExprResolve;
26643
68673
class WinIfExists;
26644
68674
class WinImportHandler;
26645
68675
class WinMacros;
26646
 
class CMatchSyntax;
26647
 
class ExtGnu;
 
68676
class WinAsm;
 
68677
class WinDeclSpecs;
 
68678
class WinMemberExplSpec;
 
68679
class WinTypeKeywords;
 
68680
class WinFriend;
26648
68681
class ExtAC;
26649
68682
class ExtACBuilderCoupling;
26650
68683
class ExtACSyntaxCoupling;
26651
68684
class ExtACTree;
26652
68685
class ExtACKeywords;
26653
 
class WinAsm;
26654
 
class WinDeclSpecs;
26655
 
class WinMemberExplSpec;
26656
 
class WinTypeKeywords;
 
68686
class ExtGnu;
26657
68687
class PragmaOnceUnitState;
26658
68688
class PragmaOnce;
26659
 
class CCExprResolve;
26660
 
class CExprResolve;
 
68689
class CMatchSyntax;
26661
68690
namespace Puma {
26662
68691
 
26663
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68692
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26664
68693
class CT_Token : public CTree {
26665
 
#line 26666 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
68694
#line 68695 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
68695
  friend class ::CCExprResolve;
 
68696
  friend class ::CExprResolve;
26666
68697
  friend class ::WinIfExists;
26667
68698
  friend class ::WinImportHandler;
26668
68699
  friend class ::WinMacros;
26669
 
  friend class ::CMatchSyntax;
26670
 
  friend class ::ExtGnu;
 
68700
  friend class ::WinAsm;
 
68701
  friend class ::WinDeclSpecs;
 
68702
  friend class ::WinMemberExplSpec;
 
68703
  friend class ::WinTypeKeywords;
 
68704
  friend class ::WinFriend;
26671
68705
  friend class ::ExtAC;
26672
68706
  friend class ::ExtACBuilderCoupling;
26673
68707
  friend class ::ExtACSyntaxCoupling;
26674
68708
  friend class ::ExtACTree;
26675
68709
  friend class ::ExtACKeywords;
26676
 
  friend class ::WinAsm;
26677
 
  friend class ::WinDeclSpecs;
26678
 
  friend class ::WinMemberExplSpec;
26679
 
  friend class ::WinTypeKeywords;
 
68710
  friend class ::ExtGnu;
26680
68711
  friend class ::PragmaOnceUnitState;
26681
68712
  friend class ::PragmaOnce;
26682
 
  friend class ::CCExprResolve;
26683
 
  friend class ::CExprResolve;
 
68713
  friend class ::CMatchSyntax;
26684
68714
 
26685
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68715
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26686
68716
 
26687
68717
  Token *_token;
26688
68718
  unsigned long int _number;
26689
68719
  
26690
68720
public:
26691
 
  CT_Token (Token *t, unsigned long int n = 0) : 
26692
 
    _token (t), _number (n) {}
 
68721
  /** Constructor. 
 
68722
   *  \param token The represented token.
 
68723
   *  \param number The token number (a consecutive number). */
 
68724
  CT_Token (Token *token, unsigned long int number = 0) : 
 
68725
    _token (token), _number (number) {}
 
68726
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26693
68727
  static const char *NodeId ();
 
68728
  /** Get the name of the node. Can be compared with NodeId(). */
26694
68729
  const char *NodeName () const { return NodeId (); }
 
68730
  /** Get the number of sons. */
26695
68731
  int Sons () const { return 0; }
 
68732
  /** Get the represented token. */
26696
68733
  Token *token () const { return _token; }
 
68734
  /** Get the represented token. */
26697
68735
  Token *end_token () const { return _token; }
 
68736
  /** Get this. */
26698
68737
  CT_Token *token_node () const { return (CT_Token*)this; }
 
68738
  /** Get this. */
26699
68739
  CT_Token *end_token_node () const { return (CT_Token*)this; }
26700
 
  void Number (unsigned long int n) { _number = n; }
 
68740
  /** Set the token number. 
 
68741
   *  \param number The token number. */ 
 
68742
  void Number (unsigned long int number) { _number = number; }
 
68743
  /** Get the token number. Can be used to indentify this token. */
26701
68744
  unsigned long int Number () const { return _number; }
26702
 
  // special new / delete with reusing memory
 
68745
  
 
68746
public:
 
68747
  /** Own new operator reusing memory. */
26703
68748
  void *operator new (size_t);
26704
 
  void  operator delete (void *);
 
68749
  /** Own delete operator. */
 
68750
  void operator delete (void *);
26705
68751
};
26706
68752
 
26707
68753
/*****************************************************************************/
26710
68756
/*                                                                           */
26711
68757
/*****************************************************************************/
26712
68758
 
 
68759
/** \class CT_List CTree.h Puma/CTree.h
 
68760
 *  Base class for tree nodes representing lists. */
26713
68761
 
26714
 
#line 26715 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
68762
#line 68763 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
26715
68763
} // closed Puma
 
68764
class CCExprResolve;
 
68765
class CExprResolve;
26716
68766
class WinIfExists;
26717
68767
class WinImportHandler;
26718
68768
class WinMacros;
26719
 
class CMatchSyntax;
26720
 
class ExtGnu;
 
68769
class WinAsm;
 
68770
class WinDeclSpecs;
 
68771
class WinMemberExplSpec;
 
68772
class WinTypeKeywords;
 
68773
class WinFriend;
26721
68774
class ExtAC;
26722
68775
class ExtACBuilderCoupling;
26723
68776
class ExtACSyntaxCoupling;
26724
68777
class ExtACTree;
26725
68778
class ExtACKeywords;
26726
 
class WinAsm;
26727
 
class WinDeclSpecs;
26728
 
class WinMemberExplSpec;
26729
 
class WinTypeKeywords;
 
68779
class ExtGnu;
26730
68780
class PragmaOnceUnitState;
26731
68781
class PragmaOnce;
26732
 
class CCExprResolve;
26733
 
class CExprResolve;
 
68782
class CMatchSyntax;
26734
68783
namespace Puma {
26735
68784
 
26736
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68785
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26737
68786
class CT_List : public CTree {
26738
 
#line 26739 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
68787
#line 68788 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
68788
  friend class ::CCExprResolve;
 
68789
  friend class ::CExprResolve;
26739
68790
  friend class ::WinIfExists;
26740
68791
  friend class ::WinImportHandler;
26741
68792
  friend class ::WinMacros;
26742
 
  friend class ::CMatchSyntax;
26743
 
  friend class ::ExtGnu;
 
68793
  friend class ::WinAsm;
 
68794
  friend class ::WinDeclSpecs;
 
68795
  friend class ::WinMemberExplSpec;
 
68796
  friend class ::WinTypeKeywords;
 
68797
  friend class ::WinFriend;
26744
68798
  friend class ::ExtAC;
26745
68799
  friend class ::ExtACBuilderCoupling;
26746
68800
  friend class ::ExtACSyntaxCoupling;
26747
68801
  friend class ::ExtACTree;
26748
68802
  friend class ::ExtACKeywords;
26749
 
  friend class ::WinAsm;
26750
 
  friend class ::WinDeclSpecs;
26751
 
  friend class ::WinMemberExplSpec;
26752
 
  friend class ::WinTypeKeywords;
 
68803
  friend class ::ExtGnu;
26753
68804
  friend class ::PragmaOnceUnitState;
26754
68805
  friend class ::PragmaOnce;
26755
 
  friend class ::CCExprResolve;
26756
 
  friend class ::CExprResolve;
 
68806
  friend class ::CMatchSyntax;
26757
68807
 
26758
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68808
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26759
68809
 
26760
68810
  Array<CTree*> _sons;
26761
68811
  int _properties;
26762
68812
 
26763
68813
protected:
 
68814
  /** Constructor.
 
68815
   *  \param size The initial list size.
 
68816
   *  \param incr The initial increment count. 
 
68817
   *  \param props The list properties (bit array). */
26764
68818
  CT_List(int size = 5, int incr = 5, int props = 0) : 
26765
68819
    _sons (size, incr), _properties (props) {}
26766
68820
 
26767
68821
public:
 
68822
  /** List properties. */
26768
68823
  enum {
26769
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
26770
 
    CLOSE = 2,
26771
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
26772
 
    SEPARATORS = 4,   // the list has separators like ','
26773
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
26774
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
26775
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
26776
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
68824
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
68825
    CLOSE = 2,        /** List has an end token */
 
68826
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
68827
    SEPARATORS = 4,   /** List has separators, like ',' */
 
68828
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
68829
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
68830
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
68831
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
26777
68832
  };
26778
68833
 
 
68834
  /** Get the number of list entries. */
26779
68835
  int Entries () const;
26780
 
  CTree *Entry (int no) const;
 
68836
  /** Get the n-th list entry.
 
68837
   *  \param n The index of the entry. 
 
68838
   *  \return The list entry or NULL. */
 
68839
  CTree *Entry (int n) const;
 
68840
  /** Get the number of sons. */
26781
68841
  int Sons () const { return _sons.length (); }
 
68842
  /** Get the n-th son.
 
68843
   *  \param n The index of the son. 
 
68844
   *  \return The n-th son or NULL. */
26782
68845
  CTree *Son (int n) const { return _sons.lookup (n); }
 
68846
  /** Get the list properties. */
26783
68847
  int GetProperties () const { return _properties; }
 
68848
  /** Add a list property.
 
68849
   *  \param p The property to add. */
26784
68850
  void AddProperties (int p) { _properties |= p; }
26785
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
26786
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
26787
 
  void InsertSon (CTree *, CTree *);  // before given son
26788
 
  void ReplaceSon (CTree *, CTree *);
26789
 
  void RemoveSon (CTree *);
 
68851
  /** Add a son.
 
68852
   *  \param s The son to add. */
 
68853
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
68854
  /** Prepend a son.
 
68855
   *  \param s The son to prepend. */
 
68856
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
68857
  /** Insert a son before another son.
 
68858
   *  \param before The son to insert the new son before.
 
68859
   *  \param son The son to insert. */
 
68860
  void InsertSon (CTree *before, CTree *son); 
 
68861
  /** Replace a son.
 
68862
   *  \param old_son The son to replace.
 
68863
   *  \param new_son The new son. */
 
68864
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
68865
  /** Remove a son.
 
68866
   *  \param son The son to remove. */
 
68867
  void RemoveSon (CTree *son);
 
68868
  /** Insert a son at the given index. 
 
68869
   *  \param idx The index at which to insert.
 
68870
   *  \param s The son to insert. */
26790
68871
  void InsertSon (int idx, CTree *s)
26791
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
68872
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
68873
  /** Replace the son at the given index.
 
68874
   *  \param idx The index of the son to replace.
 
68875
   *  \param s The new son. */
26792
68876
  void ReplaceSon (int idx, CTree *s) 
26793
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
68877
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
68878
  /** Remove the son at the given index. 
 
68879
   *  \param idx The index of the son to remove. */
26794
68880
  void RemoveSon (int idx) 
26795
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
68881
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
26796
68882
};
26797
68883
 
 
68884
/** \class CT_ExprList CTree.h Puma/CTree.h
 
68885
 *  Tree node representing an expression list. */
26798
68886
 
26799
 
#line 26800 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
68887
#line 68888 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
26800
68888
} // closed Puma
 
68889
class CCExprResolve;
 
68890
class CExprResolve;
26801
68891
class WinIfExists;
26802
68892
class WinImportHandler;
26803
68893
class WinMacros;
26804
 
class CMatchSyntax;
26805
 
class ExtGnu;
 
68894
class WinAsm;
 
68895
class WinDeclSpecs;
 
68896
class WinMemberExplSpec;
 
68897
class WinTypeKeywords;
 
68898
class WinFriend;
26806
68899
class ExtAC;
26807
68900
class ExtACBuilderCoupling;
26808
68901
class ExtACSyntaxCoupling;
26809
68902
class ExtACTree;
26810
68903
class ExtACKeywords;
26811
 
class WinAsm;
26812
 
class WinDeclSpecs;
26813
 
class WinMemberExplSpec;
26814
 
class WinTypeKeywords;
 
68904
class ExtGnu;
26815
68905
class PragmaOnceUnitState;
26816
68906
class PragmaOnce;
26817
 
class CCExprResolve;
26818
 
class CExprResolve;
 
68907
class CMatchSyntax;
26819
68908
namespace Puma {
26820
68909
 
26821
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68910
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26822
68911
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
26823
 
#line 26824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
68912
#line 68913 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
68913
  friend class ::CCExprResolve;
 
68914
  friend class ::CExprResolve;
26824
68915
  friend class ::WinIfExists;
26825
68916
  friend class ::WinImportHandler;
26826
68917
  friend class ::WinMacros;
26827
 
  friend class ::CMatchSyntax;
26828
 
  friend class ::ExtGnu;
 
68918
  friend class ::WinAsm;
 
68919
  friend class ::WinDeclSpecs;
 
68920
  friend class ::WinMemberExplSpec;
 
68921
  friend class ::WinTypeKeywords;
 
68922
  friend class ::WinFriend;
26829
68923
  friend class ::ExtAC;
26830
68924
  friend class ::ExtACBuilderCoupling;
26831
68925
  friend class ::ExtACSyntaxCoupling;
26832
68926
  friend class ::ExtACTree;
26833
68927
  friend class ::ExtACKeywords;
26834
 
  friend class ::WinAsm;
26835
 
  friend class ::WinDeclSpecs;
26836
 
  friend class ::WinMemberExplSpec;
26837
 
  friend class ::WinTypeKeywords;
 
68928
  friend class ::ExtGnu;
26838
68929
  friend class ::PragmaOnceUnitState;
26839
68930
  friend class ::PragmaOnce;
26840
 
  friend class ::CCExprResolve;
26841
 
  friend class ::CExprResolve;
 
68931
  friend class ::CMatchSyntax;
26842
68932
 
26843
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68933
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26844
68934
 
26845
68935
public:
 
68936
  /** Constructor. */
26846
68937
  CT_ExprList () { AddProperties (SEPARATORS); }
 
68938
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26847
68939
  static const char *NodeId ();
 
68940
  /** Get the name of the node. Can be compared with NodeId(). */
26848
68941
  const char *NodeName () const { return NodeId (); }
26849
68942
 
 
68943
  /** Get the type of the last expression in the expression list.
 
68944
   *  \return The type or NULL. */
26850
68945
  CTypeInfo *Type () const { return type; }
 
68946
  /** Get the value of the last expression in the expression list.
 
68947
   *  \return The value of NULL. */
26851
68948
  CExprValue *Value () const { return value; }
 
68949
  /** Get the semantic value of the node. */
26852
68950
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
68951
  /** Get the semantic object of the node. */
26853
68952
  CSemObject *SemObject () const { return (CSemObject*)this; }
26854
68953
};
26855
68954
 
 
68955
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
68956
 *  Tree node representing a list of declarators. */
26856
68957
 
26857
 
#line 26858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
68958
#line 68959 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
26858
68959
} // closed Puma
 
68960
class CCExprResolve;
 
68961
class CExprResolve;
26859
68962
class WinIfExists;
26860
68963
class WinImportHandler;
26861
68964
class WinMacros;
26862
 
class CMatchSyntax;
26863
 
class ExtGnu;
 
68965
class WinAsm;
 
68966
class WinDeclSpecs;
 
68967
class WinMemberExplSpec;
 
68968
class WinTypeKeywords;
 
68969
class WinFriend;
26864
68970
class ExtAC;
26865
68971
class ExtACBuilderCoupling;
26866
68972
class ExtACSyntaxCoupling;
26867
68973
class ExtACTree;
26868
68974
class ExtACKeywords;
26869
 
class WinAsm;
26870
 
class WinDeclSpecs;
26871
 
class WinMemberExplSpec;
26872
 
class WinTypeKeywords;
 
68975
class ExtGnu;
26873
68976
class PragmaOnceUnitState;
26874
68977
class PragmaOnce;
26875
 
class CCExprResolve;
26876
 
class CExprResolve;
 
68978
class CMatchSyntax;
26877
68979
namespace Puma {
26878
68980
 
26879
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68981
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26880
68982
class CT_DeclaratorList : public CT_List {
26881
 
#line 26882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
68983
#line 68984 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
68984
  friend class ::CCExprResolve;
 
68985
  friend class ::CExprResolve;
26882
68986
  friend class ::WinIfExists;
26883
68987
  friend class ::WinImportHandler;
26884
68988
  friend class ::WinMacros;
26885
 
  friend class ::CMatchSyntax;
26886
 
  friend class ::ExtGnu;
 
68989
  friend class ::WinAsm;
 
68990
  friend class ::WinDeclSpecs;
 
68991
  friend class ::WinMemberExplSpec;
 
68992
  friend class ::WinTypeKeywords;
 
68993
  friend class ::WinFriend;
26887
68994
  friend class ::ExtAC;
26888
68995
  friend class ::ExtACBuilderCoupling;
26889
68996
  friend class ::ExtACSyntaxCoupling;
26890
68997
  friend class ::ExtACTree;
26891
68998
  friend class ::ExtACKeywords;
26892
 
  friend class ::WinAsm;
26893
 
  friend class ::WinDeclSpecs;
26894
 
  friend class ::WinMemberExplSpec;
26895
 
  friend class ::WinTypeKeywords;
 
68999
  friend class ::ExtGnu;
26896
69000
  friend class ::PragmaOnceUnitState;
26897
69001
  friend class ::PragmaOnce;
26898
 
  friend class ::CCExprResolve;
26899
 
  friend class ::CExprResolve;
 
69002
  friend class ::CMatchSyntax;
26900
69003
 
26901
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69004
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26902
69005
 
26903
69006
public:
 
69007
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26904
69008
  static const char *NodeId ();
 
69009
  /** Get the name of the node. Can be compared with NodeId(). */
26905
69010
  const char *NodeName () const { return NodeId (); }
26906
69011
};
26907
69012
 
 
69013
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
69014
 *  Tree node representing a list of enumerator constants. */
26908
69015
 
26909
 
#line 26910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69016
#line 69017 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
26910
69017
} // closed Puma
 
69018
class CCExprResolve;
 
69019
class CExprResolve;
26911
69020
class WinIfExists;
26912
69021
class WinImportHandler;
26913
69022
class WinMacros;
26914
 
class CMatchSyntax;
26915
 
class ExtGnu;
 
69023
class WinAsm;
 
69024
class WinDeclSpecs;
 
69025
class WinMemberExplSpec;
 
69026
class WinTypeKeywords;
 
69027
class WinFriend;
26916
69028
class ExtAC;
26917
69029
class ExtACBuilderCoupling;
26918
69030
class ExtACSyntaxCoupling;
26919
69031
class ExtACTree;
26920
69032
class ExtACKeywords;
26921
 
class WinAsm;
26922
 
class WinDeclSpecs;
26923
 
class WinMemberExplSpec;
26924
 
class WinTypeKeywords;
 
69033
class ExtGnu;
26925
69034
class PragmaOnceUnitState;
26926
69035
class PragmaOnce;
26927
 
class CCExprResolve;
26928
 
class CExprResolve;
 
69036
class CMatchSyntax;
26929
69037
namespace Puma {
26930
69038
 
26931
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69039
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26932
69040
class CT_EnumeratorList : public CT_List {
26933
 
#line 26934 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69041
#line 69042 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69042
  friend class ::CCExprResolve;
 
69043
  friend class ::CExprResolve;
26934
69044
  friend class ::WinIfExists;
26935
69045
  friend class ::WinImportHandler;
26936
69046
  friend class ::WinMacros;
26937
 
  friend class ::CMatchSyntax;
26938
 
  friend class ::ExtGnu;
 
69047
  friend class ::WinAsm;
 
69048
  friend class ::WinDeclSpecs;
 
69049
  friend class ::WinMemberExplSpec;
 
69050
  friend class ::WinTypeKeywords;
 
69051
  friend class ::WinFriend;
26939
69052
  friend class ::ExtAC;
26940
69053
  friend class ::ExtACBuilderCoupling;
26941
69054
  friend class ::ExtACSyntaxCoupling;
26942
69055
  friend class ::ExtACTree;
26943
69056
  friend class ::ExtACKeywords;
26944
 
  friend class ::WinAsm;
26945
 
  friend class ::WinDeclSpecs;
26946
 
  friend class ::WinMemberExplSpec;
26947
 
  friend class ::WinTypeKeywords;
 
69057
  friend class ::ExtGnu;
26948
69058
  friend class ::PragmaOnceUnitState;
26949
69059
  friend class ::PragmaOnce;
26950
 
  friend class ::CCExprResolve;
26951
 
  friend class ::CExprResolve;
 
69060
  friend class ::CMatchSyntax;
26952
69061
 
26953
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69062
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26954
69063
 
26955
69064
public:
 
69065
  /** Constructor. */
26956
69066
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
69067
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26957
69068
  static const char *NodeId ();
 
69069
  /** Get the name of the node. Can be compared with NodeId(). */
26958
69070
  const char *NodeName () const { return NodeId (); }
26959
69071
};
26960
69072
   
 
69073
/** \class CT_DeclList CTree.h Puma/CTree.h
 
69074
 *  Tree node representing a list of declarations. */
26961
69075
 
26962
 
#line 26963 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69076
#line 69077 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
26963
69077
} // closed Puma
 
69078
class CCExprResolve;
 
69079
class CExprResolve;
26964
69080
class WinIfExists;
26965
69081
class WinImportHandler;
26966
69082
class WinMacros;
26967
 
class CMatchSyntax;
26968
 
class ExtGnu;
 
69083
class WinAsm;
 
69084
class WinDeclSpecs;
 
69085
class WinMemberExplSpec;
 
69086
class WinTypeKeywords;
 
69087
class WinFriend;
26969
69088
class ExtAC;
26970
69089
class ExtACBuilderCoupling;
26971
69090
class ExtACSyntaxCoupling;
26972
69091
class ExtACTree;
26973
69092
class ExtACKeywords;
26974
 
class WinAsm;
26975
 
class WinDeclSpecs;
26976
 
class WinMemberExplSpec;
26977
 
class WinTypeKeywords;
 
69093
class ExtGnu;
26978
69094
class PragmaOnceUnitState;
26979
69095
class PragmaOnce;
26980
 
class CCExprResolve;
26981
 
class CExprResolve;
 
69096
class CMatchSyntax;
26982
69097
namespace Puma {
26983
69098
 
26984
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69099
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26985
69100
class CT_DeclList : public CT_List {
26986
 
#line 26987 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69101
#line 69102 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69102
  friend class ::CCExprResolve;
 
69103
  friend class ::CExprResolve;
26987
69104
  friend class ::WinIfExists;
26988
69105
  friend class ::WinImportHandler;
26989
69106
  friend class ::WinMacros;
26990
 
  friend class ::CMatchSyntax;
26991
 
  friend class ::ExtGnu;
 
69107
  friend class ::WinAsm;
 
69108
  friend class ::WinDeclSpecs;
 
69109
  friend class ::WinMemberExplSpec;
 
69110
  friend class ::WinTypeKeywords;
 
69111
  friend class ::WinFriend;
26992
69112
  friend class ::ExtAC;
26993
69113
  friend class ::ExtACBuilderCoupling;
26994
69114
  friend class ::ExtACSyntaxCoupling;
26995
69115
  friend class ::ExtACTree;
26996
69116
  friend class ::ExtACKeywords;
26997
 
  friend class ::WinAsm;
26998
 
  friend class ::WinDeclSpecs;
26999
 
  friend class ::WinMemberExplSpec;
27000
 
  friend class ::WinTypeKeywords;
 
69117
  friend class ::ExtGnu;
27001
69118
  friend class ::PragmaOnceUnitState;
27002
69119
  friend class ::PragmaOnce;
27003
 
  friend class ::CCExprResolve;
27004
 
  friend class ::CExprResolve;
 
69120
  friend class ::CMatchSyntax;
27005
69121
 
27006
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69122
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27007
69123
 
27008
69124
public:
 
69125
  /** Constructor. 
 
69126
   *  \param size The initial size of the list.
 
69127
   *  \param incr The initial increment count of the list. */
27009
69128
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
69129
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27010
69130
  static const char *NodeId ();
 
69131
  /** Get the name of the node. Can be compared with NodeId(). */
27011
69132
  const char *NodeName () const { return NodeId (); }
 
69133
  /** Set the linkage specifiers to each declaration in the list.
 
69134
   *  \param l The linkage specifiers node. */
27012
69135
  void Linkage (CT_LinkageSpec *l);
27013
69136
};
27014
69137
 
 
69138
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
69139
 *  Tree node representing a sequence of declaration specifiers. */
27015
69140
 
27016
 
#line 27017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69141
#line 69142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
27017
69142
} // closed Puma
 
69143
class CCExprResolve;
 
69144
class CExprResolve;
27018
69145
class WinIfExists;
27019
69146
class WinImportHandler;
27020
69147
class WinMacros;
27021
 
class CMatchSyntax;
27022
 
class ExtGnu;
 
69148
class WinAsm;
 
69149
class WinDeclSpecs;
 
69150
class WinMemberExplSpec;
 
69151
class WinTypeKeywords;
 
69152
class WinFriend;
27023
69153
class ExtAC;
27024
69154
class ExtACBuilderCoupling;
27025
69155
class ExtACSyntaxCoupling;
27026
69156
class ExtACTree;
27027
69157
class ExtACKeywords;
27028
 
class WinAsm;
27029
 
class WinDeclSpecs;
27030
 
class WinMemberExplSpec;
27031
 
class WinTypeKeywords;
 
69158
class ExtGnu;
27032
69159
class PragmaOnceUnitState;
27033
69160
class PragmaOnce;
27034
 
class CCExprResolve;
27035
 
class CExprResolve;
 
69161
class CMatchSyntax;
27036
69162
namespace Puma {
27037
69163
 
27038
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69164
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27039
69165
class CT_DeclSpecSeq : public CT_List {
27040
 
#line 27041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69166
#line 69167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69167
  friend class ::CCExprResolve;
 
69168
  friend class ::CExprResolve;
27041
69169
  friend class ::WinIfExists;
27042
69170
  friend class ::WinImportHandler;
27043
69171
  friend class ::WinMacros;
27044
 
  friend class ::CMatchSyntax;
27045
 
  friend class ::ExtGnu;
 
69172
  friend class ::WinAsm;
 
69173
  friend class ::WinDeclSpecs;
 
69174
  friend class ::WinMemberExplSpec;
 
69175
  friend class ::WinTypeKeywords;
 
69176
  friend class ::WinFriend;
27046
69177
  friend class ::ExtAC;
27047
69178
  friend class ::ExtACBuilderCoupling;
27048
69179
  friend class ::ExtACSyntaxCoupling;
27049
69180
  friend class ::ExtACTree;
27050
69181
  friend class ::ExtACKeywords;
27051
 
  friend class ::WinAsm;
27052
 
  friend class ::WinDeclSpecs;
27053
 
  friend class ::WinMemberExplSpec;
27054
 
  friend class ::WinTypeKeywords;
 
69182
  friend class ::ExtGnu;
27055
69183
  friend class ::PragmaOnceUnitState;
27056
69184
  friend class ::PragmaOnce;
27057
 
  friend class ::CCExprResolve;
27058
 
  friend class ::CExprResolve;
 
69185
  friend class ::CMatchSyntax;
27059
69186
 
27060
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69187
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27061
69188
 
27062
69189
public:
 
69190
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27063
69191
  static const char *NodeId ();
 
69192
  /** Get the name of the node. Can be compared with NodeId(). */
27064
69193
  const char *NodeName () const { return NodeId (); }
27065
69194
};
27066
69195
 
 
69196
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
69197
 *  Tree node representing a compound statement. */
27067
69198
 
27068
 
#line 27069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69199
#line 69200 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
27069
69200
} // closed Puma
 
69201
class CCExprResolve;
 
69202
class CExprResolve;
27070
69203
class WinIfExists;
27071
69204
class WinImportHandler;
27072
69205
class WinMacros;
27073
 
class CMatchSyntax;
27074
 
class ExtGnu;
 
69206
class WinAsm;
 
69207
class WinDeclSpecs;
 
69208
class WinMemberExplSpec;
 
69209
class WinTypeKeywords;
 
69210
class WinFriend;
27075
69211
class ExtAC;
27076
69212
class ExtACBuilderCoupling;
27077
69213
class ExtACSyntaxCoupling;
27078
69214
class ExtACTree;
27079
69215
class ExtACKeywords;
27080
 
class WinAsm;
27081
 
class WinDeclSpecs;
27082
 
class WinMemberExplSpec;
27083
 
class WinTypeKeywords;
 
69216
class ExtGnu;
27084
69217
class PragmaOnceUnitState;
27085
69218
class PragmaOnce;
27086
 
class CCExprResolve;
27087
 
class CExprResolve;
 
69219
class CMatchSyntax;
27088
69220
namespace Puma {
27089
69221
 
27090
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69222
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27091
69223
class CT_CmpdStmt : public CT_List, public CSemScope {
27092
 
#line 27093 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69224
#line 69225 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69225
  friend class ::CCExprResolve;
 
69226
  friend class ::CExprResolve;
27093
69227
  friend class ::WinIfExists;
27094
69228
  friend class ::WinImportHandler;
27095
69229
  friend class ::WinMacros;
27096
 
  friend class ::CMatchSyntax;
27097
 
  friend class ::ExtGnu;
 
69230
  friend class ::WinAsm;
 
69231
  friend class ::WinDeclSpecs;
 
69232
  friend class ::WinMemberExplSpec;
 
69233
  friend class ::WinTypeKeywords;
 
69234
  friend class ::WinFriend;
27098
69235
  friend class ::ExtAC;
27099
69236
  friend class ::ExtACBuilderCoupling;
27100
69237
  friend class ::ExtACSyntaxCoupling;
27101
69238
  friend class ::ExtACTree;
27102
69239
  friend class ::ExtACKeywords;
27103
 
  friend class ::WinAsm;
27104
 
  friend class ::WinDeclSpecs;
27105
 
  friend class ::WinMemberExplSpec;
27106
 
  friend class ::WinTypeKeywords;
 
69240
  friend class ::ExtGnu;
27107
69241
  friend class ::PragmaOnceUnitState;
27108
69242
  friend class ::PragmaOnce;
27109
 
  friend class ::CCExprResolve;
27110
 
  friend class ::CExprResolve;
 
69243
  friend class ::CMatchSyntax;
27111
69244
 
27112
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69245
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27113
69246
 
27114
69247
public:
 
69248
  /* Constructor. */
27115
69249
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
69250
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27116
69251
  static const char *NodeId ();
 
69252
  /** Get the name of the node. Can be compared with NodeId(). */
27117
69253
  const char *NodeName () const { return NodeId (); }
 
69254
  /** Get the local scope of the compound statement. */
 
69255
  CSemScope *SemScope () const { return (CSemScope*)this; }
27118
69256
};
27119
69257
 
 
69258
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
69259
 *  Tree node representing an exception handler sequence. */
27120
69260
 
27121
 
#line 27122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69261
#line 69262 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
27122
69262
} // closed Puma
 
69263
class CCExprResolve;
 
69264
class CExprResolve;
27123
69265
class WinIfExists;
27124
69266
class WinImportHandler;
27125
69267
class WinMacros;
27126
 
class CMatchSyntax;
27127
 
class ExtGnu;
 
69268
class WinAsm;
 
69269
class WinDeclSpecs;
 
69270
class WinMemberExplSpec;
 
69271
class WinTypeKeywords;
 
69272
class WinFriend;
27128
69273
class ExtAC;
27129
69274
class ExtACBuilderCoupling;
27130
69275
class ExtACSyntaxCoupling;
27131
69276
class ExtACTree;
27132
69277
class ExtACKeywords;
27133
 
class WinAsm;
27134
 
class WinDeclSpecs;
27135
 
class WinMemberExplSpec;
27136
 
class WinTypeKeywords;
 
69278
class ExtGnu;
27137
69279
class PragmaOnceUnitState;
27138
69280
class PragmaOnce;
27139
 
class CCExprResolve;
27140
 
class CExprResolve;
 
69281
class CMatchSyntax;
27141
69282
namespace Puma {
27142
69283
 
27143
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69284
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27144
69285
class CT_HandlerSeq : public CT_List {
27145
 
#line 27146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69286
#line 69287 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69287
  friend class ::CCExprResolve;
 
69288
  friend class ::CExprResolve;
27146
69289
  friend class ::WinIfExists;
27147
69290
  friend class ::WinImportHandler;
27148
69291
  friend class ::WinMacros;
27149
 
  friend class ::CMatchSyntax;
27150
 
  friend class ::ExtGnu;
 
69292
  friend class ::WinAsm;
 
69293
  friend class ::WinDeclSpecs;
 
69294
  friend class ::WinMemberExplSpec;
 
69295
  friend class ::WinTypeKeywords;
 
69296
  friend class ::WinFriend;
27151
69297
  friend class ::ExtAC;
27152
69298
  friend class ::ExtACBuilderCoupling;
27153
69299
  friend class ::ExtACSyntaxCoupling;
27154
69300
  friend class ::ExtACTree;
27155
69301
  friend class ::ExtACKeywords;
27156
 
  friend class ::WinAsm;
27157
 
  friend class ::WinDeclSpecs;
27158
 
  friend class ::WinMemberExplSpec;
27159
 
  friend class ::WinTypeKeywords;
 
69302
  friend class ::ExtGnu;
27160
69303
  friend class ::PragmaOnceUnitState;
27161
69304
  friend class ::PragmaOnce;
27162
 
  friend class ::CCExprResolve;
27163
 
  friend class ::CExprResolve;
 
69305
  friend class ::CMatchSyntax;
27164
69306
 
27165
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69307
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27166
69308
 
27167
69309
public:
 
69310
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27168
69311
  static const char *NodeId ();
 
69312
  /** Get the name of the node. Can be compared with NodeId(). */
27169
69313
  const char *NodeName () const { return NodeId (); }
27170
69314
};
27171
69315
 
 
69316
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
69317
 *  Tree node representing a template parameter list. */
27172
69318
 
27173
 
#line 27174 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69319
#line 69320 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
27174
69320
} // closed Puma
 
69321
class CCExprResolve;
 
69322
class CExprResolve;
27175
69323
class WinIfExists;
27176
69324
class WinImportHandler;
27177
69325
class WinMacros;
27178
 
class CMatchSyntax;
27179
 
class ExtGnu;
 
69326
class WinAsm;
 
69327
class WinDeclSpecs;
 
69328
class WinMemberExplSpec;
 
69329
class WinTypeKeywords;
 
69330
class WinFriend;
27180
69331
class ExtAC;
27181
69332
class ExtACBuilderCoupling;
27182
69333
class ExtACSyntaxCoupling;
27183
69334
class ExtACTree;
27184
69335
class ExtACKeywords;
27185
 
class WinAsm;
27186
 
class WinDeclSpecs;
27187
 
class WinMemberExplSpec;
27188
 
class WinTypeKeywords;
 
69336
class ExtGnu;
27189
69337
class PragmaOnceUnitState;
27190
69338
class PragmaOnce;
27191
 
class CCExprResolve;
27192
 
class CExprResolve;
 
69339
class CMatchSyntax;
27193
69340
namespace Puma {
27194
69341
 
27195
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69342
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27196
69343
class CT_TemplateParamList : public CT_List, public CSemScope {
27197
 
#line 27198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69344
#line 69345 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69345
  friend class ::CCExprResolve;
 
69346
  friend class ::CExprResolve;
27198
69347
  friend class ::WinIfExists;
27199
69348
  friend class ::WinImportHandler;
27200
69349
  friend class ::WinMacros;
27201
 
  friend class ::CMatchSyntax;
27202
 
  friend class ::ExtGnu;
 
69350
  friend class ::WinAsm;
 
69351
  friend class ::WinDeclSpecs;
 
69352
  friend class ::WinMemberExplSpec;
 
69353
  friend class ::WinTypeKeywords;
 
69354
  friend class ::WinFriend;
27203
69355
  friend class ::ExtAC;
27204
69356
  friend class ::ExtACBuilderCoupling;
27205
69357
  friend class ::ExtACSyntaxCoupling;
27206
69358
  friend class ::ExtACTree;
27207
69359
  friend class ::ExtACKeywords;
27208
 
  friend class ::WinAsm;
27209
 
  friend class ::WinDeclSpecs;
27210
 
  friend class ::WinMemberExplSpec;
27211
 
  friend class ::WinTypeKeywords;
 
69360
  friend class ::ExtGnu;
27212
69361
  friend class ::PragmaOnceUnitState;
27213
69362
  friend class ::PragmaOnce;
27214
 
  friend class ::CCExprResolve;
27215
 
  friend class ::CExprResolve;
 
69363
  friend class ::CMatchSyntax;
27216
69364
 
27217
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69365
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27218
69366
 
27219
69367
public:
27220
69368
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
69369
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27221
69370
  static const char *NodeId ();
 
69371
  /** Get the name of the node. Can be compared with NodeId(). */
27222
69372
  const char *NodeName () const { return NodeId (); }
 
69373
  /** Get the scope of the template parameter list. */
 
69374
  CSemScope *SemScope () const { return (CSemScope*)this; }
27223
69375
};
27224
69376
 
 
69377
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
69378
 *  Tree node representing a template argument list. */
27225
69379
 
27226
 
#line 27227 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69380
#line 69381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
27227
69381
} // closed Puma
 
69382
class CCExprResolve;
 
69383
class CExprResolve;
27228
69384
class WinIfExists;
27229
69385
class WinImportHandler;
27230
69386
class WinMacros;
27231
 
class CMatchSyntax;
27232
 
class ExtGnu;
 
69387
class WinAsm;
 
69388
class WinDeclSpecs;
 
69389
class WinMemberExplSpec;
 
69390
class WinTypeKeywords;
 
69391
class WinFriend;
27233
69392
class ExtAC;
27234
69393
class ExtACBuilderCoupling;
27235
69394
class ExtACSyntaxCoupling;
27236
69395
class ExtACTree;
27237
69396
class ExtACKeywords;
27238
 
class WinAsm;
27239
 
class WinDeclSpecs;
27240
 
class WinMemberExplSpec;
27241
 
class WinTypeKeywords;
 
69397
class ExtGnu;
27242
69398
class PragmaOnceUnitState;
27243
69399
class PragmaOnce;
27244
 
class CCExprResolve;
27245
 
class CExprResolve;
 
69400
class CMatchSyntax;
27246
69401
namespace Puma {
27247
69402
 
27248
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69403
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27249
69404
class CT_TemplateArgList : public CT_List {
27250
 
#line 27251 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69405
#line 69406 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69406
  friend class ::CCExprResolve;
 
69407
  friend class ::CExprResolve;
27251
69408
  friend class ::WinIfExists;
27252
69409
  friend class ::WinImportHandler;
27253
69410
  friend class ::WinMacros;
27254
 
  friend class ::CMatchSyntax;
27255
 
  friend class ::ExtGnu;
 
69411
  friend class ::WinAsm;
 
69412
  friend class ::WinDeclSpecs;
 
69413
  friend class ::WinMemberExplSpec;
 
69414
  friend class ::WinTypeKeywords;
 
69415
  friend class ::WinFriend;
27256
69416
  friend class ::ExtAC;
27257
69417
  friend class ::ExtACBuilderCoupling;
27258
69418
  friend class ::ExtACSyntaxCoupling;
27259
69419
  friend class ::ExtACTree;
27260
69420
  friend class ::ExtACKeywords;
27261
 
  friend class ::WinAsm;
27262
 
  friend class ::WinDeclSpecs;
27263
 
  friend class ::WinMemberExplSpec;
27264
 
  friend class ::WinTypeKeywords;
 
69421
  friend class ::ExtGnu;
27265
69422
  friend class ::PragmaOnceUnitState;
27266
69423
  friend class ::PragmaOnce;
27267
 
  friend class ::CCExprResolve;
27268
 
  friend class ::CExprResolve;
 
69424
  friend class ::CMatchSyntax;
27269
69425
 
27270
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69426
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27271
69427
 
27272
69428
public:
 
69429
  /** Constructor. */
27273
69430
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
69431
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27274
69432
  static const char *NodeId ();
 
69433
  /** Get the name of the node. Can be compared with NodeId(). */
27275
69434
  const char *NodeName () const { return NodeId (); }
27276
69435
};
27277
69436
 
27281
69440
/*                                                                           */
27282
69441
/*****************************************************************************/
27283
69442
 
 
69443
/** \class CT_Expression CTree.h Puma/CTree.h
 
69444
 *  Base class for all expression tree nodes. */
27284
69445
 
27285
 
#line 27286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69446
#line 69447 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
27286
69447
} // closed Puma
 
69448
class CCExprResolve;
 
69449
class CExprResolve;
27287
69450
class WinIfExists;
27288
69451
class WinImportHandler;
27289
69452
class WinMacros;
27290
 
class CMatchSyntax;
27291
 
class ExtGnu;
 
69453
class WinAsm;
 
69454
class WinDeclSpecs;
 
69455
class WinMemberExplSpec;
 
69456
class WinTypeKeywords;
 
69457
class WinFriend;
27292
69458
class ExtAC;
27293
69459
class ExtACBuilderCoupling;
27294
69460
class ExtACSyntaxCoupling;
27295
69461
class ExtACTree;
27296
69462
class ExtACKeywords;
27297
 
class WinAsm;
27298
 
class WinDeclSpecs;
27299
 
class WinMemberExplSpec;
27300
 
class WinTypeKeywords;
 
69463
class ExtGnu;
27301
69464
class PragmaOnceUnitState;
27302
69465
class PragmaOnce;
27303
 
class CCExprResolve;
27304
 
class CExprResolve;
27305
 
namespace Puma {
27306
 
 
27307
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69466
class CMatchSyntax;
 
69467
namespace Puma {
 
69468
 
 
69469
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69470
 
 
69471
#line 69472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69472
} // closed Puma
 
69473
 
 
69474
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69475
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69476
#include "CCExprResolveH.ah"
 
69477
#endif
 
69478
namespace Puma {
 
69479
 
 
69480
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69481
 
 
69482
#line 69483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69483
} // closed Puma
 
69484
 
 
69485
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69486
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69487
#include "CExprResolveH.ah"
 
69488
#endif
 
69489
namespace Puma {
 
69490
 
 
69491
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27308
69492
class CT_Expression : public CTree, public CSemValue {
27309
 
#line 27310 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69493
#line 69494 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69494
  friend class ::CCExprResolve;
 
69495
  friend class ::CExprResolve;
27310
69496
  friend class ::WinIfExists;
27311
69497
  friend class ::WinImportHandler;
27312
69498
  friend class ::WinMacros;
27313
 
  friend class ::CMatchSyntax;
27314
 
  friend class ::ExtGnu;
 
69499
  friend class ::WinAsm;
 
69500
  friend class ::WinDeclSpecs;
 
69501
  friend class ::WinMemberExplSpec;
 
69502
  friend class ::WinTypeKeywords;
 
69503
  friend class ::WinFriend;
27315
69504
  friend class ::ExtAC;
27316
69505
  friend class ::ExtACBuilderCoupling;
27317
69506
  friend class ::ExtACSyntaxCoupling;
27318
69507
  friend class ::ExtACTree;
27319
69508
  friend class ::ExtACKeywords;
27320
 
  friend class ::WinAsm;
27321
 
  friend class ::WinDeclSpecs;
27322
 
  friend class ::WinMemberExplSpec;
27323
 
  friend class ::WinTypeKeywords;
 
69509
  friend class ::ExtGnu;
27324
69510
  friend class ::PragmaOnceUnitState;
27325
69511
  friend class ::PragmaOnce;
27326
 
  friend class ::CCExprResolve;
27327
 
  friend class ::CExprResolve;
 
69512
  friend class ::CMatchSyntax;
27328
69513
 
27329
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69514
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27330
69515
 
27331
69516
protected:
 
69517
  /** Constructor. */
27332
69518
  CT_Expression () {}
27333
69519
 
27334
69520
public:
 
69521
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27335
69522
  static const char *NodeId ();
 
69523
  /** Get the name of the node. Can be compared with NodeId(). */
27336
69524
  const char *NodeName () const { return NodeId (); }
 
69525
  /** Get the type of the expression.
 
69526
   *  \return The type information object or NULL. */
27337
69527
  CTypeInfo *Type () const { return type; }
 
69528
  /** Get the value of the expression.
 
69529
   *  \return The value object or NULL. */
27338
69530
  CExprValue *Value () const { return value; }
 
69531
  /** Get the semantic value information of the expression.
 
69532
   *  \return The value object or NULL. */
27339
69533
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
69534
  /** Get this. */
 
69535
  virtual CT_Expression *IsExpression () { return this; }
27340
69536
   private:
27341
69537
  typedef CT_Expression CCExprResolveExpr;
27342
69538
 
27343
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69539
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27344
69540
 public :
27345
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69541
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
27346
69542
  typedef CT_Expression CExprResolveExpr;
27347
69543
 
27348
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27349
 
 public :
27350
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27351
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27352
 
};
27353
 
 
27354
 
 
27355
 
#line 27356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
27356
 
} // closed Puma
27357
 
class WinIfExists;
27358
 
class WinImportHandler;
27359
 
class WinMacros;
27360
 
class CMatchSyntax;
27361
 
class ExtGnu;
27362
 
class ExtAC;
27363
 
class ExtACBuilderCoupling;
27364
 
class ExtACSyntaxCoupling;
27365
 
class ExtACTree;
27366
 
class ExtACKeywords;
27367
 
class WinAsm;
27368
 
class WinDeclSpecs;
27369
 
class WinMemberExplSpec;
27370
 
class WinTypeKeywords;
27371
 
class PragmaOnceUnitState;
27372
 
class PragmaOnce;
27373
 
class CCExprResolve;
27374
 
class CExprResolve;
27375
 
namespace Puma {
27376
 
 
27377
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69544
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69545
 public :
 
69546
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69547
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69548
};
 
69549
 
 
69550
/** \class CT_Call CTree.h Puma/CTree.h
 
69551
 *  Tree node representing explicit or implicit function calls 
 
69552
 *  including built-in or user-defined functions and overloaded
 
69553
 *  operators. */
 
69554
 
 
69555
#line 69556 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69556
} // closed Puma
 
69557
class CCExprResolve;
 
69558
class CExprResolve;
 
69559
class WinIfExists;
 
69560
class WinImportHandler;
 
69561
class WinMacros;
 
69562
class WinAsm;
 
69563
class WinDeclSpecs;
 
69564
class WinMemberExplSpec;
 
69565
class WinTypeKeywords;
 
69566
class WinFriend;
 
69567
class ExtAC;
 
69568
class ExtACBuilderCoupling;
 
69569
class ExtACSyntaxCoupling;
 
69570
class ExtACTree;
 
69571
class ExtACKeywords;
 
69572
class ExtGnu;
 
69573
class PragmaOnceUnitState;
 
69574
class PragmaOnce;
 
69575
class CMatchSyntax;
 
69576
namespace Puma {
 
69577
 
 
69578
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69579
 
 
69580
#line 69581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69581
} // closed Puma
 
69582
 
 
69583
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69584
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69585
#include "CCExprResolveH.ah"
 
69586
#endif
 
69587
namespace Puma {
 
69588
 
 
69589
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69590
 
 
69591
#line 69592 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69592
} // closed Puma
 
69593
 
 
69594
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69595
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69596
#include "CExprResolveH.ah"
 
69597
#endif
 
69598
namespace Puma {
 
69599
 
 
69600
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69601
class CT_Call : public CT_Expression, public CSemObject {
 
69602
#line 69603 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69603
  friend class ::CCExprResolve;
 
69604
  friend class ::CExprResolve;
 
69605
  friend class ::WinIfExists;
 
69606
  friend class ::WinImportHandler;
 
69607
  friend class ::WinMacros;
 
69608
  friend class ::WinAsm;
 
69609
  friend class ::WinDeclSpecs;
 
69610
  friend class ::WinMemberExplSpec;
 
69611
  friend class ::WinTypeKeywords;
 
69612
  friend class ::WinFriend;
 
69613
  friend class ::ExtAC;
 
69614
  friend class ::ExtACBuilderCoupling;
 
69615
  friend class ::ExtACSyntaxCoupling;
 
69616
  friend class ::ExtACTree;
 
69617
  friend class ::ExtACKeywords;
 
69618
  friend class ::ExtGnu;
 
69619
  friend class ::PragmaOnceUnitState;
 
69620
  friend class ::PragmaOnce;
 
69621
  friend class ::CMatchSyntax;
 
69622
 
 
69623
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69624
 
 
69625
protected:
 
69626
  /** Constructor. */
 
69627
  CT_Call () {}
 
69628
  
 
69629
public:
 
69630
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
69631
  static const char *NodeId ();
 
69632
  /** Get the name of the node. Can be compared with NodeId(). */
 
69633
  const char *NodeName () const { return NodeId (); }
 
69634
  /** Get the semantic information of the call.
 
69635
   *  \return The semantic information or NULL. */
 
69636
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
69637
  /** Get this. */
 
69638
  CT_Call *IsCall () { return this; }
 
69639
   private:
 
69640
  typedef CT_Call CCExprResolveExpr;
 
69641
 
 
69642
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69643
 public :
 
69644
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
69645
  typedef CT_Call CExprResolveExpr;
 
69646
 
 
69647
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69648
 public :
 
69649
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69650
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69651
};
 
69652
 
 
69653
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
69654
 *  Tree node representing implicit function calls detected by
 
69655
 *  the semantic analysis. */
 
69656
 
 
69657
#line 69658 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69658
} // closed Puma
 
69659
class CCExprResolve;
 
69660
class CExprResolve;
 
69661
class WinIfExists;
 
69662
class WinImportHandler;
 
69663
class WinMacros;
 
69664
class WinAsm;
 
69665
class WinDeclSpecs;
 
69666
class WinMemberExplSpec;
 
69667
class WinTypeKeywords;
 
69668
class WinFriend;
 
69669
class ExtAC;
 
69670
class ExtACBuilderCoupling;
 
69671
class ExtACSyntaxCoupling;
 
69672
class ExtACTree;
 
69673
class ExtACKeywords;
 
69674
class ExtGnu;
 
69675
class PragmaOnceUnitState;
 
69676
class PragmaOnce;
 
69677
class CMatchSyntax;
 
69678
namespace Puma {
 
69679
 
 
69680
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69681
 
 
69682
#line 69683 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69683
} // closed Puma
 
69684
 
 
69685
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69686
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69687
#include "CCExprResolveH.ah"
 
69688
#endif
 
69689
namespace Puma {
 
69690
 
 
69691
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69692
 
 
69693
#line 69694 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69694
} // closed Puma
 
69695
 
 
69696
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69697
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69698
#include "CExprResolveH.ah"
 
69699
#endif
 
69700
namespace Puma {
 
69701
 
 
69702
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69703
class CT_ImplicitCall : public CT_Call {
 
69704
#line 69705 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69705
  friend class ::CCExprResolve;
 
69706
  friend class ::CExprResolve;
 
69707
  friend class ::WinIfExists;
 
69708
  friend class ::WinImportHandler;
 
69709
  friend class ::WinMacros;
 
69710
  friend class ::WinAsm;
 
69711
  friend class ::WinDeclSpecs;
 
69712
  friend class ::WinMemberExplSpec;
 
69713
  friend class ::WinTypeKeywords;
 
69714
  friend class ::WinFriend;
 
69715
  friend class ::ExtAC;
 
69716
  friend class ::ExtACBuilderCoupling;
 
69717
  friend class ::ExtACSyntaxCoupling;
 
69718
  friend class ::ExtACTree;
 
69719
  friend class ::ExtACKeywords;
 
69720
  friend class ::ExtGnu;
 
69721
  friend class ::PragmaOnceUnitState;
 
69722
  friend class ::PragmaOnce;
 
69723
  friend class ::CMatchSyntax;
 
69724
 
 
69725
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69726
 
 
69727
  CTree *_arg;
 
69728
 
 
69729
public:
 
69730
  /** Constructor.
 
69731
   *  \param arg The call argument. */
 
69732
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
69733
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
69734
  static const char *NodeId ();
 
69735
  /** Get the name of the node. Can be compared with NodeId(). */
 
69736
  const char *NodeName () const { return NodeId (); }
 
69737
  /** Get the number of sons. */
 
69738
  int Sons () const { return 1; }
 
69739
  /** Get the n-th son.
 
69740
   *  \param n The index of the son.
 
69741
   *  \return The n-th son or NULL. */
 
69742
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
69743
  /** Replace a son.
 
69744
   *  \param old_son The son to replace.
 
69745
   *  \param new_son The new son. */
 
69746
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
69747
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
69748
   private:
 
69749
  typedef CT_ImplicitCall CCExprResolveExpr;
 
69750
 
 
69751
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69752
 public :
 
69753
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
69754
  typedef CT_ImplicitCall CExprResolveExpr;
 
69755
 
 
69756
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69757
 public :
 
69758
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69759
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69760
};
 
69761
 
 
69762
/** \class CT_String CTree.h Puma/CTree.h
 
69763
 *  Tree node representing a string literal. */
 
69764
 
 
69765
#line 69766 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69766
} // closed Puma
 
69767
class CCExprResolve;
 
69768
class CExprResolve;
 
69769
class WinIfExists;
 
69770
class WinImportHandler;
 
69771
class WinMacros;
 
69772
class WinAsm;
 
69773
class WinDeclSpecs;
 
69774
class WinMemberExplSpec;
 
69775
class WinTypeKeywords;
 
69776
class WinFriend;
 
69777
class ExtAC;
 
69778
class ExtACBuilderCoupling;
 
69779
class ExtACSyntaxCoupling;
 
69780
class ExtACTree;
 
69781
class ExtACKeywords;
 
69782
class ExtGnu;
 
69783
class PragmaOnceUnitState;
 
69784
class PragmaOnce;
 
69785
class CMatchSyntax;
 
69786
namespace Puma {
 
69787
 
 
69788
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69789
 
 
69790
#line 69791 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69791
} // closed Puma
 
69792
 
 
69793
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69794
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69795
#include "CCExprResolveH.ah"
 
69796
#endif
 
69797
namespace Puma {
 
69798
 
 
69799
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69800
 
 
69801
#line 69802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69802
} // closed Puma
 
69803
 
 
69804
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69805
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69806
#include "CExprResolveH.ah"
 
69807
#endif
 
69808
namespace Puma {
 
69809
 
 
69810
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27378
69811
class CT_String : public CT_List, public CSemValue {
27379
 
#line 27380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69812
#line 69813 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69813
  friend class ::CCExprResolve;
 
69814
  friend class ::CExprResolve;
27380
69815
  friend class ::WinIfExists;
27381
69816
  friend class ::WinImportHandler;
27382
69817
  friend class ::WinMacros;
27383
 
  friend class ::CMatchSyntax;
27384
 
  friend class ::ExtGnu;
 
69818
  friend class ::WinAsm;
 
69819
  friend class ::WinDeclSpecs;
 
69820
  friend class ::WinMemberExplSpec;
 
69821
  friend class ::WinTypeKeywords;
 
69822
  friend class ::WinFriend;
27385
69823
  friend class ::ExtAC;
27386
69824
  friend class ::ExtACBuilderCoupling;
27387
69825
  friend class ::ExtACSyntaxCoupling;
27388
69826
  friend class ::ExtACTree;
27389
69827
  friend class ::ExtACKeywords;
27390
 
  friend class ::WinAsm;
27391
 
  friend class ::WinDeclSpecs;
27392
 
  friend class ::WinMemberExplSpec;
27393
 
  friend class ::WinTypeKeywords;
 
69828
  friend class ::ExtGnu;
27394
69829
  friend class ::PragmaOnceUnitState;
27395
69830
  friend class ::PragmaOnce;
27396
 
  friend class ::CCExprResolve;
27397
 
  friend class ::CExprResolve;
 
69831
  friend class ::CMatchSyntax;
27398
69832
 
27399
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69833
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27400
69834
 
27401
69835
public:
 
69836
  /** Constructor. 
 
69837
   *  \param size The number of sub-strings. */
27402
69838
  CT_String (int size) : CT_List (size, 1) {}
 
69839
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27403
69840
  static const char *NodeId ();
 
69841
  /** Get the name of the node. Can be compared with NodeId(). */
27404
69842
  const char *NodeName () const { return NodeId (); }
27405
69843
 
 
69844
  /** Get the type of the string. 
 
69845
   *  \return The type or NULL. */
27406
69846
  CTypeInfo *Type () const { return type; }
 
69847
  /** Get the string value.
 
69848
   *  \return The value or NULL. */
27407
69849
  CExprValue *Value () const { return value; }
 
69850
  /** Get the semantic value info object.
 
69851
   *  \return The semantic value object or NULL. */
27408
69852
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
69853
  /** Get this. */
 
69854
  virtual CT_String *IsString () { return this; }
27409
69855
   private:
27410
69856
  typedef CT_String CCExprResolveExpr;
27411
69857
 
27412
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69858
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27413
69859
 public :
27414
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69860
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
27415
69861
  typedef CT_String CExprResolveExpr;
27416
69862
 
27417
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69863
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27418
69864
 public :
27419
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27420
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69865
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69866
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27421
69867
};
27422
69868
 
 
69869
/** \class CT_WideString CTree.h Puma/CTree.h
 
69870
 *  Tree node representing a wide string literal. */
27423
69871
 
27424
 
#line 27425 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69872
#line 69873 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
27425
69873
} // closed Puma
 
69874
class CCExprResolve;
 
69875
class CExprResolve;
27426
69876
class WinIfExists;
27427
69877
class WinImportHandler;
27428
69878
class WinMacros;
27429
 
class CMatchSyntax;
27430
 
class ExtGnu;
 
69879
class WinAsm;
 
69880
class WinDeclSpecs;
 
69881
class WinMemberExplSpec;
 
69882
class WinTypeKeywords;
 
69883
class WinFriend;
27431
69884
class ExtAC;
27432
69885
class ExtACBuilderCoupling;
27433
69886
class ExtACSyntaxCoupling;
27434
69887
class ExtACTree;
27435
69888
class ExtACKeywords;
27436
 
class WinAsm;
27437
 
class WinDeclSpecs;
27438
 
class WinMemberExplSpec;
27439
 
class WinTypeKeywords;
 
69889
class ExtGnu;
27440
69890
class PragmaOnceUnitState;
27441
69891
class PragmaOnce;
27442
 
class CCExprResolve;
27443
 
class CExprResolve;
27444
 
namespace Puma {
27445
 
 
27446
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69892
class CMatchSyntax;
 
69893
namespace Puma {
 
69894
 
 
69895
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69896
 
 
69897
#line 69898 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69898
} // closed Puma
 
69899
 
 
69900
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69901
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69902
#include "CCExprResolveH.ah"
 
69903
#endif
 
69904
namespace Puma {
 
69905
 
 
69906
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69907
 
 
69908
#line 69909 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69909
} // closed Puma
 
69910
 
 
69911
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69912
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69913
#include "CExprResolveH.ah"
 
69914
#endif
 
69915
namespace Puma {
 
69916
 
 
69917
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27447
69918
class CT_WideString : public CT_String {
27448
 
#line 27449 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69919
#line 69920 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69920
  friend class ::CCExprResolve;
 
69921
  friend class ::CExprResolve;
27449
69922
  friend class ::WinIfExists;
27450
69923
  friend class ::WinImportHandler;
27451
69924
  friend class ::WinMacros;
27452
 
  friend class ::CMatchSyntax;
27453
 
  friend class ::ExtGnu;
 
69925
  friend class ::WinAsm;
 
69926
  friend class ::WinDeclSpecs;
 
69927
  friend class ::WinMemberExplSpec;
 
69928
  friend class ::WinTypeKeywords;
 
69929
  friend class ::WinFriend;
27454
69930
  friend class ::ExtAC;
27455
69931
  friend class ::ExtACBuilderCoupling;
27456
69932
  friend class ::ExtACSyntaxCoupling;
27457
69933
  friend class ::ExtACTree;
27458
69934
  friend class ::ExtACKeywords;
27459
 
  friend class ::WinAsm;
27460
 
  friend class ::WinDeclSpecs;
27461
 
  friend class ::WinMemberExplSpec;
27462
 
  friend class ::WinTypeKeywords;
 
69935
  friend class ::ExtGnu;
27463
69936
  friend class ::PragmaOnceUnitState;
27464
69937
  friend class ::PragmaOnce;
27465
 
  friend class ::CCExprResolve;
27466
 
  friend class ::CExprResolve;
 
69938
  friend class ::CMatchSyntax;
27467
69939
 
27468
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69940
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27469
69941
 
27470
69942
public:
 
69943
  /** Constructor.
 
69944
   *  \param size The number of sub-strings. */
27471
69945
  CT_WideString (int size) : CT_String (size) {}
 
69946
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27472
69947
  static const char *NodeId ();
 
69948
  /** Get the name of the node. Can be compared with NodeId(). */
27473
69949
  const char *NodeName () const { return NodeId (); }
27474
69950
   private:
27475
69951
  typedef CT_WideString CCExprResolveExpr;
27476
69952
 
27477
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69953
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27478
69954
 public :
27479
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69955
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
27480
69956
  typedef CT_WideString CExprResolveExpr;
27481
69957
 
27482
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69958
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27483
69959
 public :
27484
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27485
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69960
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69961
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27486
69962
};
27487
69963
 
 
69964
/** \class CT_Integer CTree.h Puma/CTree.h
 
69965
 *  Tree node representing an integer constant. */
27488
69966
 
27489
 
#line 27490 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
69967
#line 69968 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
27490
69968
} // closed Puma
 
69969
class CCExprResolve;
 
69970
class CExprResolve;
27491
69971
class WinIfExists;
27492
69972
class WinImportHandler;
27493
69973
class WinMacros;
27494
 
class CMatchSyntax;
27495
 
class ExtGnu;
 
69974
class WinAsm;
 
69975
class WinDeclSpecs;
 
69976
class WinMemberExplSpec;
 
69977
class WinTypeKeywords;
 
69978
class WinFriend;
27496
69979
class ExtAC;
27497
69980
class ExtACBuilderCoupling;
27498
69981
class ExtACSyntaxCoupling;
27499
69982
class ExtACTree;
27500
69983
class ExtACKeywords;
27501
 
class WinAsm;
27502
 
class WinDeclSpecs;
27503
 
class WinMemberExplSpec;
27504
 
class WinTypeKeywords;
 
69984
class ExtGnu;
27505
69985
class PragmaOnceUnitState;
27506
69986
class PragmaOnce;
27507
 
class CCExprResolve;
27508
 
class CExprResolve;
27509
 
namespace Puma {
27510
 
 
27511
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69987
class CMatchSyntax;
 
69988
namespace Puma {
 
69989
 
 
69990
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69991
 
 
69992
#line 69993 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
69993
} // closed Puma
 
69994
 
 
69995
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69996
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69997
#include "CCExprResolveH.ah"
 
69998
#endif
 
69999
namespace Puma {
 
70000
 
 
70001
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70002
 
 
70003
#line 70004 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70004
} // closed Puma
 
70005
 
 
70006
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70007
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70008
#include "CExprResolveH.ah"
 
70009
#endif
 
70010
namespace Puma {
 
70011
 
 
70012
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27512
70013
class CT_Integer : public CT_Expression {
27513
 
#line 27514 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70014
#line 70015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70015
  friend class ::CCExprResolve;
 
70016
  friend class ::CExprResolve;
27514
70017
  friend class ::WinIfExists;
27515
70018
  friend class ::WinImportHandler;
27516
70019
  friend class ::WinMacros;
27517
 
  friend class ::CMatchSyntax;
27518
 
  friend class ::ExtGnu;
 
70020
  friend class ::WinAsm;
 
70021
  friend class ::WinDeclSpecs;
 
70022
  friend class ::WinMemberExplSpec;
 
70023
  friend class ::WinTypeKeywords;
 
70024
  friend class ::WinFriend;
27519
70025
  friend class ::ExtAC;
27520
70026
  friend class ::ExtACBuilderCoupling;
27521
70027
  friend class ::ExtACSyntaxCoupling;
27522
70028
  friend class ::ExtACTree;
27523
70029
  friend class ::ExtACKeywords;
27524
 
  friend class ::WinAsm;
27525
 
  friend class ::WinDeclSpecs;
27526
 
  friend class ::WinMemberExplSpec;
27527
 
  friend class ::WinTypeKeywords;
 
70030
  friend class ::ExtGnu;
27528
70031
  friend class ::PragmaOnceUnitState;
27529
70032
  friend class ::PragmaOnce;
27530
 
  friend class ::CCExprResolve;
27531
 
  friend class ::CExprResolve;
 
70033
  friend class ::CMatchSyntax;
27532
70034
 
27533
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70035
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27534
70036
 
27535
70037
  CTree *_value;  // CT_Token
27536
70038
 
27537
70039
public:
27538
 
  CT_Integer (CTree *t) : _value (t) {}
 
70040
  /** Constructor.
 
70041
   *  \param token The token containing the integer value. */
 
70042
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
70043
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27539
70044
  static const char *NodeId ();
 
70045
  /** Get the name of the node. Can be compared with NodeId(). */
27540
70046
  const char *NodeName () const { return NodeId (); }
 
70047
  /** Get the number of sons. */
27541
70048
  int Sons () const { return _value ? 1 : 0; }
 
70049
  /** Get the n-th son.
 
70050
   *  \param n The index of the son.
 
70051
   *  \return The n-th son or NULL. */
27542
70052
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
70053
  /** Replace a son.
 
70054
   *  \param old_son The son to replace.
 
70055
   *  \param new_son The new son. */
27543
70056
  void ReplaceSon (CTree *old_son, CTree *new_son) 
27544
 
   { if (old_son == _value) _value = new_son; }
 
70057
   { CTree::ReplaceSon (_value, old_son, new_son); }
27545
70058
   private:
27546
70059
  typedef CT_Integer CCExprResolveExpr;
27547
70060
 
27548
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70061
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27549
70062
 public :
27550
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70063
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
27551
70064
  typedef CT_Integer CExprResolveExpr;
27552
70065
 
27553
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70066
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27554
70067
 public :
27555
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27556
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70068
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70069
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27557
70070
};
27558
70071
 
 
70072
/** \class CT_Character CTree.h Puma/CTree.h
 
70073
 *  Tree node representing a single character constant. */
27559
70074
 
27560
 
#line 27561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70075
#line 70076 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
27561
70076
} // closed Puma
 
70077
class CCExprResolve;
 
70078
class CExprResolve;
27562
70079
class WinIfExists;
27563
70080
class WinImportHandler;
27564
70081
class WinMacros;
27565
 
class CMatchSyntax;
27566
 
class ExtGnu;
 
70082
class WinAsm;
 
70083
class WinDeclSpecs;
 
70084
class WinMemberExplSpec;
 
70085
class WinTypeKeywords;
 
70086
class WinFriend;
27567
70087
class ExtAC;
27568
70088
class ExtACBuilderCoupling;
27569
70089
class ExtACSyntaxCoupling;
27570
70090
class ExtACTree;
27571
70091
class ExtACKeywords;
27572
 
class WinAsm;
27573
 
class WinDeclSpecs;
27574
 
class WinMemberExplSpec;
27575
 
class WinTypeKeywords;
 
70092
class ExtGnu;
27576
70093
class PragmaOnceUnitState;
27577
70094
class PragmaOnce;
27578
 
class CCExprResolve;
27579
 
class CExprResolve;
27580
 
namespace Puma {
27581
 
 
27582
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70095
class CMatchSyntax;
 
70096
namespace Puma {
 
70097
 
 
70098
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70099
 
 
70100
#line 70101 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70101
} // closed Puma
 
70102
 
 
70103
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70104
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70105
#include "CCExprResolveH.ah"
 
70106
#endif
 
70107
namespace Puma {
 
70108
 
 
70109
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70110
 
 
70111
#line 70112 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70112
} // closed Puma
 
70113
 
 
70114
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70115
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70116
#include "CExprResolveH.ah"
 
70117
#endif
 
70118
namespace Puma {
 
70119
 
 
70120
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27583
70121
class CT_Character : public CT_Expression {
27584
 
#line 27585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70122
#line 70123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70123
  friend class ::CCExprResolve;
 
70124
  friend class ::CExprResolve;
27585
70125
  friend class ::WinIfExists;
27586
70126
  friend class ::WinImportHandler;
27587
70127
  friend class ::WinMacros;
27588
 
  friend class ::CMatchSyntax;
27589
 
  friend class ::ExtGnu;
 
70128
  friend class ::WinAsm;
 
70129
  friend class ::WinDeclSpecs;
 
70130
  friend class ::WinMemberExplSpec;
 
70131
  friend class ::WinTypeKeywords;
 
70132
  friend class ::WinFriend;
27590
70133
  friend class ::ExtAC;
27591
70134
  friend class ::ExtACBuilderCoupling;
27592
70135
  friend class ::ExtACSyntaxCoupling;
27593
70136
  friend class ::ExtACTree;
27594
70137
  friend class ::ExtACKeywords;
27595
 
  friend class ::WinAsm;
27596
 
  friend class ::WinDeclSpecs;
27597
 
  friend class ::WinMemberExplSpec;
27598
 
  friend class ::WinTypeKeywords;
 
70138
  friend class ::ExtGnu;
27599
70139
  friend class ::PragmaOnceUnitState;
27600
70140
  friend class ::PragmaOnce;
27601
 
  friend class ::CCExprResolve;
27602
 
  friend class ::CExprResolve;
 
70141
  friend class ::CMatchSyntax;
27603
70142
 
27604
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70143
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27605
70144
 
27606
70145
  CTree *_value;  // CT_Token
27607
70146
 
27608
70147
public:
27609
 
  CT_Character (CTree *t) : _value (t) {}
 
70148
  /** Constructor.
 
70149
   *  \param token The token containing the character value. */
 
70150
  CT_Character (CTree *token) { AddSon (_value, token); }
 
70151
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27610
70152
  static const char *NodeId ();
 
70153
  /** Get the name of the node. Can be compared with NodeId(). */
27611
70154
  const char *NodeName () const { return NodeId (); }
 
70155
  /** Get the number of sons. */
27612
70156
  int Sons () const { return 1; }
 
70157
  /** Get the n-th son.
 
70158
   *  \param n The index of the son.
 
70159
   *  \return The n-th son or NULL. */
27613
70160
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
70161
  /** Replace a son.
 
70162
   *  \param old_son The son to replace.
 
70163
   *  \param new_son The new son. */
27614
70164
  void ReplaceSon (CTree *old_son, CTree *new_son) 
27615
 
   { if (old_son == _value) _value = new_son; }
 
70165
   { CTree::ReplaceSon (_value, old_son, new_son); }
27616
70166
   private:
27617
70167
  typedef CT_Character CCExprResolveExpr;
27618
70168
 
27619
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70169
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27620
70170
 public :
27621
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70171
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
27622
70172
  typedef CT_Character CExprResolveExpr;
27623
70173
 
27624
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70174
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27625
70175
 public :
27626
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27627
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70176
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70177
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27628
70178
};
27629
70179
 
 
70180
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
70181
 *  Tree node representing a wide character constant. */
27630
70182
 
27631
 
#line 27632 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70183
#line 70184 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
27632
70184
} // closed Puma
 
70185
class CCExprResolve;
 
70186
class CExprResolve;
27633
70187
class WinIfExists;
27634
70188
class WinImportHandler;
27635
70189
class WinMacros;
27636
 
class CMatchSyntax;
27637
 
class ExtGnu;
 
70190
class WinAsm;
 
70191
class WinDeclSpecs;
 
70192
class WinMemberExplSpec;
 
70193
class WinTypeKeywords;
 
70194
class WinFriend;
27638
70195
class ExtAC;
27639
70196
class ExtACBuilderCoupling;
27640
70197
class ExtACSyntaxCoupling;
27641
70198
class ExtACTree;
27642
70199
class ExtACKeywords;
27643
 
class WinAsm;
27644
 
class WinDeclSpecs;
27645
 
class WinMemberExplSpec;
27646
 
class WinTypeKeywords;
 
70200
class ExtGnu;
27647
70201
class PragmaOnceUnitState;
27648
70202
class PragmaOnce;
27649
 
class CCExprResolve;
27650
 
class CExprResolve;
27651
 
namespace Puma {
27652
 
 
27653
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70203
class CMatchSyntax;
 
70204
namespace Puma {
 
70205
 
 
70206
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70207
 
 
70208
#line 70209 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70209
} // closed Puma
 
70210
 
 
70211
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70212
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70213
#include "CCExprResolveH.ah"
 
70214
#endif
 
70215
namespace Puma {
 
70216
 
 
70217
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70218
 
 
70219
#line 70220 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70220
} // closed Puma
 
70221
 
 
70222
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70223
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70224
#include "CExprResolveH.ah"
 
70225
#endif
 
70226
namespace Puma {
 
70227
 
 
70228
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27654
70229
class CT_WideCharacter : public CT_Character {
27655
 
#line 27656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70230
#line 70231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70231
  friend class ::CCExprResolve;
 
70232
  friend class ::CExprResolve;
27656
70233
  friend class ::WinIfExists;
27657
70234
  friend class ::WinImportHandler;
27658
70235
  friend class ::WinMacros;
27659
 
  friend class ::CMatchSyntax;
27660
 
  friend class ::ExtGnu;
 
70236
  friend class ::WinAsm;
 
70237
  friend class ::WinDeclSpecs;
 
70238
  friend class ::WinMemberExplSpec;
 
70239
  friend class ::WinTypeKeywords;
 
70240
  friend class ::WinFriend;
27661
70241
  friend class ::ExtAC;
27662
70242
  friend class ::ExtACBuilderCoupling;
27663
70243
  friend class ::ExtACSyntaxCoupling;
27664
70244
  friend class ::ExtACTree;
27665
70245
  friend class ::ExtACKeywords;
27666
 
  friend class ::WinAsm;
27667
 
  friend class ::WinDeclSpecs;
27668
 
  friend class ::WinMemberExplSpec;
27669
 
  friend class ::WinTypeKeywords;
 
70246
  friend class ::ExtGnu;
27670
70247
  friend class ::PragmaOnceUnitState;
27671
70248
  friend class ::PragmaOnce;
27672
 
  friend class ::CCExprResolve;
27673
 
  friend class ::CExprResolve;
27674
 
 
27675
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27676
 
 
27677
 
  CTree *_value;  // CT_Token
 
70249
  friend class ::CMatchSyntax;
 
70250
 
 
70251
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27678
70252
 
27679
70253
public:
27680
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
70254
  /** Constructor.
 
70255
   *  \param token The token containing the wide character value. */
 
70256
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
70257
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27681
70258
  static const char *NodeId ();
 
70259
  /** Get the name of the node. Can be compared with NodeId(). */
27682
70260
  const char *NodeName () const { return NodeId (); }
27683
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
27684
 
   { if (old_son == _value) _value = new_son; }
27685
70261
   private:
27686
70262
  typedef CT_WideCharacter CCExprResolveExpr;
27687
70263
 
27688
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70264
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27689
70265
 public :
27690
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70266
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
27691
70267
  typedef CT_WideCharacter CExprResolveExpr;
27692
70268
 
27693
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70269
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27694
70270
 public :
27695
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27696
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70271
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70272
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27697
70273
};
27698
70274
 
 
70275
/** \class CT_Float CTree.h Puma/CTree.h
 
70276
 *  Tree node representing a floating point constant. */
27699
70277
 
27700
 
#line 27701 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70278
#line 70279 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
27701
70279
} // closed Puma
 
70280
class CCExprResolve;
 
70281
class CExprResolve;
27702
70282
class WinIfExists;
27703
70283
class WinImportHandler;
27704
70284
class WinMacros;
27705
 
class CMatchSyntax;
27706
 
class ExtGnu;
 
70285
class WinAsm;
 
70286
class WinDeclSpecs;
 
70287
class WinMemberExplSpec;
 
70288
class WinTypeKeywords;
 
70289
class WinFriend;
27707
70290
class ExtAC;
27708
70291
class ExtACBuilderCoupling;
27709
70292
class ExtACSyntaxCoupling;
27710
70293
class ExtACTree;
27711
70294
class ExtACKeywords;
27712
 
class WinAsm;
27713
 
class WinDeclSpecs;
27714
 
class WinMemberExplSpec;
27715
 
class WinTypeKeywords;
 
70295
class ExtGnu;
27716
70296
class PragmaOnceUnitState;
27717
70297
class PragmaOnce;
27718
 
class CCExprResolve;
27719
 
class CExprResolve;
27720
 
namespace Puma {
27721
 
 
27722
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70298
class CMatchSyntax;
 
70299
namespace Puma {
 
70300
 
 
70301
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70302
 
 
70303
#line 70304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70304
} // closed Puma
 
70305
 
 
70306
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70307
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70308
#include "CCExprResolveH.ah"
 
70309
#endif
 
70310
namespace Puma {
 
70311
 
 
70312
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70313
 
 
70314
#line 70315 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70315
} // closed Puma
 
70316
 
 
70317
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70318
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70319
#include "CExprResolveH.ah"
 
70320
#endif
 
70321
namespace Puma {
 
70322
 
 
70323
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27723
70324
class CT_Float : public CT_Expression {
27724
 
#line 27725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70325
#line 70326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70326
  friend class ::CCExprResolve;
 
70327
  friend class ::CExprResolve;
27725
70328
  friend class ::WinIfExists;
27726
70329
  friend class ::WinImportHandler;
27727
70330
  friend class ::WinMacros;
27728
 
  friend class ::CMatchSyntax;
27729
 
  friend class ::ExtGnu;
 
70331
  friend class ::WinAsm;
 
70332
  friend class ::WinDeclSpecs;
 
70333
  friend class ::WinMemberExplSpec;
 
70334
  friend class ::WinTypeKeywords;
 
70335
  friend class ::WinFriend;
27730
70336
  friend class ::ExtAC;
27731
70337
  friend class ::ExtACBuilderCoupling;
27732
70338
  friend class ::ExtACSyntaxCoupling;
27733
70339
  friend class ::ExtACTree;
27734
70340
  friend class ::ExtACKeywords;
27735
 
  friend class ::WinAsm;
27736
 
  friend class ::WinDeclSpecs;
27737
 
  friend class ::WinMemberExplSpec;
27738
 
  friend class ::WinTypeKeywords;
 
70341
  friend class ::ExtGnu;
27739
70342
  friend class ::PragmaOnceUnitState;
27740
70343
  friend class ::PragmaOnce;
27741
 
  friend class ::CCExprResolve;
27742
 
  friend class ::CExprResolve;
 
70344
  friend class ::CMatchSyntax;
27743
70345
 
27744
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70346
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27745
70347
 
27746
70348
  CTree *_value;  // CT_Token
27747
70349
 
27748
70350
public:
27749
 
  CT_Float (CTree *t) : _value (t) {}
 
70351
  /** Constructor.
 
70352
   *  \param token The token containing the floating point value. */
 
70353
  CT_Float (CTree *token) { AddSon (_value, token); }
 
70354
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27750
70355
  static const char *NodeId ();
 
70356
  /** Get the name of the node. Can be compared with NodeId(). */
27751
70357
  const char *NodeName () const { return NodeId (); }
 
70358
  /** Get the number of sons. */
27752
70359
  int Sons () const { return 1; }
 
70360
  /** Get the n-th son.
 
70361
   *  \param n The index of the son.
 
70362
   *  \return The n-th son or NULL. */
27753
70363
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
70364
  /** Replace a son.
 
70365
   *  \param old_son The son to replace.
 
70366
   *  \param new_son The new son. */
27754
70367
  void ReplaceSon (CTree *old_son, CTree *new_son) 
27755
 
   { if (old_son == _value) _value = new_son; }
 
70368
   { CTree::ReplaceSon (_value, old_son, new_son); }
27756
70369
   private:
27757
70370
  typedef CT_Float CCExprResolveExpr;
27758
70371
 
27759
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70372
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27760
70373
 public :
27761
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70374
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
27762
70375
  typedef CT_Float CExprResolveExpr;
27763
70376
 
27764
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70377
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27765
70378
 public :
27766
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27767
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70379
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70380
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27768
70381
};
27769
70382
 
 
70383
/** \class CT_Bool CTree.h Puma/CTree.h
 
70384
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
27770
70385
 
27771
 
#line 27772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70386
#line 70387 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
27772
70387
} // closed Puma
 
70388
class CCExprResolve;
 
70389
class CExprResolve;
27773
70390
class WinIfExists;
27774
70391
class WinImportHandler;
27775
70392
class WinMacros;
27776
 
class CMatchSyntax;
27777
 
class ExtGnu;
 
70393
class WinAsm;
 
70394
class WinDeclSpecs;
 
70395
class WinMemberExplSpec;
 
70396
class WinTypeKeywords;
 
70397
class WinFriend;
27778
70398
class ExtAC;
27779
70399
class ExtACBuilderCoupling;
27780
70400
class ExtACSyntaxCoupling;
27781
70401
class ExtACTree;
27782
70402
class ExtACKeywords;
27783
 
class WinAsm;
27784
 
class WinDeclSpecs;
27785
 
class WinMemberExplSpec;
27786
 
class WinTypeKeywords;
 
70403
class ExtGnu;
27787
70404
class PragmaOnceUnitState;
27788
70405
class PragmaOnce;
27789
 
class CCExprResolve;
27790
 
class CExprResolve;
27791
 
namespace Puma {
27792
 
 
27793
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70406
class CMatchSyntax;
 
70407
namespace Puma {
 
70408
 
 
70409
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70410
 
 
70411
#line 70412 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70412
} // closed Puma
 
70413
 
 
70414
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70415
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70416
#include "CCExprResolveH.ah"
 
70417
#endif
 
70418
namespace Puma {
 
70419
 
 
70420
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70421
 
 
70422
#line 70423 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70423
} // closed Puma
 
70424
 
 
70425
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70426
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70427
#include "CExprResolveH.ah"
 
70428
#endif
 
70429
namespace Puma {
 
70430
 
 
70431
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27794
70432
class CT_Bool : public CT_Expression {
27795
 
#line 27796 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70433
#line 70434 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70434
  friend class ::CCExprResolve;
 
70435
  friend class ::CExprResolve;
27796
70436
  friend class ::WinIfExists;
27797
70437
  friend class ::WinImportHandler;
27798
70438
  friend class ::WinMacros;
27799
 
  friend class ::CMatchSyntax;
27800
 
  friend class ::ExtGnu;
 
70439
  friend class ::WinAsm;
 
70440
  friend class ::WinDeclSpecs;
 
70441
  friend class ::WinMemberExplSpec;
 
70442
  friend class ::WinTypeKeywords;
 
70443
  friend class ::WinFriend;
27801
70444
  friend class ::ExtAC;
27802
70445
  friend class ::ExtACBuilderCoupling;
27803
70446
  friend class ::ExtACSyntaxCoupling;
27804
70447
  friend class ::ExtACTree;
27805
70448
  friend class ::ExtACKeywords;
27806
 
  friend class ::WinAsm;
27807
 
  friend class ::WinDeclSpecs;
27808
 
  friend class ::WinMemberExplSpec;
27809
 
  friend class ::WinTypeKeywords;
 
70449
  friend class ::ExtGnu;
27810
70450
  friend class ::PragmaOnceUnitState;
27811
70451
  friend class ::PragmaOnce;
27812
 
  friend class ::CCExprResolve;
27813
 
  friend class ::CExprResolve;
 
70452
  friend class ::CMatchSyntax;
27814
70453
 
27815
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70454
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27816
70455
 
27817
70456
  CTree *_value;  // CT_Token
27818
70457
 
27819
70458
public:
27820
 
  CT_Bool (CTree *t) : _value (t) {}
 
70459
  /** Constructor.
 
70460
   *  \param token The token containing the boolean value. */
 
70461
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
70462
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27821
70463
  static const char *NodeId ();
 
70464
  /** Get the name of the node. Can be compared with NodeId(). */
27822
70465
  const char *NodeName () const { return NodeId (); }
 
70466
  /** Get the number of sons. */
27823
70467
  int Sons () const { return 1; }
 
70468
  /** Get the n-th son.
 
70469
   *  \param n The index of the son.
 
70470
   *  \return The n-th son or NULL. */
27824
70471
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
70472
  /** Replace a son.
 
70473
   *  \param old_son The son to replace.
 
70474
   *  \param new_son The new son. */
27825
70475
  void ReplaceSon (CTree *old_son, CTree *new_son) 
27826
 
   { if (old_son == _value) _value = new_son; }
 
70476
   { CTree::ReplaceSon (_value, old_son, new_son); }
27827
70477
   private:
27828
70478
  typedef CT_Bool CCExprResolveExpr;
27829
70479
 
27830
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70480
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27831
70481
 public :
27832
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70482
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
27833
70483
  typedef CT_Bool CExprResolveExpr;
27834
70484
 
27835
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70485
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27836
70486
 public :
27837
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27838
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70487
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70488
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27839
70489
};
27840
70490
 
 
70491
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
70492
 *  Tree node representing a braced expression, e.g. (a+b). */
27841
70493
 
27842
 
#line 27843 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70494
#line 70495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
27843
70495
} // closed Puma
 
70496
class CCExprResolve;
 
70497
class CExprResolve;
27844
70498
class WinIfExists;
27845
70499
class WinImportHandler;
27846
70500
class WinMacros;
27847
 
class CMatchSyntax;
27848
 
class ExtGnu;
 
70501
class WinAsm;
 
70502
class WinDeclSpecs;
 
70503
class WinMemberExplSpec;
 
70504
class WinTypeKeywords;
 
70505
class WinFriend;
27849
70506
class ExtAC;
27850
70507
class ExtACBuilderCoupling;
27851
70508
class ExtACSyntaxCoupling;
27852
70509
class ExtACTree;
27853
70510
class ExtACKeywords;
27854
 
class WinAsm;
27855
 
class WinDeclSpecs;
27856
 
class WinMemberExplSpec;
27857
 
class WinTypeKeywords;
 
70511
class ExtGnu;
27858
70512
class PragmaOnceUnitState;
27859
70513
class PragmaOnce;
27860
 
class CCExprResolve;
27861
 
class CExprResolve;
27862
 
namespace Puma {
27863
 
 
27864
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70514
class CMatchSyntax;
 
70515
namespace Puma {
 
70516
 
 
70517
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70518
 
 
70519
#line 70520 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70520
} // closed Puma
 
70521
 
 
70522
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70523
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70524
#include "CCExprResolveH.ah"
 
70525
#endif
 
70526
namespace Puma {
 
70527
 
 
70528
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70529
 
 
70530
#line 70531 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70531
} // closed Puma
 
70532
 
 
70533
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70534
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70535
#include "CExprResolveH.ah"
 
70536
#endif
 
70537
namespace Puma {
 
70538
 
 
70539
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27865
70540
class CT_BracedExpr : public CT_Expression {
27866
 
#line 27867 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70541
#line 70542 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70542
  friend class ::CCExprResolve;
 
70543
  friend class ::CExprResolve;
27867
70544
  friend class ::WinIfExists;
27868
70545
  friend class ::WinImportHandler;
27869
70546
  friend class ::WinMacros;
27870
 
  friend class ::CMatchSyntax;
27871
 
  friend class ::ExtGnu;
 
70547
  friend class ::WinAsm;
 
70548
  friend class ::WinDeclSpecs;
 
70549
  friend class ::WinMemberExplSpec;
 
70550
  friend class ::WinTypeKeywords;
 
70551
  friend class ::WinFriend;
27872
70552
  friend class ::ExtAC;
27873
70553
  friend class ::ExtACBuilderCoupling;
27874
70554
  friend class ::ExtACSyntaxCoupling;
27875
70555
  friend class ::ExtACTree;
27876
70556
  friend class ::ExtACKeywords;
27877
 
  friend class ::WinAsm;
27878
 
  friend class ::WinDeclSpecs;
27879
 
  friend class ::WinMemberExplSpec;
27880
 
  friend class ::WinTypeKeywords;
 
70557
  friend class ::ExtGnu;
27881
70558
  friend class ::PragmaOnceUnitState;
27882
70559
  friend class ::PragmaOnce;
27883
 
  friend class ::CCExprResolve;
27884
 
  friend class ::CExprResolve;
 
70560
  friend class ::CMatchSyntax;
27885
70561
 
27886
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70562
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27887
70563
 
27888
70564
  CTree *sons[3]; // open, expr, close
27889
70565
 
27890
70566
public:
 
70567
  /** Constructor.
 
70568
   *  \param o The opening brace.
 
70569
   *  \param e The enclosed expression.
 
70570
   *  \param c The closing brace. */
27891
70571
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
27892
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
70572
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
27893
70573
  }
 
70574
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27894
70575
  static const char *NodeId ();
 
70576
  /** Get the name of the node. Can be compared with NodeId(). */
27895
70577
  const char *NodeName () const { return NodeId (); }
 
70578
  /** Get the number of sons. */
27896
70579
  int Sons () const { return 3; }
 
70580
  /** Get the n-th son.
 
70581
   *  \param n The index of the son.
 
70582
   *  \return The n-th son or NULL. */
27897
70583
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
70584
  /** Get the enclosed expression. */
27898
70585
  CTree *Expr () const { return sons[1]; }
 
70586
  /** Get the type of the enclosed expression. */
27899
70587
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
70588
  /** Get the value of the enclosed expression. */
27900
70589
  CExprValue *Value () const { return Expr ()->Value (); }
 
70590
  /** Get the semantic value object. */
27901
70591
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
70592
  /** Replace a son.
 
70593
   *  \param old_son The son to replace.
 
70594
   *  \param new_son The new son. */
27902
70595
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
27903
70596
    CTree::ReplaceSon (sons, 3, old_son, new_son);
27904
70597
  }
27905
70598
   private:
27906
70599
  typedef CT_BracedExpr CCExprResolveExpr;
27907
70600
 
27908
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70601
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27909
70602
 public :
27910
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70603
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
27911
70604
  typedef CT_BracedExpr CExprResolveExpr;
27912
70605
 
27913
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70606
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27914
70607
 public :
27915
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27916
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70608
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70609
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27917
70610
};
27918
70611
 
 
70612
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
70613
 *  Base class for all tree nodes representing a name. */
27919
70614
 
27920
 
#line 27921 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70615
#line 70616 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
27921
70616
} // closed Puma
 
70617
class CCExprResolve;
 
70618
class CExprResolve;
27922
70619
class WinIfExists;
27923
70620
class WinImportHandler;
27924
70621
class WinMacros;
27925
 
class CMatchSyntax;
27926
 
class ExtGnu;
 
70622
class WinAsm;
 
70623
class WinDeclSpecs;
 
70624
class WinMemberExplSpec;
 
70625
class WinTypeKeywords;
 
70626
class WinFriend;
27927
70627
class ExtAC;
27928
70628
class ExtACBuilderCoupling;
27929
70629
class ExtACSyntaxCoupling;
27930
70630
class ExtACTree;
27931
70631
class ExtACKeywords;
27932
 
class WinAsm;
27933
 
class WinDeclSpecs;
27934
 
class WinMemberExplSpec;
27935
 
class WinTypeKeywords;
 
70632
class ExtGnu;
27936
70633
class PragmaOnceUnitState;
27937
70634
class PragmaOnce;
27938
 
class CCExprResolve;
27939
 
class CExprResolve;
27940
 
namespace Puma {
27941
 
 
27942
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70635
class CMatchSyntax;
 
70636
namespace Puma {
 
70637
 
 
70638
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70639
 
 
70640
#line 70641 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70641
} // closed Puma
 
70642
 
 
70643
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70644
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70645
#include "CCExprResolveH.ah"
 
70646
#endif
 
70647
namespace Puma {
 
70648
 
 
70649
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70650
 
 
70651
#line 70652 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70652
} // closed Puma
 
70653
 
 
70654
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70655
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70656
#include "CExprResolveH.ah"
 
70657
#endif
 
70658
namespace Puma {
 
70659
 
 
70660
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27943
70661
class CT_SimpleName : public CT_List, public Printable, 
27944
70662
                      public CSemValue, public CSemObject {
27945
 
#line 27946 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70663
#line 70664 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70664
  friend class ::CCExprResolve;
 
70665
  friend class ::CExprResolve;
27946
70666
  friend class ::WinIfExists;
27947
70667
  friend class ::WinImportHandler;
27948
70668
  friend class ::WinMacros;
27949
 
  friend class ::CMatchSyntax;
27950
 
  friend class ::ExtGnu;
 
70669
  friend class ::WinAsm;
 
70670
  friend class ::WinDeclSpecs;
 
70671
  friend class ::WinMemberExplSpec;
 
70672
  friend class ::WinTypeKeywords;
 
70673
  friend class ::WinFriend;
27951
70674
  friend class ::ExtAC;
27952
70675
  friend class ::ExtACBuilderCoupling;
27953
70676
  friend class ::ExtACSyntaxCoupling;
27954
70677
  friend class ::ExtACTree;
27955
70678
  friend class ::ExtACKeywords;
27956
 
  friend class ::WinAsm;
27957
 
  friend class ::WinDeclSpecs;
27958
 
  friend class ::WinMemberExplSpec;
27959
 
  friend class ::WinTypeKeywords;
 
70679
  friend class ::ExtGnu;
27960
70680
  friend class ::PragmaOnceUnitState;
27961
70681
  friend class ::PragmaOnce;
27962
 
  friend class ::CCExprResolve;
27963
 
  friend class ::CExprResolve;
 
70682
  friend class ::CMatchSyntax;
27964
70683
 
27965
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70684
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27966
70685
 
27967
70686
protected:
 
70687
  /** Constructor.
 
70688
   *  \param size The number of sub-names (for qualified names). */
27968
70689
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
70690
  /** Constructor.
 
70691
   *  \param size The number of sub-names (for qualified names). 
 
70692
   *  \param properties Additional name list properties (for root qualified names). */
27969
70693
  CT_SimpleName (int size, int properties) : 
27970
70694
    CT_List (size, 2, properties) {}
27971
70695
  
27972
70696
public:
 
70697
  /** Constructor.
 
70698
   *  \param n The sub-tree containing the name. */
27973
70699
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
70700
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27974
70701
  static const char *NodeId ();
 
70702
  /** Get the name of the node. Can be compared with NodeId(). */
27975
70703
  const char *NodeName () const { return NodeId (); }
 
70704
  /** Get the string containing the name. */
27976
70705
  virtual const char *Text () const 
27977
70706
   { return Son (Sons ()-1)->token ()->text (); }
 
70707
  /** Print the name on the given stream. 
 
70708
   *  \param os The output stream. */
27978
70709
  virtual void print (ostream &os) const { os << Text (); }
 
70710
  /** Get this. */
27979
70711
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
70712
  /** Get the type of the entity represented by the name. */
27980
70713
  CTypeInfo *Type () const { return type; }
 
70714
  /** Get the value of the entity represented by the name. */ 
27981
70715
  CExprValue *Value () const { return value; }
 
70716
  /** Get the sematic value information object. */
27982
70717
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
70718
  /** Get the sematic information object. */
27983
70719
  CSemObject *SemObject () const { return (CSemObject*)this; }
27984
 
  // special new / delete with reusing memory
27985
 
  void *operator new (size_t);
27986
 
  void  operator delete (void *);
27987
 
  // classification function
 
70720
  /** Get this. */
27988
70721
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
70722
 
 
70723
public:
 
70724
  /** Own new operator reusing memory. */
 
70725
  void *operator new (size_t);
 
70726
  /** Own delete operator. */
 
70727
  void operator delete (void *);
27989
70728
   private:
27990
70729
  typedef CT_SimpleName CCExprResolveExpr;
27991
70730
 
27992
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70731
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27993
70732
 public :
27994
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70733
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
27995
70734
  typedef CT_SimpleName CExprResolveExpr;
27996
70735
 
27997
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70736
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27998
70737
 public :
27999
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28000
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70738
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70739
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28001
70740
};
28002
70741
 
 
70742
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
70743
 *  Base class for tree nodes representing a special name, like destructor names. */
28003
70744
 
28004
 
#line 28005 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70745
#line 70746 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
28005
70746
} // closed Puma
 
70747
class CCExprResolve;
 
70748
class CExprResolve;
28006
70749
class WinIfExists;
28007
70750
class WinImportHandler;
28008
70751
class WinMacros;
28009
 
class CMatchSyntax;
28010
 
class ExtGnu;
 
70752
class WinAsm;
 
70753
class WinDeclSpecs;
 
70754
class WinMemberExplSpec;
 
70755
class WinTypeKeywords;
 
70756
class WinFriend;
28011
70757
class ExtAC;
28012
70758
class ExtACBuilderCoupling;
28013
70759
class ExtACSyntaxCoupling;
28014
70760
class ExtACTree;
28015
70761
class ExtACKeywords;
28016
 
class WinAsm;
28017
 
class WinDeclSpecs;
28018
 
class WinMemberExplSpec;
28019
 
class WinTypeKeywords;
 
70762
class ExtGnu;
28020
70763
class PragmaOnceUnitState;
28021
70764
class PragmaOnce;
28022
 
class CCExprResolve;
28023
 
class CExprResolve;
28024
 
namespace Puma {
28025
 
 
28026
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70765
class CMatchSyntax;
 
70766
namespace Puma {
 
70767
 
 
70768
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70769
 
 
70770
#line 70771 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70771
} // closed Puma
 
70772
 
 
70773
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70774
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70775
#include "CCExprResolveH.ah"
 
70776
#endif
 
70777
namespace Puma {
 
70778
 
 
70779
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70780
 
 
70781
#line 70782 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70782
} // closed Puma
 
70783
 
 
70784
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70785
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70786
#include "CExprResolveH.ah"
 
70787
#endif
 
70788
namespace Puma {
 
70789
 
 
70790
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28027
70791
class CT_SpecialName : public CT_SimpleName {
28028
 
#line 28029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70792
#line 70793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70793
  friend class ::CCExprResolve;
 
70794
  friend class ::CExprResolve;
28029
70795
  friend class ::WinIfExists;
28030
70796
  friend class ::WinImportHandler;
28031
70797
  friend class ::WinMacros;
28032
 
  friend class ::CMatchSyntax;
28033
 
  friend class ::ExtGnu;
 
70798
  friend class ::WinAsm;
 
70799
  friend class ::WinDeclSpecs;
 
70800
  friend class ::WinMemberExplSpec;
 
70801
  friend class ::WinTypeKeywords;
 
70802
  friend class ::WinFriend;
28034
70803
  friend class ::ExtAC;
28035
70804
  friend class ::ExtACBuilderCoupling;
28036
70805
  friend class ::ExtACSyntaxCoupling;
28037
70806
  friend class ::ExtACTree;
28038
70807
  friend class ::ExtACKeywords;
28039
 
  friend class ::WinAsm;
28040
 
  friend class ::WinDeclSpecs;
28041
 
  friend class ::WinMemberExplSpec;
28042
 
  friend class ::WinTypeKeywords;
 
70808
  friend class ::ExtGnu;
28043
70809
  friend class ::PragmaOnceUnitState;
28044
70810
  friend class ::PragmaOnce;
28045
 
  friend class ::CCExprResolve;
28046
 
  friend class ::CExprResolve;
 
70811
  friend class ::CMatchSyntax;
28047
70812
 
28048
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70813
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28049
70814
 
28050
70815
  char *_name;
28051
70816
  
28052
70817
protected:
 
70818
  /** Constructor.
 
70819
   *  \param size The number of sub-names (for qualified names). */
28053
70820
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
28054
70821
  
28055
70822
public:
 
70823
  /** Destructor. Deletes the name string. */
28056
70824
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
70825
  /** Get the string containing the name. */
28057
70826
  const char *Text () const { return _name; }
 
70827
  /** Set the name. The name is copied.
 
70828
   *  \param n The name. */
28058
70829
  void Name (const char *n) { 
28059
70830
    if (n) { 
28060
70831
      _name = new char[strlen(n) + 1];
28061
70832
      strcpy (_name,n);
28062
70833
    }
28063
70834
  }
28064
 
  // special new / delete with reusing memory
 
70835
 
 
70836
public:
 
70837
  /** Own new operator reusing memory. */
28065
70838
  void *operator new (size_t);
28066
 
  void  operator delete (void *);
 
70839
  /** Own delete operator. */
 
70840
  void operator delete (void *);
28067
70841
   private:
28068
70842
  typedef CT_SpecialName CCExprResolveExpr;
28069
70843
 
28070
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70844
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28071
70845
 public :
28072
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70846
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
28073
70847
  typedef CT_SpecialName CExprResolveExpr;
28074
70848
 
28075
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70849
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28076
70850
 public :
28077
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28078
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70851
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70852
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28079
70853
};
28080
70854
 
 
70855
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
70856
 *  Tree node representing a private name. Private names 
 
70857
 *  are generated names for abstract declarators etc. */
28081
70858
 
28082
 
#line 28083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70859
#line 70860 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
28083
70860
} // closed Puma
 
70861
class CCExprResolve;
 
70862
class CExprResolve;
28084
70863
class WinIfExists;
28085
70864
class WinImportHandler;
28086
70865
class WinMacros;
28087
 
class CMatchSyntax;
28088
 
class ExtGnu;
 
70866
class WinAsm;
 
70867
class WinDeclSpecs;
 
70868
class WinMemberExplSpec;
 
70869
class WinTypeKeywords;
 
70870
class WinFriend;
28089
70871
class ExtAC;
28090
70872
class ExtACBuilderCoupling;
28091
70873
class ExtACSyntaxCoupling;
28092
70874
class ExtACTree;
28093
70875
class ExtACKeywords;
28094
 
class WinAsm;
28095
 
class WinDeclSpecs;
28096
 
class WinMemberExplSpec;
28097
 
class WinTypeKeywords;
 
70876
class ExtGnu;
28098
70877
class PragmaOnceUnitState;
28099
70878
class PragmaOnce;
28100
 
class CCExprResolve;
28101
 
class CExprResolve;
28102
 
namespace Puma {
28103
 
 
28104
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70879
class CMatchSyntax;
 
70880
namespace Puma {
 
70881
 
 
70882
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70883
 
 
70884
#line 70885 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70885
} // closed Puma
 
70886
 
 
70887
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70888
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70889
#include "CCExprResolveH.ah"
 
70890
#endif
 
70891
namespace Puma {
 
70892
 
 
70893
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70894
 
 
70895
#line 70896 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70896
} // closed Puma
 
70897
 
 
70898
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70899
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70900
#include "CExprResolveH.ah"
 
70901
#endif
 
70902
namespace Puma {
 
70903
 
 
70904
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28105
70905
class CT_PrivateName : public CT_SpecialName {
28106
 
#line 28107 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70906
#line 70907 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70907
  friend class ::CCExprResolve;
 
70908
  friend class ::CExprResolve;
28107
70909
  friend class ::WinIfExists;
28108
70910
  friend class ::WinImportHandler;
28109
70911
  friend class ::WinMacros;
28110
 
  friend class ::CMatchSyntax;
28111
 
  friend class ::ExtGnu;
 
70912
  friend class ::WinAsm;
 
70913
  friend class ::WinDeclSpecs;
 
70914
  friend class ::WinMemberExplSpec;
 
70915
  friend class ::WinTypeKeywords;
 
70916
  friend class ::WinFriend;
28112
70917
  friend class ::ExtAC;
28113
70918
  friend class ::ExtACBuilderCoupling;
28114
70919
  friend class ::ExtACSyntaxCoupling;
28115
70920
  friend class ::ExtACTree;
28116
70921
  friend class ::ExtACKeywords;
28117
 
  friend class ::WinAsm;
28118
 
  friend class ::WinDeclSpecs;
28119
 
  friend class ::WinMemberExplSpec;
28120
 
  friend class ::WinTypeKeywords;
 
70922
  friend class ::ExtGnu;
28121
70923
  friend class ::PragmaOnceUnitState;
28122
70924
  friend class ::PragmaOnce;
28123
 
  friend class ::CCExprResolve;
28124
 
  friend class ::CExprResolve;
 
70925
  friend class ::CMatchSyntax;
28125
70926
 
28126
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70927
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28127
70928
 
28128
70929
public:
 
70930
  /** Constructor.
 
70931
   *  \param n The private (generated) name. */
28129
70932
  CT_PrivateName (const char *n) { Name (n); }
 
70933
  /** Get the identifier for this node type. Can be compared with NodeName(). */
28130
70934
  static const char *NodeId ();
 
70935
  /** Get the name of the node. Can be compared with NodeId(). */
28131
70936
  const char *NodeName () const { return NodeId (); }
 
70937
  /** Get the number of sons. */
28132
70938
  int Sons () const { return 0; }
 
70939
  /** Get the n-th son.
 
70940
   *  \param n The index of the son.
 
70941
   *  \return The n-th son or NULL. */
28133
70942
  CTree *Son (int n) const { return (CTree*)0; }
28134
 
  // special new / delete with reusing memory
 
70943
 
 
70944
public:
 
70945
  /** Own new operator reusing memory. */
28135
70946
  void *operator new (size_t);
28136
 
  void  operator delete (void *);
 
70947
  /** Own delete operator. */
 
70948
  void operator delete (void *);
28137
70949
   private:
28138
70950
  typedef CT_PrivateName CCExprResolveExpr;
28139
70951
 
28140
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70952
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28141
70953
 public :
28142
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70954
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
28143
70955
  typedef CT_PrivateName CExprResolveExpr;
28144
70956
 
28145
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70957
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28146
70958
 public :
28147
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28148
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70959
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70960
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28149
70961
};
28150
70962
 
 
70963
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
70964
 *  Tree node representing a destructor name. */
28151
70965
 
28152
 
#line 28153 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
70966
#line 70967 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
28153
70967
} // closed Puma
 
70968
class CCExprResolve;
 
70969
class CExprResolve;
28154
70970
class WinIfExists;
28155
70971
class WinImportHandler;
28156
70972
class WinMacros;
28157
 
class CMatchSyntax;
28158
 
class ExtGnu;
 
70973
class WinAsm;
 
70974
class WinDeclSpecs;
 
70975
class WinMemberExplSpec;
 
70976
class WinTypeKeywords;
 
70977
class WinFriend;
28159
70978
class ExtAC;
28160
70979
class ExtACBuilderCoupling;
28161
70980
class ExtACSyntaxCoupling;
28162
70981
class ExtACTree;
28163
70982
class ExtACKeywords;
28164
 
class WinAsm;
28165
 
class WinDeclSpecs;
28166
 
class WinMemberExplSpec;
28167
 
class WinTypeKeywords;
 
70983
class ExtGnu;
28168
70984
class PragmaOnceUnitState;
28169
70985
class PragmaOnce;
28170
 
class CCExprResolve;
28171
 
class CExprResolve;
28172
 
namespace Puma {
28173
 
 
28174
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70986
class CMatchSyntax;
 
70987
namespace Puma {
 
70988
 
 
70989
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70990
 
 
70991
#line 70992 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
70992
} // closed Puma
 
70993
 
 
70994
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70995
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70996
#include "CCExprResolveH.ah"
 
70997
#endif
 
70998
namespace Puma {
 
70999
 
 
71000
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71001
 
 
71002
#line 71003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71003
} // closed Puma
 
71004
 
 
71005
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71006
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71007
#include "CExprResolveH.ah"
 
71008
#endif
 
71009
namespace Puma {
 
71010
 
 
71011
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28175
71012
class CT_DestructorName : public CT_SpecialName {
28176
 
#line 28177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71013
#line 71014 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71014
  friend class ::CCExprResolve;
 
71015
  friend class ::CExprResolve;
28177
71016
  friend class ::WinIfExists;
28178
71017
  friend class ::WinImportHandler;
28179
71018
  friend class ::WinMacros;
28180
 
  friend class ::CMatchSyntax;
28181
 
  friend class ::ExtGnu;
 
71019
  friend class ::WinAsm;
 
71020
  friend class ::WinDeclSpecs;
 
71021
  friend class ::WinMemberExplSpec;
 
71022
  friend class ::WinTypeKeywords;
 
71023
  friend class ::WinFriend;
28182
71024
  friend class ::ExtAC;
28183
71025
  friend class ::ExtACBuilderCoupling;
28184
71026
  friend class ::ExtACSyntaxCoupling;
28185
71027
  friend class ::ExtACTree;
28186
71028
  friend class ::ExtACKeywords;
28187
 
  friend class ::WinAsm;
28188
 
  friend class ::WinDeclSpecs;
28189
 
  friend class ::WinMemberExplSpec;
28190
 
  friend class ::WinTypeKeywords;
 
71029
  friend class ::ExtGnu;
28191
71030
  friend class ::PragmaOnceUnitState;
28192
71031
  friend class ::PragmaOnce;
28193
 
  friend class ::CCExprResolve;
28194
 
  friend class ::CExprResolve;
 
71032
  friend class ::CMatchSyntax;
28195
71033
 
28196
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71034
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28197
71035
 
28198
71036
public:
28199
 
  CT_DestructorName (CTree *, CTree *);
 
71037
  /** Constructor.
 
71038
   *  \param t The tilde operator.
 
71039
   *  \param n The class name. */
 
71040
  CT_DestructorName (CTree *t, CTree *n);
 
71041
  /** Get the identifier for this node type. Can be compared with NodeName(). */
28200
71042
  static const char *NodeId ();
 
71043
  /** Get the name of the node. Can be compared with NodeId(). */
28201
71044
  const char *NodeName () const { return NodeId (); }
28202
 
  // special new / delete with reusing memory
 
71045
 
 
71046
public:
 
71047
  /** Own new operator reusing memory. */
28203
71048
  void *operator new (size_t);
28204
 
  void  operator delete (void *);
 
71049
  /** Own delete operator. */
 
71050
  void operator delete (void *);
28205
71051
   private:
28206
71052
  typedef CT_DestructorName CCExprResolveExpr;
28207
71053
 
28208
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71054
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28209
71055
 public :
28210
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71056
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
28211
71057
  typedef CT_DestructorName CExprResolveExpr;
28212
71058
 
28213
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71059
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28214
71060
 public :
28215
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28216
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71061
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71062
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28217
71063
};
28218
71064
 
 
71065
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
71066
 *  Tree node representing a template name. */
28219
71067
 
28220
 
#line 28221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71068
#line 71069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
28221
71069
} // closed Puma
 
71070
class CCExprResolve;
 
71071
class CExprResolve;
28222
71072
class WinIfExists;
28223
71073
class WinImportHandler;
28224
71074
class WinMacros;
28225
 
class CMatchSyntax;
28226
 
class ExtGnu;
 
71075
class WinAsm;
 
71076
class WinDeclSpecs;
 
71077
class WinMemberExplSpec;
 
71078
class WinTypeKeywords;
 
71079
class WinFriend;
28227
71080
class ExtAC;
28228
71081
class ExtACBuilderCoupling;
28229
71082
class ExtACSyntaxCoupling;
28230
71083
class ExtACTree;
28231
71084
class ExtACKeywords;
28232
 
class WinAsm;
28233
 
class WinDeclSpecs;
28234
 
class WinMemberExplSpec;
28235
 
class WinTypeKeywords;
 
71085
class ExtGnu;
28236
71086
class PragmaOnceUnitState;
28237
71087
class PragmaOnce;
28238
 
class CCExprResolve;
28239
 
class CExprResolve;
28240
 
namespace Puma {
28241
 
 
28242
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71088
class CMatchSyntax;
 
71089
namespace Puma {
 
71090
 
 
71091
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71092
 
 
71093
#line 71094 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71094
} // closed Puma
 
71095
 
 
71096
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71097
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71098
#include "CCExprResolveH.ah"
 
71099
#endif
 
71100
namespace Puma {
 
71101
 
 
71102
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71103
 
 
71104
#line 71105 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71105
} // closed Puma
 
71106
 
 
71107
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71108
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71109
#include "CExprResolveH.ah"
 
71110
#endif
 
71111
namespace Puma {
 
71112
 
 
71113
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28243
71114
class CT_TemplateName : public CT_SpecialName {
28244
 
#line 28245 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71115
#line 71116 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71116
  friend class ::CCExprResolve;
 
71117
  friend class ::CExprResolve;
28245
71118
  friend class ::WinIfExists;
28246
71119
  friend class ::WinImportHandler;
28247
71120
  friend class ::WinMacros;
28248
 
  friend class ::CMatchSyntax;
28249
 
  friend class ::ExtGnu;
 
71121
  friend class ::WinAsm;
 
71122
  friend class ::WinDeclSpecs;
 
71123
  friend class ::WinMemberExplSpec;
 
71124
  friend class ::WinTypeKeywords;
 
71125
  friend class ::WinFriend;
28250
71126
  friend class ::ExtAC;
28251
71127
  friend class ::ExtACBuilderCoupling;
28252
71128
  friend class ::ExtACSyntaxCoupling;
28253
71129
  friend class ::ExtACTree;
28254
71130
  friend class ::ExtACKeywords;
28255
 
  friend class ::WinAsm;
28256
 
  friend class ::WinDeclSpecs;
28257
 
  friend class ::WinMemberExplSpec;
28258
 
  friend class ::WinTypeKeywords;
 
71131
  friend class ::ExtGnu;
28259
71132
  friend class ::PragmaOnceUnitState;
28260
71133
  friend class ::PragmaOnce;
28261
 
  friend class ::CCExprResolve;
28262
 
  friend class ::CExprResolve;
 
71134
  friend class ::CMatchSyntax;
28263
71135
 
28264
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71136
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28265
71137
 
28266
71138
public:
 
71139
  /** Constructor.
 
71140
   *  \param n The template class or function name.
 
71141
   *  \param a The template argument list. */
28267
71142
  CT_TemplateName (CTree *n, CTree *a) 
28268
71143
   { AddSon (n); AddSon (a); }
 
71144
  /** Get the identifier for this node type. Can be compared with NodeName(). */
28269
71145
  static const char *NodeId ();
 
71146
  /** Get the name of the node. Can be compared with NodeId(). */
28270
71147
  const char *NodeName () const { return NodeId (); }
 
71148
  /** Get the template argument list. */
28271
71149
  CT_TemplateArgList *Arguments () const 
28272
71150
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
71151
  /** Get the template class or function name. */
28273
71152
  CT_SimpleName *TemplateName () const 
28274
71153
   { return (CT_SimpleName*)Son (Sons ()-2); }
28275
71154
  // may change in the future
28276
71155
  const char *Text () const { return TemplateName ()->Text (); }
28277
 
  // special new / delete with reusing memory
 
71156
 
 
71157
public:
 
71158
  /** Own new operator reusing memory. */
28278
71159
  void *operator new (size_t);
28279
 
  void  operator delete (void *);
 
71160
  /** Own delete operator. */
 
71161
  void operator delete (void *);
28280
71162
   private:
28281
71163
  typedef CT_TemplateName CCExprResolveExpr;
28282
71164
 
28283
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71165
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28284
71166
 public :
28285
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71167
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
28286
71168
  typedef CT_TemplateName CExprResolveExpr;
28287
71169
 
28288
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71170
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28289
71171
 public :
28290
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28291
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71172
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71173
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28292
71174
};
28293
71175
 
 
71176
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
71177
 *  Tree node representing the name of an overloaded operator. */
28294
71178
 
28295
 
#line 28296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71179
#line 71180 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
28296
71180
} // closed Puma
 
71181
class CCExprResolve;
 
71182
class CExprResolve;
28297
71183
class WinIfExists;
28298
71184
class WinImportHandler;
28299
71185
class WinMacros;
28300
 
class CMatchSyntax;
28301
 
class ExtGnu;
 
71186
class WinAsm;
 
71187
class WinDeclSpecs;
 
71188
class WinMemberExplSpec;
 
71189
class WinTypeKeywords;
 
71190
class WinFriend;
28302
71191
class ExtAC;
28303
71192
class ExtACBuilderCoupling;
28304
71193
class ExtACSyntaxCoupling;
28305
71194
class ExtACTree;
28306
71195
class ExtACKeywords;
28307
 
class WinAsm;
28308
 
class WinDeclSpecs;
28309
 
class WinMemberExplSpec;
28310
 
class WinTypeKeywords;
 
71196
class ExtGnu;
28311
71197
class PragmaOnceUnitState;
28312
71198
class PragmaOnce;
28313
 
class CCExprResolve;
28314
 
class CExprResolve;
28315
 
namespace Puma {
28316
 
 
28317
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71199
class CMatchSyntax;
 
71200
namespace Puma {
 
71201
 
 
71202
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71203
 
 
71204
#line 71205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71205
} // closed Puma
 
71206
 
 
71207
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71208
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71209
#include "CCExprResolveH.ah"
 
71210
#endif
 
71211
namespace Puma {
 
71212
 
 
71213
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71214
 
 
71215
#line 71216 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71216
} // closed Puma
 
71217
 
 
71218
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71219
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71220
#include "CExprResolveH.ah"
 
71221
#endif
 
71222
namespace Puma {
 
71223
 
 
71224
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28318
71225
class CT_OperatorName : public CT_SpecialName {
28319
 
#line 28320 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71226
#line 71227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71227
  friend class ::CCExprResolve;
 
71228
  friend class ::CExprResolve;
28320
71229
  friend class ::WinIfExists;
28321
71230
  friend class ::WinImportHandler;
28322
71231
  friend class ::WinMacros;
28323
 
  friend class ::CMatchSyntax;
28324
 
  friend class ::ExtGnu;
 
71232
  friend class ::WinAsm;
 
71233
  friend class ::WinDeclSpecs;
 
71234
  friend class ::WinMemberExplSpec;
 
71235
  friend class ::WinTypeKeywords;
 
71236
  friend class ::WinFriend;
28325
71237
  friend class ::ExtAC;
28326
71238
  friend class ::ExtACBuilderCoupling;
28327
71239
  friend class ::ExtACSyntaxCoupling;
28328
71240
  friend class ::ExtACTree;
28329
71241
  friend class ::ExtACKeywords;
28330
 
  friend class ::WinAsm;
28331
 
  friend class ::WinDeclSpecs;
28332
 
  friend class ::WinMemberExplSpec;
28333
 
  friend class ::WinTypeKeywords;
 
71242
  friend class ::ExtGnu;
28334
71243
  friend class ::PragmaOnceUnitState;
28335
71244
  friend class ::PragmaOnce;
28336
 
  friend class ::CCExprResolve;
28337
 
  friend class ::CExprResolve;
 
71245
  friend class ::CMatchSyntax;
28338
71246
 
28339
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71247
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28340
71248
 
28341
71249
  int _oper;
28342
71250
 
28343
71251
public:
28344
 
  enum { // complex operators
28345
 
    FCT_CALL = -100,
28346
 
    SUBSCRIPT,
28347
 
    NEW_ARRAY,
28348
 
    DEL_ARRAY
 
71252
  /** Complex operator types. */
 
71253
  enum { 
 
71254
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
71255
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
71256
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
71257
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
28349
71258
  };
28350
71259
 
28351
71260
public:
28352
 
  CT_OperatorName (CTree *);
28353
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
71261
  /** Constructor.
 
71262
   *  \param op The token containing the operator. */
 
71263
  CT_OperatorName (CTree *op);
 
71264
  /** Constructor.
 
71265
   *  \param f The operator function keyword 'operator'.
 
71266
   *  \param op The token containing the operator. 
 
71267
   *  \param o The token of '[' or '('.
 
71268
   *  \param c The token of ']' or ')'. */
 
71269
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
71270
  /** Get the identifier for this node type. Can be compared with NodeName(). */
28354
71271
  static const char *NodeId ();
 
71272
  /** Get the name of the node. Can be compared with NodeId(). */
28355
71273
  const char *NodeName () const { return NodeId (); }
 
71274
  /** Get the operator type (either the token type or one of 
 
71275
   *  the complex operator types). */
28356
71276
  int Operator () const { return _oper; }
28357
 
  // special new / delete with reusing memory
 
71277
 
 
71278
public:
 
71279
  /** Own new operator reusing memory. */
28358
71280
  void *operator new (size_t);
28359
 
  void  operator delete (void *);
 
71281
  /** Own delete operator. */
 
71282
  void operator delete (void *);
28360
71283
   private:
28361
71284
  typedef CT_OperatorName CCExprResolveExpr;
28362
71285
 
28363
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71286
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28364
71287
 public :
28365
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71288
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
28366
71289
  typedef CT_OperatorName CExprResolveExpr;
28367
71290
 
28368
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71291
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28369
71292
 public :
28370
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28371
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71293
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71294
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28372
71295
};
28373
71296
 
 
71297
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
71298
 *  Tree node representing the name of a conversion function. */
28374
71299
 
28375
 
#line 28376 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71300
#line 71301 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
28376
71301
} // closed Puma
 
71302
class CCExprResolve;
 
71303
class CExprResolve;
28377
71304
class WinIfExists;
28378
71305
class WinImportHandler;
28379
71306
class WinMacros;
28380
 
class CMatchSyntax;
28381
 
class ExtGnu;
 
71307
class WinAsm;
 
71308
class WinDeclSpecs;
 
71309
class WinMemberExplSpec;
 
71310
class WinTypeKeywords;
 
71311
class WinFriend;
28382
71312
class ExtAC;
28383
71313
class ExtACBuilderCoupling;
28384
71314
class ExtACSyntaxCoupling;
28385
71315
class ExtACTree;
28386
71316
class ExtACKeywords;
28387
 
class WinAsm;
28388
 
class WinDeclSpecs;
28389
 
class WinMemberExplSpec;
28390
 
class WinTypeKeywords;
 
71317
class ExtGnu;
28391
71318
class PragmaOnceUnitState;
28392
71319
class PragmaOnce;
28393
 
class CCExprResolve;
28394
 
class CExprResolve;
28395
 
namespace Puma {
28396
 
 
28397
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71320
class CMatchSyntax;
 
71321
namespace Puma {
 
71322
 
 
71323
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71324
 
 
71325
#line 71326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71326
} // closed Puma
 
71327
 
 
71328
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71329
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71330
#include "CCExprResolveH.ah"
 
71331
#endif
 
71332
namespace Puma {
 
71333
 
 
71334
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71335
 
 
71336
#line 71337 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71337
} // closed Puma
 
71338
 
 
71339
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71340
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71341
#include "CExprResolveH.ah"
 
71342
#endif
 
71343
namespace Puma {
 
71344
 
 
71345
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28398
71346
class CT_ConversionName : public CT_SpecialName {
28399
 
#line 28400 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71347
#line 71348 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71348
  friend class ::CCExprResolve;
 
71349
  friend class ::CExprResolve;
28400
71350
  friend class ::WinIfExists;
28401
71351
  friend class ::WinImportHandler;
28402
71352
  friend class ::WinMacros;
28403
 
  friend class ::CMatchSyntax;
28404
 
  friend class ::ExtGnu;
 
71353
  friend class ::WinAsm;
 
71354
  friend class ::WinDeclSpecs;
 
71355
  friend class ::WinMemberExplSpec;
 
71356
  friend class ::WinTypeKeywords;
 
71357
  friend class ::WinFriend;
28405
71358
  friend class ::ExtAC;
28406
71359
  friend class ::ExtACBuilderCoupling;
28407
71360
  friend class ::ExtACSyntaxCoupling;
28408
71361
  friend class ::ExtACTree;
28409
71362
  friend class ::ExtACKeywords;
28410
 
  friend class ::WinAsm;
28411
 
  friend class ::WinDeclSpecs;
28412
 
  friend class ::WinMemberExplSpec;
28413
 
  friend class ::WinTypeKeywords;
 
71363
  friend class ::ExtGnu;
28414
71364
  friend class ::PragmaOnceUnitState;
28415
71365
  friend class ::PragmaOnce;
28416
 
  friend class ::CCExprResolve;
28417
 
  friend class ::CExprResolve;
 
71366
  friend class ::CMatchSyntax;
28418
71367
 
28419
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71368
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28420
71369
 
28421
71370
public:
28422
 
  CT_ConversionName (CTree *, CTree *);
 
71371
  /** Constructor.
 
71372
   *  \param f The operator function keyword 'operator'.
 
71373
   *  \param t The sub-tree containing the conversion type. */
 
71374
  CT_ConversionName (CTree *f, CTree *t);
 
71375
  /** Get the identifier for this node type. Can be compared with NodeName(). */
28423
71376
  static const char *NodeId ();
 
71377
  /** Get the name of the node. Can be compared with NodeId(). */
28424
71378
  const char *NodeName () const { return NodeId (); }
 
71379
  /** Get the conversion type. */
28425
71380
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
28426
 
  // special new / delete with reusing memory
 
71381
 
 
71382
public:
 
71383
  /** Own new operator reusing memory. */
28427
71384
  void *operator new (size_t);
28428
 
  void  operator delete (void *);
 
71385
  /** Own delete operator. */
 
71386
  void operator delete (void *);
28429
71387
   private:
28430
71388
  typedef CT_ConversionName CCExprResolveExpr;
28431
71389
 
28432
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71390
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28433
71391
 public :
28434
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71392
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
28435
71393
  typedef CT_ConversionName CExprResolveExpr;
28436
71394
 
28437
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71395
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28438
71396
 public :
28439
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28440
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71397
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71398
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28441
71399
};
28442
71400
 
 
71401
/** \class CT_QualName CTree.h Puma/CTree.h
 
71402
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
28443
71403
 
28444
 
#line 28445 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71404
#line 71405 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
28445
71405
} // closed Puma
 
71406
class CCExprResolve;
 
71407
class CExprResolve;
28446
71408
class WinIfExists;
28447
71409
class WinImportHandler;
28448
71410
class WinMacros;
28449
 
class CMatchSyntax;
28450
 
class ExtGnu;
 
71411
class WinAsm;
 
71412
class WinDeclSpecs;
 
71413
class WinMemberExplSpec;
 
71414
class WinTypeKeywords;
 
71415
class WinFriend;
28451
71416
class ExtAC;
28452
71417
class ExtACBuilderCoupling;
28453
71418
class ExtACSyntaxCoupling;
28454
71419
class ExtACTree;
28455
71420
class ExtACKeywords;
28456
 
class WinAsm;
28457
 
class WinDeclSpecs;
28458
 
class WinMemberExplSpec;
28459
 
class WinTypeKeywords;
 
71421
class ExtGnu;
28460
71422
class PragmaOnceUnitState;
28461
71423
class PragmaOnce;
28462
 
class CCExprResolve;
28463
 
class CExprResolve;
28464
 
namespace Puma {
28465
 
 
28466
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71424
class CMatchSyntax;
 
71425
namespace Puma {
 
71426
 
 
71427
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71428
 
 
71429
#line 71430 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71430
} // closed Puma
 
71431
 
 
71432
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71433
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71434
#include "CCExprResolveH.ah"
 
71435
#endif
 
71436
namespace Puma {
 
71437
 
 
71438
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71439
 
 
71440
#line 71441 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71441
} // closed Puma
 
71442
 
 
71443
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71444
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71445
#include "CExprResolveH.ah"
 
71446
#endif
 
71447
namespace Puma {
 
71448
 
 
71449
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28467
71450
class CT_QualName : public CT_SimpleName {
28468
 
#line 28469 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71451
#line 71452 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71452
  friend class ::CCExprResolve;
 
71453
  friend class ::CExprResolve;
28469
71454
  friend class ::WinIfExists;
28470
71455
  friend class ::WinImportHandler;
28471
71456
  friend class ::WinMacros;
28472
 
  friend class ::CMatchSyntax;
28473
 
  friend class ::ExtGnu;
 
71457
  friend class ::WinAsm;
 
71458
  friend class ::WinDeclSpecs;
 
71459
  friend class ::WinMemberExplSpec;
 
71460
  friend class ::WinTypeKeywords;
 
71461
  friend class ::WinFriend;
28474
71462
  friend class ::ExtAC;
28475
71463
  friend class ::ExtACBuilderCoupling;
28476
71464
  friend class ::ExtACSyntaxCoupling;
28477
71465
  friend class ::ExtACTree;
28478
71466
  friend class ::ExtACKeywords;
28479
 
  friend class ::WinAsm;
28480
 
  friend class ::WinDeclSpecs;
28481
 
  friend class ::WinMemberExplSpec;
28482
 
  friend class ::WinTypeKeywords;
 
71467
  friend class ::ExtGnu;
28483
71468
  friend class ::PragmaOnceUnitState;
28484
71469
  friend class ::PragmaOnce;
28485
 
  friend class ::CCExprResolve;
28486
 
  friend class ::CExprResolve;
 
71470
  friend class ::CMatchSyntax;
28487
71471
 
28488
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71472
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28489
71473
 
28490
71474
public:
 
71475
  /** Constructor.
 
71476
   *  \param size The initial number sub-names plus separators. */
28491
71477
  CT_QualName (int size = 3) : 
28492
71478
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
71479
  /** Get the identifier for this node type. Can be compared with NodeName(). */
28493
71480
  static const char *NodeId ();
 
71481
  /** Get the name of the node. Can be compared with NodeId(). */
28494
71482
  const char *NodeName () const { return NodeId (); }
28495
 
  void print (ostream &) const;
 
71483
  /** Print the qualified name on the given stream. 
 
71484
   *  \param os The output stream. */
 
71485
  void print (ostream &os) const;
 
71486
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
28496
71487
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
71488
  /** Get the string containing the last name of the qualified name. */
28497
71489
  const char *Text () const { return Name ()->Text (); }
 
71490
  /** Get the type of the last name. */
28498
71491
  CTypeInfo *Type () const { return Name ()->Type (); }
 
71492
  /** Get the value of the last name. */
28499
71493
  CExprValue *Value () const { return Name ()->Value (); }
 
71494
  /** Get the semantic value object of the last name. */
28500
71495
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
71496
  /** Get the semantic information object of the last name. */
28501
71497
  CSemObject *SemObject () const { return Name ()->SemObject (); }
28502
 
  // special new / delete with reusing memory
 
71498
 
 
71499
public:
 
71500
  /** Own new operator reusing memory. */
28503
71501
  void *operator new (size_t);
28504
 
  void  operator delete (void *);
 
71502
  /** Own delete operator. */
 
71503
  void operator delete (void *);
28505
71504
   private:
28506
71505
  typedef CT_QualName CCExprResolveExpr;
28507
71506
 
28508
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71507
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28509
71508
 public :
28510
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71509
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
28511
71510
  typedef CT_QualName CExprResolveExpr;
28512
71511
 
28513
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71512
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28514
71513
 public :
28515
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28516
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71514
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71515
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28517
71516
};
28518
71517
 
 
71518
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
71519
 *  Tree node representing a qualified name with introducing name separator,
 
71520
 *  e.g. ::X::Y::Z. */
28519
71521
 
28520
 
#line 28521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71522
#line 71523 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
28521
71523
} // closed Puma
 
71524
class CCExprResolve;
 
71525
class CExprResolve;
28522
71526
class WinIfExists;
28523
71527
class WinImportHandler;
28524
71528
class WinMacros;
28525
 
class CMatchSyntax;
28526
 
class ExtGnu;
 
71529
class WinAsm;
 
71530
class WinDeclSpecs;
 
71531
class WinMemberExplSpec;
 
71532
class WinTypeKeywords;
 
71533
class WinFriend;
28527
71534
class ExtAC;
28528
71535
class ExtACBuilderCoupling;
28529
71536
class ExtACSyntaxCoupling;
28530
71537
class ExtACTree;
28531
71538
class ExtACKeywords;
28532
 
class WinAsm;
28533
 
class WinDeclSpecs;
28534
 
class WinMemberExplSpec;
28535
 
class WinTypeKeywords;
 
71539
class ExtGnu;
28536
71540
class PragmaOnceUnitState;
28537
71541
class PragmaOnce;
28538
 
class CCExprResolve;
28539
 
class CExprResolve;
28540
 
namespace Puma {
28541
 
 
28542
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71542
class CMatchSyntax;
 
71543
namespace Puma {
 
71544
 
 
71545
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71546
 
 
71547
#line 71548 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71548
} // closed Puma
 
71549
 
 
71550
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71551
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71552
#include "CCExprResolveH.ah"
 
71553
#endif
 
71554
namespace Puma {
 
71555
 
 
71556
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71557
 
 
71558
#line 71559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71559
} // closed Puma
 
71560
 
 
71561
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71562
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71563
#include "CExprResolveH.ah"
 
71564
#endif
 
71565
namespace Puma {
 
71566
 
 
71567
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28543
71568
class CT_RootQualName : public CT_QualName {
28544
 
#line 28545 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71569
#line 71570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71570
  friend class ::CCExprResolve;
 
71571
  friend class ::CExprResolve;
28545
71572
  friend class ::WinIfExists;
28546
71573
  friend class ::WinImportHandler;
28547
71574
  friend class ::WinMacros;
28548
 
  friend class ::CMatchSyntax;
28549
 
  friend class ::ExtGnu;
 
71575
  friend class ::WinAsm;
 
71576
  friend class ::WinDeclSpecs;
 
71577
  friend class ::WinMemberExplSpec;
 
71578
  friend class ::WinTypeKeywords;
 
71579
  friend class ::WinFriend;
28550
71580
  friend class ::ExtAC;
28551
71581
  friend class ::ExtACBuilderCoupling;
28552
71582
  friend class ::ExtACSyntaxCoupling;
28553
71583
  friend class ::ExtACTree;
28554
71584
  friend class ::ExtACKeywords;
28555
 
  friend class ::WinAsm;
28556
 
  friend class ::WinDeclSpecs;
28557
 
  friend class ::WinMemberExplSpec;
28558
 
  friend class ::WinTypeKeywords;
 
71585
  friend class ::ExtGnu;
28559
71586
  friend class ::PragmaOnceUnitState;
28560
71587
  friend class ::PragmaOnce;
28561
 
  friend class ::CCExprResolve;
28562
 
  friend class ::CExprResolve;
 
71588
  friend class ::CMatchSyntax;
28563
71589
 
28564
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71590
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28565
71591
 
28566
71592
public:
 
71593
  /** Constructor.
 
71594
   *  \param size Initial number of sub-name plus separator. */
28567
71595
  CT_RootQualName (int size = 2) : 
28568
71596
    CT_QualName (size) { AddProperties (INTRO); }
 
71597
  /** Get the identifier for this node type. Can be compared with NodeName(). */
28569
71598
  static const char *NodeId ();
 
71599
  /** Get the name of the node. Can be compared with NodeId(). */
28570
71600
  const char *NodeName () const { return NodeId (); }
28571
 
  // special new / delete with reusing memory
 
71601
 
 
71602
public:
 
71603
  /** Own new operator reusing memory. */
28572
71604
  void *operator new (size_t);
28573
 
  void  operator delete (void *);
 
71605
  /** Own delete operator. */
 
71606
  void operator delete (void *);
28574
71607
   private:
28575
71608
  typedef CT_RootQualName CCExprResolveExpr;
28576
71609
 
28577
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71610
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28578
71611
 public :
28579
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71612
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
28580
71613
  typedef CT_RootQualName CExprResolveExpr;
28581
71614
 
28582
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71615
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28583
71616
 public :
28584
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28585
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71617
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71618
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28586
71619
};
28587
71620
 
 
71621
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
71622
 *  Tree node representing a binary expression, e.g. a+b. */
28588
71623
 
28589
 
#line 28590 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71624
#line 71625 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
28590
71625
} // closed Puma
 
71626
class CCExprResolve;
 
71627
class CExprResolve;
28591
71628
class WinIfExists;
28592
71629
class WinImportHandler;
28593
71630
class WinMacros;
28594
 
class CMatchSyntax;
28595
 
class ExtGnu;
 
71631
class WinAsm;
 
71632
class WinDeclSpecs;
 
71633
class WinMemberExplSpec;
 
71634
class WinTypeKeywords;
 
71635
class WinFriend;
28596
71636
class ExtAC;
28597
71637
class ExtACBuilderCoupling;
28598
71638
class ExtACSyntaxCoupling;
28599
71639
class ExtACTree;
28600
71640
class ExtACKeywords;
28601
 
class WinAsm;
28602
 
class WinDeclSpecs;
28603
 
class WinMemberExplSpec;
28604
 
class WinTypeKeywords;
 
71641
class ExtGnu;
28605
71642
class PragmaOnceUnitState;
28606
71643
class PragmaOnce;
28607
 
class CCExprResolve;
28608
 
class CExprResolve;
28609
 
namespace Puma {
28610
 
 
28611
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28612
 
class CT_BinaryExpr : public CT_Expression {
28613
 
#line 28614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71644
class CMatchSyntax;
 
71645
namespace Puma {
 
71646
 
 
71647
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71648
 
 
71649
#line 71650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71650
} // closed Puma
 
71651
 
 
71652
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71653
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71654
#include "CCExprResolveH.ah"
 
71655
#endif
 
71656
namespace Puma {
 
71657
 
 
71658
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71659
 
 
71660
#line 71661 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71661
} // closed Puma
 
71662
 
 
71663
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71664
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71665
#include "CExprResolveH.ah"
 
71666
#endif
 
71667
namespace Puma {
 
71668
 
 
71669
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71670
class CT_BinaryExpr : public CT_Call {
 
71671
#line 71672 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71672
  friend class ::CCExprResolve;
 
71673
  friend class ::CExprResolve;
28614
71674
  friend class ::WinIfExists;
28615
71675
  friend class ::WinImportHandler;
28616
71676
  friend class ::WinMacros;
28617
 
  friend class ::CMatchSyntax;
28618
 
  friend class ::ExtGnu;
 
71677
  friend class ::WinAsm;
 
71678
  friend class ::WinDeclSpecs;
 
71679
  friend class ::WinMemberExplSpec;
 
71680
  friend class ::WinTypeKeywords;
 
71681
  friend class ::WinFriend;
28619
71682
  friend class ::ExtAC;
28620
71683
  friend class ::ExtACBuilderCoupling;
28621
71684
  friend class ::ExtACSyntaxCoupling;
28622
71685
  friend class ::ExtACTree;
28623
71686
  friend class ::ExtACKeywords;
28624
 
  friend class ::WinAsm;
28625
 
  friend class ::WinDeclSpecs;
28626
 
  friend class ::WinMemberExplSpec;
28627
 
  friend class ::WinTypeKeywords;
 
71687
  friend class ::ExtGnu;
28628
71688
  friend class ::PragmaOnceUnitState;
28629
71689
  friend class ::PragmaOnce;
28630
 
  friend class ::CCExprResolve;
28631
 
  friend class ::CExprResolve;
 
71690
  friend class ::CMatchSyntax;
28632
71691
 
28633
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71692
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28634
71693
 
28635
71694
  CTree *sons[3]; // expr, oper, expr
28636
71695
 
28637
71696
public:
 
71697
  /** Constructor. 
 
71698
   *  \param l Left hand side of the expression. 
 
71699
   *  \param o The operator token. 
 
71700
   *  \param r Right hand side of the expression. */
28638
71701
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
28639
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
71702
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
28640
71703
  }
 
71704
  /** Get the identifier for this node type. Can be compared with NodeName(). */
28641
71705
  static const char *NodeId ();
 
71706
  /** Get the name of the node. Can be compared with NodeId(). */
28642
71707
  const char *NodeName () const { return NodeId (); }
 
71708
  /** Get the number of sons. */
28643
71709
  int Sons () const { return 3; }
 
71710
  /** Get the n-th son.
 
71711
   *  \param n The index of the son.
 
71712
   *  \return The n-th son or NULL. */
28644
71713
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
71714
  /** Replace a son.
 
71715
   *  \param old_son The son to replace.
 
71716
   *  \param new_son The new son. */
28645
71717
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
28646
71718
    CTree::ReplaceSon (sons, 3, old_son, new_son);
28647
71719
  }
28648
71720
   private:
28649
71721
  typedef CT_BinaryExpr CCExprResolveExpr;
28650
71722
 
28651
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71723
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28652
71724
 public :
28653
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71725
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
28654
71726
  typedef CT_BinaryExpr CExprResolveExpr;
28655
71727
 
28656
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71728
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28657
71729
 public :
28658
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28659
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71730
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71731
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28660
71732
};
28661
71733
 
 
71734
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
71735
 *  Tree node representing a member pointer expression, e.g. a->b. */
28662
71736
 
28663
 
#line 28664 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71737
#line 71738 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
28664
71738
} // closed Puma
 
71739
class CCExprResolve;
 
71740
class CExprResolve;
28665
71741
class WinIfExists;
28666
71742
class WinImportHandler;
28667
71743
class WinMacros;
28668
 
class CMatchSyntax;
28669
 
class ExtGnu;
 
71744
class WinAsm;
 
71745
class WinDeclSpecs;
 
71746
class WinMemberExplSpec;
 
71747
class WinTypeKeywords;
 
71748
class WinFriend;
28670
71749
class ExtAC;
28671
71750
class ExtACBuilderCoupling;
28672
71751
class ExtACSyntaxCoupling;
28673
71752
class ExtACTree;
28674
71753
class ExtACKeywords;
28675
 
class WinAsm;
28676
 
class WinDeclSpecs;
28677
 
class WinMemberExplSpec;
28678
 
class WinTypeKeywords;
 
71754
class ExtGnu;
28679
71755
class PragmaOnceUnitState;
28680
71756
class PragmaOnce;
28681
 
class CCExprResolve;
28682
 
class CExprResolve;
28683
 
namespace Puma {
28684
 
 
28685
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28686
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
28687
 
#line 28688 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71757
class CMatchSyntax;
 
71758
namespace Puma {
 
71759
 
 
71760
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71761
 
 
71762
#line 71763 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71763
} // closed Puma
 
71764
 
 
71765
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71766
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71767
#include "CCExprResolveH.ah"
 
71768
#endif
 
71769
namespace Puma {
 
71770
 
 
71771
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71772
 
 
71773
#line 71774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71774
} // closed Puma
 
71775
 
 
71776
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71777
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71778
#include "CExprResolveH.ah"
 
71779
#endif
 
71780
namespace Puma {
 
71781
 
 
71782
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71783
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
71784
#line 71785 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71785
  friend class ::CCExprResolve;
 
71786
  friend class ::CExprResolve;
28688
71787
  friend class ::WinIfExists;
28689
71788
  friend class ::WinImportHandler;
28690
71789
  friend class ::WinMacros;
28691
 
  friend class ::CMatchSyntax;
28692
 
  friend class ::ExtGnu;
 
71790
  friend class ::WinAsm;
 
71791
  friend class ::WinDeclSpecs;
 
71792
  friend class ::WinMemberExplSpec;
 
71793
  friend class ::WinTypeKeywords;
 
71794
  friend class ::WinFriend;
28693
71795
  friend class ::ExtAC;
28694
71796
  friend class ::ExtACBuilderCoupling;
28695
71797
  friend class ::ExtACSyntaxCoupling;
28696
71798
  friend class ::ExtACTree;
28697
71799
  friend class ::ExtACKeywords;
28698
 
  friend class ::WinAsm;
28699
 
  friend class ::WinDeclSpecs;
28700
 
  friend class ::WinMemberExplSpec;
28701
 
  friend class ::WinTypeKeywords;
 
71800
  friend class ::ExtGnu;
28702
71801
  friend class ::PragmaOnceUnitState;
28703
71802
  friend class ::PragmaOnce;
28704
 
  friend class ::CCExprResolve;
28705
 
  friend class ::CExprResolve;
28706
 
 
28707
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28708
 
 
 
71803
  friend class ::CMatchSyntax;
 
71804
 
 
71805
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71806
 
 
71807
  CTree *sons[3]; // expr, oper, expr
 
71808
  
28709
71809
public:
28710
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
28711
 
    CT_BinaryExpr (e, o, i) {}
 
71810
  /** Constructor.
 
71811
   *  \param e Expression on which to call the member.
 
71812
   *  \param o The arrow operator token.
 
71813
   *  \param i The member name. */
 
71814
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
71815
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
71816
  }
 
71817
  /** Get the identifier for this node type. Can be compared with NodeName(). */
28712
71818
  static const char *NodeId ();
 
71819
  /** Get the name of the node. Can be compared with NodeId(). */
28713
71820
  const char *NodeName () const { return NodeId (); }
28714
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
71821
  /** Get the number of sons. */
 
71822
  int Sons () const { return 3; }
 
71823
  /** Get the n-th son.
 
71824
   *  \param n The index of the son.
 
71825
   *  \return The n-th son or NULL. */
 
71826
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
71827
  /** Replace a son.
 
71828
   *  \param old_son The son to replace.
 
71829
   *  \param new_son The new son. */
 
71830
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
71831
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
71832
  }
28715
71833
   private:
28716
71834
  typedef CT_MembPtrExpr CCExprResolveExpr;
28717
71835
 
28718
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71836
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28719
71837
 public :
28720
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71838
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
28721
71839
  typedef CT_MembPtrExpr CExprResolveExpr;
28722
71840
 
28723
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71841
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28724
71842
 public :
28725
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28726
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71843
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71844
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28727
71845
};
28728
71846
 
 
71847
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
71848
 *  Tree node representing a member reference expression, e.g. a.b. */
28729
71849
 
28730
 
#line 28731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71850
#line 71851 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
28731
71851
} // closed Puma
 
71852
class CCExprResolve;
 
71853
class CExprResolve;
28732
71854
class WinIfExists;
28733
71855
class WinImportHandler;
28734
71856
class WinMacros;
28735
 
class CMatchSyntax;
28736
 
class ExtGnu;
 
71857
class WinAsm;
 
71858
class WinDeclSpecs;
 
71859
class WinMemberExplSpec;
 
71860
class WinTypeKeywords;
 
71861
class WinFriend;
28737
71862
class ExtAC;
28738
71863
class ExtACBuilderCoupling;
28739
71864
class ExtACSyntaxCoupling;
28740
71865
class ExtACTree;
28741
71866
class ExtACKeywords;
28742
 
class WinAsm;
28743
 
class WinDeclSpecs;
28744
 
class WinMemberExplSpec;
28745
 
class WinTypeKeywords;
 
71867
class ExtGnu;
28746
71868
class PragmaOnceUnitState;
28747
71869
class PragmaOnce;
28748
 
class CCExprResolve;
28749
 
class CExprResolve;
28750
 
namespace Puma {
28751
 
 
28752
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71870
class CMatchSyntax;
 
71871
namespace Puma {
 
71872
 
 
71873
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71874
 
 
71875
#line 71876 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71876
} // closed Puma
 
71877
 
 
71878
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71879
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71880
#include "CCExprResolveH.ah"
 
71881
#endif
 
71882
namespace Puma {
 
71883
 
 
71884
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71885
 
 
71886
#line 71887 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71887
} // closed Puma
 
71888
 
 
71889
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71890
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71891
#include "CExprResolveH.ah"
 
71892
#endif
 
71893
namespace Puma {
 
71894
 
 
71895
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28753
71896
class CT_MembRefExpr : public CT_MembPtrExpr {
28754
 
#line 28755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71897
#line 71898 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71898
  friend class ::CCExprResolve;
 
71899
  friend class ::CExprResolve;
28755
71900
  friend class ::WinIfExists;
28756
71901
  friend class ::WinImportHandler;
28757
71902
  friend class ::WinMacros;
28758
 
  friend class ::CMatchSyntax;
28759
 
  friend class ::ExtGnu;
 
71903
  friend class ::WinAsm;
 
71904
  friend class ::WinDeclSpecs;
 
71905
  friend class ::WinMemberExplSpec;
 
71906
  friend class ::WinTypeKeywords;
 
71907
  friend class ::WinFriend;
28760
71908
  friend class ::ExtAC;
28761
71909
  friend class ::ExtACBuilderCoupling;
28762
71910
  friend class ::ExtACSyntaxCoupling;
28763
71911
  friend class ::ExtACTree;
28764
71912
  friend class ::ExtACKeywords;
28765
 
  friend class ::WinAsm;
28766
 
  friend class ::WinDeclSpecs;
28767
 
  friend class ::WinMemberExplSpec;
28768
 
  friend class ::WinTypeKeywords;
 
71913
  friend class ::ExtGnu;
28769
71914
  friend class ::PragmaOnceUnitState;
28770
71915
  friend class ::PragmaOnce;
28771
 
  friend class ::CCExprResolve;
28772
 
  friend class ::CExprResolve;
 
71916
  friend class ::CMatchSyntax;
28773
71917
 
28774
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71918
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28775
71919
 
28776
71920
public:
 
71921
  /** Constructor.
 
71922
   *  \param e Expression on which to call the member.
 
71923
   *  \param o The dot operator.
 
71924
   *  \param i The member name. */
28777
71925
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
28778
71926
    CT_MembPtrExpr (e, o, i) {}
 
71927
  /** Get the identifier for this node type. Can be compared with NodeName(). */
28779
71928
  static const char *NodeId ();
 
71929
  /** Get the name of the node. Can be compared with NodeId(). */
28780
71930
  const char *NodeName () const { return NodeId (); }
28781
71931
   private:
28782
71932
  typedef CT_MembRefExpr CCExprResolveExpr;
28783
71933
 
28784
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71934
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28785
71935
 public :
28786
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71936
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
28787
71937
  typedef CT_MembRefExpr CExprResolveExpr;
28788
71938
 
28789
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71939
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28790
71940
 public :
28791
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28792
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71941
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71942
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28793
71943
};
28794
71944
 
 
71945
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
71946
 *  Base class for tree nodes representing unary expressions. */
28795
71947
 
28796
 
#line 28797 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71948
#line 71949 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
28797
71949
} // closed Puma
 
71950
class CCExprResolve;
 
71951
class CExprResolve;
28798
71952
class WinIfExists;
28799
71953
class WinImportHandler;
28800
71954
class WinMacros;
28801
 
class CMatchSyntax;
28802
 
class ExtGnu;
 
71955
class WinAsm;
 
71956
class WinDeclSpecs;
 
71957
class WinMemberExplSpec;
 
71958
class WinTypeKeywords;
 
71959
class WinFriend;
28803
71960
class ExtAC;
28804
71961
class ExtACBuilderCoupling;
28805
71962
class ExtACSyntaxCoupling;
28806
71963
class ExtACTree;
28807
71964
class ExtACKeywords;
28808
 
class WinAsm;
28809
 
class WinDeclSpecs;
28810
 
class WinMemberExplSpec;
28811
 
class WinTypeKeywords;
 
71965
class ExtGnu;
28812
71966
class PragmaOnceUnitState;
28813
71967
class PragmaOnce;
28814
 
class CCExprResolve;
28815
 
class CExprResolve;
28816
 
namespace Puma {
28817
 
 
28818
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28819
 
class CT_UnaryExpr : public CT_Expression {
28820
 
#line 28821 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
71968
class CMatchSyntax;
 
71969
namespace Puma {
 
71970
 
 
71971
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71972
 
 
71973
#line 71974 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71974
} // closed Puma
 
71975
 
 
71976
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71977
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71978
#include "CCExprResolveH.ah"
 
71979
#endif
 
71980
namespace Puma {
 
71981
 
 
71982
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71983
 
 
71984
#line 71985 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71985
} // closed Puma
 
71986
 
 
71987
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71988
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71989
#include "CExprResolveH.ah"
 
71990
#endif
 
71991
namespace Puma {
 
71992
 
 
71993
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71994
class CT_UnaryExpr : public CT_Call {
 
71995
#line 71996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
71996
  friend class ::CCExprResolve;
 
71997
  friend class ::CExprResolve;
28821
71998
  friend class ::WinIfExists;
28822
71999
  friend class ::WinImportHandler;
28823
72000
  friend class ::WinMacros;
28824
 
  friend class ::CMatchSyntax;
28825
 
  friend class ::ExtGnu;
 
72001
  friend class ::WinAsm;
 
72002
  friend class ::WinDeclSpecs;
 
72003
  friend class ::WinMemberExplSpec;
 
72004
  friend class ::WinTypeKeywords;
 
72005
  friend class ::WinFriend;
28826
72006
  friend class ::ExtAC;
28827
72007
  friend class ::ExtACBuilderCoupling;
28828
72008
  friend class ::ExtACSyntaxCoupling;
28829
72009
  friend class ::ExtACTree;
28830
72010
  friend class ::ExtACKeywords;
28831
 
  friend class ::WinAsm;
28832
 
  friend class ::WinDeclSpecs;
28833
 
  friend class ::WinMemberExplSpec;
28834
 
  friend class ::WinTypeKeywords;
 
72011
  friend class ::ExtGnu;
28835
72012
  friend class ::PragmaOnceUnitState;
28836
72013
  friend class ::PragmaOnce;
28837
 
  friend class ::CCExprResolve;
28838
 
  friend class ::CExprResolve;
 
72014
  friend class ::CMatchSyntax;
28839
72015
 
28840
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72016
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28841
72017
 
28842
72018
  CTree *sons[2]; // oper, expr
28843
72019
 
28844
72020
public:
28845
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
72021
  /** Constructor.
 
72022
   *  \param o The unary operator.
 
72023
   *  \param e The expression on which the operator is invoked. */
 
72024
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
72025
  /** Get the identifier for this node type. Can be compared with NodeName(). */
28846
72026
  static const char *NodeId ();
 
72027
  /** Get the name of the node. Can be compared with NodeId(). */
28847
72028
  const char *NodeName () const { return NodeId (); }
 
72029
  /** Get the number of sons. */
28848
72030
  int Sons () const { return 2; }
 
72031
  /** Get the n-th son.
 
72032
   *  \param n The index of the son.
 
72033
   *  \return The n-th son or NULL. */
28849
72034
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
72035
  /** Replace a son.
 
72036
   *  \param old_son The son to replace.
 
72037
   *  \param new_son The new son. */
28850
72038
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
28851
72039
    CTree::ReplaceSon (sons, 2, old_son, new_son);
28852
72040
  }
 
72041
  /** Get the expression node. */
28853
72042
  CTree *Expr () const { return sons[1]; }
28854
72043
   private:
28855
72044
  typedef CT_UnaryExpr CCExprResolveExpr;
28856
72045
 
28857
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72046
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28858
72047
 public :
28859
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72048
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
28860
72049
  typedef CT_UnaryExpr CExprResolveExpr;
28861
72050
 
28862
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72051
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28863
72052
 public :
28864
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28865
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72053
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72054
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28866
72055
};
28867
72056
 
 
72057
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
72058
 *  Tree node representing a postfix expression, e.g. a++. */
28868
72059
 
28869
 
#line 28870 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
72060
#line 72061 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
28870
72061
} // closed Puma
 
72062
class CCExprResolve;
 
72063
class CExprResolve;
28871
72064
class WinIfExists;
28872
72065
class WinImportHandler;
28873
72066
class WinMacros;
28874
 
class CMatchSyntax;
28875
 
class ExtGnu;
 
72067
class WinAsm;
 
72068
class WinDeclSpecs;
 
72069
class WinMemberExplSpec;
 
72070
class WinTypeKeywords;
 
72071
class WinFriend;
28876
72072
class ExtAC;
28877
72073
class ExtACBuilderCoupling;
28878
72074
class ExtACSyntaxCoupling;
28879
72075
class ExtACTree;
28880
72076
class ExtACKeywords;
28881
 
class WinAsm;
28882
 
class WinDeclSpecs;
28883
 
class WinMemberExplSpec;
28884
 
class WinTypeKeywords;
 
72077
class ExtGnu;
28885
72078
class PragmaOnceUnitState;
28886
72079
class PragmaOnce;
28887
 
class CCExprResolve;
28888
 
class CExprResolve;
28889
 
namespace Puma {
28890
 
 
28891
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72080
class CMatchSyntax;
 
72081
namespace Puma {
 
72082
 
 
72083
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72084
 
 
72085
#line 72086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72086
} // closed Puma
 
72087
 
 
72088
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72089
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72090
#include "CCExprResolveH.ah"
 
72091
#endif
 
72092
namespace Puma {
 
72093
 
 
72094
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72095
 
 
72096
#line 72097 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72097
} // closed Puma
 
72098
 
 
72099
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72100
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72101
#include "CExprResolveH.ah"
 
72102
#endif
 
72103
namespace Puma {
 
72104
 
 
72105
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28892
72106
class CT_PostfixExpr : public CT_UnaryExpr {
28893
 
#line 28894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
72107
#line 72108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72108
  friend class ::CCExprResolve;
 
72109
  friend class ::CExprResolve;
28894
72110
  friend class ::WinIfExists;
28895
72111
  friend class ::WinImportHandler;
28896
72112
  friend class ::WinMacros;
28897
 
  friend class ::CMatchSyntax;
28898
 
  friend class ::ExtGnu;
 
72113
  friend class ::WinAsm;
 
72114
  friend class ::WinDeclSpecs;
 
72115
  friend class ::WinMemberExplSpec;
 
72116
  friend class ::WinTypeKeywords;
 
72117
  friend class ::WinFriend;
28899
72118
  friend class ::ExtAC;
28900
72119
  friend class ::ExtACBuilderCoupling;
28901
72120
  friend class ::ExtACSyntaxCoupling;
28902
72121
  friend class ::ExtACTree;
28903
72122
  friend class ::ExtACKeywords;
28904
 
  friend class ::WinAsm;
28905
 
  friend class ::WinDeclSpecs;
28906
 
  friend class ::WinMemberExplSpec;
28907
 
  friend class ::WinTypeKeywords;
 
72123
  friend class ::ExtGnu;
28908
72124
  friend class ::PragmaOnceUnitState;
28909
72125
  friend class ::PragmaOnce;
28910
 
  friend class ::CCExprResolve;
28911
 
  friend class ::CExprResolve;
 
72126
  friend class ::CMatchSyntax;
28912
72127
 
28913
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72128
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28914
72129
 
28915
72130
public:
 
72131
  /** Constructor.
 
72132
   *  \param e The expression on which to invoke the operator. 
 
72133
   *  \param o The postfix operator. */
28916
72134
  CT_PostfixExpr (CTree *e, CTree *o) :
28917
72135
    CT_UnaryExpr (e, o) {}
 
72136
  /** Get the identifier for this node type. Can be compared with NodeName(). */
28918
72137
  static const char *NodeId ();
 
72138
  /** Get the name of the node. Can be compared with NodeId(). */
28919
72139
  const char *NodeName () const { return NodeId (); }
28920
72140
   private:
28921
72141
  typedef CT_PostfixExpr CCExprResolveExpr;
28922
72142
 
28923
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72143
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28924
72144
 public :
28925
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72145
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
28926
72146
  typedef CT_PostfixExpr CExprResolveExpr;
28927
72147
 
28928
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72148
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28929
72149
 public :
28930
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28931
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72150
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72151
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28932
72152
};
28933
72153
 
 
72154
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
72155
 *  Tree node representing an address expression, e.g. &a. */
28934
72156
 
28935
 
#line 28936 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
72157
#line 72158 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
28936
72158
} // closed Puma
 
72159
class CCExprResolve;
 
72160
class CExprResolve;
28937
72161
class WinIfExists;
28938
72162
class WinImportHandler;
28939
72163
class WinMacros;
28940
 
class CMatchSyntax;
28941
 
class ExtGnu;
 
72164
class WinAsm;
 
72165
class WinDeclSpecs;
 
72166
class WinMemberExplSpec;
 
72167
class WinTypeKeywords;
 
72168
class WinFriend;
28942
72169
class ExtAC;
28943
72170
class ExtACBuilderCoupling;
28944
72171
class ExtACSyntaxCoupling;
28945
72172
class ExtACTree;
28946
72173
class ExtACKeywords;
28947
 
class WinAsm;
28948
 
class WinDeclSpecs;
28949
 
class WinMemberExplSpec;
28950
 
class WinTypeKeywords;
 
72174
class ExtGnu;
28951
72175
class PragmaOnceUnitState;
28952
72176
class PragmaOnce;
28953
 
class CCExprResolve;
28954
 
class CExprResolve;
28955
 
namespace Puma {
28956
 
 
28957
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72177
class CMatchSyntax;
 
72178
namespace Puma {
 
72179
 
 
72180
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72181
 
 
72182
#line 72183 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72183
} // closed Puma
 
72184
 
 
72185
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72186
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72187
#include "CCExprResolveH.ah"
 
72188
#endif
 
72189
namespace Puma {
 
72190
 
 
72191
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72192
 
 
72193
#line 72194 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72194
} // closed Puma
 
72195
 
 
72196
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72197
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72198
#include "CExprResolveH.ah"
 
72199
#endif
 
72200
namespace Puma {
 
72201
 
 
72202
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28958
72203
class CT_AddrExpr : public CT_UnaryExpr {
28959
 
#line 28960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
72204
#line 72205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72205
  friend class ::CCExprResolve;
 
72206
  friend class ::CExprResolve;
28960
72207
  friend class ::WinIfExists;
28961
72208
  friend class ::WinImportHandler;
28962
72209
  friend class ::WinMacros;
28963
 
  friend class ::CMatchSyntax;
28964
 
  friend class ::ExtGnu;
 
72210
  friend class ::WinAsm;
 
72211
  friend class ::WinDeclSpecs;
 
72212
  friend class ::WinMemberExplSpec;
 
72213
  friend class ::WinTypeKeywords;
 
72214
  friend class ::WinFriend;
28965
72215
  friend class ::ExtAC;
28966
72216
  friend class ::ExtACBuilderCoupling;
28967
72217
  friend class ::ExtACSyntaxCoupling;
28968
72218
  friend class ::ExtACTree;
28969
72219
  friend class ::ExtACKeywords;
28970
 
  friend class ::WinAsm;
28971
 
  friend class ::WinDeclSpecs;
28972
 
  friend class ::WinMemberExplSpec;
28973
 
  friend class ::WinTypeKeywords;
 
72220
  friend class ::ExtGnu;
28974
72221
  friend class ::PragmaOnceUnitState;
28975
72222
  friend class ::PragmaOnce;
28976
 
  friend class ::CCExprResolve;
28977
 
  friend class ::CExprResolve;
 
72223
  friend class ::CMatchSyntax;
28978
72224
 
28979
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72225
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28980
72226
 
28981
72227
public:
 
72228
  /** Constructor.
 
72229
   *  \param o The address operator, i.e. '&'.
 
72230
   *  \param e The expression from which to take the address. */
28982
72231
  CT_AddrExpr (CTree *o, CTree *e) :
28983
72232
    CT_UnaryExpr (o, e) {}
 
72233
  /** Get the identifier for this node type. Can be compared with NodeName(). */
28984
72234
  static const char *NodeId ();
 
72235
  /** Get the name of the node. Can be compared with NodeId(). */
28985
72236
  const char *NodeName () const { return NodeId (); }
28986
72237
   private:
28987
72238
  typedef CT_AddrExpr CCExprResolveExpr;
28988
72239
 
28989
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72240
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28990
72241
 public :
28991
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72242
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
28992
72243
  typedef CT_AddrExpr CExprResolveExpr;
28993
72244
 
28994
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72245
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28995
72246
 public :
28996
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28997
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72247
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72248
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28998
72249
};
28999
72250
 
 
72251
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
72252
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
29000
72253
 
29001
 
#line 29002 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
72254
#line 72255 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
29002
72255
} // closed Puma
 
72256
class CCExprResolve;
 
72257
class CExprResolve;
29003
72258
class WinIfExists;
29004
72259
class WinImportHandler;
29005
72260
class WinMacros;
29006
 
class CMatchSyntax;
29007
 
class ExtGnu;
 
72261
class WinAsm;
 
72262
class WinDeclSpecs;
 
72263
class WinMemberExplSpec;
 
72264
class WinTypeKeywords;
 
72265
class WinFriend;
29008
72266
class ExtAC;
29009
72267
class ExtACBuilderCoupling;
29010
72268
class ExtACSyntaxCoupling;
29011
72269
class ExtACTree;
29012
72270
class ExtACKeywords;
29013
 
class WinAsm;
29014
 
class WinDeclSpecs;
29015
 
class WinMemberExplSpec;
29016
 
class WinTypeKeywords;
 
72271
class ExtGnu;
29017
72272
class PragmaOnceUnitState;
29018
72273
class PragmaOnce;
29019
 
class CCExprResolve;
29020
 
class CExprResolve;
29021
 
namespace Puma {
29022
 
 
29023
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72274
class CMatchSyntax;
 
72275
namespace Puma {
 
72276
 
 
72277
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72278
 
 
72279
#line 72280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72280
} // closed Puma
 
72281
 
 
72282
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72283
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72284
#include "CCExprResolveH.ah"
 
72285
#endif
 
72286
namespace Puma {
 
72287
 
 
72288
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72289
 
 
72290
#line 72291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72291
} // closed Puma
 
72292
 
 
72293
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72294
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72295
#include "CExprResolveH.ah"
 
72296
#endif
 
72297
namespace Puma {
 
72298
 
 
72299
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29024
72300
class CT_DerefExpr : public CT_UnaryExpr {
29025
 
#line 29026 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
72301
#line 72302 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72302
  friend class ::CCExprResolve;
 
72303
  friend class ::CExprResolve;
29026
72304
  friend class ::WinIfExists;
29027
72305
  friend class ::WinImportHandler;
29028
72306
  friend class ::WinMacros;
29029
 
  friend class ::CMatchSyntax;
29030
 
  friend class ::ExtGnu;
 
72307
  friend class ::WinAsm;
 
72308
  friend class ::WinDeclSpecs;
 
72309
  friend class ::WinMemberExplSpec;
 
72310
  friend class ::WinTypeKeywords;
 
72311
  friend class ::WinFriend;
29031
72312
  friend class ::ExtAC;
29032
72313
  friend class ::ExtACBuilderCoupling;
29033
72314
  friend class ::ExtACSyntaxCoupling;
29034
72315
  friend class ::ExtACTree;
29035
72316
  friend class ::ExtACKeywords;
29036
 
  friend class ::WinAsm;
29037
 
  friend class ::WinDeclSpecs;
29038
 
  friend class ::WinMemberExplSpec;
29039
 
  friend class ::WinTypeKeywords;
 
72317
  friend class ::ExtGnu;
29040
72318
  friend class ::PragmaOnceUnitState;
29041
72319
  friend class ::PragmaOnce;
29042
 
  friend class ::CCExprResolve;
29043
 
  friend class ::CExprResolve;
 
72320
  friend class ::CMatchSyntax;
29044
72321
 
29045
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72322
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29046
72323
 
29047
72324
public:
 
72325
  /** Constructor.
 
72326
   *  \param o The dereferencing operator, i.e. '*'.
 
72327
   *  \param e The expression to dereference. */
29048
72328
  CT_DerefExpr (CTree *o, CTree *e) :
29049
72329
    CT_UnaryExpr (o, e) {}
 
72330
  /** Get the identifier for this node type. Can be compared with NodeName(). */
29050
72331
  static const char *NodeId ();
 
72332
  /** Get the name of the node. Can be compared with NodeId(). */
29051
72333
  const char *NodeName () const { return NodeId (); }
29052
72334
   private:
29053
72335
  typedef CT_DerefExpr CCExprResolveExpr;
29054
72336
 
29055
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72337
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29056
72338
 public :
29057
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72339
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
29058
72340
  typedef CT_DerefExpr CExprResolveExpr;
29059
72341
 
29060
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72342
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29061
72343
 public :
29062
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29063
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72344
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72345
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29064
72346
};
29065
72347
 
 
72348
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
72349
 *  Tree node representing a delete expression, e.g. delete a. */
29066
72350
 
29067
 
#line 29068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
72351
#line 72352 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
29068
72352
} // closed Puma
 
72353
class CCExprResolve;
 
72354
class CExprResolve;
29069
72355
class WinIfExists;
29070
72356
class WinImportHandler;
29071
72357
class WinMacros;
29072
 
class CMatchSyntax;
29073
 
class ExtGnu;
 
72358
class WinAsm;
 
72359
class WinDeclSpecs;
 
72360
class WinMemberExplSpec;
 
72361
class WinTypeKeywords;
 
72362
class WinFriend;
29074
72363
class ExtAC;
29075
72364
class ExtACBuilderCoupling;
29076
72365
class ExtACSyntaxCoupling;
29077
72366
class ExtACTree;
29078
72367
class ExtACKeywords;
29079
 
class WinAsm;
29080
 
class WinDeclSpecs;
29081
 
class WinMemberExplSpec;
29082
 
class WinTypeKeywords;
 
72368
class ExtGnu;
29083
72369
class PragmaOnceUnitState;
29084
72370
class PragmaOnce;
29085
 
class CCExprResolve;
29086
 
class CExprResolve;
29087
 
namespace Puma {
29088
 
 
29089
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72371
class CMatchSyntax;
 
72372
namespace Puma {
 
72373
 
 
72374
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72375
 
 
72376
#line 72377 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72377
} // closed Puma
 
72378
 
 
72379
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72380
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72381
#include "CCExprResolveH.ah"
 
72382
#endif
 
72383
namespace Puma {
 
72384
 
 
72385
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72386
 
 
72387
#line 72388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72388
} // closed Puma
 
72389
 
 
72390
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72391
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72392
#include "CExprResolveH.ah"
 
72393
#endif
 
72394
namespace Puma {
 
72395
 
 
72396
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29090
72397
class CT_DeleteExpr : public CT_Expression, public CSemObject {
29091
 
#line 29092 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
72398
#line 72399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72399
  friend class ::CCExprResolve;
 
72400
  friend class ::CExprResolve;
29092
72401
  friend class ::WinIfExists;
29093
72402
  friend class ::WinImportHandler;
29094
72403
  friend class ::WinMacros;
29095
 
  friend class ::CMatchSyntax;
29096
 
  friend class ::ExtGnu;
 
72404
  friend class ::WinAsm;
 
72405
  friend class ::WinDeclSpecs;
 
72406
  friend class ::WinMemberExplSpec;
 
72407
  friend class ::WinTypeKeywords;
 
72408
  friend class ::WinFriend;
29097
72409
  friend class ::ExtAC;
29098
72410
  friend class ::ExtACBuilderCoupling;
29099
72411
  friend class ::ExtACSyntaxCoupling;
29100
72412
  friend class ::ExtACTree;
29101
72413
  friend class ::ExtACKeywords;
29102
 
  friend class ::WinAsm;
29103
 
  friend class ::WinDeclSpecs;
29104
 
  friend class ::WinMemberExplSpec;
29105
 
  friend class ::WinTypeKeywords;
 
72414
  friend class ::ExtGnu;
29106
72415
  friend class ::PragmaOnceUnitState;
29107
72416
  friend class ::PragmaOnce;
29108
 
  friend class ::CCExprResolve;
29109
 
  friend class ::CExprResolve;
 
72417
  friend class ::CMatchSyntax;
29110
72418
 
29111
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72419
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29112
72420
 
29113
72421
  CTree *sons[2]; // oper, expr
29114
72422
 
29115
72423
public:
29116
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
72424
  /** Constructor.
 
72425
   *  \param op The delete operator.
 
72426
   *  \param e The expression representing the object to delete. */
 
72427
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
72428
  /** Get the identifier for this node type. Can be compared with NodeName(). */
29117
72429
  static const char *NodeId ();
 
72430
  /** Get the name of the node. Can be compared with NodeId(). */
29118
72431
  const char *NodeName () const { return NodeId (); }
 
72432
  /** Get the number of sons. */
29119
72433
  int Sons () const { return 2; }
 
72434
  /** Get the n-th son.
 
72435
   *  \param n The index of the son.
 
72436
   *  \return The n-th son or NULL. */
29120
72437
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
72438
  /** Replace a son.
 
72439
   *  \param old_son The son to replace.
 
72440
   *  \param new_son The new son. */
29121
72441
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29122
72442
    CTree::ReplaceSon (sons, 2, old_son, new_son);
29123
72443
  }
 
72444
  /** Get the expression. */
29124
72445
  CTree *Expr () const { return sons[1]; }
 
72446
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
29125
72447
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
72448
  /** Get the semantic information object. */
29126
72449
  CSemObject *SemObject () const { return (CSemObject*)this; }
29127
72450
   private:
29128
72451
  typedef CT_DeleteExpr CCExprResolveExpr;
29129
72452
 
29130
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72453
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29131
72454
 public :
29132
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72455
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
29133
72456
  typedef CT_DeleteExpr CExprResolveExpr;
29134
72457
 
29135
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72458
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29136
72459
 public :
29137
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29138
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72460
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72461
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29139
72462
};
29140
72463
 
 
72464
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
72465
 *  Tree node representing a new expression, e.g. new A(). */
29141
72466
 
29142
 
#line 29143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
72467
#line 72468 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
29143
72468
} // closed Puma
 
72469
class CCExprResolve;
 
72470
class CExprResolve;
29144
72471
class WinIfExists;
29145
72472
class WinImportHandler;
29146
72473
class WinMacros;
29147
 
class CMatchSyntax;
29148
 
class ExtGnu;
 
72474
class WinAsm;
 
72475
class WinDeclSpecs;
 
72476
class WinMemberExplSpec;
 
72477
class WinTypeKeywords;
 
72478
class WinFriend;
29149
72479
class ExtAC;
29150
72480
class ExtACBuilderCoupling;
29151
72481
class ExtACSyntaxCoupling;
29152
72482
class ExtACTree;
29153
72483
class ExtACKeywords;
29154
 
class WinAsm;
29155
 
class WinDeclSpecs;
29156
 
class WinMemberExplSpec;
29157
 
class WinTypeKeywords;
 
72484
class ExtGnu;
29158
72485
class PragmaOnceUnitState;
29159
72486
class PragmaOnce;
29160
 
class CCExprResolve;
29161
 
class CExprResolve;
29162
 
namespace Puma {
29163
 
 
29164
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72487
class CMatchSyntax;
 
72488
namespace Puma {
 
72489
 
 
72490
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72491
 
 
72492
#line 72493 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72493
} // closed Puma
 
72494
 
 
72495
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72496
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72497
#include "CCExprResolveH.ah"
 
72498
#endif
 
72499
namespace Puma {
 
72500
 
 
72501
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72502
 
 
72503
#line 72504 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72504
} // closed Puma
 
72505
 
 
72506
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72507
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72508
#include "CExprResolveH.ah"
 
72509
#endif
 
72510
namespace Puma {
 
72511
 
 
72512
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29165
72513
class CT_NewExpr : public CT_Expression, public CSemObject {
29166
 
#line 29167 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
72514
#line 72515 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72515
  friend class ::CCExprResolve;
 
72516
  friend class ::CExprResolve;
29167
72517
  friend class ::WinIfExists;
29168
72518
  friend class ::WinImportHandler;
29169
72519
  friend class ::WinMacros;
29170
 
  friend class ::CMatchSyntax;
29171
 
  friend class ::ExtGnu;
 
72520
  friend class ::WinAsm;
 
72521
  friend class ::WinDeclSpecs;
 
72522
  friend class ::WinMemberExplSpec;
 
72523
  friend class ::WinTypeKeywords;
 
72524
  friend class ::WinFriend;
29172
72525
  friend class ::ExtAC;
29173
72526
  friend class ::ExtACBuilderCoupling;
29174
72527
  friend class ::ExtACSyntaxCoupling;
29175
72528
  friend class ::ExtACTree;
29176
72529
  friend class ::ExtACKeywords;
29177
 
  friend class ::WinAsm;
29178
 
  friend class ::WinDeclSpecs;
29179
 
  friend class ::WinMemberExplSpec;
29180
 
  friend class ::WinTypeKeywords;
 
72530
  friend class ::ExtGnu;
29181
72531
  friend class ::PragmaOnceUnitState;
29182
72532
  friend class ::PragmaOnce;
29183
 
  friend class ::CCExprResolve;
29184
 
  friend class ::CExprResolve;
 
72533
  friend class ::CMatchSyntax;
29185
72534
 
29186
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72535
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29187
72536
 
29188
72537
  CTree *sons[6]; // oper, placement, open, type, close, init
29189
72538
 
29190
72539
public:
 
72540
  /** Constructor.
 
72541
   *  \param op The new operator.
 
72542
   *  \param p The optional placement expression.
 
72543
   *  \param o The optional left parenthesis around the type identifier.
 
72544
   *  \param t The type identifier specifying the type of the object to create.
 
72545
   *  \param c The optional right parenthesis around the type identifier.
 
72546
   *  \param i The optional initializer. */
29191
72547
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
29192
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
72548
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
72549
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
29193
72550
  }
 
72551
  /** Get the identifier for this node type. Can be compared with NodeName(). */
29194
72552
  static const char *NodeId ();
 
72553
  /** Get the name of the node. Can be compared with NodeId(). */
29195
72554
  const char *NodeName () const { return NodeId (); }
 
72555
  /** Get the number of sons. */
29196
72556
  int Sons () const { return CTree::Sons (sons, 6); }
 
72557
  /** Get the n-th son.
 
72558
   *  \param n The index of the son.
 
72559
   *  \return The n-th son or NULL. */
29197
72560
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
72561
  /** Replace a son.
 
72562
   *  \param old_son The son to replace.
 
72563
   *  \param new_son The new son. */
29198
72564
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29199
72565
    CTree::ReplaceSon (sons, 6, old_son, new_son);
29200
72566
  }
 
72567
  /** Get the operator name. */
29201
72568
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
72569
  /** Get the placement expression. */
29202
72570
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
72571
  /** Get the initializer. */
29203
72572
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
72573
  /** Get the type of the object to create. */
29204
72574
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
72575
  /** Get the semantic information object. */
29205
72576
  CSemObject *SemObject () const { return (CSemObject*)this; }
29206
72577
   private:
29207
72578
  typedef CT_NewExpr CCExprResolveExpr;
29208
72579
 
29209
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72580
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29210
72581
 public :
29211
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72582
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
29212
72583
  typedef CT_NewExpr CExprResolveExpr;
29213
72584
 
29214
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72585
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29215
72586
 public :
29216
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29217
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72587
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72588
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29218
72589
};
29219
72590
 
 
72591
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
72592
 *  Tree node representing an if-then expression, 
 
72593
 *  e.g. a>0?a:b or a?:b. */
29220
72594
 
29221
 
#line 29222 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
72595
#line 72596 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
29222
72596
} // closed Puma
 
72597
class CCExprResolve;
 
72598
class CExprResolve;
29223
72599
class WinIfExists;
29224
72600
class WinImportHandler;
29225
72601
class WinMacros;
29226
 
class CMatchSyntax;
29227
 
class ExtGnu;
 
72602
class WinAsm;
 
72603
class WinDeclSpecs;
 
72604
class WinMemberExplSpec;
 
72605
class WinTypeKeywords;
 
72606
class WinFriend;
29228
72607
class ExtAC;
29229
72608
class ExtACBuilderCoupling;
29230
72609
class ExtACSyntaxCoupling;
29231
72610
class ExtACTree;
29232
72611
class ExtACKeywords;
29233
 
class WinAsm;
29234
 
class WinDeclSpecs;
29235
 
class WinMemberExplSpec;
29236
 
class WinTypeKeywords;
 
72612
class ExtGnu;
29237
72613
class PragmaOnceUnitState;
29238
72614
class PragmaOnce;
29239
 
class CCExprResolve;
29240
 
class CExprResolve;
29241
 
namespace Puma {
29242
 
 
29243
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72615
class CMatchSyntax;
 
72616
namespace Puma {
 
72617
 
 
72618
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72619
 
 
72620
#line 72621 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72621
} // closed Puma
 
72622
 
 
72623
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72624
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72625
#include "CCExprResolveH.ah"
 
72626
#endif
 
72627
namespace Puma {
 
72628
 
 
72629
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72630
 
 
72631
#line 72632 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72632
} // closed Puma
 
72633
 
 
72634
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72635
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72636
#include "CExprResolveH.ah"
 
72637
#endif
 
72638
namespace Puma {
 
72639
 
 
72640
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29244
72641
class CT_IfThenExpr : public CT_Expression {
29245
 
#line 29246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
72642
#line 72643 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72643
  friend class ::CCExprResolve;
 
72644
  friend class ::CExprResolve;
29246
72645
  friend class ::WinIfExists;
29247
72646
  friend class ::WinImportHandler;
29248
72647
  friend class ::WinMacros;
29249
 
  friend class ::CMatchSyntax;
29250
 
  friend class ::ExtGnu;
 
72648
  friend class ::WinAsm;
 
72649
  friend class ::WinDeclSpecs;
 
72650
  friend class ::WinMemberExplSpec;
 
72651
  friend class ::WinTypeKeywords;
 
72652
  friend class ::WinFriend;
29251
72653
  friend class ::ExtAC;
29252
72654
  friend class ::ExtACBuilderCoupling;
29253
72655
  friend class ::ExtACSyntaxCoupling;
29254
72656
  friend class ::ExtACTree;
29255
72657
  friend class ::ExtACKeywords;
29256
 
  friend class ::WinAsm;
29257
 
  friend class ::WinDeclSpecs;
29258
 
  friend class ::WinMemberExplSpec;
29259
 
  friend class ::WinTypeKeywords;
 
72658
  friend class ::ExtGnu;
29260
72659
  friend class ::PragmaOnceUnitState;
29261
72660
  friend class ::PragmaOnce;
29262
 
  friend class ::CCExprResolve;
29263
 
  friend class ::CExprResolve;
 
72661
  friend class ::CMatchSyntax;
29264
72662
 
29265
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72663
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29266
72664
 
29267
72665
  CTree *sons[5]; // cond, oper, left, colon, right
29268
72666
 
29269
72667
public:
 
72668
  /** Constructor.
 
72669
   *  \param c1 The condition expression.
 
72670
   *  \param o The question mark operator. 
 
72671
   *  \param l The expression to the left of the colon.
 
72672
   *  \param c2 The colon operator.
 
72673
   *  \param r The expression to the right of the colon. */ 
29270
72674
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
29271
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
72675
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
72676
    AddSon (sons[3], c2); AddSon (sons[4], r);
29272
72677
  }
 
72678
  /** Constructor.
 
72679
   *  \param c1 The condition expression.
 
72680
   *  \param o The question mark operator. 
 
72681
   *  \param c2 The colon operator.
 
72682
   *  \param r The expression to the right of the colon. */ 
29273
72683
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
29274
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
72684
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
72685
    AddSon (sons[3], c2); AddSon (sons[4], r);
29275
72686
  }
 
72687
  /** Get the identifier for this node type. Can be compared with NodeName(). */
29276
72688
  static const char *NodeId ();
 
72689
  /** Get the name of the node. Can be compared with NodeId(). */
29277
72690
  const char *NodeName () const { return NodeId (); }
 
72691
  /** Get the number of sons. */
29278
72692
  int Sons () const { return CTree::Sons (sons, 5); }
 
72693
  /** Get the n-th son.
 
72694
   *  \param n The index of the son.
 
72695
   *  \return The n-th son or NULL. */
29279
72696
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
72697
  /** Get the condition expression. */
29280
72698
  CTree *Condition () const { return sons[0]; }
 
72699
  /** Get the left expression (condition=true). */
29281
72700
  CTree *LeftOperand () const { return sons[2]; }
 
72701
  /** Get the right expression (condition=false). */
29282
72702
  CTree *RightOperand () const { return sons[4]; }
 
72703
  /** Replace a son.
 
72704
   *  \param old_son The son to replace.
 
72705
   *  \param new_son The new son. */
29283
72706
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29284
72707
    CTree::ReplaceSon (sons, 5, old_son, new_son);
29285
72708
  }
29286
72709
   private:
29287
72710
  typedef CT_IfThenExpr CCExprResolveExpr;
29288
72711
 
29289
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72712
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29290
72713
 public :
29291
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72714
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
29292
72715
  typedef CT_IfThenExpr CExprResolveExpr;
29293
72716
 
29294
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72717
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29295
72718
 public :
29296
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29297
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72719
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72720
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29298
72721
};
29299
72722
 
 
72723
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
72724
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
29300
72725
 
29301
 
#line 29302 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
72726
#line 72727 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
29302
72727
} // closed Puma
 
72728
class CCExprResolve;
 
72729
class CExprResolve;
29303
72730
class WinIfExists;
29304
72731
class WinImportHandler;
29305
72732
class WinMacros;
29306
 
class CMatchSyntax;
29307
 
class ExtGnu;
 
72733
class WinAsm;
 
72734
class WinDeclSpecs;
 
72735
class WinMemberExplSpec;
 
72736
class WinTypeKeywords;
 
72737
class WinFriend;
29308
72738
class ExtAC;
29309
72739
class ExtACBuilderCoupling;
29310
72740
class ExtACSyntaxCoupling;
29311
72741
class ExtACTree;
29312
72742
class ExtACKeywords;
29313
 
class WinAsm;
29314
 
class WinDeclSpecs;
29315
 
class WinMemberExplSpec;
29316
 
class WinTypeKeywords;
 
72743
class ExtGnu;
29317
72744
class PragmaOnceUnitState;
29318
72745
class PragmaOnce;
29319
 
class CCExprResolve;
29320
 
class CExprResolve;
29321
 
namespace Puma {
29322
 
 
29323
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72746
class CMatchSyntax;
 
72747
namespace Puma {
 
72748
 
 
72749
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72750
 
 
72751
#line 72752 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72752
} // closed Puma
 
72753
 
 
72754
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72755
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72756
#include "CCExprResolveH.ah"
 
72757
#endif
 
72758
namespace Puma {
 
72759
 
 
72760
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72761
 
 
72762
#line 72763 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72763
} // closed Puma
 
72764
 
 
72765
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72766
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72767
#include "CExprResolveH.ah"
 
72768
#endif
 
72769
namespace Puma {
 
72770
 
 
72771
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29324
72772
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
29325
 
#line 29326 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
72773
#line 72774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72774
  friend class ::CCExprResolve;
 
72775
  friend class ::CExprResolve;
29326
72776
  friend class ::WinIfExists;
29327
72777
  friend class ::WinImportHandler;
29328
72778
  friend class ::WinMacros;
29329
 
  friend class ::CMatchSyntax;
29330
 
  friend class ::ExtGnu;
 
72779
  friend class ::WinAsm;
 
72780
  friend class ::WinDeclSpecs;
 
72781
  friend class ::WinMemberExplSpec;
 
72782
  friend class ::WinTypeKeywords;
 
72783
  friend class ::WinFriend;
29331
72784
  friend class ::ExtAC;
29332
72785
  friend class ::ExtACBuilderCoupling;
29333
72786
  friend class ::ExtACSyntaxCoupling;
29334
72787
  friend class ::ExtACTree;
29335
72788
  friend class ::ExtACKeywords;
29336
 
  friend class ::WinAsm;
29337
 
  friend class ::WinDeclSpecs;
29338
 
  friend class ::WinMemberExplSpec;
29339
 
  friend class ::WinTypeKeywords;
 
72789
  friend class ::ExtGnu;
29340
72790
  friend class ::PragmaOnceUnitState;
29341
72791
  friend class ::PragmaOnce;
29342
 
  friend class ::CCExprResolve;
29343
 
  friend class ::CExprResolve;
 
72792
  friend class ::CMatchSyntax;
29344
72793
 
29345
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72794
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29346
72795
 
29347
72796
  CTree *sons[4]; // open, type, close, init
29348
72797
 
29349
72798
public:
 
72799
  /** Constructor.
 
72800
   *  \param r Left parenthesis of the type name.
 
72801
   *  \param t The type name.
 
72802
   *  \param cr Right parenthesis of the type name.
 
72803
   *  \param i The initializer list. */
29350
72804
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
29351
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
72805
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
72806
    AddSon (sons[2], cr); AddSon (sons[3], i);
29352
72807
  }
 
72808
  /** Get the identifier for this node type. Can be compared with NodeName(). */
29353
72809
  static const char *NodeId ();
 
72810
  /** Get the name of the node. Can be compared with NodeId(). */
29354
72811
  const char *NodeName () const { return NodeId (); }
 
72812
  /** Get the number of sons. */
29355
72813
  int Sons () const { return 4; }
 
72814
  /** Get the n-th son.
 
72815
   *  \param n The index of the son.
 
72816
   *  \return The n-th son or NULL. */
29356
72817
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
72818
  /** Replace a son.
 
72819
   *  \param old_son The son to replace.
 
72820
   *  \param new_son The new son. */
29357
72821
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29358
72822
    CTree::ReplaceSon (sons, 4, old_son, new_son);
29359
72823
  }
 
72824
  /** Get the type name. */
29360
72825
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
72826
  /** Get the initializer list. */
29361
72827
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
72828
  /** Get the semantic information object. */
29362
72829
  CSemObject *SemObject () const { return (CSemObject*)this; }
29363
72830
   private:
29364
72831
  typedef CT_CmpdLiteral CCExprResolveExpr;
29365
72832
 
29366
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72833
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29367
72834
 public :
29368
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72835
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
29369
72836
  typedef CT_CmpdLiteral CExprResolveExpr;
29370
72837
 
29371
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72838
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29372
72839
 public :
29373
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29374
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72840
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72841
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29375
72842
};
29376
72843
 
 
72844
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
72845
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
29377
72846
 
29378
 
#line 29379 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
72847
#line 72848 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
29379
72848
} // closed Puma
 
72849
class CCExprResolve;
 
72850
class CExprResolve;
29380
72851
class WinIfExists;
29381
72852
class WinImportHandler;
29382
72853
class WinMacros;
29383
 
class CMatchSyntax;
29384
 
class ExtGnu;
 
72854
class WinAsm;
 
72855
class WinDeclSpecs;
 
72856
class WinMemberExplSpec;
 
72857
class WinTypeKeywords;
 
72858
class WinFriend;
29385
72859
class ExtAC;
29386
72860
class ExtACBuilderCoupling;
29387
72861
class ExtACSyntaxCoupling;
29388
72862
class ExtACTree;
29389
72863
class ExtACKeywords;
29390
 
class WinAsm;
29391
 
class WinDeclSpecs;
29392
 
class WinMemberExplSpec;
29393
 
class WinTypeKeywords;
 
72864
class ExtGnu;
29394
72865
class PragmaOnceUnitState;
29395
72866
class PragmaOnce;
29396
 
class CCExprResolve;
29397
 
class CExprResolve;
29398
 
namespace Puma {
29399
 
 
29400
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72867
class CMatchSyntax;
 
72868
namespace Puma {
 
72869
 
 
72870
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72871
 
 
72872
#line 72873 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72873
} // closed Puma
 
72874
 
 
72875
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72876
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72877
#include "CCExprResolveH.ah"
 
72878
#endif
 
72879
namespace Puma {
 
72880
 
 
72881
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72882
 
 
72883
#line 72884 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72884
} // closed Puma
 
72885
 
 
72886
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72887
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72888
#include "CExprResolveH.ah"
 
72889
#endif
 
72890
namespace Puma {
 
72891
 
 
72892
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29401
72893
class CT_ConstructExpr : public CT_Expression, public CSemObject {
29402
 
#line 29403 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
72894
#line 72895 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72895
  friend class ::CCExprResolve;
 
72896
  friend class ::CExprResolve;
29403
72897
  friend class ::WinIfExists;
29404
72898
  friend class ::WinImportHandler;
29405
72899
  friend class ::WinMacros;
29406
 
  friend class ::CMatchSyntax;
29407
 
  friend class ::ExtGnu;
 
72900
  friend class ::WinAsm;
 
72901
  friend class ::WinDeclSpecs;
 
72902
  friend class ::WinMemberExplSpec;
 
72903
  friend class ::WinTypeKeywords;
 
72904
  friend class ::WinFriend;
29408
72905
  friend class ::ExtAC;
29409
72906
  friend class ::ExtACBuilderCoupling;
29410
72907
  friend class ::ExtACSyntaxCoupling;
29411
72908
  friend class ::ExtACTree;
29412
72909
  friend class ::ExtACKeywords;
29413
 
  friend class ::WinAsm;
29414
 
  friend class ::WinDeclSpecs;
29415
 
  friend class ::WinMemberExplSpec;
29416
 
  friend class ::WinTypeKeywords;
 
72910
  friend class ::ExtGnu;
29417
72911
  friend class ::PragmaOnceUnitState;
29418
72912
  friend class ::PragmaOnce;
29419
 
  friend class ::CCExprResolve;
29420
 
  friend class ::CExprResolve;
 
72913
  friend class ::CMatchSyntax;
29421
72914
 
29422
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72915
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29423
72916
 
29424
72917
  CTree *sons[2]; // type, init
29425
72918
 
29426
72919
public:
29427
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
72920
  /** Constructor.
 
72921
   *  \param t The type name.
 
72922
   *  \param i The initializer list. */
 
72923
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
72924
  /** Get the identifier for this node type. Can be compared with NodeName(). */
29428
72925
  static const char *NodeId ();
 
72926
  /** Get the name of the node. Can be compared with NodeId(). */
29429
72927
  const char *NodeName () const { return NodeId (); }
 
72928
  /** Get the number of sons. */
29430
72929
  int Sons () const { return 2; }
 
72930
  /** Get the n-th son.
 
72931
   *  \param n The index of the son.
 
72932
   *  \return The n-th son or NULL. */
29431
72933
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
72934
  /** Replace a son.
 
72935
   *  \param old_son The son to replace.
 
72936
   *  \param new_son The new son. */
29432
72937
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29433
72938
    CTree::ReplaceSon (sons, 2, old_son, new_son);
29434
72939
  }
 
72940
  /** Get the type name. */
29435
72941
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
72942
  /** Get the initializer. */
29436
72943
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
72944
  /** Get the semantic information object. */
29437
72945
  CSemObject *SemObject () const { return (CSemObject*)this; }
29438
72946
   private:
29439
72947
  typedef CT_ConstructExpr CCExprResolveExpr;
29440
72948
 
29441
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72949
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29442
72950
 public :
29443
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72951
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
29444
72952
  typedef CT_ConstructExpr CExprResolveExpr;
29445
72953
 
29446
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72954
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29447
72955
 public :
29448
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29449
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72956
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72957
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29450
72958
};
29451
72959
 
 
72960
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
72961
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
29452
72962
 
29453
 
#line 29454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
72963
#line 72964 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
29454
72964
} // closed Puma
 
72965
class CCExprResolve;
 
72966
class CExprResolve;
29455
72967
class WinIfExists;
29456
72968
class WinImportHandler;
29457
72969
class WinMacros;
29458
 
class CMatchSyntax;
29459
 
class ExtGnu;
 
72970
class WinAsm;
 
72971
class WinDeclSpecs;
 
72972
class WinMemberExplSpec;
 
72973
class WinTypeKeywords;
 
72974
class WinFriend;
29460
72975
class ExtAC;
29461
72976
class ExtACBuilderCoupling;
29462
72977
class ExtACSyntaxCoupling;
29463
72978
class ExtACTree;
29464
72979
class ExtACKeywords;
29465
 
class WinAsm;
29466
 
class WinDeclSpecs;
29467
 
class WinMemberExplSpec;
29468
 
class WinTypeKeywords;
 
72980
class ExtGnu;
29469
72981
class PragmaOnceUnitState;
29470
72982
class PragmaOnce;
29471
 
class CCExprResolve;
29472
 
class CExprResolve;
29473
 
namespace Puma {
29474
 
 
29475
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72983
class CMatchSyntax;
 
72984
namespace Puma {
 
72985
 
 
72986
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72987
 
 
72988
#line 72989 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
72989
} // closed Puma
 
72990
 
 
72991
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72992
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72993
#include "CCExprResolveH.ah"
 
72994
#endif
 
72995
namespace Puma {
 
72996
 
 
72997
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72998
 
 
72999
#line 73000 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73000
} // closed Puma
 
73001
 
 
73002
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73003
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73004
#include "CExprResolveH.ah"
 
73005
#endif
 
73006
namespace Puma {
 
73007
 
 
73008
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29476
73009
class CT_ThrowExpr : public CT_Expression {
29477
 
#line 29478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73010
#line 73011 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73011
  friend class ::CCExprResolve;
 
73012
  friend class ::CExprResolve;
29478
73013
  friend class ::WinIfExists;
29479
73014
  friend class ::WinImportHandler;
29480
73015
  friend class ::WinMacros;
29481
 
  friend class ::CMatchSyntax;
29482
 
  friend class ::ExtGnu;
 
73016
  friend class ::WinAsm;
 
73017
  friend class ::WinDeclSpecs;
 
73018
  friend class ::WinMemberExplSpec;
 
73019
  friend class ::WinTypeKeywords;
 
73020
  friend class ::WinFriend;
29483
73021
  friend class ::ExtAC;
29484
73022
  friend class ::ExtACBuilderCoupling;
29485
73023
  friend class ::ExtACSyntaxCoupling;
29486
73024
  friend class ::ExtACTree;
29487
73025
  friend class ::ExtACKeywords;
29488
 
  friend class ::WinAsm;
29489
 
  friend class ::WinDeclSpecs;
29490
 
  friend class ::WinMemberExplSpec;
29491
 
  friend class ::WinTypeKeywords;
 
73026
  friend class ::ExtGnu;
29492
73027
  friend class ::PragmaOnceUnitState;
29493
73028
  friend class ::PragmaOnce;
29494
 
  friend class ::CCExprResolve;
29495
 
  friend class ::CExprResolve;
 
73029
  friend class ::CMatchSyntax;
29496
73030
 
29497
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73031
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29498
73032
 
29499
73033
  CTree *sons[2]; // throw, expr
29500
73034
 
29501
73035
public:
29502
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
73036
  /** Constructor.
 
73037
   *  \param t The 'throw' keyword.
 
73038
   *  \param e The expression. */
 
73039
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
73040
  /** Get the identifier for this node type. Can be compared with NodeName(). */
29503
73041
  static const char *NodeId ();
 
73042
  /** Get the name of the node. Can be compared with NodeId(). */
29504
73043
  const char *NodeName () const { return NodeId (); }
 
73044
  /** Get the number of sons. */
29505
73045
  int Sons () const { return CTree::Sons (sons, 2); }
 
73046
  /** Get the n-th son.
 
73047
   *  \param n The index of the son.
 
73048
   *  \return The n-th son or NULL. */
29506
73049
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
73050
  /** Replace a son.
 
73051
   *  \param old_son The son to replace.
 
73052
   *  \param new_son The new son. */
29507
73053
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29508
73054
    CTree::ReplaceSon (sons, 2, old_son, new_son);
29509
73055
  }
 
73056
  /** Get the expression. */
29510
73057
  CTree *Expr () const { return sons[1]; }
29511
73058
   private:
29512
73059
  typedef CT_ThrowExpr CCExprResolveExpr;
29513
73060
 
29514
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73061
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29515
73062
 public :
29516
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73063
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
29517
73064
  typedef CT_ThrowExpr CExprResolveExpr;
29518
73065
 
29519
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73066
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29520
73067
 public :
29521
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29522
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73068
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73069
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29523
73070
};
29524
73071
 
 
73072
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
73073
 *  Tree node representing an index expression. */
29525
73074
 
29526
 
#line 29527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73075
#line 73076 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
29527
73076
} // closed Puma
 
73077
class CCExprResolve;
 
73078
class CExprResolve;
29528
73079
class WinIfExists;
29529
73080
class WinImportHandler;
29530
73081
class WinMacros;
29531
 
class CMatchSyntax;
29532
 
class ExtGnu;
 
73082
class WinAsm;
 
73083
class WinDeclSpecs;
 
73084
class WinMemberExplSpec;
 
73085
class WinTypeKeywords;
 
73086
class WinFriend;
29533
73087
class ExtAC;
29534
73088
class ExtACBuilderCoupling;
29535
73089
class ExtACSyntaxCoupling;
29536
73090
class ExtACTree;
29537
73091
class ExtACKeywords;
29538
 
class WinAsm;
29539
 
class WinDeclSpecs;
29540
 
class WinMemberExplSpec;
29541
 
class WinTypeKeywords;
 
73092
class ExtGnu;
29542
73093
class PragmaOnceUnitState;
29543
73094
class PragmaOnce;
29544
 
class CCExprResolve;
29545
 
class CExprResolve;
29546
 
namespace Puma {
29547
 
 
29548
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29549
 
class CT_IndexExpr : public CT_Expression {
29550
 
#line 29551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73095
class CMatchSyntax;
 
73096
namespace Puma {
 
73097
 
 
73098
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73099
 
 
73100
#line 73101 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73101
} // closed Puma
 
73102
 
 
73103
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73104
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73105
#include "CCExprResolveH.ah"
 
73106
#endif
 
73107
namespace Puma {
 
73108
 
 
73109
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73110
 
 
73111
#line 73112 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73112
} // closed Puma
 
73113
 
 
73114
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73115
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73116
#include "CExprResolveH.ah"
 
73117
#endif
 
73118
namespace Puma {
 
73119
 
 
73120
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73121
class CT_IndexExpr : public CT_Call {
 
73122
#line 73123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73123
  friend class ::CCExprResolve;
 
73124
  friend class ::CExprResolve;
29551
73125
  friend class ::WinIfExists;
29552
73126
  friend class ::WinImportHandler;
29553
73127
  friend class ::WinMacros;
29554
 
  friend class ::CMatchSyntax;
29555
 
  friend class ::ExtGnu;
 
73128
  friend class ::WinAsm;
 
73129
  friend class ::WinDeclSpecs;
 
73130
  friend class ::WinMemberExplSpec;
 
73131
  friend class ::WinTypeKeywords;
 
73132
  friend class ::WinFriend;
29556
73133
  friend class ::ExtAC;
29557
73134
  friend class ::ExtACBuilderCoupling;
29558
73135
  friend class ::ExtACSyntaxCoupling;
29559
73136
  friend class ::ExtACTree;
29560
73137
  friend class ::ExtACKeywords;
29561
 
  friend class ::WinAsm;
29562
 
  friend class ::WinDeclSpecs;
29563
 
  friend class ::WinMemberExplSpec;
29564
 
  friend class ::WinTypeKeywords;
 
73138
  friend class ::ExtGnu;
29565
73139
  friend class ::PragmaOnceUnitState;
29566
73140
  friend class ::PragmaOnce;
29567
 
  friend class ::CCExprResolve;
29568
 
  friend class ::CExprResolve;
 
73141
  friend class ::CMatchSyntax;
29569
73142
 
29570
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73143
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29571
73144
 
29572
73145
  CTree *sons[4]; // expr, open, index, close
29573
73146
 
29574
73147
public:
 
73148
  /** Constructor.
 
73149
   *  \param e The expression on which to invoke the index operator.
 
73150
   *  \param o Left parenthesis of the index expression.
 
73151
   *  \param i The index expression. 
 
73152
   *  \param c Right parenthesis of the index expression. */
29575
73153
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
29576
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
73154
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
73155
    AddSon (sons[2], i); AddSon (sons[3], c);
29577
73156
  }
 
73157
  /** Get the identifier for this node type. Can be compared with NodeName(). */
29578
73158
  static const char *NodeId ();
 
73159
  /** Get the name of the node. Can be compared with NodeId(). */
29579
73160
  const char *NodeName () const { return NodeId (); }
 
73161
  /** Get the number of sons. */
29580
73162
  int Sons () const { return 4; }
 
73163
  /** Get the n-th son.
 
73164
   *  \param n The index of the son.
 
73165
   *  \return The n-th son or NULL. */
29581
73166
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
73167
  /** Replace a son.
 
73168
   *  \param old_son The son to replace.
 
73169
   *  \param new_son The new son. */
29582
73170
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29583
73171
    CTree::ReplaceSon (sons, 4, old_son, new_son);
29584
73172
  }
29585
73173
   private:
29586
73174
  typedef CT_IndexExpr CCExprResolveExpr;
29587
73175
 
29588
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73176
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29589
73177
 public :
29590
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73178
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
29591
73179
  typedef CT_IndexExpr CExprResolveExpr;
29592
73180
 
29593
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73181
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29594
73182
 public :
29595
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29596
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73183
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73184
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29597
73185
};
29598
73186
 
 
73187
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
73188
 *  Tree node representing a function call expression, e.g. f(i). */
29599
73189
 
29600
 
#line 29601 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73190
#line 73191 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
29601
73191
} // closed Puma
 
73192
class CCExprResolve;
 
73193
class CExprResolve;
29602
73194
class WinIfExists;
29603
73195
class WinImportHandler;
29604
73196
class WinMacros;
29605
 
class CMatchSyntax;
29606
 
class ExtGnu;
 
73197
class WinAsm;
 
73198
class WinDeclSpecs;
 
73199
class WinMemberExplSpec;
 
73200
class WinTypeKeywords;
 
73201
class WinFriend;
29607
73202
class ExtAC;
29608
73203
class ExtACBuilderCoupling;
29609
73204
class ExtACSyntaxCoupling;
29610
73205
class ExtACTree;
29611
73206
class ExtACKeywords;
29612
 
class WinAsm;
29613
 
class WinDeclSpecs;
29614
 
class WinMemberExplSpec;
29615
 
class WinTypeKeywords;
 
73207
class ExtGnu;
29616
73208
class PragmaOnceUnitState;
29617
73209
class PragmaOnce;
29618
 
class CCExprResolve;
29619
 
class CExprResolve;
29620
 
namespace Puma {
29621
 
 
29622
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29623
 
class CT_CallExpr : public CT_Expression, public CSemObject {
29624
 
#line 29625 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73210
class CMatchSyntax;
 
73211
namespace Puma {
 
73212
 
 
73213
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73214
 
 
73215
#line 73216 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73216
} // closed Puma
 
73217
 
 
73218
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73219
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73220
#include "CCExprResolveH.ah"
 
73221
#endif
 
73222
namespace Puma {
 
73223
 
 
73224
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73225
 
 
73226
#line 73227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73227
} // closed Puma
 
73228
 
 
73229
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73230
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73231
#include "CExprResolveH.ah"
 
73232
#endif
 
73233
namespace Puma {
 
73234
 
 
73235
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73236
class CT_CallExpr : public CT_Call {
 
73237
#line 73238 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73238
  friend class ::CCExprResolve;
 
73239
  friend class ::CExprResolve;
29625
73240
  friend class ::WinIfExists;
29626
73241
  friend class ::WinImportHandler;
29627
73242
  friend class ::WinMacros;
29628
 
  friend class ::CMatchSyntax;
29629
 
  friend class ::ExtGnu;
 
73243
  friend class ::WinAsm;
 
73244
  friend class ::WinDeclSpecs;
 
73245
  friend class ::WinMemberExplSpec;
 
73246
  friend class ::WinTypeKeywords;
 
73247
  friend class ::WinFriend;
29630
73248
  friend class ::ExtAC;
29631
73249
  friend class ::ExtACBuilderCoupling;
29632
73250
  friend class ::ExtACSyntaxCoupling;
29633
73251
  friend class ::ExtACTree;
29634
73252
  friend class ::ExtACKeywords;
29635
 
  friend class ::WinAsm;
29636
 
  friend class ::WinDeclSpecs;
29637
 
  friend class ::WinMemberExplSpec;
29638
 
  friend class ::WinTypeKeywords;
 
73253
  friend class ::ExtGnu;
29639
73254
  friend class ::PragmaOnceUnitState;
29640
73255
  friend class ::PragmaOnce;
29641
 
  friend class ::CCExprResolve;
29642
 
  friend class ::CExprResolve;
 
73256
  friend class ::CMatchSyntax;
29643
73257
 
29644
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73258
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29645
73259
 
29646
73260
  CTree *sons[2]; // expr, args
29647
73261
 
29648
73262
public:
29649
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
29650
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
73263
  /** Constructor.
 
73264
   *  \param e The expression on which the call is invoked. */
 
73265
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
73266
  /** Constructor.
 
73267
   *  \param e The expression on which the call is invoked.
 
73268
   *  \param l The argument list of the call. */
 
73269
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
73270
  /** Get the identifier for this node type. Can be compared with NodeName(). */
29651
73271
  static const char *NodeId ();
 
73272
  /** Get the name of the node. Can be compared with NodeId(). */
29652
73273
  const char *NodeName () const { return NodeId (); }
 
73274
  /** Get the number of sons. */
29653
73275
  int Sons () const { return CTree::Sons (sons, 2); }
 
73276
  /** Get the n-th son.
 
73277
   *  \param n The index of the son.
 
73278
   *  \return The n-th son or NULL. */
29654
73279
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
73280
  /** Replace a son.
 
73281
   *  \param old_son The son to replace.
 
73282
   *  \param new_son The new son. */
29655
73283
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29656
73284
    CTree::ReplaceSon (sons, 2, old_son, new_son);
29657
73285
  }
29658
73286
  CTree *Expr () const { return sons[0]; }
29659
73287
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
29660
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
29661
73288
   private:
29662
73289
  typedef CT_CallExpr CCExprResolveExpr;
29663
73290
 
29664
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73291
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29665
73292
 public :
29666
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73293
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
29667
73294
  typedef CT_CallExpr CExprResolveExpr;
29668
73295
 
29669
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73296
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29670
73297
 public :
29671
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29672
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73298
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73299
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29673
73300
};
29674
73301
 
 
73302
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
73303
 *  Tree node representing a cast expression, e.g. (int)a. */
29675
73304
 
29676
 
#line 29677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73305
#line 73306 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
29677
73306
} // closed Puma
 
73307
class CCExprResolve;
 
73308
class CExprResolve;
29678
73309
class WinIfExists;
29679
73310
class WinImportHandler;
29680
73311
class WinMacros;
29681
 
class CMatchSyntax;
29682
 
class ExtGnu;
 
73312
class WinAsm;
 
73313
class WinDeclSpecs;
 
73314
class WinMemberExplSpec;
 
73315
class WinTypeKeywords;
 
73316
class WinFriend;
29683
73317
class ExtAC;
29684
73318
class ExtACBuilderCoupling;
29685
73319
class ExtACSyntaxCoupling;
29686
73320
class ExtACTree;
29687
73321
class ExtACKeywords;
29688
 
class WinAsm;
29689
 
class WinDeclSpecs;
29690
 
class WinMemberExplSpec;
29691
 
class WinTypeKeywords;
 
73322
class ExtGnu;
29692
73323
class PragmaOnceUnitState;
29693
73324
class PragmaOnce;
29694
 
class CCExprResolve;
29695
 
class CExprResolve;
29696
 
namespace Puma {
29697
 
 
29698
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73325
class CMatchSyntax;
 
73326
namespace Puma {
 
73327
 
 
73328
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73329
 
 
73330
#line 73331 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73331
} // closed Puma
 
73332
 
 
73333
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73334
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73335
#include "CCExprResolveH.ah"
 
73336
#endif
 
73337
namespace Puma {
 
73338
 
 
73339
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73340
 
 
73341
#line 73342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73342
} // closed Puma
 
73343
 
 
73344
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73345
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73346
#include "CExprResolveH.ah"
 
73347
#endif
 
73348
namespace Puma {
 
73349
 
 
73350
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29699
73351
class CT_CastExpr : public CT_Expression {
29700
 
#line 29701 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73352
#line 73353 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73353
  friend class ::CCExprResolve;
 
73354
  friend class ::CExprResolve;
29701
73355
  friend class ::WinIfExists;
29702
73356
  friend class ::WinImportHandler;
29703
73357
  friend class ::WinMacros;
29704
 
  friend class ::CMatchSyntax;
29705
 
  friend class ::ExtGnu;
 
73358
  friend class ::WinAsm;
 
73359
  friend class ::WinDeclSpecs;
 
73360
  friend class ::WinMemberExplSpec;
 
73361
  friend class ::WinTypeKeywords;
 
73362
  friend class ::WinFriend;
29706
73363
  friend class ::ExtAC;
29707
73364
  friend class ::ExtACBuilderCoupling;
29708
73365
  friend class ::ExtACSyntaxCoupling;
29709
73366
  friend class ::ExtACTree;
29710
73367
  friend class ::ExtACKeywords;
29711
 
  friend class ::WinAsm;
29712
 
  friend class ::WinDeclSpecs;
29713
 
  friend class ::WinMemberExplSpec;
29714
 
  friend class ::WinTypeKeywords;
 
73368
  friend class ::ExtGnu;
29715
73369
  friend class ::PragmaOnceUnitState;
29716
73370
  friend class ::PragmaOnce;
29717
 
  friend class ::CCExprResolve;
29718
 
  friend class ::CExprResolve;
 
73371
  friend class ::CMatchSyntax;
29719
73372
 
29720
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73373
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29721
73374
 
29722
73375
  CTree *sons[4]; // open, type, close, expr
29723
73376
 
29724
73377
public:
 
73378
  /** Constructor.
 
73379
   *  \param o Left parenthesis of the type name.
 
73380
   *  \param t The type to cast to.
 
73381
   *  \param c Right parenthesis of the type name. 
 
73382
   *  \param e The expression to cast. */
29725
73383
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
29726
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
73384
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
73385
    AddSon (sons[2], c); AddSon (sons[3], e);
29727
73386
  }
 
73387
  /** Get the identifier for this node type. Can be compared with NodeName(). */
29728
73388
  static const char *NodeId ();
 
73389
  /** Get the name of the node. Can be compared with NodeId(). */
29729
73390
  const char *NodeName () const { return NodeId (); }
 
73391
  /** Get the number of sons. */
29730
73392
  int Sons () const { return 4; }
 
73393
  /** Get the n-th son.
 
73394
   *  \param n The index of the son.
 
73395
   *  \return The n-th son or NULL. */
29731
73396
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
73397
  /** Replace a son.
 
73398
   *  \param old_son The son to replace.
 
73399
   *  \param new_son The new son. */
29732
73400
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29733
73401
    CTree::ReplaceSon (sons, 4, old_son, new_son);
29734
73402
  }
 
73403
  /** Get the casted expression. */
29735
73404
  CTree *Expr () const { return sons[3]; }
 
73405
  /** Get the type to cast to. */
29736
73406
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
29737
73407
   private:
29738
73408
  typedef CT_CastExpr CCExprResolveExpr;
29739
73409
 
29740
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73410
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29741
73411
 public :
29742
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73412
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
29743
73413
  typedef CT_CastExpr CExprResolveExpr;
29744
73414
 
29745
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73415
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29746
73416
 public :
29747
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29748
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73417
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73418
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29749
73419
};
29750
73420
 
 
73421
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
73422
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
29751
73423
 
29752
 
#line 29753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73424
#line 73425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
29753
73425
} // closed Puma
 
73426
class CCExprResolve;
 
73427
class CExprResolve;
29754
73428
class WinIfExists;
29755
73429
class WinImportHandler;
29756
73430
class WinMacros;
29757
 
class CMatchSyntax;
29758
 
class ExtGnu;
 
73431
class WinAsm;
 
73432
class WinDeclSpecs;
 
73433
class WinMemberExplSpec;
 
73434
class WinTypeKeywords;
 
73435
class WinFriend;
29759
73436
class ExtAC;
29760
73437
class ExtACBuilderCoupling;
29761
73438
class ExtACSyntaxCoupling;
29762
73439
class ExtACTree;
29763
73440
class ExtACKeywords;
29764
 
class WinAsm;
29765
 
class WinDeclSpecs;
29766
 
class WinMemberExplSpec;
29767
 
class WinTypeKeywords;
 
73441
class ExtGnu;
29768
73442
class PragmaOnceUnitState;
29769
73443
class PragmaOnce;
29770
 
class CCExprResolve;
29771
 
class CExprResolve;
29772
 
namespace Puma {
29773
 
 
29774
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73444
class CMatchSyntax;
 
73445
namespace Puma {
 
73446
 
 
73447
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73448
 
 
73449
#line 73450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73450
} // closed Puma
 
73451
 
 
73452
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73453
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73454
#include "CCExprResolveH.ah"
 
73455
#endif
 
73456
namespace Puma {
 
73457
 
 
73458
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73459
 
 
73460
#line 73461 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73461
} // closed Puma
 
73462
 
 
73463
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73464
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73465
#include "CExprResolveH.ah"
 
73466
#endif
 
73467
namespace Puma {
 
73468
 
 
73469
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29775
73470
class CT_StaticCast : public CT_Expression {
29776
 
#line 29777 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73471
#line 73472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73472
  friend class ::CCExprResolve;
 
73473
  friend class ::CExprResolve;
29777
73474
  friend class ::WinIfExists;
29778
73475
  friend class ::WinImportHandler;
29779
73476
  friend class ::WinMacros;
29780
 
  friend class ::CMatchSyntax;
29781
 
  friend class ::ExtGnu;
 
73477
  friend class ::WinAsm;
 
73478
  friend class ::WinDeclSpecs;
 
73479
  friend class ::WinMemberExplSpec;
 
73480
  friend class ::WinTypeKeywords;
 
73481
  friend class ::WinFriend;
29782
73482
  friend class ::ExtAC;
29783
73483
  friend class ::ExtACBuilderCoupling;
29784
73484
  friend class ::ExtACSyntaxCoupling;
29785
73485
  friend class ::ExtACTree;
29786
73486
  friend class ::ExtACKeywords;
29787
 
  friend class ::WinAsm;
29788
 
  friend class ::WinDeclSpecs;
29789
 
  friend class ::WinMemberExplSpec;
29790
 
  friend class ::WinTypeKeywords;
 
73487
  friend class ::ExtGnu;
29791
73488
  friend class ::PragmaOnceUnitState;
29792
73489
  friend class ::PragmaOnce;
29793
 
  friend class ::CCExprResolve;
29794
 
  friend class ::CExprResolve;
 
73490
  friend class ::CMatchSyntax;
29795
73491
 
29796
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73492
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29797
73493
 
29798
73494
  CTree *sons[5]; // cast, open, type, close, expr
29799
73495
 
29800
73496
public:
 
73497
  /** Constructor.
 
73498
   *  \param cst The cast operator, i.e. 'static_cast'.
 
73499
   *  \param o Left arrow bracket of the type name.
 
73500
   *  \param t The type to cast to.
 
73501
   *  \param c Right array bracket of the type name.
 
73502
   *  \param e The expression to cast. */
29801
73503
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
29802
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
73504
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
73505
    AddSon (sons[3], c); AddSon (sons[4], e);
29803
73506
  }
 
73507
  /** Get the identifier for this node type. Can be compared with NodeName(). */
29804
73508
  static const char *NodeId ();
 
73509
  /** Get the name of the node. Can be compared with NodeId(). */
29805
73510
  const char *NodeName () const { return NodeId (); }
 
73511
  /** Get the number of sons. */
29806
73512
  int Sons () const { return 5; }
 
73513
  /** Get the n-th son.
 
73514
   *  \param n The index of the son.
 
73515
   *  \return The n-th son or NULL. */
29807
73516
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
73517
  /** Replace a son.
 
73518
   *  \param old_son The son to replace.
 
73519
   *  \param new_son The new son. */
29808
73520
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29809
73521
    CTree::ReplaceSon (sons, 5, old_son, new_son);
29810
73522
  }
 
73523
  /** Get the casted expression. */
29811
73524
  CTree *Expr () const { return sons[4]; }
 
73525
  /** Get the type to cast to. */
29812
73526
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
29813
73527
   private:
29814
73528
  typedef CT_StaticCast CCExprResolveExpr;
29815
73529
 
29816
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73530
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29817
73531
 public :
29818
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73532
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
29819
73533
  typedef CT_StaticCast CExprResolveExpr;
29820
73534
 
29821
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73535
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29822
73536
 public :
29823
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29824
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73537
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73538
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29825
73539
};
29826
73540
 
 
73541
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
73542
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
29827
73543
 
29828
 
#line 29829 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73544
#line 73545 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
29829
73545
} // closed Puma
 
73546
class CCExprResolve;
 
73547
class CExprResolve;
29830
73548
class WinIfExists;
29831
73549
class WinImportHandler;
29832
73550
class WinMacros;
29833
 
class CMatchSyntax;
29834
 
class ExtGnu;
 
73551
class WinAsm;
 
73552
class WinDeclSpecs;
 
73553
class WinMemberExplSpec;
 
73554
class WinTypeKeywords;
 
73555
class WinFriend;
29835
73556
class ExtAC;
29836
73557
class ExtACBuilderCoupling;
29837
73558
class ExtACSyntaxCoupling;
29838
73559
class ExtACTree;
29839
73560
class ExtACKeywords;
29840
 
class WinAsm;
29841
 
class WinDeclSpecs;
29842
 
class WinMemberExplSpec;
29843
 
class WinTypeKeywords;
 
73561
class ExtGnu;
29844
73562
class PragmaOnceUnitState;
29845
73563
class PragmaOnce;
29846
 
class CCExprResolve;
29847
 
class CExprResolve;
29848
 
namespace Puma {
29849
 
 
29850
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73564
class CMatchSyntax;
 
73565
namespace Puma {
 
73566
 
 
73567
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73568
 
 
73569
#line 73570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73570
} // closed Puma
 
73571
 
 
73572
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73573
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73574
#include "CCExprResolveH.ah"
 
73575
#endif
 
73576
namespace Puma {
 
73577
 
 
73578
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73579
 
 
73580
#line 73581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73581
} // closed Puma
 
73582
 
 
73583
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73584
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73585
#include "CExprResolveH.ah"
 
73586
#endif
 
73587
namespace Puma {
 
73588
 
 
73589
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29851
73590
class CT_ConstCast : public CT_StaticCast {
29852
 
#line 29853 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73591
#line 73592 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73592
  friend class ::CCExprResolve;
 
73593
  friend class ::CExprResolve;
29853
73594
  friend class ::WinIfExists;
29854
73595
  friend class ::WinImportHandler;
29855
73596
  friend class ::WinMacros;
29856
 
  friend class ::CMatchSyntax;
29857
 
  friend class ::ExtGnu;
 
73597
  friend class ::WinAsm;
 
73598
  friend class ::WinDeclSpecs;
 
73599
  friend class ::WinMemberExplSpec;
 
73600
  friend class ::WinTypeKeywords;
 
73601
  friend class ::WinFriend;
29858
73602
  friend class ::ExtAC;
29859
73603
  friend class ::ExtACBuilderCoupling;
29860
73604
  friend class ::ExtACSyntaxCoupling;
29861
73605
  friend class ::ExtACTree;
29862
73606
  friend class ::ExtACKeywords;
29863
 
  friend class ::WinAsm;
29864
 
  friend class ::WinDeclSpecs;
29865
 
  friend class ::WinMemberExplSpec;
29866
 
  friend class ::WinTypeKeywords;
 
73607
  friend class ::ExtGnu;
29867
73608
  friend class ::PragmaOnceUnitState;
29868
73609
  friend class ::PragmaOnce;
29869
 
  friend class ::CCExprResolve;
29870
 
  friend class ::CExprResolve;
 
73610
  friend class ::CMatchSyntax;
29871
73611
 
29872
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73612
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29873
73613
 
29874
73614
public:
 
73615
  /** Constructor.
 
73616
   *  \param cst The cast operator, i.e. 'const_cast'.
 
73617
   *  \param o Left arrow bracket of the type name.
 
73618
   *  \param t The type to cast to.
 
73619
   *  \param c Right array bracket of the type name.
 
73620
   *  \param e The expression to cast. */
29875
73621
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
29876
73622
    CT_StaticCast (cst, o, t, c, e) {}
 
73623
  /** Get the identifier for this node type. Can be compared with NodeName(). */
29877
73624
  static const char *NodeId ();
 
73625
  /** Get the name of the node. Can be compared with NodeId(). */
29878
73626
  const char *NodeName () const { return NodeId (); }
29879
73627
   private:
29880
73628
  typedef CT_ConstCast CCExprResolveExpr;
29881
73629
 
29882
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73630
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29883
73631
 public :
29884
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73632
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
29885
73633
  typedef CT_ConstCast CExprResolveExpr;
29886
73634
 
29887
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73635
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29888
73636
 public :
29889
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29890
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73637
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73638
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29891
73639
};
29892
73640
 
 
73641
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
73642
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
29893
73643
 
29894
 
#line 29895 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73644
#line 73645 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
29895
73645
} // closed Puma
 
73646
class CCExprResolve;
 
73647
class CExprResolve;
29896
73648
class WinIfExists;
29897
73649
class WinImportHandler;
29898
73650
class WinMacros;
29899
 
class CMatchSyntax;
29900
 
class ExtGnu;
 
73651
class WinAsm;
 
73652
class WinDeclSpecs;
 
73653
class WinMemberExplSpec;
 
73654
class WinTypeKeywords;
 
73655
class WinFriend;
29901
73656
class ExtAC;
29902
73657
class ExtACBuilderCoupling;
29903
73658
class ExtACSyntaxCoupling;
29904
73659
class ExtACTree;
29905
73660
class ExtACKeywords;
29906
 
class WinAsm;
29907
 
class WinDeclSpecs;
29908
 
class WinMemberExplSpec;
29909
 
class WinTypeKeywords;
 
73661
class ExtGnu;
29910
73662
class PragmaOnceUnitState;
29911
73663
class PragmaOnce;
29912
 
class CCExprResolve;
29913
 
class CExprResolve;
29914
 
namespace Puma {
29915
 
 
29916
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73664
class CMatchSyntax;
 
73665
namespace Puma {
 
73666
 
 
73667
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73668
 
 
73669
#line 73670 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73670
} // closed Puma
 
73671
 
 
73672
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73673
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73674
#include "CCExprResolveH.ah"
 
73675
#endif
 
73676
namespace Puma {
 
73677
 
 
73678
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73679
 
 
73680
#line 73681 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73681
} // closed Puma
 
73682
 
 
73683
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73684
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73685
#include "CExprResolveH.ah"
 
73686
#endif
 
73687
namespace Puma {
 
73688
 
 
73689
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29917
73690
class CT_ReintCast : public CT_StaticCast {
29918
 
#line 29919 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73691
#line 73692 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73692
  friend class ::CCExprResolve;
 
73693
  friend class ::CExprResolve;
29919
73694
  friend class ::WinIfExists;
29920
73695
  friend class ::WinImportHandler;
29921
73696
  friend class ::WinMacros;
29922
 
  friend class ::CMatchSyntax;
29923
 
  friend class ::ExtGnu;
 
73697
  friend class ::WinAsm;
 
73698
  friend class ::WinDeclSpecs;
 
73699
  friend class ::WinMemberExplSpec;
 
73700
  friend class ::WinTypeKeywords;
 
73701
  friend class ::WinFriend;
29924
73702
  friend class ::ExtAC;
29925
73703
  friend class ::ExtACBuilderCoupling;
29926
73704
  friend class ::ExtACSyntaxCoupling;
29927
73705
  friend class ::ExtACTree;
29928
73706
  friend class ::ExtACKeywords;
29929
 
  friend class ::WinAsm;
29930
 
  friend class ::WinDeclSpecs;
29931
 
  friend class ::WinMemberExplSpec;
29932
 
  friend class ::WinTypeKeywords;
 
73707
  friend class ::ExtGnu;
29933
73708
  friend class ::PragmaOnceUnitState;
29934
73709
  friend class ::PragmaOnce;
29935
 
  friend class ::CCExprResolve;
29936
 
  friend class ::CExprResolve;
 
73710
  friend class ::CMatchSyntax;
29937
73711
 
29938
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73712
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29939
73713
 
29940
73714
public:
 
73715
  /** Constructor.
 
73716
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
73717
   *  \param o Left arrow bracket of the type name.
 
73718
   *  \param t The type to cast to.
 
73719
   *  \param c Right array bracket of the type name.
 
73720
   *  \param e The expression to cast. */
29941
73721
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
29942
73722
    CT_StaticCast (cst, o, t, c, e) {}
 
73723
  /** Get the identifier for this node type. Can be compared with NodeName(). */
29943
73724
  static const char *NodeId ();
 
73725
  /** Get the name of the node. Can be compared with NodeId(). */
29944
73726
  const char *NodeName () const { return NodeId (); }
29945
73727
   private:
29946
73728
  typedef CT_ReintCast CCExprResolveExpr;
29947
73729
 
29948
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73730
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29949
73731
 public :
29950
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73732
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
29951
73733
  typedef CT_ReintCast CExprResolveExpr;
29952
73734
 
29953
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73735
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29954
73736
 public :
29955
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29956
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73737
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73738
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29957
73739
};
29958
73740
 
 
73741
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
73742
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
29959
73743
 
29960
 
#line 29961 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73744
#line 73745 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
29961
73745
} // closed Puma
 
73746
class CCExprResolve;
 
73747
class CExprResolve;
29962
73748
class WinIfExists;
29963
73749
class WinImportHandler;
29964
73750
class WinMacros;
29965
 
class CMatchSyntax;
29966
 
class ExtGnu;
 
73751
class WinAsm;
 
73752
class WinDeclSpecs;
 
73753
class WinMemberExplSpec;
 
73754
class WinTypeKeywords;
 
73755
class WinFriend;
29967
73756
class ExtAC;
29968
73757
class ExtACBuilderCoupling;
29969
73758
class ExtACSyntaxCoupling;
29970
73759
class ExtACTree;
29971
73760
class ExtACKeywords;
29972
 
class WinAsm;
29973
 
class WinDeclSpecs;
29974
 
class WinMemberExplSpec;
29975
 
class WinTypeKeywords;
 
73761
class ExtGnu;
29976
73762
class PragmaOnceUnitState;
29977
73763
class PragmaOnce;
29978
 
class CCExprResolve;
29979
 
class CExprResolve;
29980
 
namespace Puma {
29981
 
 
29982
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73764
class CMatchSyntax;
 
73765
namespace Puma {
 
73766
 
 
73767
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73768
 
 
73769
#line 73770 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73770
} // closed Puma
 
73771
 
 
73772
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73773
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73774
#include "CCExprResolveH.ah"
 
73775
#endif
 
73776
namespace Puma {
 
73777
 
 
73778
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73779
 
 
73780
#line 73781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73781
} // closed Puma
 
73782
 
 
73783
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73784
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73785
#include "CExprResolveH.ah"
 
73786
#endif
 
73787
namespace Puma {
 
73788
 
 
73789
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
29983
73790
class CT_DynamicCast : public CT_StaticCast {
29984
 
#line 29985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73791
#line 73792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73792
  friend class ::CCExprResolve;
 
73793
  friend class ::CExprResolve;
29985
73794
  friend class ::WinIfExists;
29986
73795
  friend class ::WinImportHandler;
29987
73796
  friend class ::WinMacros;
29988
 
  friend class ::CMatchSyntax;
29989
 
  friend class ::ExtGnu;
 
73797
  friend class ::WinAsm;
 
73798
  friend class ::WinDeclSpecs;
 
73799
  friend class ::WinMemberExplSpec;
 
73800
  friend class ::WinTypeKeywords;
 
73801
  friend class ::WinFriend;
29990
73802
  friend class ::ExtAC;
29991
73803
  friend class ::ExtACBuilderCoupling;
29992
73804
  friend class ::ExtACSyntaxCoupling;
29993
73805
  friend class ::ExtACTree;
29994
73806
  friend class ::ExtACKeywords;
29995
 
  friend class ::WinAsm;
29996
 
  friend class ::WinDeclSpecs;
29997
 
  friend class ::WinMemberExplSpec;
29998
 
  friend class ::WinTypeKeywords;
 
73807
  friend class ::ExtGnu;
29999
73808
  friend class ::PragmaOnceUnitState;
30000
73809
  friend class ::PragmaOnce;
30001
 
  friend class ::CCExprResolve;
30002
 
  friend class ::CExprResolve;
 
73810
  friend class ::CMatchSyntax;
30003
73811
 
30004
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73812
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30005
73813
 
30006
73814
public:
 
73815
  /** Constructor.
 
73816
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
73817
   *  \param o Left arrow bracket of the type name.
 
73818
   *  \param t The type to cast to.
 
73819
   *  \param c Right array bracket of the type name.
 
73820
   *  \param e The expression to cast. */
30007
73821
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
30008
73822
    CT_StaticCast (cst, o, t, c, e) {}
 
73823
  /** Get the identifier for this node type. Can be compared with NodeName(). */
30009
73824
  static const char *NodeId ();
 
73825
  /** Get the name of the node. Can be compared with NodeId(). */
30010
73826
  const char *NodeName () const { return NodeId (); }
30011
73827
   private:
30012
73828
  typedef CT_DynamicCast CCExprResolveExpr;
30013
73829
 
30014
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73830
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
30015
73831
 public :
30016
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73832
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
30017
73833
  typedef CT_DynamicCast CExprResolveExpr;
30018
73834
 
30019
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73835
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
30020
73836
 public :
30021
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
30022
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73837
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73838
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30023
73839
};
30024
73840
 
 
73841
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
73842
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
73843
 *  where 1.2 is implicitely casted from float to int. */
30025
73844
 
30026
 
#line 30027 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73845
#line 73846 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
30027
73846
} // closed Puma
 
73847
class CCExprResolve;
 
73848
class CExprResolve;
30028
73849
class WinIfExists;
30029
73850
class WinImportHandler;
30030
73851
class WinMacros;
30031
 
class CMatchSyntax;
30032
 
class ExtGnu;
 
73852
class WinAsm;
 
73853
class WinDeclSpecs;
 
73854
class WinMemberExplSpec;
 
73855
class WinTypeKeywords;
 
73856
class WinFriend;
30033
73857
class ExtAC;
30034
73858
class ExtACBuilderCoupling;
30035
73859
class ExtACSyntaxCoupling;
30036
73860
class ExtACTree;
30037
73861
class ExtACKeywords;
30038
 
class WinAsm;
30039
 
class WinDeclSpecs;
30040
 
class WinMemberExplSpec;
30041
 
class WinTypeKeywords;
 
73862
class ExtGnu;
30042
73863
class PragmaOnceUnitState;
30043
73864
class PragmaOnce;
30044
 
class CCExprResolve;
30045
 
class CExprResolve;
30046
 
namespace Puma {
30047
 
 
30048
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73865
class CMatchSyntax;
 
73866
namespace Puma {
 
73867
 
 
73868
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73869
 
 
73870
#line 73871 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73871
} // closed Puma
 
73872
 
 
73873
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73874
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73875
#include "CCExprResolveH.ah"
 
73876
#endif
 
73877
namespace Puma {
 
73878
 
 
73879
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73880
 
 
73881
#line 73882 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73882
} // closed Puma
 
73883
 
 
73884
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73885
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73886
#include "CExprResolveH.ah"
 
73887
#endif
 
73888
namespace Puma {
 
73889
 
 
73890
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30049
73891
class CT_ImplicitCast : public CT_Expression {
30050
 
#line 30051 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73892
#line 73893 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73893
  friend class ::CCExprResolve;
 
73894
  friend class ::CExprResolve;
30051
73895
  friend class ::WinIfExists;
30052
73896
  friend class ::WinImportHandler;
30053
73897
  friend class ::WinMacros;
30054
 
  friend class ::CMatchSyntax;
30055
 
  friend class ::ExtGnu;
 
73898
  friend class ::WinAsm;
 
73899
  friend class ::WinDeclSpecs;
 
73900
  friend class ::WinMemberExplSpec;
 
73901
  friend class ::WinTypeKeywords;
 
73902
  friend class ::WinFriend;
30056
73903
  friend class ::ExtAC;
30057
73904
  friend class ::ExtACBuilderCoupling;
30058
73905
  friend class ::ExtACSyntaxCoupling;
30059
73906
  friend class ::ExtACTree;
30060
73907
  friend class ::ExtACKeywords;
30061
 
  friend class ::WinAsm;
30062
 
  friend class ::WinDeclSpecs;
30063
 
  friend class ::WinMemberExplSpec;
30064
 
  friend class ::WinTypeKeywords;
 
73908
  friend class ::ExtGnu;
30065
73909
  friend class ::PragmaOnceUnitState;
30066
73910
  friend class ::PragmaOnce;
30067
 
  friend class ::CCExprResolve;
30068
 
  friend class ::CExprResolve;
 
73911
  friend class ::CMatchSyntax;
30069
73912
 
30070
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73913
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30071
73914
 
30072
73915
  CTree *_expr; // casted expression
30073
73916
 
30074
73917
public:
30075
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
73918
  /** Constructor.
 
73919
   *  \param e The expression that is implicitely casted. */
 
73920
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
73921
  /** Get the identifier for this node type. Can be compared with NodeName(). */
30076
73922
  static const char *NodeId ();
 
73923
  /** Get the name of the node. Can be compared with NodeId(). */
30077
73924
  const char *NodeName () const { return NodeId (); }
 
73925
  /** Get the number of sons. */
30078
73926
  int Sons () const { return 1; }
 
73927
  /** Get the n-th son.
 
73928
   *  \param n The index of the son.
 
73929
   *  \return The n-th son or NULL. */
30079
73930
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
73931
  /** Get the casted expression. */
30080
73932
  CTree *Expr () const { return _expr; }
 
73933
  /** Replace a son.
 
73934
   *  \param old_son The son to replace.
 
73935
   *  \param new_son The new son. */
30081
73936
  void ReplaceSon (CTree *old_son, CTree *new_son) 
30082
 
   { if (old_son == _expr) _expr = new_son; }
 
73937
   { CTree::ReplaceSon (_expr, old_son, new_son); }
30083
73938
   private:
30084
73939
  typedef CT_ImplicitCast CCExprResolveExpr;
30085
73940
 
30086
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73941
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
30087
73942
 public :
30088
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73943
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
30089
73944
  typedef CT_ImplicitCast CExprResolveExpr;
30090
73945
 
30091
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73946
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
30092
73947
 public :
30093
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
30094
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73948
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73949
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30095
73950
};
30096
73951
 
 
73952
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
73953
 *  Tree node representing a typeid expression, e.g. typeid(X). */
30097
73954
 
30098
 
#line 30099 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
73955
#line 73956 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
30099
73956
} // closed Puma
 
73957
class CCExprResolve;
 
73958
class CExprResolve;
30100
73959
class WinIfExists;
30101
73960
class WinImportHandler;
30102
73961
class WinMacros;
30103
 
class CMatchSyntax;
30104
 
class ExtGnu;
 
73962
class WinAsm;
 
73963
class WinDeclSpecs;
 
73964
class WinMemberExplSpec;
 
73965
class WinTypeKeywords;
 
73966
class WinFriend;
30105
73967
class ExtAC;
30106
73968
class ExtACBuilderCoupling;
30107
73969
class ExtACSyntaxCoupling;
30108
73970
class ExtACTree;
30109
73971
class ExtACKeywords;
30110
 
class WinAsm;
30111
 
class WinDeclSpecs;
30112
 
class WinMemberExplSpec;
30113
 
class WinTypeKeywords;
 
73972
class ExtGnu;
30114
73973
class PragmaOnceUnitState;
30115
73974
class PragmaOnce;
30116
 
class CCExprResolve;
30117
 
class CExprResolve;
30118
 
namespace Puma {
30119
 
 
30120
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73975
class CMatchSyntax;
 
73976
namespace Puma {
 
73977
 
 
73978
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73979
 
 
73980
#line 73981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73981
} // closed Puma
 
73982
 
 
73983
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73984
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73985
#include "CCExprResolveH.ah"
 
73986
#endif
 
73987
namespace Puma {
 
73988
 
 
73989
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73990
 
 
73991
#line 73992 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
73992
} // closed Puma
 
73993
 
 
73994
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73995
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73996
#include "CExprResolveH.ah"
 
73997
#endif
 
73998
namespace Puma {
 
73999
 
 
74000
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30121
74001
class CT_TypeidExpr : public CT_Expression {
30122
 
#line 30123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74002
#line 74003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74003
  friend class ::CCExprResolve;
 
74004
  friend class ::CExprResolve;
30123
74005
  friend class ::WinIfExists;
30124
74006
  friend class ::WinImportHandler;
30125
74007
  friend class ::WinMacros;
30126
 
  friend class ::CMatchSyntax;
30127
 
  friend class ::ExtGnu;
 
74008
  friend class ::WinAsm;
 
74009
  friend class ::WinDeclSpecs;
 
74010
  friend class ::WinMemberExplSpec;
 
74011
  friend class ::WinTypeKeywords;
 
74012
  friend class ::WinFriend;
30128
74013
  friend class ::ExtAC;
30129
74014
  friend class ::ExtACBuilderCoupling;
30130
74015
  friend class ::ExtACSyntaxCoupling;
30131
74016
  friend class ::ExtACTree;
30132
74017
  friend class ::ExtACKeywords;
30133
 
  friend class ::WinAsm;
30134
 
  friend class ::WinDeclSpecs;
30135
 
  friend class ::WinMemberExplSpec;
30136
 
  friend class ::WinTypeKeywords;
 
74018
  friend class ::ExtGnu;
30137
74019
  friend class ::PragmaOnceUnitState;
30138
74020
  friend class ::PragmaOnce;
30139
 
  friend class ::CCExprResolve;
30140
 
  friend class ::CExprResolve;
 
74021
  friend class ::CMatchSyntax;
30141
74022
 
30142
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74023
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30143
74024
 
30144
74025
  CTree *sons[4]; // typeid, open, type_id/expr, close
30145
74026
 
30146
74027
public:
 
74028
  /** Constructor.
 
74029
   *  \param tid The 'typeid' operator.
 
74030
   *  \param o The left parenthesis of the type name or expression.
 
74031
   *  \param e The expression or type name for which to get the type identifier.
 
74032
   *  \param c The right parenthesis of the type name or expression. */
30147
74033
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
30148
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
74034
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
74035
    AddSon (sons[2], e); AddSon (sons[3], c);
30149
74036
  }
 
74037
  /** Get the identifier for this node type. Can be compared with NodeName(). */
30150
74038
  static const char *NodeId ();
 
74039
  /** Get the name of the node. Can be compared with NodeId(). */
30151
74040
  const char *NodeName () const { return NodeId (); }
 
74041
  /** Get the number of sons. */
30152
74042
  int Sons () const { return 4; }
 
74043
  /** Get the n-th son.
 
74044
   *  \param n The index of the son.
 
74045
   *  \return The n-th son or NULL. */
30153
74046
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
74047
  /** Replace a son.
 
74048
   *  \param old_son The son to replace.
 
74049
   *  \param new_son The new son. */
30154
74050
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30155
74051
    CTree::ReplaceSon (sons, 4, old_son, new_son);
30156
74052
  }
 
74053
  /** Get the typeid argument, i.e. the expression or type name for
 
74054
   *  which to get the type identifier. */
30157
74055
  CTree *Arg () const { return sons[2]; }
30158
74056
   private:
30159
74057
  typedef CT_TypeidExpr CCExprResolveExpr;
30160
74058
 
30161
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
74059
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
30162
74060
 public :
30163
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
74061
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
30164
74062
  typedef CT_TypeidExpr CExprResolveExpr;
30165
74063
 
30166
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
74064
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
30167
74065
 public :
30168
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
30169
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74066
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
74067
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30170
74068
};
30171
74069
 
 
74070
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
74071
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
30172
74072
 
30173
 
#line 30174 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74073
#line 74074 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
30174
74074
} // closed Puma
 
74075
class CCExprResolve;
 
74076
class CExprResolve;
30175
74077
class WinIfExists;
30176
74078
class WinImportHandler;
30177
74079
class WinMacros;
30178
 
class CMatchSyntax;
30179
 
class ExtGnu;
 
74080
class WinAsm;
 
74081
class WinDeclSpecs;
 
74082
class WinMemberExplSpec;
 
74083
class WinTypeKeywords;
 
74084
class WinFriend;
30180
74085
class ExtAC;
30181
74086
class ExtACBuilderCoupling;
30182
74087
class ExtACSyntaxCoupling;
30183
74088
class ExtACTree;
30184
74089
class ExtACKeywords;
30185
 
class WinAsm;
30186
 
class WinDeclSpecs;
30187
 
class WinMemberExplSpec;
30188
 
class WinTypeKeywords;
 
74090
class ExtGnu;
30189
74091
class PragmaOnceUnitState;
30190
74092
class PragmaOnce;
30191
 
class CCExprResolve;
30192
 
class CExprResolve;
30193
 
namespace Puma {
30194
 
 
30195
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74093
class CMatchSyntax;
 
74094
namespace Puma {
 
74095
 
 
74096
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74097
 
 
74098
#line 74099 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74099
} // closed Puma
 
74100
 
 
74101
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74102
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74103
#include "CCExprResolveH.ah"
 
74104
#endif
 
74105
namespace Puma {
 
74106
 
 
74107
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74108
 
 
74109
#line 74110 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74110
} // closed Puma
 
74111
 
 
74112
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74113
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74114
#include "CExprResolveH.ah"
 
74115
#endif
 
74116
namespace Puma {
 
74117
 
 
74118
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30196
74119
class CT_SizeofExpr : public CT_Expression {
30197
 
#line 30198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74120
#line 74121 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74121
  friend class ::CCExprResolve;
 
74122
  friend class ::CExprResolve;
30198
74123
  friend class ::WinIfExists;
30199
74124
  friend class ::WinImportHandler;
30200
74125
  friend class ::WinMacros;
30201
 
  friend class ::CMatchSyntax;
30202
 
  friend class ::ExtGnu;
 
74126
  friend class ::WinAsm;
 
74127
  friend class ::WinDeclSpecs;
 
74128
  friend class ::WinMemberExplSpec;
 
74129
  friend class ::WinTypeKeywords;
 
74130
  friend class ::WinFriend;
30203
74131
  friend class ::ExtAC;
30204
74132
  friend class ::ExtACBuilderCoupling;
30205
74133
  friend class ::ExtACSyntaxCoupling;
30206
74134
  friend class ::ExtACTree;
30207
74135
  friend class ::ExtACKeywords;
30208
 
  friend class ::WinAsm;
30209
 
  friend class ::WinDeclSpecs;
30210
 
  friend class ::WinMemberExplSpec;
30211
 
  friend class ::WinTypeKeywords;
 
74136
  friend class ::ExtGnu;
30212
74137
  friend class ::PragmaOnceUnitState;
30213
74138
  friend class ::PragmaOnce;
30214
 
  friend class ::CCExprResolve;
30215
 
  friend class ::CExprResolve;
 
74139
  friend class ::CMatchSyntax;
30216
74140
 
30217
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74141
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30218
74142
 
30219
74143
  CTree *sons[5]; // key, open, type, close, expr
30220
74144
 
30221
74145
public:
 
74146
  /** Constructor.
 
74147
   *  \param k The 'sizeof' keyword.
 
74148
   *  \param o Left parenthesis around the type name.
 
74149
   *  \param t The type from which to get the size.
 
74150
   *  \param c Right parenthesis around the type name. */
30222
74151
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
30223
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
74152
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
74153
    AddSon (sons[3], c); AddSon (sons[4], 0);
30224
74154
  }
 
74155
  /** Constructor.
 
74156
   *  \param k The 'sizeof' keyword.
 
74157
   *  \param e The expression from which to get the size. */
30225
74158
  CT_SizeofExpr (CTree *k, CTree *e) {
30226
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
74159
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
74160
    AddSon (sons[3], 0); AddSon (sons[4], e);
30227
74161
  }
 
74162
  /** Get the identifier for this node type. Can be compared with NodeName(). */
30228
74163
  static const char *NodeId ();
 
74164
  /** Get the name of the node. Can be compared with NodeId(). */
30229
74165
  const char *NodeName () const { return NodeId (); }
 
74166
  /** Get the number of sons. */
30230
74167
  int Sons () const { return CTree::Sons (sons, 5); }
 
74168
  /** Get the n-th son.
 
74169
   *  \param n The index of the son.
 
74170
   *  \return The n-th son or NULL. */
30231
74171
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
74172
  /** Replace a son.
 
74173
   *  \param old_son The son to replace.
 
74174
   *  \param new_son The new son. */
30232
74175
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30233
74176
    CTree::ReplaceSon (sons, 5, old_son, new_son);
30234
74177
  }
 
74178
  /** Get the expression. */
30235
74179
  CTree *Expr () const { return sons[4]; }
 
74180
  /** Get the type name. */
30236
74181
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
30237
74182
   private:
30238
74183
  typedef CT_SizeofExpr CCExprResolveExpr;
30239
74184
 
30240
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
74185
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
30241
74186
 public :
30242
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
74187
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
30243
74188
  typedef CT_SizeofExpr CExprResolveExpr;
30244
74189
 
30245
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
74190
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
30246
74191
 public :
30247
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
30248
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74192
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
74193
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30249
74194
};
30250
74195
 
 
74196
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
74197
 *  Tree node representing an index designator, i.e. [1]. */
30251
74198
 
30252
 
#line 30253 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74199
#line 74200 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
30253
74200
} // closed Puma
 
74201
class CCExprResolve;
 
74202
class CExprResolve;
30254
74203
class WinIfExists;
30255
74204
class WinImportHandler;
30256
74205
class WinMacros;
30257
 
class CMatchSyntax;
30258
 
class ExtGnu;
 
74206
class WinAsm;
 
74207
class WinDeclSpecs;
 
74208
class WinMemberExplSpec;
 
74209
class WinTypeKeywords;
 
74210
class WinFriend;
30259
74211
class ExtAC;
30260
74212
class ExtACBuilderCoupling;
30261
74213
class ExtACSyntaxCoupling;
30262
74214
class ExtACTree;
30263
74215
class ExtACKeywords;
30264
 
class WinAsm;
30265
 
class WinDeclSpecs;
30266
 
class WinMemberExplSpec;
30267
 
class WinTypeKeywords;
 
74216
class ExtGnu;
30268
74217
class PragmaOnceUnitState;
30269
74218
class PragmaOnce;
30270
 
class CCExprResolve;
30271
 
class CExprResolve;
30272
 
namespace Puma {
30273
 
 
30274
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74219
class CMatchSyntax;
 
74220
namespace Puma {
 
74221
 
 
74222
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74223
 
 
74224
#line 74225 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74225
} // closed Puma
 
74226
 
 
74227
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74228
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74229
#include "CCExprResolveH.ah"
 
74230
#endif
 
74231
namespace Puma {
 
74232
 
 
74233
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74234
 
 
74235
#line 74236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74236
} // closed Puma
 
74237
 
 
74238
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74239
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74240
#include "CExprResolveH.ah"
 
74241
#endif
 
74242
namespace Puma {
 
74243
 
 
74244
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30275
74245
class CT_IndexDesignator : public CT_Expression {
30276
 
#line 30277 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74246
#line 74247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74247
  friend class ::CCExprResolve;
 
74248
  friend class ::CExprResolve;
30277
74249
  friend class ::WinIfExists;
30278
74250
  friend class ::WinImportHandler;
30279
74251
  friend class ::WinMacros;
30280
 
  friend class ::CMatchSyntax;
30281
 
  friend class ::ExtGnu;
 
74252
  friend class ::WinAsm;
 
74253
  friend class ::WinDeclSpecs;
 
74254
  friend class ::WinMemberExplSpec;
 
74255
  friend class ::WinTypeKeywords;
 
74256
  friend class ::WinFriend;
30282
74257
  friend class ::ExtAC;
30283
74258
  friend class ::ExtACBuilderCoupling;
30284
74259
  friend class ::ExtACSyntaxCoupling;
30285
74260
  friend class ::ExtACTree;
30286
74261
  friend class ::ExtACKeywords;
30287
 
  friend class ::WinAsm;
30288
 
  friend class ::WinDeclSpecs;
30289
 
  friend class ::WinMemberExplSpec;
30290
 
  friend class ::WinTypeKeywords;
 
74262
  friend class ::ExtGnu;
30291
74263
  friend class ::PragmaOnceUnitState;
30292
74264
  friend class ::PragmaOnce;
30293
 
  friend class ::CCExprResolve;
30294
 
  friend class ::CExprResolve;
 
74265
  friend class ::CMatchSyntax;
30295
74266
 
30296
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74267
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30297
74268
 
30298
74269
  CTree *sons[3]; // open, index, close
30299
74270
 
30300
74271
public:
 
74272
  /** Constructor.
 
74273
   *  \param o Left bracket of the index designator.
 
74274
   *  \param i The index expression.
 
74275
   *  \param c Right bracket of the index designator. */
30301
74276
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
30302
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
74277
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
30303
74278
  }
 
74279
  /** Get the identifier for this node type. Can be compared with NodeName(). */
30304
74280
  static const char *NodeId ();
 
74281
  /** Get the name of the node. Can be compared with NodeId(). */
30305
74282
  const char *NodeName () const { return NodeId (); }
 
74283
  /** Get the number of sons. */
30306
74284
  int Sons () const { return 3; }
 
74285
  /** Get the n-th son.
 
74286
   *  \param n The index of the son.
 
74287
   *  \return The n-th son or NULL. */
30307
74288
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
74289
  /** Replace a son.
 
74290
   *  \param old_son The son to replace.
 
74291
   *  \param new_son The new son. */
30308
74292
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30309
74293
    CTree::ReplaceSon (sons, 3, old_son, new_son);
30310
74294
  }
30311
74295
   private:
30312
74296
  typedef CT_IndexDesignator CCExprResolveExpr;
30313
74297
 
30314
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
74298
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
30315
74299
 public :
30316
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
74300
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
30317
74301
  typedef CT_IndexDesignator CExprResolveExpr;
30318
74302
 
30319
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
74303
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
30320
74304
 public :
30321
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
30322
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74305
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
74306
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30323
74307
};
30324
74308
 
 
74309
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
74310
 *  Tree node representing a member designator, e.g. .a. */
30325
74311
 
30326
 
#line 30327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74312
#line 74313 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
30327
74313
} // closed Puma
 
74314
class CCExprResolve;
 
74315
class CExprResolve;
30328
74316
class WinIfExists;
30329
74317
class WinImportHandler;
30330
74318
class WinMacros;
30331
 
class CMatchSyntax;
30332
 
class ExtGnu;
 
74319
class WinAsm;
 
74320
class WinDeclSpecs;
 
74321
class WinMemberExplSpec;
 
74322
class WinTypeKeywords;
 
74323
class WinFriend;
30333
74324
class ExtAC;
30334
74325
class ExtACBuilderCoupling;
30335
74326
class ExtACSyntaxCoupling;
30336
74327
class ExtACTree;
30337
74328
class ExtACKeywords;
30338
 
class WinAsm;
30339
 
class WinDeclSpecs;
30340
 
class WinMemberExplSpec;
30341
 
class WinTypeKeywords;
 
74329
class ExtGnu;
30342
74330
class PragmaOnceUnitState;
30343
74331
class PragmaOnce;
30344
 
class CCExprResolve;
30345
 
class CExprResolve;
30346
 
namespace Puma {
30347
 
 
30348
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74332
class CMatchSyntax;
 
74333
namespace Puma {
 
74334
 
 
74335
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74336
 
 
74337
#line 74338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74338
} // closed Puma
 
74339
 
 
74340
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74341
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74342
#include "CCExprResolveH.ah"
 
74343
#endif
 
74344
namespace Puma {
 
74345
 
 
74346
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74347
 
 
74348
#line 74349 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74349
} // closed Puma
 
74350
 
 
74351
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74352
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74353
#include "CExprResolveH.ah"
 
74354
#endif
 
74355
namespace Puma {
 
74356
 
 
74357
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30349
74358
class CT_MembDesignator : public CT_Expression {
30350
 
#line 30351 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74359
#line 74360 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74360
  friend class ::CCExprResolve;
 
74361
  friend class ::CExprResolve;
30351
74362
  friend class ::WinIfExists;
30352
74363
  friend class ::WinImportHandler;
30353
74364
  friend class ::WinMacros;
30354
 
  friend class ::CMatchSyntax;
30355
 
  friend class ::ExtGnu;
 
74365
  friend class ::WinAsm;
 
74366
  friend class ::WinDeclSpecs;
 
74367
  friend class ::WinMemberExplSpec;
 
74368
  friend class ::WinTypeKeywords;
 
74369
  friend class ::WinFriend;
30356
74370
  friend class ::ExtAC;
30357
74371
  friend class ::ExtACBuilderCoupling;
30358
74372
  friend class ::ExtACSyntaxCoupling;
30359
74373
  friend class ::ExtACTree;
30360
74374
  friend class ::ExtACKeywords;
30361
 
  friend class ::WinAsm;
30362
 
  friend class ::WinDeclSpecs;
30363
 
  friend class ::WinMemberExplSpec;
30364
 
  friend class ::WinTypeKeywords;
 
74375
  friend class ::ExtGnu;
30365
74376
  friend class ::PragmaOnceUnitState;
30366
74377
  friend class ::PragmaOnce;
30367
 
  friend class ::CCExprResolve;
30368
 
  friend class ::CExprResolve;
 
74378
  friend class ::CMatchSyntax;
30369
74379
 
30370
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74380
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30371
74381
 
30372
74382
  CTree *sons[2]; // dot, member
30373
74383
 
30374
74384
public:
30375
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
74385
  /** Constructor.
 
74386
   *  \param d The dot before the member name.
 
74387
   *  \param m The member name. */
 
74388
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
74389
  /** Get the identifier for this node type. Can be compared with NodeName(). */
30376
74390
  static const char *NodeId ();
 
74391
  /** Get the name of the node. Can be compared with NodeId(). */
30377
74392
  const char *NodeName () const { return NodeId (); }
 
74393
  /** Get the number of sons. */
30378
74394
  int Sons () const { return 2; }
 
74395
  /** Get the n-th son.
 
74396
   *  \param n The index of the son.
 
74397
   *  \return The n-th son or NULL. */
30379
74398
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
74399
  /** Replace a son.
 
74400
   *  \param old_son The son to replace.
 
74401
   *  \param new_son The new son. */
30380
74402
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30381
74403
    CTree::ReplaceSon (sons, 2, old_son, new_son);
30382
74404
  }
30383
74405
   private:
30384
74406
  typedef CT_MembDesignator CCExprResolveExpr;
30385
74407
 
30386
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
74408
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
30387
74409
 public :
30388
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
74410
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
30389
74411
  typedef CT_MembDesignator CExprResolveExpr;
30390
74412
 
30391
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
74413
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
30392
74414
 public :
30393
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
30394
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74415
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
74416
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30395
74417
};
30396
74418
 
 
74419
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
74420
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
30397
74421
 
30398
 
#line 30399 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74422
#line 74423 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
30399
74423
} // closed Puma
 
74424
class CCExprResolve;
 
74425
class CExprResolve;
30400
74426
class WinIfExists;
30401
74427
class WinImportHandler;
30402
74428
class WinMacros;
30403
 
class CMatchSyntax;
30404
 
class ExtGnu;
 
74429
class WinAsm;
 
74430
class WinDeclSpecs;
 
74431
class WinMemberExplSpec;
 
74432
class WinTypeKeywords;
 
74433
class WinFriend;
30405
74434
class ExtAC;
30406
74435
class ExtACBuilderCoupling;
30407
74436
class ExtACSyntaxCoupling;
30408
74437
class ExtACTree;
30409
74438
class ExtACKeywords;
30410
 
class WinAsm;
30411
 
class WinDeclSpecs;
30412
 
class WinMemberExplSpec;
30413
 
class WinTypeKeywords;
 
74439
class ExtGnu;
30414
74440
class PragmaOnceUnitState;
30415
74441
class PragmaOnce;
30416
 
class CCExprResolve;
30417
 
class CExprResolve;
 
74442
class CMatchSyntax;
30418
74443
namespace Puma {
30419
74444
 
30420
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74445
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30421
74446
class CT_DesignatorSeq : public CT_List, public CSemValue {
30422
 
#line 30423 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74447
#line 74448 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74448
  friend class ::CCExprResolve;
 
74449
  friend class ::CExprResolve;
30423
74450
  friend class ::WinIfExists;
30424
74451
  friend class ::WinImportHandler;
30425
74452
  friend class ::WinMacros;
30426
 
  friend class ::CMatchSyntax;
30427
 
  friend class ::ExtGnu;
 
74453
  friend class ::WinAsm;
 
74454
  friend class ::WinDeclSpecs;
 
74455
  friend class ::WinMemberExplSpec;
 
74456
  friend class ::WinTypeKeywords;
 
74457
  friend class ::WinFriend;
30428
74458
  friend class ::ExtAC;
30429
74459
  friend class ::ExtACBuilderCoupling;
30430
74460
  friend class ::ExtACSyntaxCoupling;
30431
74461
  friend class ::ExtACTree;
30432
74462
  friend class ::ExtACKeywords;
30433
 
  friend class ::WinAsm;
30434
 
  friend class ::WinDeclSpecs;
30435
 
  friend class ::WinMemberExplSpec;
30436
 
  friend class ::WinTypeKeywords;
 
74463
  friend class ::ExtGnu;
30437
74464
  friend class ::PragmaOnceUnitState;
30438
74465
  friend class ::PragmaOnce;
30439
 
  friend class ::CCExprResolve;
30440
 
  friend class ::CExprResolve;
 
74466
  friend class ::CMatchSyntax;
30441
74467
 
30442
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74468
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30443
74469
 
30444
74470
public:
 
74471
  /** Constructor.
 
74472
   *  \param size Initial number of designators. */
30445
74473
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
74474
  /** Get the identifier for this node type. Can be compared with NodeName(). */
30446
74475
  static const char *NodeId ();
 
74476
  /** Get the name of the node. Can be compared with NodeId(). */
30447
74477
  const char *NodeName () const { return NodeId (); }
30448
74478
 
 
74479
  /** Get the type of the entity to initialize. */
30449
74480
  CTypeInfo *Type () const { return type; }
 
74481
  /** Get the value of the entity to initialize. */
30450
74482
  CExprValue *Value () const { return value; }
 
74483
  /** Get the semantic value object. */
30451
74484
  CSemValue *SemValue () const { return (CSemValue*)this; }
30452
74485
};
30453
74486
 
30457
74490
/*                                                                           */
30458
74491
/*****************************************************************************/
30459
74492
 
 
74493
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
74494
 *  Base class for all tree nodes representing declaration specifiers. */
30460
74495
 
30461
 
#line 30462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74496
#line 74497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
30462
74497
} // closed Puma
 
74498
class CCExprResolve;
 
74499
class CExprResolve;
30463
74500
class WinIfExists;
30464
74501
class WinImportHandler;
30465
74502
class WinMacros;
30466
 
class CMatchSyntax;
30467
 
class ExtGnu;
 
74503
class WinAsm;
 
74504
class WinDeclSpecs;
 
74505
class WinMemberExplSpec;
 
74506
class WinTypeKeywords;
 
74507
class WinFriend;
30468
74508
class ExtAC;
30469
74509
class ExtACBuilderCoupling;
30470
74510
class ExtACSyntaxCoupling;
30471
74511
class ExtACTree;
30472
74512
class ExtACKeywords;
30473
 
class WinAsm;
30474
 
class WinDeclSpecs;
30475
 
class WinMemberExplSpec;
30476
 
class WinTypeKeywords;
 
74513
class ExtGnu;
30477
74514
class PragmaOnceUnitState;
30478
74515
class PragmaOnce;
30479
 
class CCExprResolve;
30480
 
class CExprResolve;
 
74516
class CMatchSyntax;
30481
74517
namespace Puma {
30482
74518
 
30483
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74519
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30484
74520
class CT_DeclSpec : public CTree {
30485
 
#line 30486 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74521
#line 74522 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74522
  friend class ::CCExprResolve;
 
74523
  friend class ::CExprResolve;
30486
74524
  friend class ::WinIfExists;
30487
74525
  friend class ::WinImportHandler;
30488
74526
  friend class ::WinMacros;
30489
 
  friend class ::CMatchSyntax;
30490
 
  friend class ::ExtGnu;
 
74527
  friend class ::WinAsm;
 
74528
  friend class ::WinDeclSpecs;
 
74529
  friend class ::WinMemberExplSpec;
 
74530
  friend class ::WinTypeKeywords;
 
74531
  friend class ::WinFriend;
30491
74532
  friend class ::ExtAC;
30492
74533
  friend class ::ExtACBuilderCoupling;
30493
74534
  friend class ::ExtACSyntaxCoupling;
30494
74535
  friend class ::ExtACTree;
30495
74536
  friend class ::ExtACKeywords;
30496
 
  friend class ::WinAsm;
30497
 
  friend class ::WinDeclSpecs;
30498
 
  friend class ::WinMemberExplSpec;
30499
 
  friend class ::WinTypeKeywords;
 
74537
  friend class ::ExtGnu;
30500
74538
  friend class ::PragmaOnceUnitState;
30501
74539
  friend class ::PragmaOnce;
30502
 
  friend class ::CCExprResolve;
30503
 
  friend class ::CExprResolve;
 
74540
  friend class ::CMatchSyntax;
30504
74541
 
30505
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74542
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30506
74543
 
30507
74544
protected:
 
74545
  /** Constructor. */
30508
74546
  CT_DeclSpec () {}
30509
74547
};
30510
74548
 
 
74549
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
74550
 *  Tree node representing a primitive declaration specifier. */
30511
74551
 
30512
 
#line 30513 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74552
#line 74553 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
30513
74553
} // closed Puma
 
74554
class CCExprResolve;
 
74555
class CExprResolve;
30514
74556
class WinIfExists;
30515
74557
class WinImportHandler;
30516
74558
class WinMacros;
30517
 
class CMatchSyntax;
30518
 
class ExtGnu;
 
74559
class WinAsm;
 
74560
class WinDeclSpecs;
 
74561
class WinMemberExplSpec;
 
74562
class WinTypeKeywords;
 
74563
class WinFriend;
30519
74564
class ExtAC;
30520
74565
class ExtACBuilderCoupling;
30521
74566
class ExtACSyntaxCoupling;
30522
74567
class ExtACTree;
30523
74568
class ExtACKeywords;
30524
 
class WinAsm;
30525
 
class WinDeclSpecs;
30526
 
class WinMemberExplSpec;
30527
 
class WinTypeKeywords;
 
74569
class ExtGnu;
30528
74570
class PragmaOnceUnitState;
30529
74571
class PragmaOnce;
30530
 
class CCExprResolve;
30531
 
class CExprResolve;
 
74572
class CMatchSyntax;
30532
74573
namespace Puma {
30533
74574
 
30534
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74575
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30535
74576
class CT_PrimDeclSpec : public CT_DeclSpec {
30536
 
#line 30537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74577
#line 74578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74578
  friend class ::CCExprResolve;
 
74579
  friend class ::CExprResolve;
30537
74580
  friend class ::WinIfExists;
30538
74581
  friend class ::WinImportHandler;
30539
74582
  friend class ::WinMacros;
30540
 
  friend class ::CMatchSyntax;
30541
 
  friend class ::ExtGnu;
 
74583
  friend class ::WinAsm;
 
74584
  friend class ::WinDeclSpecs;
 
74585
  friend class ::WinMemberExplSpec;
 
74586
  friend class ::WinTypeKeywords;
 
74587
  friend class ::WinFriend;
30542
74588
  friend class ::ExtAC;
30543
74589
  friend class ::ExtACBuilderCoupling;
30544
74590
  friend class ::ExtACSyntaxCoupling;
30545
74591
  friend class ::ExtACTree;
30546
74592
  friend class ::ExtACKeywords;
30547
 
  friend class ::WinAsm;
30548
 
  friend class ::WinDeclSpecs;
30549
 
  friend class ::WinMemberExplSpec;
30550
 
  friend class ::WinTypeKeywords;
 
74593
  friend class ::ExtGnu;
30551
74594
  friend class ::PragmaOnceUnitState;
30552
74595
  friend class ::PragmaOnce;
30553
 
  friend class ::CCExprResolve;
30554
 
  friend class ::CExprResolve;
 
74596
  friend class ::CMatchSyntax;
30555
74597
 
30556
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74598
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30557
74599
 
30558
74600
public:
30559
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
30560
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
30561
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
30562
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
30563
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
30564
 
              // AspectC++ specific type specifier
30565
 
              PDS_UNKNOWN_T,
30566
 
              // Win specific declaration specifiers
30567
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
30568
 
              PDS_UNKNOWN, PDS_NUM };
 
74601
  /** Declaration specifier types. */
 
74602
  enum Type { 
 
74603
    PDS_FRIEND,    /** friend */
 
74604
    PDS_TYPEDEF,   /** typedef */
 
74605
    PDS_AUTO,      /** auto */
 
74606
    PDS_REGISTER,  /** register */
 
74607
    PDS_STATIC,    /** static */
 
74608
    PDS_EXTERN,    /** extern */
 
74609
    PDS_MUTABLE,   /** mutable */
 
74610
    PDS_INLINE,    /** inline */
 
74611
    PDS_VIRTUAL,   /** virtual */
 
74612
    PDS_EXPLICIT,  /** explicit */
 
74613
    PDS_CONST,     /** const */
 
74614
    PDS_VOLATILE,  /** volatile */
 
74615
    PDS_RESTRICT,  /** restrict */
 
74616
    PDS_CHAR,      /** char */
 
74617
    PDS_WCHAR_T,   /** wchar_t */
 
74618
    PDS_BOOL,      /** bool */
 
74619
    PDS_SHORT,     /** short */
 
74620
    PDS_INT,       /** int */
 
74621
    PDS_LONG,      /** long */
 
74622
    PDS_SIGNED,    /** signed */
 
74623
    PDS_UNSIGNED,  /** unsigned */
 
74624
    PDS_FLOAT,     /** float */
 
74625
    PDS_DOUBLE,    /** double */
 
74626
    PDS_VOID,      /** void */
 
74627
    // AspectC++ specific type specifier
 
74628
    PDS_UNKNOWN_T, /** unknown_t */
 
74629
    // Win specific declaration specifiers
 
74630
    PDS_CDECL,     /** __cdecl */
 
74631
    PDS_STDCALL,   /** __stdcall */
 
74632
    PDS_FASTCALL,  /** __fastcall */
 
74633
    PDS_INT64,     /** __int64 */
 
74634
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
74635
    PDS_NUM        /** Number of declaration specifier types. */
 
74636
  };
30569
74637
 
30570
74638
private:
30571
74639
  Type _type;
30572
 
  CT_Token *_token;
 
74640
  CTree *_token; // has to be a CT_Token
30573
74641
 
30574
74642
  void determine_type ();
30575
74643
 
30576
74644
public:
30577
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
74645
  /** Constructor.
 
74646
   *  \param t The token containing the declaration specifier. */
 
74647
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
74648
  /** Constructor.
 
74649
   *  \param t The declaration specifier type. */
30578
74650
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
74651
  /** Get the identifier for this node type. Can be compared with NodeName(). */
30579
74652
  static const char *NodeId ();
 
74653
  /** Get the name of the node. Can be compared with NodeId(). */
30580
74654
  const char *NodeName () const { return NodeId (); }
 
74655
  /** Get the number of sons. */
30581
74656
  int Sons () const { return _token ? 1 : 0; }
 
74657
  /** Get the n-th son.
 
74658
   *  \param n The index of the son.
 
74659
   *  \return The n-th son or NULL. */
30582
74660
  CTree *Son (int n) const 
30583
74661
   { return (n == 0) ? _token : (CTree*)0; }
 
74662
  /** Get the textual representation of the declaration specifier.
 
74663
   *  \return The string representation or " ". */
30584
74664
  const char *SpecText () const 
30585
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
74665
   { return _token ? _token->token ()->text () : " "; }
 
74666
  /** Get the declaration specifier type. */
30586
74667
  Type SpecType () const { return _type; }
 
74668
  /** Number of declaration specifier types. */
30587
74669
  static const int NumTypes = PDS_NUM;
 
74670
  /** Replace a son.
 
74671
   *  \param old_son The son to replace.
 
74672
   *  \param new_son The new son. */
 
74673
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
74674
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
74675
    determine_type ();
 
74676
  }
30588
74677
};
30589
74678
 
 
74679
/** \class CT_NamedType CTree.h Puma/CTree.h
 
74680
 *  Tree node representing a named type, e.g. (int*)a. 
 
74681
 *  where int* is a type with a generated name. */
30590
74682
 
30591
 
#line 30592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74683
#line 74684 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
30592
74684
} // closed Puma
 
74685
class CCExprResolve;
 
74686
class CExprResolve;
30593
74687
class WinIfExists;
30594
74688
class WinImportHandler;
30595
74689
class WinMacros;
30596
 
class CMatchSyntax;
30597
 
class ExtGnu;
 
74690
class WinAsm;
 
74691
class WinDeclSpecs;
 
74692
class WinMemberExplSpec;
 
74693
class WinTypeKeywords;
 
74694
class WinFriend;
30598
74695
class ExtAC;
30599
74696
class ExtACBuilderCoupling;
30600
74697
class ExtACSyntaxCoupling;
30601
74698
class ExtACTree;
30602
74699
class ExtACKeywords;
30603
 
class WinAsm;
30604
 
class WinDeclSpecs;
30605
 
class WinMemberExplSpec;
30606
 
class WinTypeKeywords;
 
74700
class ExtGnu;
30607
74701
class PragmaOnceUnitState;
30608
74702
class PragmaOnce;
30609
 
class CCExprResolve;
30610
 
class CExprResolve;
 
74703
class CMatchSyntax;
30611
74704
namespace Puma {
30612
74705
 
30613
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74706
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30614
74707
class CT_NamedType : public CT_DeclSpec, public CSemObject {
30615
 
#line 30616 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74708
#line 74709 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74709
  friend class ::CCExprResolve;
 
74710
  friend class ::CExprResolve;
30616
74711
  friend class ::WinIfExists;
30617
74712
  friend class ::WinImportHandler;
30618
74713
  friend class ::WinMacros;
30619
 
  friend class ::CMatchSyntax;
30620
 
  friend class ::ExtGnu;
 
74714
  friend class ::WinAsm;
 
74715
  friend class ::WinDeclSpecs;
 
74716
  friend class ::WinMemberExplSpec;
 
74717
  friend class ::WinTypeKeywords;
 
74718
  friend class ::WinFriend;
30621
74719
  friend class ::ExtAC;
30622
74720
  friend class ::ExtACBuilderCoupling;
30623
74721
  friend class ::ExtACSyntaxCoupling;
30624
74722
  friend class ::ExtACTree;
30625
74723
  friend class ::ExtACKeywords;
30626
 
  friend class ::WinAsm;
30627
 
  friend class ::WinDeclSpecs;
30628
 
  friend class ::WinMemberExplSpec;
30629
 
  friend class ::WinTypeKeywords;
 
74724
  friend class ::ExtGnu;
30630
74725
  friend class ::PragmaOnceUnitState;
30631
74726
  friend class ::PragmaOnce;
30632
 
  friend class ::CCExprResolve;
30633
 
  friend class ::CExprResolve;
 
74727
  friend class ::CMatchSyntax;
30634
74728
 
30635
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74729
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30636
74730
 
30637
74731
  CTree *sons[2]; // declspecs, declarator
30638
74732
 
30639
74733
public:
30640
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
74734
  /** Constructor.
 
74735
   *  \param dss The declaration specifier sequence of the type.
 
74736
   *  \param d The type declarator. */
 
74737
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
74738
  /** Get the identifier for this node type. Can be compared with NodeName(). */
30641
74739
  static const char *NodeId ();
 
74740
  /** Get the name of the node. Can be compared with NodeId(). */
30642
74741
  const char *NodeName () const { return NodeId (); }
 
74742
  /** Get the number of sons. */
30643
74743
  int Sons () const { return CTree::Sons (sons, 2); }
 
74744
  /** Get the n-th son.
 
74745
   *  \param n The index of the son.
 
74746
   *  \return The n-th son or NULL. */
30644
74747
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
74748
  /** Get the declarator. */
30645
74749
  CTree *Declarator () const { return sons[1]; }
 
74750
  /** Replace a son.
 
74751
   *  \param old_son The son to replace.
 
74752
   *  \param new_son The new son. */
30646
74753
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30647
74754
    CTree::ReplaceSon (sons, 2, old_son, new_son);
30648
74755
  }
 
74756
  /** Get the semantic information object. */
30649
74757
  CSemObject *SemObject () const { return (CSemObject*)this; }
30650
74758
};
30651
74759
      
 
74760
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
74761
 *  Tree node representing a class specifier, e.g. class X. */
30652
74762
 
30653
 
#line 30654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74763
#line 74764 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
30654
74764
} // closed Puma
 
74765
class CCExprResolve;
 
74766
class CExprResolve;
30655
74767
class WinIfExists;
30656
74768
class WinImportHandler;
30657
74769
class WinMacros;
30658
 
class CMatchSyntax;
30659
 
class ExtGnu;
 
74770
class WinAsm;
 
74771
class WinDeclSpecs;
 
74772
class WinMemberExplSpec;
 
74773
class WinTypeKeywords;
 
74774
class WinFriend;
30660
74775
class ExtAC;
30661
74776
class ExtACBuilderCoupling;
30662
74777
class ExtACSyntaxCoupling;
30663
74778
class ExtACTree;
30664
74779
class ExtACKeywords;
30665
 
class WinAsm;
30666
 
class WinDeclSpecs;
30667
 
class WinMemberExplSpec;
30668
 
class WinTypeKeywords;
 
74780
class ExtGnu;
30669
74781
class PragmaOnceUnitState;
30670
74782
class PragmaOnce;
30671
 
class CCExprResolve;
30672
 
class CExprResolve;
 
74783
class CMatchSyntax;
30673
74784
namespace Puma {
30674
74785
 
30675
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74786
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30676
74787
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
30677
 
#line 30678 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74788
#line 74789 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74789
  friend class ::CCExprResolve;
 
74790
  friend class ::CExprResolve;
30678
74791
  friend class ::WinIfExists;
30679
74792
  friend class ::WinImportHandler;
30680
74793
  friend class ::WinMacros;
30681
 
  friend class ::CMatchSyntax;
30682
 
  friend class ::ExtGnu;
 
74794
  friend class ::WinAsm;
 
74795
  friend class ::WinDeclSpecs;
 
74796
  friend class ::WinMemberExplSpec;
 
74797
  friend class ::WinTypeKeywords;
 
74798
  friend class ::WinFriend;
30683
74799
  friend class ::ExtAC;
30684
74800
  friend class ::ExtACBuilderCoupling;
30685
74801
  friend class ::ExtACSyntaxCoupling;
30686
74802
  friend class ::ExtACTree;
30687
74803
  friend class ::ExtACKeywords;
30688
 
  friend class ::WinAsm;
30689
 
  friend class ::WinDeclSpecs;
30690
 
  friend class ::WinMemberExplSpec;
30691
 
  friend class ::WinTypeKeywords;
 
74804
  friend class ::ExtGnu;
30692
74805
  friend class ::PragmaOnceUnitState;
30693
74806
  friend class ::PragmaOnce;
30694
 
  friend class ::CCExprResolve;
30695
 
  friend class ::CExprResolve;
 
74807
  friend class ::CMatchSyntax;
30696
74808
 
30697
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74809
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30698
74810
 
30699
74811
  CTree *sons[2]; // key, name
30700
74812
  
30701
74813
public:
30702
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
74814
  /** Constructor.
 
74815
   *  \param k The 'class' or 'struct' keyword.
 
74816
   *  \param n The class name. */
 
74817
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
74818
  /** Get the identifier for this node type. Can be compared with NodeName(). */
30703
74819
  static const char *NodeId ();
 
74820
  /** Get the name of the node. Can be compared with NodeId(). */
30704
74821
  const char *NodeName () const { return NodeId (); }
 
74822
  /** Get the number of sons. */
30705
74823
  int Sons () const { return 2; }
 
74824
  /** Get the n-th son.
 
74825
   *  \param n The index of the son.
 
74826
   *  \return The n-th son or NULL. */
30706
74827
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
74828
  /** Get the class name. */
30707
74829
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
74830
  /** Get the semantic information object. */
30708
74831
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
74832
  /** Replace a son.
 
74833
   *  \param old_son The son to replace.
 
74834
   *  \param new_son The new son. */
30709
74835
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30710
74836
    CTree::ReplaceSon (sons, 2, old_son, new_son);
30711
74837
  }
30712
74838
};
30713
74839
 
 
74840
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
74841
 *  Tree node representing a union specifier, e.g. union X. */
30714
74842
 
30715
 
#line 30716 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74843
#line 74844 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
30716
74844
} // closed Puma
 
74845
class CCExprResolve;
 
74846
class CExprResolve;
30717
74847
class WinIfExists;
30718
74848
class WinImportHandler;
30719
74849
class WinMacros;
30720
 
class CMatchSyntax;
30721
 
class ExtGnu;
 
74850
class WinAsm;
 
74851
class WinDeclSpecs;
 
74852
class WinMemberExplSpec;
 
74853
class WinTypeKeywords;
 
74854
class WinFriend;
30722
74855
class ExtAC;
30723
74856
class ExtACBuilderCoupling;
30724
74857
class ExtACSyntaxCoupling;
30725
74858
class ExtACTree;
30726
74859
class ExtACKeywords;
30727
 
class WinAsm;
30728
 
class WinDeclSpecs;
30729
 
class WinMemberExplSpec;
30730
 
class WinTypeKeywords;
 
74860
class ExtGnu;
30731
74861
class PragmaOnceUnitState;
30732
74862
class PragmaOnce;
30733
 
class CCExprResolve;
30734
 
class CExprResolve;
 
74863
class CMatchSyntax;
30735
74864
namespace Puma {
30736
74865
 
30737
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74866
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30738
74867
class CT_UnionSpec : public CT_ClassSpec {
30739
 
#line 30740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74868
#line 74869 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74869
  friend class ::CCExprResolve;
 
74870
  friend class ::CExprResolve;
30740
74871
  friend class ::WinIfExists;
30741
74872
  friend class ::WinImportHandler;
30742
74873
  friend class ::WinMacros;
30743
 
  friend class ::CMatchSyntax;
30744
 
  friend class ::ExtGnu;
 
74874
  friend class ::WinAsm;
 
74875
  friend class ::WinDeclSpecs;
 
74876
  friend class ::WinMemberExplSpec;
 
74877
  friend class ::WinTypeKeywords;
 
74878
  friend class ::WinFriend;
30745
74879
  friend class ::ExtAC;
30746
74880
  friend class ::ExtACBuilderCoupling;
30747
74881
  friend class ::ExtACSyntaxCoupling;
30748
74882
  friend class ::ExtACTree;
30749
74883
  friend class ::ExtACKeywords;
30750
 
  friend class ::WinAsm;
30751
 
  friend class ::WinDeclSpecs;
30752
 
  friend class ::WinMemberExplSpec;
30753
 
  friend class ::WinTypeKeywords;
 
74884
  friend class ::ExtGnu;
30754
74885
  friend class ::PragmaOnceUnitState;
30755
74886
  friend class ::PragmaOnce;
30756
 
  friend class ::CCExprResolve;
30757
 
  friend class ::CExprResolve;
 
74887
  friend class ::CMatchSyntax;
30758
74888
 
30759
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74889
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30760
74890
 
30761
74891
public:
 
74892
  /** Constructor.
 
74893
   *  \param k The 'union' keyword.
 
74894
   *  \param n The name of the union. */
30762
74895
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
74896
  /** Get the identifier for this node type. Can be compared with NodeName(). */
30763
74897
  static const char *NodeId ();
 
74898
  /** Get the name of the node. Can be compared with NodeId(). */
30764
74899
  const char *NodeName () const { return NodeId (); }
30765
74900
};
30766
74901
 
 
74902
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
74903
 *  Tree node representing an enumeration specifier, e.g. enum X. */
30767
74904
 
30768
 
#line 30769 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74905
#line 74906 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
30769
74906
} // closed Puma
 
74907
class CCExprResolve;
 
74908
class CExprResolve;
30770
74909
class WinIfExists;
30771
74910
class WinImportHandler;
30772
74911
class WinMacros;
30773
 
class CMatchSyntax;
30774
 
class ExtGnu;
 
74912
class WinAsm;
 
74913
class WinDeclSpecs;
 
74914
class WinMemberExplSpec;
 
74915
class WinTypeKeywords;
 
74916
class WinFriend;
30775
74917
class ExtAC;
30776
74918
class ExtACBuilderCoupling;
30777
74919
class ExtACSyntaxCoupling;
30778
74920
class ExtACTree;
30779
74921
class ExtACKeywords;
30780
 
class WinAsm;
30781
 
class WinDeclSpecs;
30782
 
class WinMemberExplSpec;
30783
 
class WinTypeKeywords;
 
74922
class ExtGnu;
30784
74923
class PragmaOnceUnitState;
30785
74924
class PragmaOnce;
30786
 
class CCExprResolve;
30787
 
class CExprResolve;
 
74925
class CMatchSyntax;
30788
74926
namespace Puma {
30789
74927
 
30790
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74928
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30791
74929
class CT_EnumSpec : public CT_ClassSpec {
30792
 
#line 30793 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74930
#line 74931 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74931
  friend class ::CCExprResolve;
 
74932
  friend class ::CExprResolve;
30793
74933
  friend class ::WinIfExists;
30794
74934
  friend class ::WinImportHandler;
30795
74935
  friend class ::WinMacros;
30796
 
  friend class ::CMatchSyntax;
30797
 
  friend class ::ExtGnu;
 
74936
  friend class ::WinAsm;
 
74937
  friend class ::WinDeclSpecs;
 
74938
  friend class ::WinMemberExplSpec;
 
74939
  friend class ::WinTypeKeywords;
 
74940
  friend class ::WinFriend;
30798
74941
  friend class ::ExtAC;
30799
74942
  friend class ::ExtACBuilderCoupling;
30800
74943
  friend class ::ExtACSyntaxCoupling;
30801
74944
  friend class ::ExtACTree;
30802
74945
  friend class ::ExtACKeywords;
30803
 
  friend class ::WinAsm;
30804
 
  friend class ::WinDeclSpecs;
30805
 
  friend class ::WinMemberExplSpec;
30806
 
  friend class ::WinTypeKeywords;
 
74946
  friend class ::ExtGnu;
30807
74947
  friend class ::PragmaOnceUnitState;
30808
74948
  friend class ::PragmaOnce;
30809
 
  friend class ::CCExprResolve;
30810
 
  friend class ::CExprResolve;
 
74949
  friend class ::CMatchSyntax;
30811
74950
 
30812
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74951
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30813
74952
 
30814
74953
public:
 
74954
  /** Constructor.
 
74955
   *  \param k The 'enum' keyword. 
 
74956
   *  \param n The name of the enumeration. */
30815
74957
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
74958
  /** Get the identifier for this node type. Can be compared with NodeName(). */
30816
74959
  static const char *NodeId ();
 
74960
  /** Get the name of the node. Can be compared with NodeId(). */
30817
74961
  const char *NodeName () const { return NodeId (); }
30818
74962
};
30819
74963
 
 
74964
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
74965
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
30820
74966
 
30821
 
#line 30822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74967
#line 74968 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
30822
74968
} // closed Puma
 
74969
class CCExprResolve;
 
74970
class CExprResolve;
30823
74971
class WinIfExists;
30824
74972
class WinImportHandler;
30825
74973
class WinMacros;
30826
 
class CMatchSyntax;
30827
 
class ExtGnu;
 
74974
class WinAsm;
 
74975
class WinDeclSpecs;
 
74976
class WinMemberExplSpec;
 
74977
class WinTypeKeywords;
 
74978
class WinFriend;
30828
74979
class ExtAC;
30829
74980
class ExtACBuilderCoupling;
30830
74981
class ExtACSyntaxCoupling;
30831
74982
class ExtACTree;
30832
74983
class ExtACKeywords;
30833
 
class WinAsm;
30834
 
class WinDeclSpecs;
30835
 
class WinMemberExplSpec;
30836
 
class WinTypeKeywords;
 
74984
class ExtGnu;
30837
74985
class PragmaOnceUnitState;
30838
74986
class PragmaOnce;
30839
 
class CCExprResolve;
30840
 
class CExprResolve;
 
74987
class CMatchSyntax;
30841
74988
namespace Puma {
30842
74989
 
30843
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74990
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30844
74991
class CT_ExceptionSpec : public CT_DeclSpec {
30845
 
#line 30846 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
74992
#line 74993 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
74993
  friend class ::CCExprResolve;
 
74994
  friend class ::CExprResolve;
30846
74995
  friend class ::WinIfExists;
30847
74996
  friend class ::WinImportHandler;
30848
74997
  friend class ::WinMacros;
30849
 
  friend class ::CMatchSyntax;
30850
 
  friend class ::ExtGnu;
 
74998
  friend class ::WinAsm;
 
74999
  friend class ::WinDeclSpecs;
 
75000
  friend class ::WinMemberExplSpec;
 
75001
  friend class ::WinTypeKeywords;
 
75002
  friend class ::WinFriend;
30851
75003
  friend class ::ExtAC;
30852
75004
  friend class ::ExtACBuilderCoupling;
30853
75005
  friend class ::ExtACSyntaxCoupling;
30854
75006
  friend class ::ExtACTree;
30855
75007
  friend class ::ExtACKeywords;
30856
 
  friend class ::WinAsm;
30857
 
  friend class ::WinDeclSpecs;
30858
 
  friend class ::WinMemberExplSpec;
30859
 
  friend class ::WinTypeKeywords;
 
75008
  friend class ::ExtGnu;
30860
75009
  friend class ::PragmaOnceUnitState;
30861
75010
  friend class ::PragmaOnce;
30862
 
  friend class ::CCExprResolve;
30863
 
  friend class ::CExprResolve;
 
75011
  friend class ::CMatchSyntax;
30864
75012
 
30865
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75013
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30866
75014
 
30867
75015
  CTree *sons[2]; // throw, type_id_list
30868
75016
  
30869
75017
public:
30870
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
75018
  /** Constructor.
 
75019
   *  \param k The 'throw' keyword.
 
75020
   *  \param l The type list for the exception type to throw. */
 
75021
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
75022
  /** Get the identifier for this node type. Can be compared with NodeName(). */
30871
75023
  static const char *NodeId ();
 
75024
  /** Get the name of the node. Can be compared with NodeId(). */
30872
75025
  const char *NodeName () const { return NodeId (); }
 
75026
  /** Get the number of sons. */
30873
75027
  int Sons () const { return 2; }
 
75028
  /** Get the n-th son.
 
75029
   *  \param n The index of the son.
 
75030
   *  \return The n-th son or NULL. */
30874
75031
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
75032
  /** Get the exception type list. */
30875
75033
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
75034
  /** Replace a son.
 
75035
   *  \param old_son The son to replace.
 
75036
   *  \param new_son The new son. */
30876
75037
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30877
75038
    CTree::ReplaceSon (sons, 2, old_son, new_son);
30878
75039
  }
30884
75045
/*                                                                           */
30885
75046
/*****************************************************************************/
30886
75047
 
 
75048
/** \class CT_Decl CTree.h Puma/CTree.h
 
75049
 *  Base class for all tree nodes representing declarations. */
30887
75050
 
30888
 
#line 30889 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75051
#line 75052 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
30889
75052
} // closed Puma
 
75053
class CCExprResolve;
 
75054
class CExprResolve;
30890
75055
class WinIfExists;
30891
75056
class WinImportHandler;
30892
75057
class WinMacros;
30893
 
class CMatchSyntax;
30894
 
class ExtGnu;
 
75058
class WinAsm;
 
75059
class WinDeclSpecs;
 
75060
class WinMemberExplSpec;
 
75061
class WinTypeKeywords;
 
75062
class WinFriend;
30895
75063
class ExtAC;
30896
75064
class ExtACBuilderCoupling;
30897
75065
class ExtACSyntaxCoupling;
30898
75066
class ExtACTree;
30899
75067
class ExtACKeywords;
30900
 
class WinAsm;
30901
 
class WinDeclSpecs;
30902
 
class WinMemberExplSpec;
30903
 
class WinTypeKeywords;
 
75068
class ExtGnu;
30904
75069
class PragmaOnceUnitState;
30905
75070
class PragmaOnce;
30906
 
class CCExprResolve;
30907
 
class CExprResolve;
 
75071
class CMatchSyntax;
30908
75072
namespace Puma {
30909
75073
 
30910
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75074
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30911
75075
class CT_Decl : public CTree {
30912
 
#line 30913 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75076
#line 75077 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
75077
  friend class ::CCExprResolve;
 
75078
  friend class ::CExprResolve;
30913
75079
  friend class ::WinIfExists;
30914
75080
  friend class ::WinImportHandler;
30915
75081
  friend class ::WinMacros;
30916
 
  friend class ::CMatchSyntax;
30917
 
  friend class ::ExtGnu;
 
75082
  friend class ::WinAsm;
 
75083
  friend class ::WinDeclSpecs;
 
75084
  friend class ::WinMemberExplSpec;
 
75085
  friend class ::WinTypeKeywords;
 
75086
  friend class ::WinFriend;
30918
75087
  friend class ::ExtAC;
30919
75088
  friend class ::ExtACBuilderCoupling;
30920
75089
  friend class ::ExtACSyntaxCoupling;
30921
75090
  friend class ::ExtACTree;
30922
75091
  friend class ::ExtACKeywords;
30923
 
  friend class ::WinAsm;
30924
 
  friend class ::WinDeclSpecs;
30925
 
  friend class ::WinMemberExplSpec;
30926
 
  friend class ::WinTypeKeywords;
 
75092
  friend class ::ExtGnu;
30927
75093
  friend class ::PragmaOnceUnitState;
30928
75094
  friend class ::PragmaOnce;
30929
 
  friend class ::CCExprResolve;
30930
 
  friend class ::CExprResolve;
 
75095
  friend class ::CMatchSyntax;
30931
75096
 
30932
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75097
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30933
75098
 
30934
75099
  CT_LinkageSpec *_linkage;
 
75100
  
30935
75101
protected:
 
75102
  /** Constructor. */
30936
75103
  CT_Decl () : _linkage (0) {}
 
75104
  
30937
75105
public:
 
75106
  /** Set the linkage of the declared entity.
 
75107
   *  \param l The linkage specifiers. */
30938
75108
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
75109
  /** Get the linkage specifiers. */
30939
75110
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
75111
  /** Get this. */
 
75112
  virtual CT_Decl *IsDeclaration () { return this; }
30940
75113
};
30941
75114
 
 
75115
/** \class CT_Program CTree.h Puma/CTree.h
 
75116
 *  Root node of C/C++ syntax tree. */
30942
75117
 
30943
 
#line 30944 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75118
#line 75119 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
30944
75119
} // closed Puma
 
75120
class CCExprResolve;
 
75121
class CExprResolve;
30945
75122
class WinIfExists;
30946
75123
class WinImportHandler;
30947
75124
class WinMacros;
30948
 
class CMatchSyntax;
30949
 
class ExtGnu;
 
75125
class WinAsm;
 
75126
class WinDeclSpecs;
 
75127
class WinMemberExplSpec;
 
75128
class WinTypeKeywords;
 
75129
class WinFriend;
30950
75130
class ExtAC;
30951
75131
class ExtACBuilderCoupling;
30952
75132
class ExtACSyntaxCoupling;
30953
75133
class ExtACTree;
30954
75134
class ExtACKeywords;
30955
 
class WinAsm;
30956
 
class WinDeclSpecs;
30957
 
class WinMemberExplSpec;
30958
 
class WinTypeKeywords;
 
75135
class ExtGnu;
30959
75136
class PragmaOnceUnitState;
30960
75137
class PragmaOnce;
30961
 
class CCExprResolve;
30962
 
class CExprResolve;
 
75138
class CMatchSyntax;
30963
75139
namespace Puma {
30964
75140
 
30965
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75141
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30966
75142
class CT_Program : public CT_DeclList, public CSemScope {
30967
 
#line 30968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75143
#line 75144 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
75144
  friend class ::CCExprResolve;
 
75145
  friend class ::CExprResolve;
30968
75146
  friend class ::WinIfExists;
30969
75147
  friend class ::WinImportHandler;
30970
75148
  friend class ::WinMacros;
30971
 
  friend class ::CMatchSyntax;
30972
 
  friend class ::ExtGnu;
 
75149
  friend class ::WinAsm;
 
75150
  friend class ::WinDeclSpecs;
 
75151
  friend class ::WinMemberExplSpec;
 
75152
  friend class ::WinTypeKeywords;
 
75153
  friend class ::WinFriend;
30973
75154
  friend class ::ExtAC;
30974
75155
  friend class ::ExtACBuilderCoupling;
30975
75156
  friend class ::ExtACSyntaxCoupling;
30976
75157
  friend class ::ExtACTree;
30977
75158
  friend class ::ExtACKeywords;
30978
 
  friend class ::WinAsm;
30979
 
  friend class ::WinDeclSpecs;
30980
 
  friend class ::WinMemberExplSpec;
30981
 
  friend class ::WinTypeKeywords;
 
75159
  friend class ::ExtGnu;
30982
75160
  friend class ::PragmaOnceUnitState;
30983
75161
  friend class ::PragmaOnce;
30984
 
  friend class ::CCExprResolve;
30985
 
  friend class ::CExprResolve;
 
75162
  friend class ::CMatchSyntax;
30986
75163
 
30987
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75164
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
30988
75165
 
30989
75166
public:
 
75167
  /** Constructor.
 
75168
   *  \param size The initial number of declarations in the program.
 
75169
   *  \param incr The initial increment count. */
30990
75170
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
75171
  /** Get the identifier for this node type. Can be compared with NodeName(). */
30991
75172
  static const char *NodeId ();
 
75173
  /** Get the name of the node. Can be compared with NodeId(). */
30992
75174
  const char *NodeName () const { return NodeId (); }
 
75175
  /** Get the semantic scope object. */
 
75176
  CSemScope *SemScope () const { return (CSemScope*)this; }
30993
75177
};
30994
75178
   
 
75179
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
75180
 *  Tree node representing an object declaration, e.g. int *i. */
30995
75181
 
30996
 
#line 30997 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75182
#line 75183 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
30997
75183
} // closed Puma
 
75184
class CCExprResolve;
 
75185
class CExprResolve;
30998
75186
class WinIfExists;
30999
75187
class WinImportHandler;
31000
75188
class WinMacros;
31001
 
class CMatchSyntax;
31002
 
class ExtGnu;
 
75189
class WinAsm;
 
75190
class WinDeclSpecs;
 
75191
class WinMemberExplSpec;
 
75192
class WinTypeKeywords;
 
75193
class WinFriend;
31003
75194
class ExtAC;
31004
75195
class ExtACBuilderCoupling;
31005
75196
class ExtACSyntaxCoupling;
31006
75197
class ExtACTree;
31007
75198
class ExtACKeywords;
31008
 
class WinAsm;
31009
 
class WinDeclSpecs;
31010
 
class WinMemberExplSpec;
31011
 
class WinTypeKeywords;
 
75199
class ExtGnu;
31012
75200
class PragmaOnceUnitState;
31013
75201
class PragmaOnce;
31014
 
class CCExprResolve;
31015
 
class CExprResolve;
 
75202
class CMatchSyntax;
31016
75203
namespace Puma {
31017
75204
 
31018
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75205
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31019
75206
class CT_ObjDecl : public CT_Decl {
31020
 
#line 31021 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75207
#line 75208 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
75208
  friend class ::CCExprResolve;
 
75209
  friend class ::CExprResolve;
31021
75210
  friend class ::WinIfExists;
31022
75211
  friend class ::WinImportHandler;
31023
75212
  friend class ::WinMacros;
31024
 
  friend class ::CMatchSyntax;
31025
 
  friend class ::ExtGnu;
 
75213
  friend class ::WinAsm;
 
75214
  friend class ::WinDeclSpecs;
 
75215
  friend class ::WinMemberExplSpec;
 
75216
  friend class ::WinTypeKeywords;
 
75217
  friend class ::WinFriend;
31026
75218
  friend class ::ExtAC;
31027
75219
  friend class ::ExtACBuilderCoupling;
31028
75220
  friend class ::ExtACSyntaxCoupling;
31029
75221
  friend class ::ExtACTree;
31030
75222
  friend class ::ExtACKeywords;
31031
 
  friend class ::WinAsm;
31032
 
  friend class ::WinDeclSpecs;
31033
 
  friend class ::WinMemberExplSpec;
31034
 
  friend class ::WinTypeKeywords;
 
75223
  friend class ::ExtGnu;
31035
75224
  friend class ::PragmaOnceUnitState;
31036
75225
  friend class ::PragmaOnce;
31037
 
  friend class ::CCExprResolve;
31038
 
  friend class ::CExprResolve;
 
75226
  friend class ::CMatchSyntax;
31039
75227
 
31040
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75228
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31041
75229
 
31042
75230
  CTree *sons[3]; // declspecs, declarators, colon
31043
75231
 
31044
75232
public:
 
75233
  /** Constructor.
 
75234
   *  \param dsl The declaration specifier sequence.
 
75235
   *  \param dl The declarator list.
 
75236
   *  \param c Optional colon. */
31045
75237
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
31046
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
75238
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
31047
75239
  }
 
75240
  /** Get the identifier for this node type. Can be compared with NodeName(). */
31048
75241
  static const char *NodeId ();
 
75242
  /** Get the name of the node. Can be compared with NodeId(). */
31049
75243
  const char *NodeName () const { return NodeId (); }
 
75244
  /** Get the number of sons. */
31050
75245
  int Sons () const { return 3; }
 
75246
  /** Get the n-th son.
 
75247
   *  \param n The index of the son.
 
75248
   *  \return The n-th son or NULL. */
31051
75249
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
75250
  /** Get the declaration specifier sequence. */
31052
75251
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
75252
  /** Get the declarator list. */
31053
75253
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
75254
  /** Replace a son.
 
75255
   *  \param old_son The son to replace.
 
75256
   *  \param new_son The new son. */
31054
75257
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31055
75258
    CTree::ReplaceSon (sons, 3, old_son, new_son);
31056
75259
  }
31057
75260
};
31058
75261
 
 
75262
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
75263
 *  Tree node representing a template declaration. */
31059
75264
 
31060
 
#line 31061 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75265
#line 75266 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
31061
75266
} // closed Puma
 
75267
class CCExprResolve;
 
75268
class CExprResolve;
31062
75269
class WinIfExists;
31063
75270
class WinImportHandler;
31064
75271
class WinMacros;
31065
 
class CMatchSyntax;
31066
 
class ExtGnu;
 
75272
class WinAsm;
 
75273
class WinDeclSpecs;
 
75274
class WinMemberExplSpec;
 
75275
class WinTypeKeywords;
 
75276
class WinFriend;
31067
75277
class ExtAC;
31068
75278
class ExtACBuilderCoupling;
31069
75279
class ExtACSyntaxCoupling;
31070
75280
class ExtACTree;
31071
75281
class ExtACKeywords;
31072
 
class WinAsm;
31073
 
class WinDeclSpecs;
31074
 
class WinMemberExplSpec;
31075
 
class WinTypeKeywords;
 
75282
class ExtGnu;
31076
75283
class PragmaOnceUnitState;
31077
75284
class PragmaOnce;
31078
 
class CCExprResolve;
31079
 
class CExprResolve;
 
75285
class CMatchSyntax;
31080
75286
namespace Puma {
31081
75287
 
31082
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75288
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31083
75289
class CT_TemplateDecl : public CT_Decl, public CSemScope {
31084
 
#line 31085 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75290
#line 75291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
75291
  friend class ::CCExprResolve;
 
75292
  friend class ::CExprResolve;
31085
75293
  friend class ::WinIfExists;
31086
75294
  friend class ::WinImportHandler;
31087
75295
  friend class ::WinMacros;
31088
 
  friend class ::CMatchSyntax;
31089
 
  friend class ::ExtGnu;
 
75296
  friend class ::WinAsm;
 
75297
  friend class ::WinDeclSpecs;
 
75298
  friend class ::WinMemberExplSpec;
 
75299
  friend class ::WinTypeKeywords;
 
75300
  friend class ::WinFriend;
31090
75301
  friend class ::ExtAC;
31091
75302
  friend class ::ExtACBuilderCoupling;
31092
75303
  friend class ::ExtACSyntaxCoupling;
31093
75304
  friend class ::ExtACTree;
31094
75305
  friend class ::ExtACKeywords;
31095
 
  friend class ::WinAsm;
31096
 
  friend class ::WinDeclSpecs;
31097
 
  friend class ::WinMemberExplSpec;
31098
 
  friend class ::WinTypeKeywords;
 
75306
  friend class ::ExtGnu;
31099
75307
  friend class ::PragmaOnceUnitState;
31100
75308
  friend class ::PragmaOnce;
31101
 
  friend class ::CCExprResolve;
31102
 
  friend class ::CExprResolve;
 
75309
  friend class ::CMatchSyntax;
31103
75310
 
31104
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75311
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31105
75312
 
31106
75313
  CTree *sons[3]; // export, param_list, decl
31107
75314
 
31108
75315
public:
 
75316
  /** Constructor.
 
75317
   *  \param e Optional 'export' keyword. 
 
75318
   *  \param p The template parameter list.
 
75319
   *  \param d The class or function declaration. */
31109
75320
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
31110
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
75321
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
31111
75322
  }
 
75323
  /** Get the identifier for this node type. Can be compared with NodeName(). */
31112
75324
  static const char *NodeId ();
 
75325
  /** Get the name of the node. Can be compared with NodeId(). */
31113
75326
  const char *NodeName () const { return NodeId (); }
 
75327
  /** Get the number of sons. */
31114
75328
  int Sons () const { return CTree::Sons (sons, 3); }
 
75329
  /** Get the n-th son.
 
75330
   *  \param n The index of the son.
 
75331
   *  \return The n-th son or NULL. */
31115
75332
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
75333
  /** Replace a son.
 
75334
   *  \param old_son The son to replace.
 
75335
   *  \param new_son The new son. */
31116
75336
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31117
75337
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
31118
75338
  }
 
75339
  /** Get the 'export' keyword. */
31119
75340
  CTree *Export () const { return sons[0]; }
 
75341
  /** Get the template parameter list. */
31120
75342
  CT_TemplateParamList *Parameters () const { 
31121
75343
    return (CT_TemplateParamList*)sons[1]; 
31122
75344
  }
 
75345
  /** Get the class or function declaration. */
31123
75346
  CTree *Declaration () const { return sons[2]; }
 
75347
  /** Get the semantic scope object. */
 
75348
  CSemScope *SemScope () const { return (CSemScope*)this; }
31124
75349
};
31125
75350
 
 
75351
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
75352
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
31126
75353
 
31127
 
#line 31128 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75354
#line 75355 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
31128
75355
} // closed Puma
 
75356
class CCExprResolve;
 
75357
class CExprResolve;
31129
75358
class WinIfExists;
31130
75359
class WinImportHandler;
31131
75360
class WinMacros;
31132
 
class CMatchSyntax;
31133
 
class ExtGnu;
 
75361
class WinAsm;
 
75362
class WinDeclSpecs;
 
75363
class WinMemberExplSpec;
 
75364
class WinTypeKeywords;
 
75365
class WinFriend;
31134
75366
class ExtAC;
31135
75367
class ExtACBuilderCoupling;
31136
75368
class ExtACSyntaxCoupling;
31137
75369
class ExtACTree;
31138
75370
class ExtACKeywords;
31139
 
class WinAsm;
31140
 
class WinDeclSpecs;
31141
 
class WinMemberExplSpec;
31142
 
class WinTypeKeywords;
 
75371
class ExtGnu;
31143
75372
class PragmaOnceUnitState;
31144
75373
class PragmaOnce;
31145
 
class CCExprResolve;
31146
 
class CExprResolve;
 
75374
class CMatchSyntax;
31147
75375
namespace Puma {
31148
75376
 
31149
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75377
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31150
75378
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
31151
 
#line 31152 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75379
#line 75380 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
75380
  friend class ::CCExprResolve;
 
75381
  friend class ::CExprResolve;
31152
75382
  friend class ::WinIfExists;
31153
75383
  friend class ::WinImportHandler;
31154
75384
  friend class ::WinMacros;
31155
 
  friend class ::CMatchSyntax;
31156
 
  friend class ::ExtGnu;
 
75385
  friend class ::WinAsm;
 
75386
  friend class ::WinDeclSpecs;
 
75387
  friend class ::WinMemberExplSpec;
 
75388
  friend class ::WinTypeKeywords;
 
75389
  friend class ::WinFriend;
31157
75390
  friend class ::ExtAC;
31158
75391
  friend class ::ExtACBuilderCoupling;
31159
75392
  friend class ::ExtACSyntaxCoupling;
31160
75393
  friend class ::ExtACTree;
31161
75394
  friend class ::ExtACKeywords;
31162
 
  friend class ::WinAsm;
31163
 
  friend class ::WinDeclSpecs;
31164
 
  friend class ::WinMemberExplSpec;
31165
 
  friend class ::WinTypeKeywords;
 
75395
  friend class ::ExtGnu;
31166
75396
  friend class ::PragmaOnceUnitState;
31167
75397
  friend class ::PragmaOnce;
31168
 
  friend class ::CCExprResolve;
31169
 
  friend class ::CExprResolve;
 
75398
  friend class ::CMatchSyntax;
31170
75399
 
31171
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75400
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31172
75401
 
31173
75402
protected:
 
75403
  /** Constructor. */
31174
75404
  CT_TemplateParamDecl () {}
31175
75405
  
31176
75406
public:
 
75407
  /** Get the template default argument. */
31177
75408
  virtual CT_ExprList *DefaultArgument () const = 0;
 
75409
  /** Get the semantic information object. */
31178
75410
  CSemObject *SemObject () const { return (CSemObject*)this; }
31179
75411
};
31180
75412
 
31181
75413
 
31182
 
#line 31183 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75414
#line 75415 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
31183
75415
} // closed Puma
 
75416
class CCExprResolve;
 
75417
class CExprResolve;
31184
75418
class WinIfExists;
31185
75419
class WinImportHandler;
31186
75420
class WinMacros;
31187
 
class CMatchSyntax;
31188
 
class ExtGnu;
 
75421
class WinAsm;
 
75422
class WinDeclSpecs;
 
75423
class WinMemberExplSpec;
 
75424
class WinTypeKeywords;
 
75425
class WinFriend;
31189
75426
class ExtAC;
31190
75427
class ExtACBuilderCoupling;
31191
75428
class ExtACSyntaxCoupling;
31192
75429
class ExtACTree;
31193
75430
class ExtACKeywords;
31194
 
class WinAsm;
31195
 
class WinDeclSpecs;
31196
 
class WinMemberExplSpec;
31197
 
class WinTypeKeywords;
 
75431
class ExtGnu;
31198
75432
class PragmaOnceUnitState;
31199
75433
class PragmaOnce;
31200
 
class CCExprResolve;
31201
 
class CExprResolve;
 
75434
class CMatchSyntax;
31202
75435
namespace Puma {
31203
75436
 
31204
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75437
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31205
75438
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
31206
 
#line 31207 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75439
#line 75440 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
75440
  friend class ::CCExprResolve;
 
75441
  friend class ::CExprResolve;
31207
75442
  friend class ::WinIfExists;
31208
75443
  friend class ::WinImportHandler;
31209
75444
  friend class ::WinMacros;
31210
 
  friend class ::CMatchSyntax;
31211
 
  friend class ::ExtGnu;
 
75445
  friend class ::WinAsm;
 
75446
  friend class ::WinDeclSpecs;
 
75447
  friend class ::WinMemberExplSpec;
 
75448
  friend class ::WinTypeKeywords;
 
75449
  friend class ::WinFriend;
31212
75450
  friend class ::ExtAC;
31213
75451
  friend class ::ExtACBuilderCoupling;
31214
75452
  friend class ::ExtACSyntaxCoupling;
31215
75453
  friend class ::ExtACTree;
31216
75454
  friend class ::ExtACKeywords;
31217
 
  friend class ::WinAsm;
31218
 
  friend class ::WinDeclSpecs;
31219
 
  friend class ::WinMemberExplSpec;
31220
 
  friend class ::WinTypeKeywords;
 
75455
  friend class ::ExtGnu;
31221
75456
  friend class ::PragmaOnceUnitState;
31222
75457
  friend class ::PragmaOnce;
31223
 
  friend class ::CCExprResolve;
31224
 
  friend class ::CExprResolve;
 
75458
  friend class ::CMatchSyntax;
31225
75459
 
31226
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75460
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31227
75461
 
31228
75462
  CTree *sons[3]; // declspecs, declarator, init
31229
75463
 
31230
75464
public:
31231
75465
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
31232
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
75466
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
31233
75467
  }
 
75468
  /** Get the identifier for this node type. Can be compared with NodeName(). */
31234
75469
  static const char *NodeId ();
 
75470
  /** Get the name of the node. Can be compared with NodeId(). */
31235
75471
  const char *NodeName () const { return NodeId (); }
 
75472
  /** Get the number of sons. */
31236
75473
  int Sons () const { return CTree::Sons (sons, 3); }
 
75474
  /** Get the n-th son.
 
75475
   *  \param n The index of the son.
 
75476
   *  \return The n-th son or NULL. */
31237
75477
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
31238
75478
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
31239
75479
  CTree *Declarator () const { return sons[1]; }
31240
75480
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
31241
75481
  CSemObject *SemObject () const { return (CSemObject*)this; }
31242
 
  void Initializer (CTree *i) { sons[2] = i; }
 
75482
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
75483
  /** Replace a son.
 
75484
   *  \param old_son The son to replace.
 
75485
   *  \param new_son The new son. */
31243
75486
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31244
75487
    CTree::ReplaceSon (sons, 3, old_son, new_son);
31245
75488
  }
31246
75489
};
31247
75490
 
31248
75491
 
31249
 
#line 31250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75492
#line 75493 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
31250
75493
} // closed Puma
 
75494
class CCExprResolve;
 
75495
class CExprResolve;
31251
75496
class WinIfExists;
31252
75497
class WinImportHandler;
31253
75498
class WinMacros;
31254
 
class CMatchSyntax;
31255
 
class ExtGnu;
 
75499
class WinAsm;
 
75500
class WinDeclSpecs;
 
75501
class WinMemberExplSpec;
 
75502
class WinTypeKeywords;
 
75503
class WinFriend;
31256
75504
class ExtAC;
31257
75505
class ExtACBuilderCoupling;
31258
75506
class ExtACSyntaxCoupling;
31259
75507
class ExtACTree;
31260
75508
class ExtACKeywords;
31261
 
class WinAsm;
31262
 
class WinDeclSpecs;
31263
 
class WinMemberExplSpec;
31264
 
class WinTypeKeywords;
 
75509
class ExtGnu;
31265
75510
class PragmaOnceUnitState;
31266
75511
class PragmaOnce;
31267
 
class CCExprResolve;
31268
 
class CExprResolve;
 
75512
class CMatchSyntax;
31269
75513
namespace Puma {
31270
75514
 
31271
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75515
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31272
75516
class CT_TypeParamDecl : public CT_TemplateParamDecl {
31273
 
#line 31274 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75517
#line 75518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
75518
  friend class ::CCExprResolve;
 
75519
  friend class ::CExprResolve;
31274
75520
  friend class ::WinIfExists;
31275
75521
  friend class ::WinImportHandler;
31276
75522
  friend class ::WinMacros;
31277
 
  friend class ::CMatchSyntax;
31278
 
  friend class ::ExtGnu;
 
75523
  friend class ::WinAsm;
 
75524
  friend class ::WinDeclSpecs;
 
75525
  friend class ::WinMemberExplSpec;
 
75526
  friend class ::WinTypeKeywords;
 
75527
  friend class ::WinFriend;
31279
75528
  friend class ::ExtAC;
31280
75529
  friend class ::ExtACBuilderCoupling;
31281
75530
  friend class ::ExtACSyntaxCoupling;
31282
75531
  friend class ::ExtACTree;
31283
75532
  friend class ::ExtACKeywords;
31284
 
  friend class ::WinAsm;
31285
 
  friend class ::WinDeclSpecs;
31286
 
  friend class ::WinMemberExplSpec;
31287
 
  friend class ::WinTypeKeywords;
 
75533
  friend class ::ExtGnu;
31288
75534
  friend class ::PragmaOnceUnitState;
31289
75535
  friend class ::PragmaOnce;
31290
 
  friend class ::CCExprResolve;
31291
 
  friend class ::CExprResolve;
 
75536
  friend class ::CMatchSyntax;
31292
75537
 
31293
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75538
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31294
75539
 
31295
75540
  CTree *sons[4]; // params, key, id, init
31296
75541
 
31297
75542
public:
31298
75543
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
31299
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
75544
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
75545
    AddSon (sons[2], id); AddSon (sons[3], i);
31300
75546
  }
 
75547
  /** Get the identifier for this node type. Can be compared with NodeName(). */
31301
75548
  static const char *NodeId ();
 
75549
  /** Get the name of the node. Can be compared with NodeId(). */
31302
75550
  const char *NodeName () const { return NodeId (); }
 
75551
  /** Get the number of sons. */
31303
75552
  int Sons () const { return CTree::Sons (sons, 4); }
 
75553
  /** Get the n-th son.
 
75554
   *  \param n The index of the son.
 
75555
   *  \return The n-th son or NULL. */
31304
75556
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
31305
75557
  CT_TemplateParamList *Parameters () const { 
31306
75558
    return (CT_TemplateParamList*)sons[0]; 
31307
75559
  }
31308
75560
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
31309
75561
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
31310
 
  void Initializer (CTree *i) { sons[3] = i; }
 
75562
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
75563
  /** Replace a son.
 
75564
   *  \param old_son The son to replace.
 
75565
   *  \param new_son The new son. */
31311
75566
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31312
75567
    CTree::ReplaceSon (sons, 4, old_son, new_son);
31313
75568
  }
31314
75569
};
31315
75570
 
31316
75571
 
31317
 
#line 31318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75572
#line 75573 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
31318
75573
} // closed Puma
 
75574
class CCExprResolve;
 
75575
class CExprResolve;
31319
75576
class WinIfExists;
31320
75577
class WinImportHandler;
31321
75578
class WinMacros;
31322
 
class CMatchSyntax;
31323
 
class ExtGnu;
 
75579
class WinAsm;
 
75580
class WinDeclSpecs;
 
75581
class WinMemberExplSpec;
 
75582
class WinTypeKeywords;
 
75583
class WinFriend;
31324
75584
class ExtAC;
31325
75585
class ExtACBuilderCoupling;
31326
75586
class ExtACSyntaxCoupling;
31327
75587
class ExtACTree;
31328
75588
class ExtACKeywords;
31329
 
class WinAsm;
31330
 
class WinDeclSpecs;
31331
 
class WinMemberExplSpec;
31332
 
class WinTypeKeywords;
 
75589
class ExtGnu;
31333
75590
class PragmaOnceUnitState;
31334
75591
class PragmaOnce;
31335
 
class CCExprResolve;
31336
 
class CExprResolve;
 
75592
class CMatchSyntax;
31337
75593
namespace Puma {
31338
75594
 
31339
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75595
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31340
75596
class CT_EnumDef : public CT_Decl, public CSemObject {
31341
 
#line 31342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75597
#line 75598 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
75598
  friend class ::CCExprResolve;
 
75599
  friend class ::CExprResolve;
31342
75600
  friend class ::WinIfExists;
31343
75601
  friend class ::WinImportHandler;
31344
75602
  friend class ::WinMacros;
31345
 
  friend class ::CMatchSyntax;
31346
 
  friend class ::ExtGnu;
 
75603
  friend class ::WinAsm;
 
75604
  friend class ::WinDeclSpecs;
 
75605
  friend class ::WinMemberExplSpec;
 
75606
  friend class ::WinTypeKeywords;
 
75607
  friend class ::WinFriend;
31347
75608
  friend class ::ExtAC;
31348
75609
  friend class ::ExtACBuilderCoupling;
31349
75610
  friend class ::ExtACSyntaxCoupling;
31350
75611
  friend class ::ExtACTree;
31351
75612
  friend class ::ExtACKeywords;
31352
 
  friend class ::WinAsm;
31353
 
  friend class ::WinDeclSpecs;
31354
 
  friend class ::WinMemberExplSpec;
31355
 
  friend class ::WinTypeKeywords;
 
75613
  friend class ::ExtGnu;
31356
75614
  friend class ::PragmaOnceUnitState;
31357
75615
  friend class ::PragmaOnce;
31358
 
  friend class ::CCExprResolve;
31359
 
  friend class ::CExprResolve;
 
75616
  friend class ::CMatchSyntax;
31360
75617
 
31361
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75618
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31362
75619
 
31363
75620
  CTree *sons[3]; // key, name, enumerators
31364
75621
 
31365
75622
public:
31366
75623
  CT_EnumDef (CTree *k, CTree *n) {
31367
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
75624
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
31368
75625
  }
 
75626
  /** Get the identifier for this node type. Can be compared with NodeName(). */
31369
75627
  static const char *NodeId ();
 
75628
  /** Get the name of the node. Can be compared with NodeId(). */
31370
75629
  const char *NodeName () const { return NodeId (); }
 
75630
  /** Get the number of sons. */
31371
75631
  int Sons () const { return CTree::Sons (sons, 3); }
 
75632
  /** Get the n-th son.
 
75633
   *  \param n The index of the son.
 
75634
   *  \return The n-th son or NULL. */
31372
75635
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
31373
75636
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
31374
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
75637
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
31375
75638
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
75639
  /** Replace a son.
 
75640
   *  \param old_son The son to replace.
 
75641
   *  \param new_son The new son. */
31376
75642
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31377
75643
    CTree::ReplaceSon (sons, 3, old_son, new_son);
31378
75644
  }
31380
75646
};
31381
75647
 
31382
75648
 
31383
 
#line 31384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75649
#line 75650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
31384
75650
} // closed Puma
 
75651
class CCExprResolve;
 
75652
class CExprResolve;
31385
75653
class WinIfExists;
31386
75654
class WinImportHandler;
31387
75655
class WinMacros;
31388
 
class CMatchSyntax;
31389
 
class ExtGnu;
 
75656
class WinAsm;
 
75657
class WinDeclSpecs;
 
75658
class WinMemberExplSpec;
 
75659
class WinTypeKeywords;
 
75660
class WinFriend;
31390
75661
class ExtAC;
31391
75662
class ExtACBuilderCoupling;
31392
75663
class ExtACSyntaxCoupling;
31393
75664
class ExtACTree;
31394
75665
class ExtACKeywords;
31395
 
class WinAsm;
31396
 
class WinDeclSpecs;
31397
 
class WinMemberExplSpec;
31398
 
class WinTypeKeywords;
 
75666
class ExtGnu;
31399
75667
class PragmaOnceUnitState;
31400
75668
class PragmaOnce;
31401
 
class CCExprResolve;
31402
 
class CExprResolve;
 
75669
class CMatchSyntax;
31403
75670
namespace Puma {
31404
75671
 
31405
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75672
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31406
75673
class CT_Enumerator : public CT_Decl, public CSemObject {
31407
 
#line 31408 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75674
#line 75675 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
75675
  friend class ::CCExprResolve;
 
75676
  friend class ::CExprResolve;
31408
75677
  friend class ::WinIfExists;
31409
75678
  friend class ::WinImportHandler;
31410
75679
  friend class ::WinMacros;
31411
 
  friend class ::CMatchSyntax;
31412
 
  friend class ::ExtGnu;
 
75680
  friend class ::WinAsm;
 
75681
  friend class ::WinDeclSpecs;
 
75682
  friend class ::WinMemberExplSpec;
 
75683
  friend class ::WinTypeKeywords;
 
75684
  friend class ::WinFriend;
31413
75685
  friend class ::ExtAC;
31414
75686
  friend class ::ExtACBuilderCoupling;
31415
75687
  friend class ::ExtACSyntaxCoupling;
31416
75688
  friend class ::ExtACTree;
31417
75689
  friend class ::ExtACKeywords;
31418
 
  friend class ::WinAsm;
31419
 
  friend class ::WinDeclSpecs;
31420
 
  friend class ::WinMemberExplSpec;
31421
 
  friend class ::WinTypeKeywords;
 
75690
  friend class ::ExtGnu;
31422
75691
  friend class ::PragmaOnceUnitState;
31423
75692
  friend class ::PragmaOnce;
31424
 
  friend class ::CCExprResolve;
31425
 
  friend class ::CExprResolve;
 
75693
  friend class ::CMatchSyntax;
31426
75694
 
31427
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75695
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31428
75696
 
31429
75697
  CTree *sons[2]; // name, init
31430
75698
 
31431
75699
public:
31432
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
75700
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
75701
  /** Get the identifier for this node type. Can be compared with NodeName(). */
31433
75702
  static const char *NodeId ();
 
75703
  /** Get the name of the node. Can be compared with NodeId(). */
31434
75704
  const char *NodeName () const { return NodeId (); }
 
75705
  /** Get the number of sons. */
31435
75706
  int Sons () const { return CTree::Sons (sons, 2); }
 
75707
  /** Get the n-th son.
 
75708
   *  \param n The index of the son.
 
75709
   *  \return The n-th son or NULL. */
31436
75710
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
31437
75711
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
31438
 
  void Initializer (CTree *i) { sons[1] = i; }
 
75712
  void Initializer (CTree *i) { AddSon (sons[1], i); }
31439
75713
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
75714
  /** Replace a son.
 
75715
   *  \param old_son The son to replace.
 
75716
   *  \param new_son The new son. */
31440
75717
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31441
75718
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
31442
75719
  }
31444
75721
};
31445
75722
 
31446
75723
 
31447
 
#line 31448 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75724
#line 75725 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
31448
75725
} // closed Puma
 
75726
class CCExprResolve;
 
75727
class CExprResolve;
31449
75728
class WinIfExists;
31450
75729
class WinImportHandler;
31451
75730
class WinMacros;
31452
 
class CMatchSyntax;
31453
 
class ExtGnu;
 
75731
class WinAsm;
 
75732
class WinDeclSpecs;
 
75733
class WinMemberExplSpec;
 
75734
class WinTypeKeywords;
 
75735
class WinFriend;
31454
75736
class ExtAC;
31455
75737
class ExtACBuilderCoupling;
31456
75738
class ExtACSyntaxCoupling;
31457
75739
class ExtACTree;
31458
75740
class ExtACKeywords;
31459
 
class WinAsm;
31460
 
class WinDeclSpecs;
31461
 
class WinMemberExplSpec;
31462
 
class WinTypeKeywords;
 
75741
class ExtGnu;
31463
75742
class PragmaOnceUnitState;
31464
75743
class PragmaOnce;
31465
 
class CCExprResolve;
31466
 
class CExprResolve;
 
75744
class CMatchSyntax;
31467
75745
namespace Puma {
31468
75746
 
31469
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75747
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31470
75748
class CT_FctDef : public CT_Decl, public CSemObject {
31471
 
#line 31472 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75749
#line 75750 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
75750
  friend class ::CCExprResolve;
 
75751
  friend class ::CExprResolve;
31472
75752
  friend class ::WinIfExists;
31473
75753
  friend class ::WinImportHandler;
31474
75754
  friend class ::WinMacros;
31475
 
  friend class ::CMatchSyntax;
31476
 
  friend class ::ExtGnu;
 
75755
  friend class ::WinAsm;
 
75756
  friend class ::WinDeclSpecs;
 
75757
  friend class ::WinMemberExplSpec;
 
75758
  friend class ::WinTypeKeywords;
 
75759
  friend class ::WinFriend;
31477
75760
  friend class ::ExtAC;
31478
75761
  friend class ::ExtACBuilderCoupling;
31479
75762
  friend class ::ExtACSyntaxCoupling;
31480
75763
  friend class ::ExtACTree;
31481
75764
  friend class ::ExtACKeywords;
31482
 
  friend class ::WinAsm;
31483
 
  friend class ::WinDeclSpecs;
31484
 
  friend class ::WinMemberExplSpec;
31485
 
  friend class ::WinTypeKeywords;
 
75765
  friend class ::ExtGnu;
31486
75766
  friend class ::PragmaOnceUnitState;
31487
75767
  friend class ::PragmaOnce;
31488
 
  friend class ::CCExprResolve;
31489
 
  friend class ::CExprResolve;
 
75768
  friend class ::CMatchSyntax;
31490
75769
 
31491
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75770
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31492
75771
 
31493
75772
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
31494
75773
 
31495
75774
public:
31496
75775
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
31497
75776
             CTree *b, CTree *hs) {
31498
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
31499
 
    sons[5] = b; sons[6] = hs; 
 
75777
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
75778
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
75779
    AddSon (sons[6], hs); 
31500
75780
  }
 
75781
  /** Get the identifier for this node type. Can be compared with NodeName(). */
31501
75782
  static const char *NodeId ();
 
75783
  /** Get the name of the node. Can be compared with NodeId(). */
31502
75784
  const char *NodeName () const { return NodeId (); }
 
75785
  /** Get the number of sons. */
31503
75786
  int Sons () const { return CTree::Sons (sons, 7); }
 
75787
  /** Get the n-th son.
 
75788
   *  \param n The index of the son.
 
75789
   *  \return The n-th son or NULL. */
31504
75790
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
31505
75791
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
31506
75792
  CTree *Declarator () const { return sons[1]; }
31510
75796
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
31511
75797
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
31512
75798
  CSemObject *SemObject () const { return (CSemObject*)this; }
31513
 
  void CtorInit (CTree *i) { sons[3] = i; }
31514
 
  void Body (CTree *b) { sons[5] = b; }
 
75799
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
75800
  void Body (CTree *b) { AddSon (sons[5], b); }
31515
75801
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
31516
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
75802
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
75803
    AddSon (sons[5], b); AddSon (sons[6], h);
31517
75804
  }
 
75805
  /** Replace a son.
 
75806
   *  \param old_son The son to replace.
 
75807
   *  \param new_son The new son. */
31518
75808
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31519
75809
    CTree::ReplaceSon (sons, 7, old_son, new_son);
31520
75810
  }
31521
75811
};
31522
75812
 
31523
75813
 
31524
 
#line 31525 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75814
#line 75815 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
31525
75815
} // closed Puma
 
75816
class CCExprResolve;
 
75817
class CExprResolve;
31526
75818
class WinIfExists;
31527
75819
class WinImportHandler;
31528
75820
class WinMacros;
31529
 
class CMatchSyntax;
31530
 
class ExtGnu;
 
75821
class WinAsm;
 
75822
class WinDeclSpecs;
 
75823
class WinMemberExplSpec;
 
75824
class WinTypeKeywords;
 
75825
class WinFriend;
31531
75826
class ExtAC;
31532
75827
class ExtACBuilderCoupling;
31533
75828
class ExtACSyntaxCoupling;
31534
75829
class ExtACTree;
31535
75830
class ExtACKeywords;
31536
 
class WinAsm;
31537
 
class WinDeclSpecs;
31538
 
class WinMemberExplSpec;
31539
 
class WinTypeKeywords;
 
75831
class ExtGnu;
31540
75832
class PragmaOnceUnitState;
31541
75833
class PragmaOnce;
31542
 
class CCExprResolve;
31543
 
class CExprResolve;
 
75834
class CMatchSyntax;
31544
75835
namespace Puma {
31545
75836
 
31546
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75837
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31547
75838
class CT_AsmDef : public CT_Decl {
31548
 
#line 31549 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75839
#line 75840 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
75840
  friend class ::CCExprResolve;
 
75841
  friend class ::CExprResolve;
31549
75842
  friend class ::WinIfExists;
31550
75843
  friend class ::WinImportHandler;
31551
75844
  friend class ::WinMacros;
31552
 
  friend class ::CMatchSyntax;
31553
 
  friend class ::ExtGnu;
 
75845
  friend class ::WinAsm;
 
75846
  friend class ::WinDeclSpecs;
 
75847
  friend class ::WinMemberExplSpec;
 
75848
  friend class ::WinTypeKeywords;
 
75849
  friend class ::WinFriend;
31554
75850
  friend class ::ExtAC;
31555
75851
  friend class ::ExtACBuilderCoupling;
31556
75852
  friend class ::ExtACSyntaxCoupling;
31557
75853
  friend class ::ExtACTree;
31558
75854
  friend class ::ExtACKeywords;
31559
 
  friend class ::WinAsm;
31560
 
  friend class ::WinDeclSpecs;
31561
 
  friend class ::WinMemberExplSpec;
31562
 
  friend class ::WinTypeKeywords;
 
75855
  friend class ::ExtGnu;
31563
75856
  friend class ::PragmaOnceUnitState;
31564
75857
  friend class ::PragmaOnce;
31565
 
  friend class ::CCExprResolve;
31566
 
  friend class ::CExprResolve;
 
75858
  friend class ::CMatchSyntax;
31567
75859
 
31568
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75860
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31569
75861
 
31570
75862
  CTree *sons[5]; // asm, open, str, close, semi_colon
31571
75863
 
31572
75864
public:
31573
75865
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
31574
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
75866
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
75867
    AddSon (sons[3], c); AddSon (sons[4], sc); 
31575
75868
  }
 
75869
  /** Get the identifier for this node type. Can be compared with NodeName(). */
31576
75870
  static const char *NodeId ();
 
75871
  /** Get the name of the node. Can be compared with NodeId(). */
31577
75872
  const char *NodeName () const { return NodeId (); }
 
75873
  /** Get the number of sons. */
31578
75874
  int Sons () const { return 5; }
 
75875
  /** Get the n-th son.
 
75876
   *  \param n The index of the son.
 
75877
   *  \return The n-th son or NULL. */
31579
75878
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
31580
75879
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
75880
  /** Replace a son.
 
75881
   *  \param old_son The son to replace.
 
75882
   *  \param new_son The new son. */
31581
75883
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31582
75884
    CTree::ReplaceSon (sons, 5, old_son, new_son);
31583
75885
  }
31584
75886
};
31585
75887
 
31586
75888
 
31587
 
#line 31588 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75889
#line 75890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
31588
75890
} // closed Puma
 
75891
class CCExprResolve;
 
75892
class CExprResolve;
31589
75893
class WinIfExists;
31590
75894
class WinImportHandler;
31591
75895
class WinMacros;
31592
 
class CMatchSyntax;
31593
 
class ExtGnu;
 
75896
class WinAsm;
 
75897
class WinDeclSpecs;
 
75898
class WinMemberExplSpec;
 
75899
class WinTypeKeywords;
 
75900
class WinFriend;
31594
75901
class ExtAC;
31595
75902
class ExtACBuilderCoupling;
31596
75903
class ExtACSyntaxCoupling;
31597
75904
class ExtACTree;
31598
75905
class ExtACKeywords;
31599
 
class WinAsm;
31600
 
class WinDeclSpecs;
31601
 
class WinMemberExplSpec;
31602
 
class WinTypeKeywords;
 
75906
class ExtGnu;
31603
75907
class PragmaOnceUnitState;
31604
75908
class PragmaOnce;
31605
 
class CCExprResolve;
31606
 
class CExprResolve;
 
75909
class CMatchSyntax;
31607
75910
namespace Puma {
31608
75911
 
31609
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75912
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31610
75913
class CT_Handler : public CT_Decl, public CSemScope {
31611
 
#line 31612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75914
#line 75915 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
75915
  friend class ::CCExprResolve;
 
75916
  friend class ::CExprResolve;
31612
75917
  friend class ::WinIfExists;
31613
75918
  friend class ::WinImportHandler;
31614
75919
  friend class ::WinMacros;
31615
 
  friend class ::CMatchSyntax;
31616
 
  friend class ::ExtGnu;
 
75920
  friend class ::WinAsm;
 
75921
  friend class ::WinDeclSpecs;
 
75922
  friend class ::WinMemberExplSpec;
 
75923
  friend class ::WinTypeKeywords;
 
75924
  friend class ::WinFriend;
31617
75925
  friend class ::ExtAC;
31618
75926
  friend class ::ExtACBuilderCoupling;
31619
75927
  friend class ::ExtACSyntaxCoupling;
31620
75928
  friend class ::ExtACTree;
31621
75929
  friend class ::ExtACKeywords;
31622
 
  friend class ::WinAsm;
31623
 
  friend class ::WinDeclSpecs;
31624
 
  friend class ::WinMemberExplSpec;
31625
 
  friend class ::WinTypeKeywords;
 
75930
  friend class ::ExtGnu;
31626
75931
  friend class ::PragmaOnceUnitState;
31627
75932
  friend class ::PragmaOnce;
31628
 
  friend class ::CCExprResolve;
31629
 
  friend class ::CExprResolve;
 
75933
  friend class ::CMatchSyntax;
31630
75934
 
31631
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75935
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31632
75936
 
31633
75937
  CTree *sons[3]; // catch, exception_decl, stmt
31634
75938
 
31635
75939
public:
31636
75940
  CT_Handler (CTree *c, CTree *e, CTree *s) {
31637
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
75941
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
31638
75942
  }
 
75943
  /** Get the identifier for this node type. Can be compared with NodeName(). */
31639
75944
  static const char *NodeId ();
 
75945
  /** Get the name of the node. Can be compared with NodeId(). */
31640
75946
  const char *NodeName () const { return NodeId (); }
 
75947
  /** Get the number of sons. */
31641
75948
  int Sons () const { return 3; }
 
75949
  /** Get the n-th son.
 
75950
   *  \param n The index of the son.
 
75951
   *  \return The n-th son or NULL. */
31642
75952
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
31643
75953
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
31644
75954
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
75955
  /** Replace a son.
 
75956
   *  \param old_son The son to replace.
 
75957
   *  \param new_son The new son. */
31645
75958
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31646
75959
    CTree::ReplaceSon (sons, 3, old_son, new_son);
31647
75960
  }
 
75961
  CSemScope *SemScope () const { return (CSemScope*)this; }
31648
75962
};
31649
75963
 
31650
75964
 
31651
 
#line 31652 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75965
#line 75966 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
31652
75966
} // closed Puma
 
75967
class CCExprResolve;
 
75968
class CExprResolve;
31653
75969
class WinIfExists;
31654
75970
class WinImportHandler;
31655
75971
class WinMacros;
31656
 
class CMatchSyntax;
31657
 
class ExtGnu;
 
75972
class WinAsm;
 
75973
class WinDeclSpecs;
 
75974
class WinMemberExplSpec;
 
75975
class WinTypeKeywords;
 
75976
class WinFriend;
31658
75977
class ExtAC;
31659
75978
class ExtACBuilderCoupling;
31660
75979
class ExtACSyntaxCoupling;
31661
75980
class ExtACTree;
31662
75981
class ExtACKeywords;
31663
 
class WinAsm;
31664
 
class WinDeclSpecs;
31665
 
class WinMemberExplSpec;
31666
 
class WinTypeKeywords;
 
75982
class ExtGnu;
31667
75983
class PragmaOnceUnitState;
31668
75984
class PragmaOnce;
31669
 
class CCExprResolve;
31670
 
class CExprResolve;
 
75985
class CMatchSyntax;
31671
75986
namespace Puma {
31672
75987
 
31673
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75988
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31674
75989
class CT_LinkageSpec : public CT_Decl {
31675
 
#line 31676 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
75990
#line 75991 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
75991
  friend class ::CCExprResolve;
 
75992
  friend class ::CExprResolve;
31676
75993
  friend class ::WinIfExists;
31677
75994
  friend class ::WinImportHandler;
31678
75995
  friend class ::WinMacros;
31679
 
  friend class ::CMatchSyntax;
31680
 
  friend class ::ExtGnu;
 
75996
  friend class ::WinAsm;
 
75997
  friend class ::WinDeclSpecs;
 
75998
  friend class ::WinMemberExplSpec;
 
75999
  friend class ::WinTypeKeywords;
 
76000
  friend class ::WinFriend;
31681
76001
  friend class ::ExtAC;
31682
76002
  friend class ::ExtACBuilderCoupling;
31683
76003
  friend class ::ExtACSyntaxCoupling;
31684
76004
  friend class ::ExtACTree;
31685
76005
  friend class ::ExtACKeywords;
31686
 
  friend class ::WinAsm;
31687
 
  friend class ::WinDeclSpecs;
31688
 
  friend class ::WinMemberExplSpec;
31689
 
  friend class ::WinTypeKeywords;
 
76006
  friend class ::ExtGnu;
31690
76007
  friend class ::PragmaOnceUnitState;
31691
76008
  friend class ::PragmaOnce;
31692
 
  friend class ::CCExprResolve;
31693
 
  friend class ::CExprResolve;
 
76009
  friend class ::CMatchSyntax;
31694
76010
 
31695
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76011
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31696
76012
 
31697
76013
  CTree *sons[5]; // extern, str, open, decls, close
31698
76014
 
31699
76015
public:
31700
76016
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
31701
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
76017
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
76018
    AddSon (sons[3], d); AddSon (sons[4], c);
31702
76019
    if (isList ())
31703
76020
      ((CT_DeclList*)Decls ())->Linkage (this);
31704
76021
    else
31705
76022
      ((CT_Decl*)Decls ())->Linkage (this);
31706
76023
  }
 
76024
  /** Get the identifier for this node type. Can be compared with NodeName(). */
31707
76025
  static const char *NodeId ();
 
76026
  /** Get the name of the node. Can be compared with NodeId(). */
31708
76027
  const char *NodeName () const { return NodeId (); }
 
76028
  /** Get the number of sons. */
31709
76029
  int Sons () const { return CTree::Sons (sons, 5); }
 
76030
  /** Get the n-th son.
 
76031
   *  \param n The index of the son.
 
76032
   *  \return The n-th son or NULL. */
31710
76033
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
31711
76034
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
31712
76035
  CTree *Decls () const { return sons[3]; }
31713
76036
  bool isList () const {
31714
76037
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
31715
76038
  }
 
76039
  /** Replace a son.
 
76040
   *  \param old_son The son to replace.
 
76041
   *  \param new_son The new son. */
31716
76042
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31717
76043
    CTree::ReplaceSon (sons, 5, old_son, new_son);
31718
76044
  }
31719
76045
};
31720
76046
 
31721
76047
 
31722
 
#line 31723 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76048
#line 76049 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
31723
76049
} // closed Puma
 
76050
class CCExprResolve;
 
76051
class CExprResolve;
31724
76052
class WinIfExists;
31725
76053
class WinImportHandler;
31726
76054
class WinMacros;
31727
 
class CMatchSyntax;
31728
 
class ExtGnu;
 
76055
class WinAsm;
 
76056
class WinDeclSpecs;
 
76057
class WinMemberExplSpec;
 
76058
class WinTypeKeywords;
 
76059
class WinFriend;
31729
76060
class ExtAC;
31730
76061
class ExtACBuilderCoupling;
31731
76062
class ExtACSyntaxCoupling;
31732
76063
class ExtACTree;
31733
76064
class ExtACKeywords;
31734
 
class WinAsm;
31735
 
class WinDeclSpecs;
31736
 
class WinMemberExplSpec;
31737
 
class WinTypeKeywords;
 
76065
class ExtGnu;
31738
76066
class PragmaOnceUnitState;
31739
76067
class PragmaOnce;
31740
 
class CCExprResolve;
31741
 
class CExprResolve;
 
76068
class CMatchSyntax;
31742
76069
namespace Puma {
31743
76070
 
31744
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76071
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31745
76072
class CT_ArgDecl : public CT_Decl, public CSemObject {
31746
 
#line 31747 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76073
#line 76074 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
76074
  friend class ::CCExprResolve;
 
76075
  friend class ::CExprResolve;
31747
76076
  friend class ::WinIfExists;
31748
76077
  friend class ::WinImportHandler;
31749
76078
  friend class ::WinMacros;
31750
 
  friend class ::CMatchSyntax;
31751
 
  friend class ::ExtGnu;
 
76079
  friend class ::WinAsm;
 
76080
  friend class ::WinDeclSpecs;
 
76081
  friend class ::WinMemberExplSpec;
 
76082
  friend class ::WinTypeKeywords;
 
76083
  friend class ::WinFriend;
31752
76084
  friend class ::ExtAC;
31753
76085
  friend class ::ExtACBuilderCoupling;
31754
76086
  friend class ::ExtACSyntaxCoupling;
31755
76087
  friend class ::ExtACTree;
31756
76088
  friend class ::ExtACKeywords;
31757
 
  friend class ::WinAsm;
31758
 
  friend class ::WinDeclSpecs;
31759
 
  friend class ::WinMemberExplSpec;
31760
 
  friend class ::WinTypeKeywords;
 
76089
  friend class ::ExtGnu;
31761
76090
  friend class ::PragmaOnceUnitState;
31762
76091
  friend class ::PragmaOnce;
31763
 
  friend class ::CCExprResolve;
31764
 
  friend class ::CExprResolve;
 
76092
  friend class ::CMatchSyntax;
31765
76093
 
31766
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76094
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31767
76095
 
31768
76096
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
31769
76097
 
31770
76098
public:
31771
76099
  CT_ArgDecl (CTree *dsl, CTree *d) {
31772
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
76100
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
76101
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
31773
76102
  }
31774
76103
  CT_ArgDecl (CTree *ellipsis) {
31775
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
76104
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
76105
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
31776
76106
  }
 
76107
  /** Get the identifier for this node type. Can be compared with NodeName(). */
31777
76108
  static const char *NodeId ();
 
76109
  /** Get the name of the node. Can be compared with NodeId(). */
31778
76110
  const char *NodeName () const { return NodeId (); }
 
76111
  /** Get the number of sons. */
31779
76112
  int Sons () const { return CTree::Sons (sons, 4); }
 
76113
  /** Get the n-th son.
 
76114
   *  \param n The index of the son.
 
76115
   *  \return The n-th son or NULL. */
31780
76116
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
31781
76117
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
31782
76118
  CTree *Declarator () const { return sons[1]; }
31783
76119
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
31784
76120
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
31785
76121
  CSemObject *SemObject () const { return (CSemObject*)this; }
31786
 
  void Initializer (CTree *i) { sons[2] = i; }
 
76122
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
76123
  /** Replace a son.
 
76124
   *  \param old_son The son to replace.
 
76125
   *  \param new_son The new son. */
31787
76126
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31788
76127
    CTree::ReplaceSon (sons, 4, old_son, new_son);
31789
76128
  }
31790
76129
};
31791
76130
 
31792
76131
 
31793
 
#line 31794 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76132
#line 76133 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
31794
76133
} // closed Puma
 
76134
class CCExprResolve;
 
76135
class CExprResolve;
31795
76136
class WinIfExists;
31796
76137
class WinImportHandler;
31797
76138
class WinMacros;
31798
 
class CMatchSyntax;
31799
 
class ExtGnu;
 
76139
class WinAsm;
 
76140
class WinDeclSpecs;
 
76141
class WinMemberExplSpec;
 
76142
class WinTypeKeywords;
 
76143
class WinFriend;
31800
76144
class ExtAC;
31801
76145
class ExtACBuilderCoupling;
31802
76146
class ExtACSyntaxCoupling;
31803
76147
class ExtACTree;
31804
76148
class ExtACKeywords;
31805
 
class WinAsm;
31806
 
class WinDeclSpecs;
31807
 
class WinMemberExplSpec;
31808
 
class WinTypeKeywords;
 
76149
class ExtGnu;
31809
76150
class PragmaOnceUnitState;
31810
76151
class PragmaOnce;
31811
 
class CCExprResolve;
31812
 
class CExprResolve;
 
76152
class CMatchSyntax;
31813
76153
namespace Puma {
31814
76154
 
31815
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76155
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31816
76156
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
31817
 
#line 31818 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76157
#line 76158 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
76158
  friend class ::CCExprResolve;
 
76159
  friend class ::CExprResolve;
31818
76160
  friend class ::WinIfExists;
31819
76161
  friend class ::WinImportHandler;
31820
76162
  friend class ::WinMacros;
31821
 
  friend class ::CMatchSyntax;
31822
 
  friend class ::ExtGnu;
 
76163
  friend class ::WinAsm;
 
76164
  friend class ::WinDeclSpecs;
 
76165
  friend class ::WinMemberExplSpec;
 
76166
  friend class ::WinTypeKeywords;
 
76167
  friend class ::WinFriend;
31823
76168
  friend class ::ExtAC;
31824
76169
  friend class ::ExtACBuilderCoupling;
31825
76170
  friend class ::ExtACSyntaxCoupling;
31826
76171
  friend class ::ExtACTree;
31827
76172
  friend class ::ExtACKeywords;
31828
 
  friend class ::WinAsm;
31829
 
  friend class ::WinDeclSpecs;
31830
 
  friend class ::WinMemberExplSpec;
31831
 
  friend class ::WinTypeKeywords;
 
76173
  friend class ::ExtGnu;
31832
76174
  friend class ::PragmaOnceUnitState;
31833
76175
  friend class ::PragmaOnce;
31834
 
  friend class ::CCExprResolve;
31835
 
  friend class ::CExprResolve;
 
76176
  friend class ::CMatchSyntax;
31836
76177
 
31837
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76178
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31838
76179
 
31839
76180
public:
31840
76181
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
31841
76182
   CT_DeclList (size, 2) { AddProperties (props); }
 
76183
  /** Get the identifier for this node type. Can be compared with NodeName(). */
31842
76184
  static const char *NodeId ();
 
76185
  /** Get the name of the node. Can be compared with NodeId(). */
31843
76186
  const char *NodeName () const { return NodeId (); }
 
76187
  CSemScope *SemScope () const { return (CSemScope*)this; }
31844
76188
};
31845
76189
 
31846
76190
 
31847
 
#line 31848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76191
#line 76192 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
31848
76192
} // closed Puma
 
76193
class CCExprResolve;
 
76194
class CExprResolve;
31849
76195
class WinIfExists;
31850
76196
class WinImportHandler;
31851
76197
class WinMacros;
31852
 
class CMatchSyntax;
31853
 
class ExtGnu;
 
76198
class WinAsm;
 
76199
class WinDeclSpecs;
 
76200
class WinMemberExplSpec;
 
76201
class WinTypeKeywords;
 
76202
class WinFriend;
31854
76203
class ExtAC;
31855
76204
class ExtACBuilderCoupling;
31856
76205
class ExtACSyntaxCoupling;
31857
76206
class ExtACTree;
31858
76207
class ExtACKeywords;
31859
 
class WinAsm;
31860
 
class WinDeclSpecs;
31861
 
class WinMemberExplSpec;
31862
 
class WinTypeKeywords;
 
76208
class ExtGnu;
31863
76209
class PragmaOnceUnitState;
31864
76210
class PragmaOnce;
31865
 
class CCExprResolve;
31866
 
class CExprResolve;
 
76211
class CMatchSyntax;
31867
76212
namespace Puma {
31868
76213
 
31869
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76214
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31870
76215
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
31871
 
#line 31872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76216
#line 76217 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
76217
  friend class ::CCExprResolve;
 
76218
  friend class ::CExprResolve;
31872
76219
  friend class ::WinIfExists;
31873
76220
  friend class ::WinImportHandler;
31874
76221
  friend class ::WinMacros;
31875
 
  friend class ::CMatchSyntax;
31876
 
  friend class ::ExtGnu;
 
76222
  friend class ::WinAsm;
 
76223
  friend class ::WinDeclSpecs;
 
76224
  friend class ::WinMemberExplSpec;
 
76225
  friend class ::WinTypeKeywords;
 
76226
  friend class ::WinFriend;
31877
76227
  friend class ::ExtAC;
31878
76228
  friend class ::ExtACBuilderCoupling;
31879
76229
  friend class ::ExtACSyntaxCoupling;
31880
76230
  friend class ::ExtACTree;
31881
76231
  friend class ::ExtACKeywords;
31882
 
  friend class ::WinAsm;
31883
 
  friend class ::WinDeclSpecs;
31884
 
  friend class ::WinMemberExplSpec;
31885
 
  friend class ::WinTypeKeywords;
 
76232
  friend class ::ExtGnu;
31886
76233
  friend class ::PragmaOnceUnitState;
31887
76234
  friend class ::PragmaOnce;
31888
 
  friend class ::CCExprResolve;
31889
 
  friend class ::CExprResolve;
 
76235
  friend class ::CMatchSyntax;
31890
76236
 
31891
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76237
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31892
76238
 
31893
76239
public:
31894
76240
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
76241
  /** Get the identifier for this node type. Can be compared with NodeName(). */
31895
76242
  static const char *NodeId ();
 
76243
  /** Get the name of the node. Can be compared with NodeId(). */
31896
76244
  const char *NodeName () const { return NodeId (); }
 
76245
  CSemScope *SemScope () const { return (CSemScope*)this; }
31897
76246
};
31898
76247
 
31899
76248
 
31900
 
#line 31901 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76249
#line 76250 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
31901
76250
} // closed Puma
 
76251
class CCExprResolve;
 
76252
class CExprResolve;
31902
76253
class WinIfExists;
31903
76254
class WinImportHandler;
31904
76255
class WinMacros;
31905
 
class CMatchSyntax;
31906
 
class ExtGnu;
 
76256
class WinAsm;
 
76257
class WinDeclSpecs;
 
76258
class WinMemberExplSpec;
 
76259
class WinTypeKeywords;
 
76260
class WinFriend;
31907
76261
class ExtAC;
31908
76262
class ExtACBuilderCoupling;
31909
76263
class ExtACSyntaxCoupling;
31910
76264
class ExtACTree;
31911
76265
class ExtACKeywords;
31912
 
class WinAsm;
31913
 
class WinDeclSpecs;
31914
 
class WinMemberExplSpec;
31915
 
class WinTypeKeywords;
 
76266
class ExtGnu;
31916
76267
class PragmaOnceUnitState;
31917
76268
class PragmaOnce;
31918
 
class CCExprResolve;
31919
 
class CExprResolve;
 
76269
class CMatchSyntax;
31920
76270
namespace Puma {
31921
76271
 
31922
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76272
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31923
76273
class CT_ArgNameList : public CT_ArgDeclList {
31924
 
#line 31925 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76274
#line 76275 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
76275
  friend class ::CCExprResolve;
 
76276
  friend class ::CExprResolve;
31925
76277
  friend class ::WinIfExists;
31926
76278
  friend class ::WinImportHandler;
31927
76279
  friend class ::WinMacros;
31928
 
  friend class ::CMatchSyntax;
31929
 
  friend class ::ExtGnu;
 
76280
  friend class ::WinAsm;
 
76281
  friend class ::WinDeclSpecs;
 
76282
  friend class ::WinMemberExplSpec;
 
76283
  friend class ::WinTypeKeywords;
 
76284
  friend class ::WinFriend;
31930
76285
  friend class ::ExtAC;
31931
76286
  friend class ::ExtACBuilderCoupling;
31932
76287
  friend class ::ExtACSyntaxCoupling;
31933
76288
  friend class ::ExtACTree;
31934
76289
  friend class ::ExtACKeywords;
31935
 
  friend class ::WinAsm;
31936
 
  friend class ::WinDeclSpecs;
31937
 
  friend class ::WinMemberExplSpec;
31938
 
  friend class ::WinTypeKeywords;
 
76290
  friend class ::ExtGnu;
31939
76291
  friend class ::PragmaOnceUnitState;
31940
76292
  friend class ::PragmaOnce;
31941
 
  friend class ::CCExprResolve;
31942
 
  friend class ::CExprResolve;
 
76293
  friend class ::CMatchSyntax;
31943
76294
 
31944
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76295
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31945
76296
 
31946
76297
public:
31947
76298
  CT_ArgNameList () : CT_ArgDeclList () {}
 
76299
  /** Get the identifier for this node type. Can be compared with NodeName(). */
31948
76300
  static const char *NodeId ();
 
76301
  /** Get the name of the node. Can be compared with NodeId(). */
31949
76302
  const char *NodeName () const { return NodeId (); }
31950
76303
};
31951
76304
 
31952
76305
 
31953
 
#line 31954 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76306
#line 76307 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
31954
76307
} // closed Puma
 
76308
class CCExprResolve;
 
76309
class CExprResolve;
31955
76310
class WinIfExists;
31956
76311
class WinImportHandler;
31957
76312
class WinMacros;
31958
 
class CMatchSyntax;
31959
 
class ExtGnu;
 
76313
class WinAsm;
 
76314
class WinDeclSpecs;
 
76315
class WinMemberExplSpec;
 
76316
class WinTypeKeywords;
 
76317
class WinFriend;
31960
76318
class ExtAC;
31961
76319
class ExtACBuilderCoupling;
31962
76320
class ExtACSyntaxCoupling;
31963
76321
class ExtACTree;
31964
76322
class ExtACKeywords;
31965
 
class WinAsm;
31966
 
class WinDeclSpecs;
31967
 
class WinMemberExplSpec;
31968
 
class WinTypeKeywords;
 
76323
class ExtGnu;
31969
76324
class PragmaOnceUnitState;
31970
76325
class PragmaOnce;
31971
 
class CCExprResolve;
31972
 
class CExprResolve;
 
76326
class CMatchSyntax;
31973
76327
namespace Puma {
31974
76328
 
31975
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76329
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31976
76330
class CT_NamespaceDef : public CT_Decl, public CSemObject {
31977
 
#line 31978 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76331
#line 76332 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
76332
  friend class ::CCExprResolve;
 
76333
  friend class ::CExprResolve;
31978
76334
  friend class ::WinIfExists;
31979
76335
  friend class ::WinImportHandler;
31980
76336
  friend class ::WinMacros;
31981
 
  friend class ::CMatchSyntax;
31982
 
  friend class ::ExtGnu;
 
76337
  friend class ::WinAsm;
 
76338
  friend class ::WinDeclSpecs;
 
76339
  friend class ::WinMemberExplSpec;
 
76340
  friend class ::WinTypeKeywords;
 
76341
  friend class ::WinFriend;
31983
76342
  friend class ::ExtAC;
31984
76343
  friend class ::ExtACBuilderCoupling;
31985
76344
  friend class ::ExtACSyntaxCoupling;
31986
76345
  friend class ::ExtACTree;
31987
76346
  friend class ::ExtACKeywords;
31988
 
  friend class ::WinAsm;
31989
 
  friend class ::WinDeclSpecs;
31990
 
  friend class ::WinMemberExplSpec;
31991
 
  friend class ::WinTypeKeywords;
 
76347
  friend class ::ExtGnu;
31992
76348
  friend class ::PragmaOnceUnitState;
31993
76349
  friend class ::PragmaOnce;
31994
 
  friend class ::CCExprResolve;
31995
 
  friend class ::CExprResolve;
 
76350
  friend class ::CMatchSyntax;
31996
76351
 
31997
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76352
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
31998
76353
 
31999
76354
  CTree *sons[3]; // ns, name, members
32000
76355
 
32001
76356
public:
32002
76357
  CT_NamespaceDef (CTree *n, CTree *nm) {
32003
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
76358
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
32004
76359
  }
32005
76360
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
32006
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
76361
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
32007
76362
  }
 
76363
  /** Get the identifier for this node type. Can be compared with NodeName(). */
32008
76364
  static const char *NodeId ();
 
76365
  /** Get the name of the node. Can be compared with NodeId(). */
32009
76366
  const char *NodeName () const { return NodeId (); }
 
76367
  /** Get the number of sons. */
32010
76368
  int Sons () const { return CTree::Sons (sons, 3); }
 
76369
  /** Get the n-th son.
 
76370
   *  \param n The index of the son.
 
76371
   *  \return The n-th son or NULL. */
32011
76372
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
32012
 
  void Members (CTree *m) { sons[2] = m; }
 
76373
  void Members (CTree *m) { AddSon (sons[2], m); }
32013
76374
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
32014
76375
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
32015
76376
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
76377
  /** Replace a son.
 
76378
   *  \param old_son The son to replace.
 
76379
   *  \param new_son The new son. */
32016
76380
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32017
76381
    CTree::ReplaceSon (sons, 3, old_son, new_son);
32018
76382
  }
32019
76383
};
32020
76384
 
32021
76385
 
32022
 
#line 32023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76386
#line 76387 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
32023
76387
} // closed Puma
 
76388
class CCExprResolve;
 
76389
class CExprResolve;
32024
76390
class WinIfExists;
32025
76391
class WinImportHandler;
32026
76392
class WinMacros;
32027
 
class CMatchSyntax;
32028
 
class ExtGnu;
 
76393
class WinAsm;
 
76394
class WinDeclSpecs;
 
76395
class WinMemberExplSpec;
 
76396
class WinTypeKeywords;
 
76397
class WinFriend;
32029
76398
class ExtAC;
32030
76399
class ExtACBuilderCoupling;
32031
76400
class ExtACSyntaxCoupling;
32032
76401
class ExtACTree;
32033
76402
class ExtACKeywords;
32034
 
class WinAsm;
32035
 
class WinDeclSpecs;
32036
 
class WinMemberExplSpec;
32037
 
class WinTypeKeywords;
 
76403
class ExtGnu;
32038
76404
class PragmaOnceUnitState;
32039
76405
class PragmaOnce;
32040
 
class CCExprResolve;
32041
 
class CExprResolve;
 
76406
class CMatchSyntax;
32042
76407
namespace Puma {
32043
76408
 
32044
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76409
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32045
76410
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
32046
 
#line 32047 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76411
#line 76412 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
76412
  friend class ::CCExprResolve;
 
76413
  friend class ::CExprResolve;
32047
76414
  friend class ::WinIfExists;
32048
76415
  friend class ::WinImportHandler;
32049
76416
  friend class ::WinMacros;
32050
 
  friend class ::CMatchSyntax;
32051
 
  friend class ::ExtGnu;
 
76417
  friend class ::WinAsm;
 
76418
  friend class ::WinDeclSpecs;
 
76419
  friend class ::WinMemberExplSpec;
 
76420
  friend class ::WinTypeKeywords;
 
76421
  friend class ::WinFriend;
32052
76422
  friend class ::ExtAC;
32053
76423
  friend class ::ExtACBuilderCoupling;
32054
76424
  friend class ::ExtACSyntaxCoupling;
32055
76425
  friend class ::ExtACTree;
32056
76426
  friend class ::ExtACKeywords;
32057
 
  friend class ::WinAsm;
32058
 
  friend class ::WinDeclSpecs;
32059
 
  friend class ::WinMemberExplSpec;
32060
 
  friend class ::WinTypeKeywords;
 
76427
  friend class ::ExtGnu;
32061
76428
  friend class ::PragmaOnceUnitState;
32062
76429
  friend class ::PragmaOnce;
32063
 
  friend class ::CCExprResolve;
32064
 
  friend class ::CExprResolve;
 
76430
  friend class ::CMatchSyntax;
32065
76431
 
32066
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76432
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32067
76433
 
32068
76434
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
32069
76435
 
32070
76436
public:
32071
76437
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
32072
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
76438
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
76439
    AddSon (sons[3], nm); AddSon (sons[4], s); 
32073
76440
  }
 
76441
  /** Get the identifier for this node type. Can be compared with NodeName(). */
32074
76442
  static const char *NodeId ();
 
76443
  /** Get the name of the node. Can be compared with NodeId(). */
32075
76444
  const char *NodeName () const { return NodeId (); }
 
76445
  /** Get the number of sons. */
32076
76446
  int Sons () const { return 5; }
 
76447
  /** Get the n-th son.
 
76448
   *  \param n The index of the son.
 
76449
   *  \return The n-th son or NULL. */
32077
76450
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
32078
76451
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
32079
76452
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
32080
76453
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
76454
  /** Replace a son.
 
76455
   *  \param old_son The son to replace.
 
76456
   *  \param new_son The new son. */
32081
76457
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32082
76458
    CTree::ReplaceSon (sons, 5, old_son, new_son);
32083
76459
  }
32084
76460
};
32085
76461
 
32086
76462
 
32087
 
#line 32088 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76463
#line 76464 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
32088
76464
} // closed Puma
 
76465
class CCExprResolve;
 
76466
class CExprResolve;
32089
76467
class WinIfExists;
32090
76468
class WinImportHandler;
32091
76469
class WinMacros;
32092
 
class CMatchSyntax;
32093
 
class ExtGnu;
 
76470
class WinAsm;
 
76471
class WinDeclSpecs;
 
76472
class WinMemberExplSpec;
 
76473
class WinTypeKeywords;
 
76474
class WinFriend;
32094
76475
class ExtAC;
32095
76476
class ExtACBuilderCoupling;
32096
76477
class ExtACSyntaxCoupling;
32097
76478
class ExtACTree;
32098
76479
class ExtACKeywords;
32099
 
class WinAsm;
32100
 
class WinDeclSpecs;
32101
 
class WinMemberExplSpec;
32102
 
class WinTypeKeywords;
 
76480
class ExtGnu;
32103
76481
class PragmaOnceUnitState;
32104
76482
class PragmaOnce;
32105
 
class CCExprResolve;
32106
 
class CExprResolve;
 
76483
class CMatchSyntax;
32107
76484
namespace Puma {
32108
76485
 
32109
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76486
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32110
76487
class CT_UsingDirective : public CT_Decl {
32111
 
#line 32112 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76488
#line 76489 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
76489
  friend class ::CCExprResolve;
 
76490
  friend class ::CExprResolve;
32112
76491
  friend class ::WinIfExists;
32113
76492
  friend class ::WinImportHandler;
32114
76493
  friend class ::WinMacros;
32115
 
  friend class ::CMatchSyntax;
32116
 
  friend class ::ExtGnu;
 
76494
  friend class ::WinAsm;
 
76495
  friend class ::WinDeclSpecs;
 
76496
  friend class ::WinMemberExplSpec;
 
76497
  friend class ::WinTypeKeywords;
 
76498
  friend class ::WinFriend;
32117
76499
  friend class ::ExtAC;
32118
76500
  friend class ::ExtACBuilderCoupling;
32119
76501
  friend class ::ExtACSyntaxCoupling;
32120
76502
  friend class ::ExtACTree;
32121
76503
  friend class ::ExtACKeywords;
32122
 
  friend class ::WinAsm;
32123
 
  friend class ::WinDeclSpecs;
32124
 
  friend class ::WinMemberExplSpec;
32125
 
  friend class ::WinTypeKeywords;
 
76504
  friend class ::ExtGnu;
32126
76505
  friend class ::PragmaOnceUnitState;
32127
76506
  friend class ::PragmaOnce;
32128
 
  friend class ::CCExprResolve;
32129
 
  friend class ::CExprResolve;
 
76507
  friend class ::CMatchSyntax;
32130
76508
 
32131
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76509
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32132
76510
 
32133
76511
  CTree *sons[4]; // using, ns, name, semi_colon
32134
76512
 
32135
76513
public:
32136
76514
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
32137
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
76515
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
76516
    AddSon (sons[3], s); 
32138
76517
  }
 
76518
  /** Get the identifier for this node type. Can be compared with NodeName(). */
32139
76519
  static const char *NodeId ();
 
76520
  /** Get the name of the node. Can be compared with NodeId(). */
32140
76521
  const char *NodeName () const { return NodeId (); }
 
76522
  /** Get the number of sons. */
32141
76523
  int Sons () const { return 4; }
 
76524
  /** Get the n-th son.
 
76525
   *  \param n The index of the son.
 
76526
   *  \return The n-th son or NULL. */
32142
76527
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
32143
76528
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
76529
  /** Replace a son.
 
76530
   *  \param old_son The son to replace.
 
76531
   *  \param new_son The new son. */
32144
76532
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32145
76533
    CTree::ReplaceSon (sons, 4, old_son, new_son);
32146
76534
  }
32153
76541
/*****************************************************************************/
32154
76542
 
32155
76543
 
32156
 
#line 32157 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76544
#line 76545 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
32157
76545
} // closed Puma
 
76546
class CCExprResolve;
 
76547
class CExprResolve;
32158
76548
class WinIfExists;
32159
76549
class WinImportHandler;
32160
76550
class WinMacros;
32161
 
class CMatchSyntax;
32162
 
class ExtGnu;
 
76551
class WinAsm;
 
76552
class WinDeclSpecs;
 
76553
class WinMemberExplSpec;
 
76554
class WinTypeKeywords;
 
76555
class WinFriend;
32163
76556
class ExtAC;
32164
76557
class ExtACBuilderCoupling;
32165
76558
class ExtACSyntaxCoupling;
32166
76559
class ExtACTree;
32167
76560
class ExtACKeywords;
32168
 
class WinAsm;
32169
 
class WinDeclSpecs;
32170
 
class WinMemberExplSpec;
32171
 
class WinTypeKeywords;
 
76561
class ExtGnu;
32172
76562
class PragmaOnceUnitState;
32173
76563
class PragmaOnce;
32174
 
class CCExprResolve;
32175
 
class CExprResolve;
 
76564
class CMatchSyntax;
32176
76565
namespace Puma {
32177
76566
 
32178
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76567
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32179
76568
class CT_Declarator : public CTree {
32180
 
#line 32181 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76569
#line 76570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
76570
  friend class ::CCExprResolve;
 
76571
  friend class ::CExprResolve;
32181
76572
  friend class ::WinIfExists;
32182
76573
  friend class ::WinImportHandler;
32183
76574
  friend class ::WinMacros;
32184
 
  friend class ::CMatchSyntax;
32185
 
  friend class ::ExtGnu;
 
76575
  friend class ::WinAsm;
 
76576
  friend class ::WinDeclSpecs;
 
76577
  friend class ::WinMemberExplSpec;
 
76578
  friend class ::WinTypeKeywords;
 
76579
  friend class ::WinFriend;
32186
76580
  friend class ::ExtAC;
32187
76581
  friend class ::ExtACBuilderCoupling;
32188
76582
  friend class ::ExtACSyntaxCoupling;
32189
76583
  friend class ::ExtACTree;
32190
76584
  friend class ::ExtACKeywords;
32191
 
  friend class ::WinAsm;
32192
 
  friend class ::WinDeclSpecs;
32193
 
  friend class ::WinMemberExplSpec;
32194
 
  friend class ::WinTypeKeywords;
 
76585
  friend class ::ExtGnu;
32195
76586
  friend class ::PragmaOnceUnitState;
32196
76587
  friend class ::PragmaOnce;
32197
 
  friend class ::CCExprResolve;
32198
 
  friend class ::CExprResolve;
 
76588
  friend class ::CMatchSyntax;
32199
76589
 
32200
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76590
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32201
76591
 
32202
76592
protected:
32203
76593
  CT_Declarator () {}
32212
76602
};
32213
76603
 
32214
76604
 
32215
 
#line 32216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76605
#line 76606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
32216
76606
} // closed Puma
 
76607
class CCExprResolve;
 
76608
class CExprResolve;
32217
76609
class WinIfExists;
32218
76610
class WinImportHandler;
32219
76611
class WinMacros;
32220
 
class CMatchSyntax;
32221
 
class ExtGnu;
 
76612
class WinAsm;
 
76613
class WinDeclSpecs;
 
76614
class WinMemberExplSpec;
 
76615
class WinTypeKeywords;
 
76616
class WinFriend;
32222
76617
class ExtAC;
32223
76618
class ExtACBuilderCoupling;
32224
76619
class ExtACSyntaxCoupling;
32225
76620
class ExtACTree;
32226
76621
class ExtACKeywords;
32227
 
class WinAsm;
32228
 
class WinDeclSpecs;
32229
 
class WinMemberExplSpec;
32230
 
class WinTypeKeywords;
 
76622
class ExtGnu;
32231
76623
class PragmaOnceUnitState;
32232
76624
class PragmaOnce;
32233
 
class CCExprResolve;
32234
 
class CExprResolve;
 
76625
class CMatchSyntax;
32235
76626
namespace Puma {
32236
76627
 
32237
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76628
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32238
76629
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
32239
 
#line 32240 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76630
#line 76631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
76631
  friend class ::CCExprResolve;
 
76632
  friend class ::CExprResolve;
32240
76633
  friend class ::WinIfExists;
32241
76634
  friend class ::WinImportHandler;
32242
76635
  friend class ::WinMacros;
32243
 
  friend class ::CMatchSyntax;
32244
 
  friend class ::ExtGnu;
 
76636
  friend class ::WinAsm;
 
76637
  friend class ::WinDeclSpecs;
 
76638
  friend class ::WinMemberExplSpec;
 
76639
  friend class ::WinTypeKeywords;
 
76640
  friend class ::WinFriend;
32245
76641
  friend class ::ExtAC;
32246
76642
  friend class ::ExtACBuilderCoupling;
32247
76643
  friend class ::ExtACSyntaxCoupling;
32248
76644
  friend class ::ExtACTree;
32249
76645
  friend class ::ExtACKeywords;
32250
 
  friend class ::WinAsm;
32251
 
  friend class ::WinDeclSpecs;
32252
 
  friend class ::WinMemberExplSpec;
32253
 
  friend class ::WinTypeKeywords;
 
76646
  friend class ::ExtGnu;
32254
76647
  friend class ::PragmaOnceUnitState;
32255
76648
  friend class ::PragmaOnce;
32256
 
  friend class ::CCExprResolve;
32257
 
  friend class ::CExprResolve;
32258
 
 
32259
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32260
 
 
32261
 
  CTree *sons[2]; // declarator, init
 
76649
  friend class ::CMatchSyntax;
 
76650
 
 
76651
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76652
 
 
76653
  CTree *sons[3]; // declarator, ext, init
32262
76654
  CTree *obj_decl;
32263
76655
 
32264
76656
public:
32265
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
32266
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
76657
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
76658
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
76659
    AddSon (obj_decl, 0); 
32267
76660
  }
 
76661
  /** Get the identifier for this node type. Can be compared with NodeName(). */
32268
76662
  static const char *NodeId ();
 
76663
  /** Get the name of the node. Can be compared with NodeId(). */
32269
76664
  const char *NodeName () const { return NodeId (); }
32270
 
  int Sons () const { return CTree::Sons (sons, 2); }
32271
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
76665
  /** Get the number of sons. */
 
76666
  int Sons () const { return CTree::Sons (sons, 3); }
 
76667
  /** Get the n-th son.
 
76668
   *  \param n The index of the son.
 
76669
   *  \return The n-th son or NULL. */
 
76670
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
32272
76671
  CTree *Declarator () const { return sons[0]; }
32273
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
76672
  CTree *Extension () const { return sons[1]; }
 
76673
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
32274
76674
  CSemObject *SemObject () const { return (CSemObject*)this; }
32275
76675
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
32276
 
  void Initializer (CTree* i) { sons[1] = i; }
32277
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
76676
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
76677
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
76678
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
76679
  /** Replace a son.
 
76680
   *  \param old_son The son to replace.
 
76681
   *  \param new_son The new son. */
32278
76682
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32279
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
76683
    CTree::ReplaceSon (sons, 3, old_son, new_son);
32280
76684
  }
32281
76685
};
32282
76686
 
32283
76687
 
32284
 
#line 32285 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76688
#line 76689 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
32285
76689
} // closed Puma
 
76690
class CCExprResolve;
 
76691
class CExprResolve;
32286
76692
class WinIfExists;
32287
76693
class WinImportHandler;
32288
76694
class WinMacros;
32289
 
class CMatchSyntax;
32290
 
class ExtGnu;
 
76695
class WinAsm;
 
76696
class WinDeclSpecs;
 
76697
class WinMemberExplSpec;
 
76698
class WinTypeKeywords;
 
76699
class WinFriend;
32291
76700
class ExtAC;
32292
76701
class ExtACBuilderCoupling;
32293
76702
class ExtACSyntaxCoupling;
32294
76703
class ExtACTree;
32295
76704
class ExtACKeywords;
32296
 
class WinAsm;
32297
 
class WinDeclSpecs;
32298
 
class WinMemberExplSpec;
32299
 
class WinTypeKeywords;
 
76705
class ExtGnu;
32300
76706
class PragmaOnceUnitState;
32301
76707
class PragmaOnce;
32302
 
class CCExprResolve;
32303
 
class CExprResolve;
 
76708
class CMatchSyntax;
32304
76709
namespace Puma {
32305
76710
 
32306
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76711
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32307
76712
class CT_BracedDeclarator : public CT_Declarator {
32308
 
#line 32309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76713
#line 76714 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
76714
  friend class ::CCExprResolve;
 
76715
  friend class ::CExprResolve;
32309
76716
  friend class ::WinIfExists;
32310
76717
  friend class ::WinImportHandler;
32311
76718
  friend class ::WinMacros;
32312
 
  friend class ::CMatchSyntax;
32313
 
  friend class ::ExtGnu;
 
76719
  friend class ::WinAsm;
 
76720
  friend class ::WinDeclSpecs;
 
76721
  friend class ::WinMemberExplSpec;
 
76722
  friend class ::WinTypeKeywords;
 
76723
  friend class ::WinFriend;
32314
76724
  friend class ::ExtAC;
32315
76725
  friend class ::ExtACBuilderCoupling;
32316
76726
  friend class ::ExtACSyntaxCoupling;
32317
76727
  friend class ::ExtACTree;
32318
76728
  friend class ::ExtACKeywords;
32319
 
  friend class ::WinAsm;
32320
 
  friend class ::WinDeclSpecs;
32321
 
  friend class ::WinMemberExplSpec;
32322
 
  friend class ::WinTypeKeywords;
 
76729
  friend class ::ExtGnu;
32323
76730
  friend class ::PragmaOnceUnitState;
32324
76731
  friend class ::PragmaOnce;
32325
 
  friend class ::CCExprResolve;
32326
 
  friend class ::CExprResolve;
 
76732
  friend class ::CMatchSyntax;
32327
76733
 
32328
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76734
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32329
76735
 
32330
76736
  CTree *sons[4]; // open, win_specs, declarator, close
32331
76737
 
32332
76738
public:
32333
76739
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
32334
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
76740
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
76741
    AddSon (sons[2], d); AddSon (sons[3], c); 
32335
76742
  }
32336
76743
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
32337
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
76744
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
76745
    AddSon (sons[2], d); AddSon (sons[3], c); 
32338
76746
  }
 
76747
  /** Get the identifier for this node type. Can be compared with NodeName(). */
32339
76748
  static const char *NodeId ();
 
76749
  /** Get the name of the node. Can be compared with NodeId(). */
32340
76750
  const char *NodeName () const { return NodeId (); }
 
76751
  /** Get the number of sons. */
32341
76752
  int Sons () const { return CTree::Sons (sons, 4); }
 
76753
  /** Get the n-th son.
 
76754
   *  \param n The index of the son.
 
76755
   *  \return The n-th son or NULL. */
32342
76756
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
32343
76757
  CTree *Declarator () const { return sons[2]; }
 
76758
  /** Replace a son.
 
76759
   *  \param old_son The son to replace.
 
76760
   *  \param new_son The new son. */
32344
76761
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32345
76762
    CTree::ReplaceSon (sons, 4, old_son, new_son);
32346
76763
  }
32347
76764
};
32348
76765
 
32349
76766
 
32350
 
#line 32351 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76767
#line 76768 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
32351
76768
} // closed Puma
 
76769
class CCExprResolve;
 
76770
class CExprResolve;
32352
76771
class WinIfExists;
32353
76772
class WinImportHandler;
32354
76773
class WinMacros;
32355
 
class CMatchSyntax;
32356
 
class ExtGnu;
 
76774
class WinAsm;
 
76775
class WinDeclSpecs;
 
76776
class WinMemberExplSpec;
 
76777
class WinTypeKeywords;
 
76778
class WinFriend;
32357
76779
class ExtAC;
32358
76780
class ExtACBuilderCoupling;
32359
76781
class ExtACSyntaxCoupling;
32360
76782
class ExtACTree;
32361
76783
class ExtACKeywords;
32362
 
class WinAsm;
32363
 
class WinDeclSpecs;
32364
 
class WinMemberExplSpec;
32365
 
class WinTypeKeywords;
 
76784
class ExtGnu;
32366
76785
class PragmaOnceUnitState;
32367
76786
class PragmaOnce;
32368
 
class CCExprResolve;
32369
 
class CExprResolve;
 
76787
class CMatchSyntax;
32370
76788
namespace Puma {
32371
76789
 
32372
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76790
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32373
76791
class CT_ArrayDelimiter : public CTree {
32374
 
#line 32375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76792
#line 76793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
76793
  friend class ::CCExprResolve;
 
76794
  friend class ::CExprResolve;
32375
76795
  friend class ::WinIfExists;
32376
76796
  friend class ::WinImportHandler;
32377
76797
  friend class ::WinMacros;
32378
 
  friend class ::CMatchSyntax;
32379
 
  friend class ::ExtGnu;
 
76798
  friend class ::WinAsm;
 
76799
  friend class ::WinDeclSpecs;
 
76800
  friend class ::WinMemberExplSpec;
 
76801
  friend class ::WinTypeKeywords;
 
76802
  friend class ::WinFriend;
32380
76803
  friend class ::ExtAC;
32381
76804
  friend class ::ExtACBuilderCoupling;
32382
76805
  friend class ::ExtACSyntaxCoupling;
32383
76806
  friend class ::ExtACTree;
32384
76807
  friend class ::ExtACKeywords;
32385
 
  friend class ::WinAsm;
32386
 
  friend class ::WinDeclSpecs;
32387
 
  friend class ::WinMemberExplSpec;
32388
 
  friend class ::WinTypeKeywords;
 
76808
  friend class ::ExtGnu;
32389
76809
  friend class ::PragmaOnceUnitState;
32390
76810
  friend class ::PragmaOnce;
32391
 
  friend class ::CCExprResolve;
32392
 
  friend class ::CExprResolve;
 
76811
  friend class ::CMatchSyntax;
32393
76812
 
32394
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76813
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32395
76814
 
32396
76815
  CTree *sons[4]; // star, static, quals, expr
32397
76816
  bool pos0;
32398
76817
 
32399
76818
public:
32400
76819
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
32401
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
76820
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
76821
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
32402
76822
  }
 
76823
  /** Get the identifier for this node type. Can be compared with NodeName(). */
32403
76824
  static const char *NodeId ();
 
76825
  /** Get the name of the node. Can be compared with NodeId(). */
32404
76826
  const char *NodeName () const { return NodeId (); }
 
76827
  /** Get the number of sons. */
32405
76828
  int Sons () const { return CTree::Sons (sons, 4); }
 
76829
  /** Get the n-th son.
 
76830
   *  \param n The index of the son.
 
76831
   *  \return The n-th son or NULL. */
32406
76832
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
32407
76833
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
32408
76834
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
32409
76835
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
32410
76836
  CTree *Expr () const { return sons[3]; }
 
76837
  /** Replace a son.
 
76838
   *  \param old_son The son to replace.
 
76839
   *  \param new_son The new son. */
32411
76840
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32412
76841
    CTree::ReplaceSon (sons, 4, old_son, new_son);
32413
76842
  }
32414
76843
};
32415
76844
 
32416
76845
 
32417
 
#line 32418 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76846
#line 76847 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
32418
76847
} // closed Puma
 
76848
class CCExprResolve;
 
76849
class CExprResolve;
32419
76850
class WinIfExists;
32420
76851
class WinImportHandler;
32421
76852
class WinMacros;
32422
 
class CMatchSyntax;
32423
 
class ExtGnu;
 
76853
class WinAsm;
 
76854
class WinDeclSpecs;
 
76855
class WinMemberExplSpec;
 
76856
class WinTypeKeywords;
 
76857
class WinFriend;
32424
76858
class ExtAC;
32425
76859
class ExtACBuilderCoupling;
32426
76860
class ExtACSyntaxCoupling;
32427
76861
class ExtACTree;
32428
76862
class ExtACKeywords;
32429
 
class WinAsm;
32430
 
class WinDeclSpecs;
32431
 
class WinMemberExplSpec;
32432
 
class WinTypeKeywords;
 
76863
class ExtGnu;
32433
76864
class PragmaOnceUnitState;
32434
76865
class PragmaOnce;
32435
 
class CCExprResolve;
32436
 
class CExprResolve;
 
76866
class CMatchSyntax;
32437
76867
namespace Puma {
32438
76868
 
32439
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76869
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32440
76870
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
32441
 
#line 32442 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76871
#line 76872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
76872
  friend class ::CCExprResolve;
 
76873
  friend class ::CExprResolve;
32442
76874
  friend class ::WinIfExists;
32443
76875
  friend class ::WinImportHandler;
32444
76876
  friend class ::WinMacros;
32445
 
  friend class ::CMatchSyntax;
32446
 
  friend class ::ExtGnu;
 
76877
  friend class ::WinAsm;
 
76878
  friend class ::WinDeclSpecs;
 
76879
  friend class ::WinMemberExplSpec;
 
76880
  friend class ::WinTypeKeywords;
 
76881
  friend class ::WinFriend;
32447
76882
  friend class ::ExtAC;
32448
76883
  friend class ::ExtACBuilderCoupling;
32449
76884
  friend class ::ExtACSyntaxCoupling;
32450
76885
  friend class ::ExtACTree;
32451
76886
  friend class ::ExtACKeywords;
32452
 
  friend class ::WinAsm;
32453
 
  friend class ::WinDeclSpecs;
32454
 
  friend class ::WinMemberExplSpec;
32455
 
  friend class ::WinTypeKeywords;
 
76887
  friend class ::ExtGnu;
32456
76888
  friend class ::PragmaOnceUnitState;
32457
76889
  friend class ::PragmaOnce;
32458
 
  friend class ::CCExprResolve;
32459
 
  friend class ::CExprResolve;
 
76890
  friend class ::CMatchSyntax;
32460
76891
 
32461
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76892
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32462
76893
 
32463
76894
  CTree *sons[4]; // declarator, open, delim, close
32464
76895
 
32465
76896
public:
32466
76897
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
32467
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
76898
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
76899
    AddSon (sons[2], ad); AddSon (sons[3], c); 
32468
76900
  }
 
76901
  /** Get the identifier for this node type. Can be compared with NodeName(). */
32469
76902
  static const char *NodeId ();
 
76903
  /** Get the name of the node. Can be compared with NodeId(). */
32470
76904
  const char *NodeName () const { return NodeId (); }
 
76905
  /** Get the number of sons. */
32471
76906
  int Sons () const { return 4; }
 
76907
  /** Get the n-th son.
 
76908
   *  \param n The index of the son.
 
76909
   *  \return The n-th son or NULL. */
32472
76910
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
32473
76911
  CTree *Declarator () const { return sons[0]; }
32474
76912
  CT_ArrayDelimiter *Delimiter () const 
32475
76913
   { return (CT_ArrayDelimiter*)sons[2]; }
 
76914
  /** Replace a son.
 
76915
   *  \param old_son The son to replace.
 
76916
   *  \param new_son The new son. */
32476
76917
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32477
76918
    CTree::ReplaceSon (sons, 4, old_son, new_son);
32478
76919
  }
32482
76923
};
32483
76924
 
32484
76925
 
32485
 
#line 32486 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76926
#line 76927 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
32486
76927
} // closed Puma
 
76928
class CCExprResolve;
 
76929
class CExprResolve;
32487
76930
class WinIfExists;
32488
76931
class WinImportHandler;
32489
76932
class WinMacros;
32490
 
class CMatchSyntax;
32491
 
class ExtGnu;
 
76933
class WinAsm;
 
76934
class WinDeclSpecs;
 
76935
class WinMemberExplSpec;
 
76936
class WinTypeKeywords;
 
76937
class WinFriend;
32492
76938
class ExtAC;
32493
76939
class ExtACBuilderCoupling;
32494
76940
class ExtACSyntaxCoupling;
32495
76941
class ExtACTree;
32496
76942
class ExtACKeywords;
32497
 
class WinAsm;
32498
 
class WinDeclSpecs;
32499
 
class WinMemberExplSpec;
32500
 
class WinTypeKeywords;
 
76943
class ExtGnu;
32501
76944
class PragmaOnceUnitState;
32502
76945
class PragmaOnce;
32503
 
class CCExprResolve;
32504
 
class CExprResolve;
 
76946
class CMatchSyntax;
32505
76947
namespace Puma {
32506
76948
 
32507
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76949
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32508
76950
class CT_FctDeclarator : public CT_Declarator {
32509
 
#line 32510 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
76951
#line 76952 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
76952
  friend class ::CCExprResolve;
 
76953
  friend class ::CExprResolve;
32510
76954
  friend class ::WinIfExists;
32511
76955
  friend class ::WinImportHandler;
32512
76956
  friend class ::WinMacros;
32513
 
  friend class ::CMatchSyntax;
32514
 
  friend class ::ExtGnu;
 
76957
  friend class ::WinAsm;
 
76958
  friend class ::WinDeclSpecs;
 
76959
  friend class ::WinMemberExplSpec;
 
76960
  friend class ::WinTypeKeywords;
 
76961
  friend class ::WinFriend;
32515
76962
  friend class ::ExtAC;
32516
76963
  friend class ::ExtACBuilderCoupling;
32517
76964
  friend class ::ExtACSyntaxCoupling;
32518
76965
  friend class ::ExtACTree;
32519
76966
  friend class ::ExtACKeywords;
32520
 
  friend class ::WinAsm;
32521
 
  friend class ::WinDeclSpecs;
32522
 
  friend class ::WinMemberExplSpec;
32523
 
  friend class ::WinTypeKeywords;
 
76967
  friend class ::ExtGnu;
32524
76968
  friend class ::PragmaOnceUnitState;
32525
76969
  friend class ::PragmaOnce;
32526
 
  friend class ::CCExprResolve;
32527
 
  friend class ::CExprResolve;
 
76970
  friend class ::CMatchSyntax;
32528
76971
 
32529
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76972
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32530
76973
 
32531
76974
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
32532
76975
 
32533
76976
public:
32534
76977
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
32535
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
76978
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
76979
    AddSon (sons[2], cv); AddSon (sons[3], es); 
32536
76980
  }
 
76981
  /** Get the identifier for this node type. Can be compared with NodeName(). */
32537
76982
  static const char *NodeId ();
 
76983
  /** Get the name of the node. Can be compared with NodeId(). */
32538
76984
  const char *NodeName () const { return NodeId (); }
 
76985
  /** Get the number of sons. */
32539
76986
  int Sons () const { return CTree::Sons (sons, 4); }
 
76987
  /** Get the n-th son.
 
76988
   *  \param n The index of the son.
 
76989
   *  \return The n-th son or NULL. */
32540
76990
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
32541
76991
  CTree *Declarator () const { return sons[0]; }
32542
76992
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
32543
76993
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
32544
76994
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
76995
  /** Replace a son.
 
76996
   *  \param old_son The son to replace.
 
76997
   *  \param new_son The new son. */
32545
76998
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32546
76999
    CTree::ReplaceSon (sons, 4, old_son, new_son);
32547
77000
  }
32548
77001
};
32549
77002
 
32550
77003
 
32551
 
#line 32552 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77004
#line 77005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
32552
77005
} // closed Puma
 
77006
class CCExprResolve;
 
77007
class CExprResolve;
32553
77008
class WinIfExists;
32554
77009
class WinImportHandler;
32555
77010
class WinMacros;
32556
 
class CMatchSyntax;
32557
 
class ExtGnu;
 
77011
class WinAsm;
 
77012
class WinDeclSpecs;
 
77013
class WinMemberExplSpec;
 
77014
class WinTypeKeywords;
 
77015
class WinFriend;
32558
77016
class ExtAC;
32559
77017
class ExtACBuilderCoupling;
32560
77018
class ExtACSyntaxCoupling;
32561
77019
class ExtACTree;
32562
77020
class ExtACKeywords;
32563
 
class WinAsm;
32564
 
class WinDeclSpecs;
32565
 
class WinMemberExplSpec;
32566
 
class WinTypeKeywords;
 
77021
class ExtGnu;
32567
77022
class PragmaOnceUnitState;
32568
77023
class PragmaOnce;
32569
 
class CCExprResolve;
32570
 
class CExprResolve;
 
77024
class CMatchSyntax;
32571
77025
namespace Puma {
32572
77026
 
32573
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77027
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32574
77028
class CT_RefDeclarator : public CT_Declarator {
32575
 
#line 32576 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77029
#line 77030 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
77030
  friend class ::CCExprResolve;
 
77031
  friend class ::CExprResolve;
32576
77032
  friend class ::WinIfExists;
32577
77033
  friend class ::WinImportHandler;
32578
77034
  friend class ::WinMacros;
32579
 
  friend class ::CMatchSyntax;
32580
 
  friend class ::ExtGnu;
 
77035
  friend class ::WinAsm;
 
77036
  friend class ::WinDeclSpecs;
 
77037
  friend class ::WinMemberExplSpec;
 
77038
  friend class ::WinTypeKeywords;
 
77039
  friend class ::WinFriend;
32581
77040
  friend class ::ExtAC;
32582
77041
  friend class ::ExtACBuilderCoupling;
32583
77042
  friend class ::ExtACSyntaxCoupling;
32584
77043
  friend class ::ExtACTree;
32585
77044
  friend class ::ExtACKeywords;
32586
 
  friend class ::WinAsm;
32587
 
  friend class ::WinDeclSpecs;
32588
 
  friend class ::WinMemberExplSpec;
32589
 
  friend class ::WinTypeKeywords;
 
77045
  friend class ::ExtGnu;
32590
77046
  friend class ::PragmaOnceUnitState;
32591
77047
  friend class ::PragmaOnce;
32592
 
  friend class ::CCExprResolve;
32593
 
  friend class ::CExprResolve;
 
77048
  friend class ::CMatchSyntax;
32594
77049
 
32595
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77050
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32596
77051
 
32597
77052
  CTree *sons[2]; // ref, declarator
32598
77053
 
32599
77054
public:
32600
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
77055
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
77056
  /** Get the identifier for this node type. Can be compared with NodeName(). */
32601
77057
  static const char *NodeId ();
 
77058
  /** Get the name of the node. Can be compared with NodeId(). */
32602
77059
  const char *NodeName () const { return NodeId (); }
 
77060
  /** Get the number of sons. */
32603
77061
  int Sons () const { return 2; }
 
77062
  /** Get the n-th son.
 
77063
   *  \param n The index of the son.
 
77064
   *  \return The n-th son or NULL. */
32604
77065
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
32605
77066
  CTree *Declarator () const { return sons[1]; }
 
77067
  /** Replace a son.
 
77068
   *  \param old_son The son to replace.
 
77069
   *  \param new_son The new son. */
32606
77070
  void ReplaceSon (CTree *old_son, CTree *new_son) {
32607
77071
    CTree::ReplaceSon (sons, 2, old_son, new_son);
32608
77072
  }
32609
77073
};
32610
77074
 
32611
77075
 
32612
 
#line 32613 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77076
#line 77077 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
32613
77077
} // closed Puma
 
77078
class CCExprResolve;
 
77079
class CExprResolve;
32614
77080
class WinIfExists;
32615
77081
class WinImportHandler;
32616
77082
class WinMacros;
32617
 
class CMatchSyntax;
32618
 
class ExtGnu;
 
77083
class WinAsm;
 
77084
class WinDeclSpecs;
 
77085
class WinMemberExplSpec;
 
77086
class WinTypeKeywords;
 
77087
class WinFriend;
32619
77088
class ExtAC;
32620
77089
class ExtACBuilderCoupling;
32621
77090
class ExtACSyntaxCoupling;
32622
77091
class ExtACTree;
32623
77092
class ExtACKeywords;
32624
 
class WinAsm;
32625
 
class WinDeclSpecs;
32626
 
class WinMemberExplSpec;
32627
 
class WinTypeKeywords;
 
77093
class ExtGnu;
32628
77094
class PragmaOnceUnitState;
32629
77095
class PragmaOnce;
32630
 
class CCExprResolve;
32631
 
class CExprResolve;
 
77096
class CMatchSyntax;
32632
77097
namespace Puma {
32633
77098
 
32634
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77099
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32635
77100
class CT_PtrDeclarator : public CT_Declarator {
32636
 
#line 32637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77101
#line 77102 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
77102
  friend class ::CCExprResolve;
 
77103
  friend class ::CExprResolve;
32637
77104
  friend class ::WinIfExists;
32638
77105
  friend class ::WinImportHandler;
32639
77106
  friend class ::WinMacros;
32640
 
  friend class ::CMatchSyntax;
32641
 
  friend class ::ExtGnu;
 
77107
  friend class ::WinAsm;
 
77108
  friend class ::WinDeclSpecs;
 
77109
  friend class ::WinMemberExplSpec;
 
77110
  friend class ::WinTypeKeywords;
 
77111
  friend class ::WinFriend;
32642
77112
  friend class ::ExtAC;
32643
77113
  friend class ::ExtACBuilderCoupling;
32644
77114
  friend class ::ExtACSyntaxCoupling;
32645
77115
  friend class ::ExtACTree;
32646
77116
  friend class ::ExtACKeywords;
32647
 
  friend class ::WinAsm;
32648
 
  friend class ::WinDeclSpecs;
32649
 
  friend class ::WinMemberExplSpec;
32650
 
  friend class ::WinTypeKeywords;
 
77117
  friend class ::ExtGnu;
32651
77118
  friend class ::PragmaOnceUnitState;
32652
77119
  friend class ::PragmaOnce;
32653
 
  friend class ::CCExprResolve;
32654
 
  friend class ::CExprResolve;
 
77120
  friend class ::CMatchSyntax;
32655
77121
 
32656
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77122
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32657
77123
 
32658
77124
  CTree *sons[3]; // ptr, cv_quals, declarator
32659
77125
 
32660
77126
public:
32661
77127
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
32662
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
77128
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
32663
77129
  }
 
77130
  /** Get the identifier for this node type. Can be compared with NodeName(). */
32664
77131
  static const char *NodeId ();
 
77132
  /** Get the name of the node. Can be compared with NodeId(). */
32665
77133
  const char *NodeName () const { return NodeId (); }
 
77134
  /** Get the number of sons. */
32666
77135
  int Sons () const { return CTree::Sons (sons, 3); }
 
77136
  /** Get the n-th son.
 
77137
   *  \param n The index of the son.
 
77138
   *  \return The n-th son or NULL. */
32667
77139
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
32668
77140
  CTree *Declarator () const { return sons[2]; }
32669
77141
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
77142
  /** Replace a son.
 
77143
   *  \param old_son The son to replace.
 
77144
   *  \param new_son The new son. */
32670
77145
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32671
77146
    CTree::ReplaceSon (sons, 3, old_son, new_son);
32672
77147
  }
32673
77148
};
32674
77149
 
32675
77150
 
32676
 
#line 32677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77151
#line 77152 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
32677
77152
} // closed Puma
 
77153
class CCExprResolve;
 
77154
class CExprResolve;
32678
77155
class WinIfExists;
32679
77156
class WinImportHandler;
32680
77157
class WinMacros;
32681
 
class CMatchSyntax;
32682
 
class ExtGnu;
 
77158
class WinAsm;
 
77159
class WinDeclSpecs;
 
77160
class WinMemberExplSpec;
 
77161
class WinTypeKeywords;
 
77162
class WinFriend;
32683
77163
class ExtAC;
32684
77164
class ExtACBuilderCoupling;
32685
77165
class ExtACSyntaxCoupling;
32686
77166
class ExtACTree;
32687
77167
class ExtACKeywords;
32688
 
class WinAsm;
32689
 
class WinDeclSpecs;
32690
 
class WinMemberExplSpec;
32691
 
class WinTypeKeywords;
 
77168
class ExtGnu;
32692
77169
class PragmaOnceUnitState;
32693
77170
class PragmaOnce;
32694
 
class CCExprResolve;
32695
 
class CExprResolve;
 
77171
class CMatchSyntax;
32696
77172
namespace Puma {
32697
77173
 
32698
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77174
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32699
77175
class CT_MembPtrDeclarator : public CT_Declarator {
32700
 
#line 32701 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77176
#line 77177 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
77177
  friend class ::CCExprResolve;
 
77178
  friend class ::CExprResolve;
32701
77179
  friend class ::WinIfExists;
32702
77180
  friend class ::WinImportHandler;
32703
77181
  friend class ::WinMacros;
32704
 
  friend class ::CMatchSyntax;
32705
 
  friend class ::ExtGnu;
 
77182
  friend class ::WinAsm;
 
77183
  friend class ::WinDeclSpecs;
 
77184
  friend class ::WinMemberExplSpec;
 
77185
  friend class ::WinTypeKeywords;
 
77186
  friend class ::WinFriend;
32706
77187
  friend class ::ExtAC;
32707
77188
  friend class ::ExtACBuilderCoupling;
32708
77189
  friend class ::ExtACSyntaxCoupling;
32709
77190
  friend class ::ExtACTree;
32710
77191
  friend class ::ExtACKeywords;
32711
 
  friend class ::WinAsm;
32712
 
  friend class ::WinDeclSpecs;
32713
 
  friend class ::WinMemberExplSpec;
32714
 
  friend class ::WinTypeKeywords;
 
77192
  friend class ::ExtGnu;
32715
77193
  friend class ::PragmaOnceUnitState;
32716
77194
  friend class ::PragmaOnce;
32717
 
  friend class ::CCExprResolve;
32718
 
  friend class ::CExprResolve;
 
77195
  friend class ::CMatchSyntax;
32719
77196
 
32720
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77197
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32721
77198
 
32722
77199
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
32723
77200
 
32724
77201
public:
32725
77202
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
32726
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
77203
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
77204
    AddSon (sons[3], q); AddSon (sons[4], d); 
32727
77205
  }
 
77206
  /** Get the identifier for this node type. Can be compared with NodeName(). */
32728
77207
  static const char *NodeId ();
 
77208
  /** Get the name of the node. Can be compared with NodeId(). */
32729
77209
  const char *NodeName () const { return NodeId (); }
 
77210
  /** Get the number of sons. */
32730
77211
  int Sons () const { return CTree::Sons (sons, 5); }
 
77212
  /** Get the n-th son.
 
77213
   *  \param n The index of the son.
 
77214
   *  \return The n-th son or NULL. */
32731
77215
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
32732
77216
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
32733
77217
  CTree *Declarator () const { return sons[4]; }
32734
77218
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
77219
  /** Replace a son.
 
77220
   *  \param old_son The son to replace.
 
77221
   *  \param new_son The new son. */
32735
77222
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32736
77223
    CTree::ReplaceSon (sons, 5, old_son, new_son);
32737
77224
  }
32738
77225
};
32739
77226
 
32740
77227
 
32741
 
#line 32742 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77228
#line 77229 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
32742
77229
} // closed Puma
 
77230
class CCExprResolve;
 
77231
class CExprResolve;
32743
77232
class WinIfExists;
32744
77233
class WinImportHandler;
32745
77234
class WinMacros;
32746
 
class CMatchSyntax;
32747
 
class ExtGnu;
 
77235
class WinAsm;
 
77236
class WinDeclSpecs;
 
77237
class WinMemberExplSpec;
 
77238
class WinTypeKeywords;
 
77239
class WinFriend;
32748
77240
class ExtAC;
32749
77241
class ExtACBuilderCoupling;
32750
77242
class ExtACSyntaxCoupling;
32751
77243
class ExtACTree;
32752
77244
class ExtACKeywords;
32753
 
class WinAsm;
32754
 
class WinDeclSpecs;
32755
 
class WinMemberExplSpec;
32756
 
class WinTypeKeywords;
 
77245
class ExtGnu;
32757
77246
class PragmaOnceUnitState;
32758
77247
class PragmaOnce;
32759
 
class CCExprResolve;
32760
 
class CExprResolve;
 
77248
class CMatchSyntax;
32761
77249
namespace Puma {
32762
77250
 
32763
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77251
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32764
77252
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
32765
 
#line 32766 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77253
#line 77254 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
77254
  friend class ::CCExprResolve;
 
77255
  friend class ::CExprResolve;
32766
77256
  friend class ::WinIfExists;
32767
77257
  friend class ::WinImportHandler;
32768
77258
  friend class ::WinMacros;
32769
 
  friend class ::CMatchSyntax;
32770
 
  friend class ::ExtGnu;
 
77259
  friend class ::WinAsm;
 
77260
  friend class ::WinDeclSpecs;
 
77261
  friend class ::WinMemberExplSpec;
 
77262
  friend class ::WinTypeKeywords;
 
77263
  friend class ::WinFriend;
32771
77264
  friend class ::ExtAC;
32772
77265
  friend class ::ExtACBuilderCoupling;
32773
77266
  friend class ::ExtACSyntaxCoupling;
32774
77267
  friend class ::ExtACTree;
32775
77268
  friend class ::ExtACKeywords;
32776
 
  friend class ::WinAsm;
32777
 
  friend class ::WinDeclSpecs;
32778
 
  friend class ::WinMemberExplSpec;
32779
 
  friend class ::WinTypeKeywords;
 
77269
  friend class ::ExtGnu;
32780
77270
  friend class ::PragmaOnceUnitState;
32781
77271
  friend class ::PragmaOnce;
32782
 
  friend class ::CCExprResolve;
32783
 
  friend class ::CExprResolve;
 
77272
  friend class ::CMatchSyntax;
32784
77273
 
32785
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77274
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32786
77275
 
32787
77276
  CTree *sons[3]; // declarator, colon, expr
32788
77277
 
32789
77278
public:
32790
77279
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
32791
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
77280
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
32792
77281
  }
 
77282
  /** Get the identifier for this node type. Can be compared with NodeName(). */
32793
77283
  static const char *NodeId ();
 
77284
  /** Get the name of the node. Can be compared with NodeId(). */
32794
77285
  const char *NodeName () const { return NodeId (); }
 
77286
  /** Get the number of sons. */
32795
77287
  int Sons () const { return CTree::Sons (sons, 3); }
 
77288
  /** Get the n-th son.
 
77289
   *  \param n The index of the son.
 
77290
   *  \return The n-th son or NULL. */
32796
77291
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
32797
77292
  CTree *Declarator () const { return sons[0]; }
32798
77293
  CTree *Expr () const { return sons[2]; }
32799
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
77294
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
32800
77295
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
77296
  /** Replace a son.
 
77297
   *  \param old_son The son to replace.
 
77298
   *  \param new_son The new son. */
32801
77299
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32802
77300
    CTree::ReplaceSon (sons, 3, old_son, new_son);
32803
77301
  }
32810
77308
/*****************************************************************************/
32811
77309
 
32812
77310
 
32813
 
#line 32814 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77311
#line 77312 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
32814
77312
} // closed Puma
 
77313
class CCExprResolve;
 
77314
class CExprResolve;
32815
77315
class WinIfExists;
32816
77316
class WinImportHandler;
32817
77317
class WinMacros;
32818
 
class CMatchSyntax;
32819
 
class ExtGnu;
 
77318
class WinAsm;
 
77319
class WinDeclSpecs;
 
77320
class WinMemberExplSpec;
 
77321
class WinTypeKeywords;
 
77322
class WinFriend;
32820
77323
class ExtAC;
32821
77324
class ExtACBuilderCoupling;
32822
77325
class ExtACSyntaxCoupling;
32823
77326
class ExtACTree;
32824
77327
class ExtACKeywords;
32825
 
class WinAsm;
32826
 
class WinDeclSpecs;
32827
 
class WinMemberExplSpec;
32828
 
class WinTypeKeywords;
 
77328
class ExtGnu;
32829
77329
class PragmaOnceUnitState;
32830
77330
class PragmaOnce;
32831
 
class CCExprResolve;
32832
 
class CExprResolve;
 
77331
class CMatchSyntax;
32833
77332
namespace Puma {
32834
77333
 
32835
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77334
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32836
77335
class CT_Statement : public CTree {
32837
 
#line 32838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77336
#line 77337 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
77337
  friend class ::CCExprResolve;
 
77338
  friend class ::CExprResolve;
32838
77339
  friend class ::WinIfExists;
32839
77340
  friend class ::WinImportHandler;
32840
77341
  friend class ::WinMacros;
32841
 
  friend class ::CMatchSyntax;
32842
 
  friend class ::ExtGnu;
 
77342
  friend class ::WinAsm;
 
77343
  friend class ::WinDeclSpecs;
 
77344
  friend class ::WinMemberExplSpec;
 
77345
  friend class ::WinTypeKeywords;
 
77346
  friend class ::WinFriend;
32843
77347
  friend class ::ExtAC;
32844
77348
  friend class ::ExtACBuilderCoupling;
32845
77349
  friend class ::ExtACSyntaxCoupling;
32846
77350
  friend class ::ExtACTree;
32847
77351
  friend class ::ExtACKeywords;
32848
 
  friend class ::WinAsm;
32849
 
  friend class ::WinDeclSpecs;
32850
 
  friend class ::WinMemberExplSpec;
32851
 
  friend class ::WinTypeKeywords;
 
77352
  friend class ::ExtGnu;
32852
77353
  friend class ::PragmaOnceUnitState;
32853
77354
  friend class ::PragmaOnce;
32854
 
  friend class ::CCExprResolve;
32855
 
  friend class ::CExprResolve;
 
77355
  friend class ::CMatchSyntax;
32856
77356
 
32857
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77357
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32858
77358
 
32859
77359
protected:
32860
77360
  CT_Statement () {}
 
77361
  virtual CT_Statement *IsStatement () { return this; }
32861
77362
};
32862
77363
 
32863
77364
 
32864
 
#line 32865 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77365
#line 77366 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
32865
77366
} // closed Puma
 
77367
class CCExprResolve;
 
77368
class CExprResolve;
32866
77369
class WinIfExists;
32867
77370
class WinImportHandler;
32868
77371
class WinMacros;
32869
 
class CMatchSyntax;
32870
 
class ExtGnu;
 
77372
class WinAsm;
 
77373
class WinDeclSpecs;
 
77374
class WinMemberExplSpec;
 
77375
class WinTypeKeywords;
 
77376
class WinFriend;
32871
77377
class ExtAC;
32872
77378
class ExtACBuilderCoupling;
32873
77379
class ExtACSyntaxCoupling;
32874
77380
class ExtACTree;
32875
77381
class ExtACKeywords;
32876
 
class WinAsm;
32877
 
class WinDeclSpecs;
32878
 
class WinMemberExplSpec;
32879
 
class WinTypeKeywords;
 
77382
class ExtGnu;
32880
77383
class PragmaOnceUnitState;
32881
77384
class PragmaOnce;
32882
 
class CCExprResolve;
32883
 
class CExprResolve;
 
77385
class CMatchSyntax;
32884
77386
namespace Puma {
32885
77387
 
32886
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77388
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32887
77389
class CT_LabelStmt : public CT_Statement {
32888
 
#line 32889 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77390
#line 77391 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
77391
  friend class ::CCExprResolve;
 
77392
  friend class ::CExprResolve;
32889
77393
  friend class ::WinIfExists;
32890
77394
  friend class ::WinImportHandler;
32891
77395
  friend class ::WinMacros;
32892
 
  friend class ::CMatchSyntax;
32893
 
  friend class ::ExtGnu;
 
77396
  friend class ::WinAsm;
 
77397
  friend class ::WinDeclSpecs;
 
77398
  friend class ::WinMemberExplSpec;
 
77399
  friend class ::WinTypeKeywords;
 
77400
  friend class ::WinFriend;
32894
77401
  friend class ::ExtAC;
32895
77402
  friend class ::ExtACBuilderCoupling;
32896
77403
  friend class ::ExtACSyntaxCoupling;
32897
77404
  friend class ::ExtACTree;
32898
77405
  friend class ::ExtACKeywords;
32899
 
  friend class ::WinAsm;
32900
 
  friend class ::WinDeclSpecs;
32901
 
  friend class ::WinMemberExplSpec;
32902
 
  friend class ::WinTypeKeywords;
 
77406
  friend class ::ExtGnu;
32903
77407
  friend class ::PragmaOnceUnitState;
32904
77408
  friend class ::PragmaOnce;
32905
 
  friend class ::CCExprResolve;
32906
 
  friend class ::CExprResolve;
 
77409
  friend class ::CMatchSyntax;
32907
77410
 
32908
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77411
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32909
77412
 
32910
77413
  CTree *sons[3]; // id, colon, stmt
32911
77414
 
32912
77415
public:
32913
77416
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
32914
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
77417
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
32915
77418
  }
 
77419
  /** Get the identifier for this node type. Can be compared with NodeName(). */
32916
77420
  static const char *NodeId ();
 
77421
  /** Get the name of the node. Can be compared with NodeId(). */
32917
77422
  const char *NodeName () const { return NodeId (); }
 
77423
  /** Get the number of sons. */
32918
77424
  int Sons () const { return 3; }
 
77425
  /** Get the n-th son.
 
77426
   *  \param n The index of the son.
 
77427
   *  \return The n-th son or NULL. */
32919
77428
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
32920
77429
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
32921
77430
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
77431
  /** Replace a son.
 
77432
   *  \param old_son The son to replace.
 
77433
   *  \param new_son The new son. */
32922
77434
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32923
77435
    CTree::ReplaceSon (sons, 3, old_son, new_son);
32924
77436
  }
32925
77437
};
32926
77438
 
32927
77439
 
32928
 
#line 32929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77440
#line 77441 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
32929
77441
} // closed Puma
 
77442
class CCExprResolve;
 
77443
class CExprResolve;
32930
77444
class WinIfExists;
32931
77445
class WinImportHandler;
32932
77446
class WinMacros;
32933
 
class CMatchSyntax;
32934
 
class ExtGnu;
 
77447
class WinAsm;
 
77448
class WinDeclSpecs;
 
77449
class WinMemberExplSpec;
 
77450
class WinTypeKeywords;
 
77451
class WinFriend;
32935
77452
class ExtAC;
32936
77453
class ExtACBuilderCoupling;
32937
77454
class ExtACSyntaxCoupling;
32938
77455
class ExtACTree;
32939
77456
class ExtACKeywords;
32940
 
class WinAsm;
32941
 
class WinDeclSpecs;
32942
 
class WinMemberExplSpec;
32943
 
class WinTypeKeywords;
 
77457
class ExtGnu;
32944
77458
class PragmaOnceUnitState;
32945
77459
class PragmaOnce;
32946
 
class CCExprResolve;
32947
 
class CExprResolve;
 
77460
class CMatchSyntax;
32948
77461
namespace Puma {
32949
77462
 
32950
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77463
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32951
77464
class CT_DefaultStmt : public CT_Statement {
32952
 
#line 32953 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77465
#line 77466 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
77466
  friend class ::CCExprResolve;
 
77467
  friend class ::CExprResolve;
32953
77468
  friend class ::WinIfExists;
32954
77469
  friend class ::WinImportHandler;
32955
77470
  friend class ::WinMacros;
32956
 
  friend class ::CMatchSyntax;
32957
 
  friend class ::ExtGnu;
 
77471
  friend class ::WinAsm;
 
77472
  friend class ::WinDeclSpecs;
 
77473
  friend class ::WinMemberExplSpec;
 
77474
  friend class ::WinTypeKeywords;
 
77475
  friend class ::WinFriend;
32958
77476
  friend class ::ExtAC;
32959
77477
  friend class ::ExtACBuilderCoupling;
32960
77478
  friend class ::ExtACSyntaxCoupling;
32961
77479
  friend class ::ExtACTree;
32962
77480
  friend class ::ExtACKeywords;
32963
 
  friend class ::WinAsm;
32964
 
  friend class ::WinDeclSpecs;
32965
 
  friend class ::WinMemberExplSpec;
32966
 
  friend class ::WinTypeKeywords;
 
77481
  friend class ::ExtGnu;
32967
77482
  friend class ::PragmaOnceUnitState;
32968
77483
  friend class ::PragmaOnce;
32969
 
  friend class ::CCExprResolve;
32970
 
  friend class ::CExprResolve;
 
77484
  friend class ::CMatchSyntax;
32971
77485
 
32972
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77486
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
32973
77487
 
32974
77488
  CTree *sons[3]; // keyword, colon, stmt
32975
77489
 
32976
77490
public:
32977
77491
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
32978
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
77492
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
32979
77493
  }
 
77494
  /** Get the identifier for this node type. Can be compared with NodeName(). */
32980
77495
  static const char *NodeId ();
 
77496
  /** Get the name of the node. Can be compared with NodeId(). */
32981
77497
  const char *NodeName () const { return NodeId (); }
 
77498
  /** Get the number of sons. */
32982
77499
  int Sons () const { return 3; }
 
77500
  /** Get the n-th son.
 
77501
   *  \param n The index of the son.
 
77502
   *  \return The n-th son or NULL. */
32983
77503
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
32984
77504
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
77505
  /** Replace a son.
 
77506
   *  \param old_son The son to replace.
 
77507
   *  \param new_son The new son. */
32985
77508
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32986
77509
    CTree::ReplaceSon (sons, 3, old_son, new_son);
32987
77510
  }
32988
77511
};
32989
77512
 
32990
77513
 
32991
 
#line 32992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77514
#line 77515 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
32992
77515
} // closed Puma
 
77516
class CCExprResolve;
 
77517
class CExprResolve;
32993
77518
class WinIfExists;
32994
77519
class WinImportHandler;
32995
77520
class WinMacros;
32996
 
class CMatchSyntax;
32997
 
class ExtGnu;
 
77521
class WinAsm;
 
77522
class WinDeclSpecs;
 
77523
class WinMemberExplSpec;
 
77524
class WinTypeKeywords;
 
77525
class WinFriend;
32998
77526
class ExtAC;
32999
77527
class ExtACBuilderCoupling;
33000
77528
class ExtACSyntaxCoupling;
33001
77529
class ExtACTree;
33002
77530
class ExtACKeywords;
33003
 
class WinAsm;
33004
 
class WinDeclSpecs;
33005
 
class WinMemberExplSpec;
33006
 
class WinTypeKeywords;
 
77531
class ExtGnu;
33007
77532
class PragmaOnceUnitState;
33008
77533
class PragmaOnce;
33009
 
class CCExprResolve;
33010
 
class CExprResolve;
 
77534
class CMatchSyntax;
33011
77535
namespace Puma {
33012
77536
 
33013
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77537
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33014
77538
class CT_TryStmt : public CT_Statement {
33015
 
#line 33016 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77539
#line 77540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
77540
  friend class ::CCExprResolve;
 
77541
  friend class ::CExprResolve;
33016
77542
  friend class ::WinIfExists;
33017
77543
  friend class ::WinImportHandler;
33018
77544
  friend class ::WinMacros;
33019
 
  friend class ::CMatchSyntax;
33020
 
  friend class ::ExtGnu;
 
77545
  friend class ::WinAsm;
 
77546
  friend class ::WinDeclSpecs;
 
77547
  friend class ::WinMemberExplSpec;
 
77548
  friend class ::WinTypeKeywords;
 
77549
  friend class ::WinFriend;
33021
77550
  friend class ::ExtAC;
33022
77551
  friend class ::ExtACBuilderCoupling;
33023
77552
  friend class ::ExtACSyntaxCoupling;
33024
77553
  friend class ::ExtACTree;
33025
77554
  friend class ::ExtACKeywords;
33026
 
  friend class ::WinAsm;
33027
 
  friend class ::WinDeclSpecs;
33028
 
  friend class ::WinMemberExplSpec;
33029
 
  friend class ::WinTypeKeywords;
 
77555
  friend class ::ExtGnu;
33030
77556
  friend class ::PragmaOnceUnitState;
33031
77557
  friend class ::PragmaOnce;
33032
 
  friend class ::CCExprResolve;
33033
 
  friend class ::CExprResolve;
 
77558
  friend class ::CMatchSyntax;
33034
77559
 
33035
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77560
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33036
77561
 
33037
77562
  CTree *sons[3]; // try, stmt, handlers
33038
77563
 
33039
77564
public:
33040
77565
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
33041
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
77566
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
33042
77567
  }
 
77568
  /** Get the identifier for this node type. Can be compared with NodeName(). */
33043
77569
  static const char *NodeId ();
 
77570
  /** Get the name of the node. Can be compared with NodeId(). */
33044
77571
  const char *NodeName () const { return NodeId (); }
 
77572
  /** Get the number of sons. */
33045
77573
  int Sons () const { return 3; }
 
77574
  /** Get the n-th son.
 
77575
   *  \param n The index of the son.
 
77576
   *  \return The n-th son or NULL. */
33046
77577
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
33047
77578
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
33048
77579
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
77580
  /** Replace a son.
 
77581
   *  \param old_son The son to replace.
 
77582
   *  \param new_son The new son. */
33049
77583
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33050
77584
    CTree::ReplaceSon (sons, 3, old_son, new_son);
33051
77585
  }
33052
77586
};
33053
77587
 
33054
77588
 
33055
 
#line 33056 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77589
#line 77590 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
33056
77590
} // closed Puma
 
77591
class CCExprResolve;
 
77592
class CExprResolve;
33057
77593
class WinIfExists;
33058
77594
class WinImportHandler;
33059
77595
class WinMacros;
33060
 
class CMatchSyntax;
33061
 
class ExtGnu;
 
77596
class WinAsm;
 
77597
class WinDeclSpecs;
 
77598
class WinMemberExplSpec;
 
77599
class WinTypeKeywords;
 
77600
class WinFriend;
33062
77601
class ExtAC;
33063
77602
class ExtACBuilderCoupling;
33064
77603
class ExtACSyntaxCoupling;
33065
77604
class ExtACTree;
33066
77605
class ExtACKeywords;
33067
 
class WinAsm;
33068
 
class WinDeclSpecs;
33069
 
class WinMemberExplSpec;
33070
 
class WinTypeKeywords;
 
77606
class ExtGnu;
33071
77607
class PragmaOnceUnitState;
33072
77608
class PragmaOnce;
33073
 
class CCExprResolve;
33074
 
class CExprResolve;
 
77609
class CMatchSyntax;
33075
77610
namespace Puma {
33076
77611
 
33077
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77612
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33078
77613
class CT_CaseStmt : public CT_Statement {
33079
 
#line 33080 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77614
#line 77615 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
77615
  friend class ::CCExprResolve;
 
77616
  friend class ::CExprResolve;
33080
77617
  friend class ::WinIfExists;
33081
77618
  friend class ::WinImportHandler;
33082
77619
  friend class ::WinMacros;
33083
 
  friend class ::CMatchSyntax;
33084
 
  friend class ::ExtGnu;
 
77620
  friend class ::WinAsm;
 
77621
  friend class ::WinDeclSpecs;
 
77622
  friend class ::WinMemberExplSpec;
 
77623
  friend class ::WinTypeKeywords;
 
77624
  friend class ::WinFriend;
33085
77625
  friend class ::ExtAC;
33086
77626
  friend class ::ExtACBuilderCoupling;
33087
77627
  friend class ::ExtACSyntaxCoupling;
33088
77628
  friend class ::ExtACTree;
33089
77629
  friend class ::ExtACKeywords;
33090
 
  friend class ::WinAsm;
33091
 
  friend class ::WinDeclSpecs;
33092
 
  friend class ::WinMemberExplSpec;
33093
 
  friend class ::WinTypeKeywords;
 
77630
  friend class ::ExtGnu;
33094
77631
  friend class ::PragmaOnceUnitState;
33095
77632
  friend class ::PragmaOnce;
33096
 
  friend class ::CCExprResolve;
33097
 
  friend class ::CExprResolve;
 
77633
  friend class ::CMatchSyntax;
33098
77634
 
33099
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77635
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33100
77636
 
33101
77637
  CTree *sons[4]; // keyword, expr, colon, stmt
33102
77638
 
33103
77639
public:
33104
77640
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
33105
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
77641
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
77642
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
33106
77643
  }
 
77644
  /** Get the identifier for this node type. Can be compared with NodeName(). */
33107
77645
  static const char *NodeId ();
 
77646
  /** Get the name of the node. Can be compared with NodeId(). */
33108
77647
  const char *NodeName () const { return NodeId (); }
 
77648
  /** Get the number of sons. */
33109
77649
  int Sons () const { return 4; }
 
77650
  /** Get the n-th son.
 
77651
   *  \param n The index of the son.
 
77652
   *  \return The n-th son or NULL. */
33110
77653
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
33111
77654
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
33112
77655
  CTree *Expr () const { return sons[1]; }
 
77656
  /** Replace a son.
 
77657
   *  \param old_son The son to replace.
 
77658
   *  \param new_son The new son. */
33113
77659
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33114
77660
    CTree::ReplaceSon (sons, 4, old_son, new_son);
33115
77661
  }
33116
77662
};
33117
77663
 
33118
77664
 
33119
 
#line 33120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77665
#line 77666 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
33120
77666
} // closed Puma
 
77667
class CCExprResolve;
 
77668
class CExprResolve;
33121
77669
class WinIfExists;
33122
77670
class WinImportHandler;
33123
77671
class WinMacros;
33124
 
class CMatchSyntax;
33125
 
class ExtGnu;
 
77672
class WinAsm;
 
77673
class WinDeclSpecs;
 
77674
class WinMemberExplSpec;
 
77675
class WinTypeKeywords;
 
77676
class WinFriend;
33126
77677
class ExtAC;
33127
77678
class ExtACBuilderCoupling;
33128
77679
class ExtACSyntaxCoupling;
33129
77680
class ExtACTree;
33130
77681
class ExtACKeywords;
33131
 
class WinAsm;
33132
 
class WinDeclSpecs;
33133
 
class WinMemberExplSpec;
33134
 
class WinTypeKeywords;
 
77682
class ExtGnu;
33135
77683
class PragmaOnceUnitState;
33136
77684
class PragmaOnce;
33137
 
class CCExprResolve;
33138
 
class CExprResolve;
 
77685
class CMatchSyntax;
33139
77686
namespace Puma {
33140
77687
 
33141
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77688
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33142
77689
class CT_ExprStmt : public CT_Statement {
33143
 
#line 33144 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77690
#line 77691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
77691
  friend class ::CCExprResolve;
 
77692
  friend class ::CExprResolve;
33144
77693
  friend class ::WinIfExists;
33145
77694
  friend class ::WinImportHandler;
33146
77695
  friend class ::WinMacros;
33147
 
  friend class ::CMatchSyntax;
33148
 
  friend class ::ExtGnu;
 
77696
  friend class ::WinAsm;
 
77697
  friend class ::WinDeclSpecs;
 
77698
  friend class ::WinMemberExplSpec;
 
77699
  friend class ::WinTypeKeywords;
 
77700
  friend class ::WinFriend;
33149
77701
  friend class ::ExtAC;
33150
77702
  friend class ::ExtACBuilderCoupling;
33151
77703
  friend class ::ExtACSyntaxCoupling;
33152
77704
  friend class ::ExtACTree;
33153
77705
  friend class ::ExtACKeywords;
33154
 
  friend class ::WinAsm;
33155
 
  friend class ::WinDeclSpecs;
33156
 
  friend class ::WinMemberExplSpec;
33157
 
  friend class ::WinTypeKeywords;
 
77706
  friend class ::ExtGnu;
33158
77707
  friend class ::PragmaOnceUnitState;
33159
77708
  friend class ::PragmaOnce;
33160
 
  friend class ::CCExprResolve;
33161
 
  friend class ::CExprResolve;
 
77709
  friend class ::CMatchSyntax;
33162
77710
 
33163
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77711
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33164
77712
 
33165
77713
  CTree *sons[2]; // expr, semi_colon
33166
77714
 
33167
77715
public:
33168
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
77716
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
77717
  /** Get the identifier for this node type. Can be compared with NodeName(). */
33169
77718
  static const char *NodeId ();
 
77719
  /** Get the name of the node. Can be compared with NodeId(). */
33170
77720
  const char *NodeName () const { return NodeId (); }
 
77721
  /** Get the number of sons. */
33171
77722
  int Sons () const { return CTree::Sons (sons, 2); }
 
77723
  /** Get the n-th son.
 
77724
   *  \param n The index of the son.
 
77725
   *  \return The n-th son or NULL. */
33172
77726
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
33173
77727
  CTree *Expr () const { return sons[0]; }
 
77728
  /** Replace a son.
 
77729
   *  \param old_son The son to replace.
 
77730
   *  \param new_son The new son. */
33174
77731
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33175
77732
    CTree::ReplaceSon (sons, 2, old_son, new_son);
33176
77733
  }
33177
77734
};
33178
77735
 
33179
77736
 
33180
 
#line 33181 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77737
#line 77738 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
33181
77738
} // closed Puma
 
77739
class CCExprResolve;
 
77740
class CExprResolve;
33182
77741
class WinIfExists;
33183
77742
class WinImportHandler;
33184
77743
class WinMacros;
33185
 
class CMatchSyntax;
33186
 
class ExtGnu;
 
77744
class WinAsm;
 
77745
class WinDeclSpecs;
 
77746
class WinMemberExplSpec;
 
77747
class WinTypeKeywords;
 
77748
class WinFriend;
33187
77749
class ExtAC;
33188
77750
class ExtACBuilderCoupling;
33189
77751
class ExtACSyntaxCoupling;
33190
77752
class ExtACTree;
33191
77753
class ExtACKeywords;
33192
 
class WinAsm;
33193
 
class WinDeclSpecs;
33194
 
class WinMemberExplSpec;
33195
 
class WinTypeKeywords;
 
77754
class ExtGnu;
33196
77755
class PragmaOnceUnitState;
33197
77756
class PragmaOnce;
33198
 
class CCExprResolve;
33199
 
class CExprResolve;
 
77757
class CMatchSyntax;
33200
77758
namespace Puma {
33201
77759
 
33202
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77760
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33203
77761
class CT_DeclStmt : public CT_Statement {
33204
 
#line 33205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77762
#line 77763 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
77763
  friend class ::CCExprResolve;
 
77764
  friend class ::CExprResolve;
33205
77765
  friend class ::WinIfExists;
33206
77766
  friend class ::WinImportHandler;
33207
77767
  friend class ::WinMacros;
33208
 
  friend class ::CMatchSyntax;
33209
 
  friend class ::ExtGnu;
 
77768
  friend class ::WinAsm;
 
77769
  friend class ::WinDeclSpecs;
 
77770
  friend class ::WinMemberExplSpec;
 
77771
  friend class ::WinTypeKeywords;
 
77772
  friend class ::WinFriend;
33210
77773
  friend class ::ExtAC;
33211
77774
  friend class ::ExtACBuilderCoupling;
33212
77775
  friend class ::ExtACSyntaxCoupling;
33213
77776
  friend class ::ExtACTree;
33214
77777
  friend class ::ExtACKeywords;
33215
 
  friend class ::WinAsm;
33216
 
  friend class ::WinDeclSpecs;
33217
 
  friend class ::WinMemberExplSpec;
33218
 
  friend class ::WinTypeKeywords;
 
77778
  friend class ::ExtGnu;
33219
77779
  friend class ::PragmaOnceUnitState;
33220
77780
  friend class ::PragmaOnce;
33221
 
  friend class ::CCExprResolve;
33222
 
  friend class ::CExprResolve;
 
77781
  friend class ::CMatchSyntax;
33223
77782
 
33224
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77783
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33225
77784
 
33226
77785
  CTree *_decl;
33227
77786
 
33228
77787
public:
33229
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
77788
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
77789
  /** Get the identifier for this node type. Can be compared with NodeName(). */
33230
77790
  static const char *NodeId ();
 
77791
  /** Get the name of the node. Can be compared with NodeId(). */
33231
77792
  const char *NodeName () const { return NodeId (); }
 
77793
  /** Get the number of sons. */
33232
77794
  int Sons () const { return 1; }
 
77795
  /** Get the n-th son.
 
77796
   *  \param n The index of the son.
 
77797
   *  \return The n-th son or NULL. */
33233
77798
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
77799
  /** Replace a son.
 
77800
   *  \param old_son The son to replace.
 
77801
   *  \param new_son The new son. */
33234
77802
  void ReplaceSon (CTree *old_son, CTree *new_son) 
33235
 
   { if (old_son == _decl) _decl = new_son; }
 
77803
   { CTree::ReplaceSon (_decl, old_son, new_son); }
33236
77804
};
33237
77805
 
33238
77806
 
33239
 
#line 33240 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77807
#line 77808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
33240
77808
} // closed Puma
 
77809
class CCExprResolve;
 
77810
class CExprResolve;
33241
77811
class WinIfExists;
33242
77812
class WinImportHandler;
33243
77813
class WinMacros;
33244
 
class CMatchSyntax;
33245
 
class ExtGnu;
 
77814
class WinAsm;
 
77815
class WinDeclSpecs;
 
77816
class WinMemberExplSpec;
 
77817
class WinTypeKeywords;
 
77818
class WinFriend;
33246
77819
class ExtAC;
33247
77820
class ExtACBuilderCoupling;
33248
77821
class ExtACSyntaxCoupling;
33249
77822
class ExtACTree;
33250
77823
class ExtACKeywords;
33251
 
class WinAsm;
33252
 
class WinDeclSpecs;
33253
 
class WinMemberExplSpec;
33254
 
class WinTypeKeywords;
 
77824
class ExtGnu;
33255
77825
class PragmaOnceUnitState;
33256
77826
class PragmaOnce;
33257
 
class CCExprResolve;
33258
 
class CExprResolve;
 
77827
class CMatchSyntax;
33259
77828
namespace Puma {
33260
77829
 
33261
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77830
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33262
77831
class CT_SwitchStmt : public CT_Statement, public CSemScope {
33263
 
#line 33264 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77832
#line 77833 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
77833
  friend class ::CCExprResolve;
 
77834
  friend class ::CExprResolve;
33264
77835
  friend class ::WinIfExists;
33265
77836
  friend class ::WinImportHandler;
33266
77837
  friend class ::WinMacros;
33267
 
  friend class ::CMatchSyntax;
33268
 
  friend class ::ExtGnu;
 
77838
  friend class ::WinAsm;
 
77839
  friend class ::WinDeclSpecs;
 
77840
  friend class ::WinMemberExplSpec;
 
77841
  friend class ::WinTypeKeywords;
 
77842
  friend class ::WinFriend;
33269
77843
  friend class ::ExtAC;
33270
77844
  friend class ::ExtACBuilderCoupling;
33271
77845
  friend class ::ExtACSyntaxCoupling;
33272
77846
  friend class ::ExtACTree;
33273
77847
  friend class ::ExtACKeywords;
33274
 
  friend class ::WinAsm;
33275
 
  friend class ::WinDeclSpecs;
33276
 
  friend class ::WinMemberExplSpec;
33277
 
  friend class ::WinTypeKeywords;
 
77848
  friend class ::ExtGnu;
33278
77849
  friend class ::PragmaOnceUnitState;
33279
77850
  friend class ::PragmaOnce;
33280
 
  friend class ::CCExprResolve;
33281
 
  friend class ::CExprResolve;
 
77851
  friend class ::CMatchSyntax;
33282
77852
 
33283
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77853
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33284
77854
 
33285
77855
  CTree *sons[5]; // keyword, open, cond, close, stmt
33286
77856
 
33287
77857
public:
33288
77858
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
33289
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
77859
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
77860
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
33290
77861
  }
 
77862
  /** Get the identifier for this node type. Can be compared with NodeName(). */
33291
77863
  static const char *NodeId ();
 
77864
  /** Get the name of the node. Can be compared with NodeId(). */
33292
77865
  const char *NodeName () const { return NodeId (); }
 
77866
  /** Get the number of sons. */
33293
77867
  int Sons () const { return 5; }
 
77868
  /** Get the n-th son.
 
77869
   *  \param n The index of the son.
 
77870
   *  \return The n-th son or NULL. */
33294
77871
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
33295
77872
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
33296
77873
  CTree *Condition () const { return sons[2]; }
 
77874
  /** Replace a son.
 
77875
   *  \param old_son The son to replace.
 
77876
   *  \param new_son The new son. */
33297
77877
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33298
77878
    CTree::ReplaceSon (sons, 5, old_son, new_son);
33299
77879
  }
 
77880
  CSemScope *SemScope () const { return (CSemScope*)this; }
33300
77881
};
33301
77882
 
33302
77883
 
33303
 
#line 33304 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77884
#line 77885 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
33304
77885
} // closed Puma
 
77886
class CCExprResolve;
 
77887
class CExprResolve;
33305
77888
class WinIfExists;
33306
77889
class WinImportHandler;
33307
77890
class WinMacros;
33308
 
class CMatchSyntax;
33309
 
class ExtGnu;
 
77891
class WinAsm;
 
77892
class WinDeclSpecs;
 
77893
class WinMemberExplSpec;
 
77894
class WinTypeKeywords;
 
77895
class WinFriend;
33310
77896
class ExtAC;
33311
77897
class ExtACBuilderCoupling;
33312
77898
class ExtACSyntaxCoupling;
33313
77899
class ExtACTree;
33314
77900
class ExtACKeywords;
33315
 
class WinAsm;
33316
 
class WinDeclSpecs;
33317
 
class WinMemberExplSpec;
33318
 
class WinTypeKeywords;
 
77901
class ExtGnu;
33319
77902
class PragmaOnceUnitState;
33320
77903
class PragmaOnce;
33321
 
class CCExprResolve;
33322
 
class CExprResolve;
 
77904
class CMatchSyntax;
33323
77905
namespace Puma {
33324
77906
 
33325
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77907
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33326
77908
class CT_IfStmt : public CT_Statement, public CSemScope {
33327
 
#line 33328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77909
#line 77910 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
77910
  friend class ::CCExprResolve;
 
77911
  friend class ::CExprResolve;
33328
77912
  friend class ::WinIfExists;
33329
77913
  friend class ::WinImportHandler;
33330
77914
  friend class ::WinMacros;
33331
 
  friend class ::CMatchSyntax;
33332
 
  friend class ::ExtGnu;
 
77915
  friend class ::WinAsm;
 
77916
  friend class ::WinDeclSpecs;
 
77917
  friend class ::WinMemberExplSpec;
 
77918
  friend class ::WinTypeKeywords;
 
77919
  friend class ::WinFriend;
33333
77920
  friend class ::ExtAC;
33334
77921
  friend class ::ExtACBuilderCoupling;
33335
77922
  friend class ::ExtACSyntaxCoupling;
33336
77923
  friend class ::ExtACTree;
33337
77924
  friend class ::ExtACKeywords;
33338
 
  friend class ::WinAsm;
33339
 
  friend class ::WinDeclSpecs;
33340
 
  friend class ::WinMemberExplSpec;
33341
 
  friend class ::WinTypeKeywords;
 
77925
  friend class ::ExtGnu;
33342
77926
  friend class ::PragmaOnceUnitState;
33343
77927
  friend class ::PragmaOnce;
33344
 
  friend class ::CCExprResolve;
33345
 
  friend class ::CExprResolve;
 
77928
  friend class ::CMatchSyntax;
33346
77929
 
33347
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77930
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33348
77931
 
33349
77932
  CTree *sons[5]; // keyword, open, cond, close, stmt
33350
77933
 
33351
77934
public:
33352
77935
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
33353
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
77936
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
77937
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
33354
77938
  }
 
77939
  /** Get the identifier for this node type. Can be compared with NodeName(). */
33355
77940
  static const char *NodeId ();
 
77941
  /** Get the name of the node. Can be compared with NodeId(). */
33356
77942
  const char *NodeName () const { return NodeId (); }
 
77943
  /** Get the number of sons. */
33357
77944
  int Sons () const { return 5; }
 
77945
  /** Get the n-th son.
 
77946
   *  \param n The index of the son.
 
77947
   *  \return The n-th son or NULL. */
33358
77948
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
33359
77949
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
33360
77950
  CTree *Condition () const { return sons[2]; }
 
77951
  /** Replace a son.
 
77952
   *  \param old_son The son to replace.
 
77953
   *  \param new_son The new son. */
33361
77954
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33362
77955
    CTree::ReplaceSon (sons, 5, old_son, new_son);
33363
77956
  }
 
77957
  CSemScope *SemScope () const { return (CSemScope*)this; }
33364
77958
};
33365
77959
 
33366
77960
 
33367
 
#line 33368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77961
#line 77962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
33368
77962
} // closed Puma
 
77963
class CCExprResolve;
 
77964
class CExprResolve;
33369
77965
class WinIfExists;
33370
77966
class WinImportHandler;
33371
77967
class WinMacros;
33372
 
class CMatchSyntax;
33373
 
class ExtGnu;
 
77968
class WinAsm;
 
77969
class WinDeclSpecs;
 
77970
class WinMemberExplSpec;
 
77971
class WinTypeKeywords;
 
77972
class WinFriend;
33374
77973
class ExtAC;
33375
77974
class ExtACBuilderCoupling;
33376
77975
class ExtACSyntaxCoupling;
33377
77976
class ExtACTree;
33378
77977
class ExtACKeywords;
33379
 
class WinAsm;
33380
 
class WinDeclSpecs;
33381
 
class WinMemberExplSpec;
33382
 
class WinTypeKeywords;
 
77978
class ExtGnu;
33383
77979
class PragmaOnceUnitState;
33384
77980
class PragmaOnce;
33385
 
class CCExprResolve;
33386
 
class CExprResolve;
 
77981
class CMatchSyntax;
33387
77982
namespace Puma {
33388
77983
 
33389
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77984
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33390
77985
class CT_IfElseStmt : public CT_Statement, public CSemScope {
33391
 
#line 33392 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
77986
#line 77987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
77987
  friend class ::CCExprResolve;
 
77988
  friend class ::CExprResolve;
33392
77989
  friend class ::WinIfExists;
33393
77990
  friend class ::WinImportHandler;
33394
77991
  friend class ::WinMacros;
33395
 
  friend class ::CMatchSyntax;
33396
 
  friend class ::ExtGnu;
 
77992
  friend class ::WinAsm;
 
77993
  friend class ::WinDeclSpecs;
 
77994
  friend class ::WinMemberExplSpec;
 
77995
  friend class ::WinTypeKeywords;
 
77996
  friend class ::WinFriend;
33397
77997
  friend class ::ExtAC;
33398
77998
  friend class ::ExtACBuilderCoupling;
33399
77999
  friend class ::ExtACSyntaxCoupling;
33400
78000
  friend class ::ExtACTree;
33401
78001
  friend class ::ExtACKeywords;
33402
 
  friend class ::WinAsm;
33403
 
  friend class ::WinDeclSpecs;
33404
 
  friend class ::WinMemberExplSpec;
33405
 
  friend class ::WinTypeKeywords;
 
78002
  friend class ::ExtGnu;
33406
78003
  friend class ::PragmaOnceUnitState;
33407
78004
  friend class ::PragmaOnce;
33408
 
  friend class ::CCExprResolve;
33409
 
  friend class ::CExprResolve;
 
78005
  friend class ::CMatchSyntax;
33410
78006
 
33411
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78007
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33412
78008
 
33413
78009
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
33414
78010
 
33415
78011
public:
33416
78012
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
33417
78013
                 CTree *is, CTree *e, CTree *es) {
33418
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
33419
 
    sons[5] = e; sons[6] = es; 
 
78014
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
78015
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
78016
    AddSon (sons[6], es); 
33420
78017
  }
 
78018
  /** Get the identifier for this node type. Can be compared with NodeName(). */
33421
78019
  static const char *NodeId ();
 
78020
  /** Get the name of the node. Can be compared with NodeId(). */
33422
78021
  const char *NodeName () const { return NodeId (); }
 
78022
  /** Get the number of sons. */
33423
78023
  int Sons () const { return 7; }
 
78024
  /** Get the n-th son.
 
78025
   *  \param n The index of the son.
 
78026
   *  \return The n-th son or NULL. */
33424
78027
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
33425
78028
  CTree *Condition () const { return sons[2]; }
33426
78029
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
33427
78030
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
78031
  /** Replace a son.
 
78032
   *  \param old_son The son to replace.
 
78033
   *  \param new_son The new son. */
33428
78034
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33429
78035
    CTree::ReplaceSon (sons, 7, old_son, new_son);
33430
78036
  }
 
78037
  CSemScope *SemScope () const { return (CSemScope*)this; }
33431
78038
};
33432
78039
 
33433
78040
 
33434
 
#line 33435 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78041
#line 78042 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
33435
78042
} // closed Puma
 
78043
class CCExprResolve;
 
78044
class CExprResolve;
33436
78045
class WinIfExists;
33437
78046
class WinImportHandler;
33438
78047
class WinMacros;
33439
 
class CMatchSyntax;
33440
 
class ExtGnu;
 
78048
class WinAsm;
 
78049
class WinDeclSpecs;
 
78050
class WinMemberExplSpec;
 
78051
class WinTypeKeywords;
 
78052
class WinFriend;
33441
78053
class ExtAC;
33442
78054
class ExtACBuilderCoupling;
33443
78055
class ExtACSyntaxCoupling;
33444
78056
class ExtACTree;
33445
78057
class ExtACKeywords;
33446
 
class WinAsm;
33447
 
class WinDeclSpecs;
33448
 
class WinMemberExplSpec;
33449
 
class WinTypeKeywords;
 
78058
class ExtGnu;
33450
78059
class PragmaOnceUnitState;
33451
78060
class PragmaOnce;
33452
 
class CCExprResolve;
33453
 
class CExprResolve;
 
78061
class CMatchSyntax;
33454
78062
namespace Puma {
33455
78063
 
33456
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78064
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33457
78065
class CT_BreakStmt : public CT_Statement {
33458
 
#line 33459 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78066
#line 78067 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
78067
  friend class ::CCExprResolve;
 
78068
  friend class ::CExprResolve;
33459
78069
  friend class ::WinIfExists;
33460
78070
  friend class ::WinImportHandler;
33461
78071
  friend class ::WinMacros;
33462
 
  friend class ::CMatchSyntax;
33463
 
  friend class ::ExtGnu;
 
78072
  friend class ::WinAsm;
 
78073
  friend class ::WinDeclSpecs;
 
78074
  friend class ::WinMemberExplSpec;
 
78075
  friend class ::WinTypeKeywords;
 
78076
  friend class ::WinFriend;
33464
78077
  friend class ::ExtAC;
33465
78078
  friend class ::ExtACBuilderCoupling;
33466
78079
  friend class ::ExtACSyntaxCoupling;
33467
78080
  friend class ::ExtACTree;
33468
78081
  friend class ::ExtACKeywords;
33469
 
  friend class ::WinAsm;
33470
 
  friend class ::WinDeclSpecs;
33471
 
  friend class ::WinMemberExplSpec;
33472
 
  friend class ::WinTypeKeywords;
 
78082
  friend class ::ExtGnu;
33473
78083
  friend class ::PragmaOnceUnitState;
33474
78084
  friend class ::PragmaOnce;
33475
 
  friend class ::CCExprResolve;
33476
 
  friend class ::CExprResolve;
 
78085
  friend class ::CMatchSyntax;
33477
78086
 
33478
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78087
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33479
78088
 
33480
78089
  CTree *sons[2]; // key, semi_colon
33481
78090
 
33482
78091
public:
33483
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
78092
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
78093
  /** Get the identifier for this node type. Can be compared with NodeName(). */
33484
78094
  static const char *NodeId ();
 
78095
  /** Get the name of the node. Can be compared with NodeId(). */
33485
78096
  const char *NodeName () const { return NodeId (); }
 
78097
  /** Get the number of sons. */
33486
78098
  int Sons () const { return 2; }
 
78099
  /** Get the n-th son.
 
78100
   *  \param n The index of the son.
 
78101
   *  \return The n-th son or NULL. */
33487
78102
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
78103
  /** Replace a son.
 
78104
   *  \param old_son The son to replace.
 
78105
   *  \param new_son The new son. */
33488
78106
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33489
78107
    CTree::ReplaceSon (sons, 2, old_son, new_son);
33490
78108
  }
33491
78109
};
33492
78110
 
33493
78111
 
33494
 
#line 33495 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78112
#line 78113 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
33495
78113
} // closed Puma
 
78114
class CCExprResolve;
 
78115
class CExprResolve;
33496
78116
class WinIfExists;
33497
78117
class WinImportHandler;
33498
78118
class WinMacros;
33499
 
class CMatchSyntax;
33500
 
class ExtGnu;
 
78119
class WinAsm;
 
78120
class WinDeclSpecs;
 
78121
class WinMemberExplSpec;
 
78122
class WinTypeKeywords;
 
78123
class WinFriend;
33501
78124
class ExtAC;
33502
78125
class ExtACBuilderCoupling;
33503
78126
class ExtACSyntaxCoupling;
33504
78127
class ExtACTree;
33505
78128
class ExtACKeywords;
33506
 
class WinAsm;
33507
 
class WinDeclSpecs;
33508
 
class WinMemberExplSpec;
33509
 
class WinTypeKeywords;
 
78129
class ExtGnu;
33510
78130
class PragmaOnceUnitState;
33511
78131
class PragmaOnce;
33512
 
class CCExprResolve;
33513
 
class CExprResolve;
 
78132
class CMatchSyntax;
33514
78133
namespace Puma {
33515
78134
 
33516
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78135
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33517
78136
class CT_ContinueStmt : public CT_Statement {
33518
 
#line 33519 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78137
#line 78138 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
78138
  friend class ::CCExprResolve;
 
78139
  friend class ::CExprResolve;
33519
78140
  friend class ::WinIfExists;
33520
78141
  friend class ::WinImportHandler;
33521
78142
  friend class ::WinMacros;
33522
 
  friend class ::CMatchSyntax;
33523
 
  friend class ::ExtGnu;
 
78143
  friend class ::WinAsm;
 
78144
  friend class ::WinDeclSpecs;
 
78145
  friend class ::WinMemberExplSpec;
 
78146
  friend class ::WinTypeKeywords;
 
78147
  friend class ::WinFriend;
33524
78148
  friend class ::ExtAC;
33525
78149
  friend class ::ExtACBuilderCoupling;
33526
78150
  friend class ::ExtACSyntaxCoupling;
33527
78151
  friend class ::ExtACTree;
33528
78152
  friend class ::ExtACKeywords;
33529
 
  friend class ::WinAsm;
33530
 
  friend class ::WinDeclSpecs;
33531
 
  friend class ::WinMemberExplSpec;
33532
 
  friend class ::WinTypeKeywords;
 
78153
  friend class ::ExtGnu;
33533
78154
  friend class ::PragmaOnceUnitState;
33534
78155
  friend class ::PragmaOnce;
33535
 
  friend class ::CCExprResolve;
33536
 
  friend class ::CExprResolve;
 
78156
  friend class ::CMatchSyntax;
33537
78157
 
33538
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78158
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33539
78159
 
33540
78160
  CTree *sons[2]; // key, semi_colon
33541
78161
 
33542
78162
public:
33543
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
78163
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
78164
  /** Get the identifier for this node type. Can be compared with NodeName(). */
33544
78165
  static const char *NodeId ();
 
78166
  /** Get the name of the node. Can be compared with NodeId(). */
33545
78167
  const char *NodeName () const { return NodeId (); }
 
78168
  /** Get the number of sons. */
33546
78169
  int Sons () const { return 2; }
 
78170
  /** Get the n-th son.
 
78171
   *  \param n The index of the son.
 
78172
   *  \return The n-th son or NULL. */
33547
78173
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
78174
  /** Replace a son.
 
78175
   *  \param old_son The son to replace.
 
78176
   *  \param new_son The new son. */
33548
78177
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33549
78178
    CTree::ReplaceSon (sons, 2, old_son, new_son);
33550
78179
  }
33551
78180
};
33552
78181
 
33553
78182
 
33554
 
#line 33555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78183
#line 78184 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
33555
78184
} // closed Puma
 
78185
class CCExprResolve;
 
78186
class CExprResolve;
33556
78187
class WinIfExists;
33557
78188
class WinImportHandler;
33558
78189
class WinMacros;
33559
 
class CMatchSyntax;
33560
 
class ExtGnu;
 
78190
class WinAsm;
 
78191
class WinDeclSpecs;
 
78192
class WinMemberExplSpec;
 
78193
class WinTypeKeywords;
 
78194
class WinFriend;
33561
78195
class ExtAC;
33562
78196
class ExtACBuilderCoupling;
33563
78197
class ExtACSyntaxCoupling;
33564
78198
class ExtACTree;
33565
78199
class ExtACKeywords;
33566
 
class WinAsm;
33567
 
class WinDeclSpecs;
33568
 
class WinMemberExplSpec;
33569
 
class WinTypeKeywords;
 
78200
class ExtGnu;
33570
78201
class PragmaOnceUnitState;
33571
78202
class PragmaOnce;
33572
 
class CCExprResolve;
33573
 
class CExprResolve;
 
78203
class CMatchSyntax;
33574
78204
namespace Puma {
33575
78205
 
33576
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78206
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33577
78207
class CT_GotoStmt : public CT_Statement {
33578
 
#line 33579 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78208
#line 78209 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
78209
  friend class ::CCExprResolve;
 
78210
  friend class ::CExprResolve;
33579
78211
  friend class ::WinIfExists;
33580
78212
  friend class ::WinImportHandler;
33581
78213
  friend class ::WinMacros;
33582
 
  friend class ::CMatchSyntax;
33583
 
  friend class ::ExtGnu;
 
78214
  friend class ::WinAsm;
 
78215
  friend class ::WinDeclSpecs;
 
78216
  friend class ::WinMemberExplSpec;
 
78217
  friend class ::WinTypeKeywords;
 
78218
  friend class ::WinFriend;
33584
78219
  friend class ::ExtAC;
33585
78220
  friend class ::ExtACBuilderCoupling;
33586
78221
  friend class ::ExtACSyntaxCoupling;
33587
78222
  friend class ::ExtACTree;
33588
78223
  friend class ::ExtACKeywords;
33589
 
  friend class ::WinAsm;
33590
 
  friend class ::WinDeclSpecs;
33591
 
  friend class ::WinMemberExplSpec;
33592
 
  friend class ::WinTypeKeywords;
 
78224
  friend class ::ExtGnu;
33593
78225
  friend class ::PragmaOnceUnitState;
33594
78226
  friend class ::PragmaOnce;
33595
 
  friend class ::CCExprResolve;
33596
 
  friend class ::CExprResolve;
 
78227
  friend class ::CMatchSyntax;
33597
78228
 
33598
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78229
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33599
78230
 
33600
78231
  CTree *sons[3]; // key, label, semi_colon
33601
78232
 
33602
78233
public:
33603
78234
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
33604
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
78235
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
33605
78236
  }
 
78237
  /** Get the identifier for this node type. Can be compared with NodeName(). */
33606
78238
  static const char *NodeId ();
 
78239
  /** Get the name of the node. Can be compared with NodeId(). */
33607
78240
  const char *NodeName () const { return NodeId (); }
 
78241
  /** Get the number of sons. */
33608
78242
  int Sons () const { return 3; }
 
78243
  /** Get the n-th son.
 
78244
   *  \param n The index of the son.
 
78245
   *  \return The n-th son or NULL. */
33609
78246
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
33610
78247
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
78248
  /** Replace a son.
 
78249
   *  \param old_son The son to replace.
 
78250
   *  \param new_son The new son. */
33611
78251
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33612
78252
    CTree::ReplaceSon (sons, 3, old_son, new_son);
33613
78253
  }
33614
78254
};
33615
78255
 
33616
78256
 
33617
 
#line 33618 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78257
#line 78258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
33618
78258
} // closed Puma
 
78259
class CCExprResolve;
 
78260
class CExprResolve;
33619
78261
class WinIfExists;
33620
78262
class WinImportHandler;
33621
78263
class WinMacros;
33622
 
class CMatchSyntax;
33623
 
class ExtGnu;
 
78264
class WinAsm;
 
78265
class WinDeclSpecs;
 
78266
class WinMemberExplSpec;
 
78267
class WinTypeKeywords;
 
78268
class WinFriend;
33624
78269
class ExtAC;
33625
78270
class ExtACBuilderCoupling;
33626
78271
class ExtACSyntaxCoupling;
33627
78272
class ExtACTree;
33628
78273
class ExtACKeywords;
33629
 
class WinAsm;
33630
 
class WinDeclSpecs;
33631
 
class WinMemberExplSpec;
33632
 
class WinTypeKeywords;
 
78274
class ExtGnu;
33633
78275
class PragmaOnceUnitState;
33634
78276
class PragmaOnce;
33635
 
class CCExprResolve;
33636
 
class CExprResolve;
 
78277
class CMatchSyntax;
33637
78278
namespace Puma {
33638
78279
 
33639
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78280
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33640
78281
class CT_ReturnStmt : public CT_Statement {
33641
 
#line 33642 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78282
#line 78283 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
78283
  friend class ::CCExprResolve;
 
78284
  friend class ::CExprResolve;
33642
78285
  friend class ::WinIfExists;
33643
78286
  friend class ::WinImportHandler;
33644
78287
  friend class ::WinMacros;
33645
 
  friend class ::CMatchSyntax;
33646
 
  friend class ::ExtGnu;
 
78288
  friend class ::WinAsm;
 
78289
  friend class ::WinDeclSpecs;
 
78290
  friend class ::WinMemberExplSpec;
 
78291
  friend class ::WinTypeKeywords;
 
78292
  friend class ::WinFriend;
33647
78293
  friend class ::ExtAC;
33648
78294
  friend class ::ExtACBuilderCoupling;
33649
78295
  friend class ::ExtACSyntaxCoupling;
33650
78296
  friend class ::ExtACTree;
33651
78297
  friend class ::ExtACKeywords;
33652
 
  friend class ::WinAsm;
33653
 
  friend class ::WinDeclSpecs;
33654
 
  friend class ::WinMemberExplSpec;
33655
 
  friend class ::WinTypeKeywords;
 
78298
  friend class ::ExtGnu;
33656
78299
  friend class ::PragmaOnceUnitState;
33657
78300
  friend class ::PragmaOnce;
33658
 
  friend class ::CCExprResolve;
33659
 
  friend class ::CExprResolve;
 
78301
  friend class ::CMatchSyntax;
33660
78302
 
33661
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78303
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33662
78304
 
33663
78305
  CTree *sons[3]; // key, expr, semi_colon
33664
78306
 
33665
78307
public:
33666
78308
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
33667
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
78309
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
33668
78310
  }
 
78311
  /** Get the identifier for this node type. Can be compared with NodeName(). */
33669
78312
  static const char *NodeId ();
 
78313
  /** Get the name of the node. Can be compared with NodeId(). */
33670
78314
  const char *NodeName () const { return NodeId (); }
 
78315
  /** Get the number of sons. */
33671
78316
  int Sons () const { return CTree::Sons (sons, 3); }
 
78317
  /** Get the n-th son.
 
78318
   *  \param n The index of the son.
 
78319
   *  \return The n-th son or NULL. */
33672
78320
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
33673
78321
  CTree *Expr () const { return sons[1]; }
 
78322
  /** Replace a son.
 
78323
   *  \param old_son The son to replace.
 
78324
   *  \param new_son The new son. */
33674
78325
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33675
78326
    CTree::ReplaceSon (sons, 3, old_son, new_son);
33676
78327
  }
33677
78328
};
33678
78329
 
33679
78330
 
33680
 
#line 33681 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78331
#line 78332 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
33681
78332
} // closed Puma
 
78333
class CCExprResolve;
 
78334
class CExprResolve;
33682
78335
class WinIfExists;
33683
78336
class WinImportHandler;
33684
78337
class WinMacros;
33685
 
class CMatchSyntax;
33686
 
class ExtGnu;
 
78338
class WinAsm;
 
78339
class WinDeclSpecs;
 
78340
class WinMemberExplSpec;
 
78341
class WinTypeKeywords;
 
78342
class WinFriend;
33687
78343
class ExtAC;
33688
78344
class ExtACBuilderCoupling;
33689
78345
class ExtACSyntaxCoupling;
33690
78346
class ExtACTree;
33691
78347
class ExtACKeywords;
33692
 
class WinAsm;
33693
 
class WinDeclSpecs;
33694
 
class WinMemberExplSpec;
33695
 
class WinTypeKeywords;
 
78348
class ExtGnu;
33696
78349
class PragmaOnceUnitState;
33697
78350
class PragmaOnce;
33698
 
class CCExprResolve;
33699
 
class CExprResolve;
 
78351
class CMatchSyntax;
33700
78352
namespace Puma {
33701
78353
 
33702
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78354
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33703
78355
class CT_WhileStmt : public CT_Statement, public CSemScope {
33704
 
#line 33705 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78356
#line 78357 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
78357
  friend class ::CCExprResolve;
 
78358
  friend class ::CExprResolve;
33705
78359
  friend class ::WinIfExists;
33706
78360
  friend class ::WinImportHandler;
33707
78361
  friend class ::WinMacros;
33708
 
  friend class ::CMatchSyntax;
33709
 
  friend class ::ExtGnu;
 
78362
  friend class ::WinAsm;
 
78363
  friend class ::WinDeclSpecs;
 
78364
  friend class ::WinMemberExplSpec;
 
78365
  friend class ::WinTypeKeywords;
 
78366
  friend class ::WinFriend;
33710
78367
  friend class ::ExtAC;
33711
78368
  friend class ::ExtACBuilderCoupling;
33712
78369
  friend class ::ExtACSyntaxCoupling;
33713
78370
  friend class ::ExtACTree;
33714
78371
  friend class ::ExtACKeywords;
33715
 
  friend class ::WinAsm;
33716
 
  friend class ::WinDeclSpecs;
33717
 
  friend class ::WinMemberExplSpec;
33718
 
  friend class ::WinTypeKeywords;
 
78372
  friend class ::ExtGnu;
33719
78373
  friend class ::PragmaOnceUnitState;
33720
78374
  friend class ::PragmaOnce;
33721
 
  friend class ::CCExprResolve;
33722
 
  friend class ::CExprResolve;
 
78375
  friend class ::CMatchSyntax;
33723
78376
 
33724
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78377
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33725
78378
 
33726
78379
  CTree *sons[5]; // key, open, cond, close, stmt
33727
78380
 
33728
78381
public:
33729
78382
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
33730
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
78383
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
78384
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
33731
78385
  }
 
78386
  /** Get the identifier for this node type. Can be compared with NodeName(). */
33732
78387
  static const char *NodeId ();
 
78388
  /** Get the name of the node. Can be compared with NodeId(). */
33733
78389
  const char *NodeName () const { return NodeId (); }
 
78390
  /** Get the number of sons. */
33734
78391
  int Sons () const { return 5; }
 
78392
  /** Get the n-th son.
 
78393
   *  \param n The index of the son.
 
78394
   *  \return The n-th son or NULL. */
33735
78395
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
33736
78396
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
33737
78397
  CTree *Condition () const { return sons[2]; }
 
78398
  /** Replace a son.
 
78399
   *  \param old_son The son to replace.
 
78400
   *  \param new_son The new son. */
33738
78401
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33739
78402
    CTree::ReplaceSon (sons, 5, old_son, new_son);
33740
78403
  }
 
78404
  CSemScope *SemScope () const { return (CSemScope*)this; }
33741
78405
};
33742
78406
 
33743
78407
 
33744
 
#line 33745 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78408
#line 78409 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
33745
78409
} // closed Puma
 
78410
class CCExprResolve;
 
78411
class CExprResolve;
33746
78412
class WinIfExists;
33747
78413
class WinImportHandler;
33748
78414
class WinMacros;
33749
 
class CMatchSyntax;
33750
 
class ExtGnu;
 
78415
class WinAsm;
 
78416
class WinDeclSpecs;
 
78417
class WinMemberExplSpec;
 
78418
class WinTypeKeywords;
 
78419
class WinFriend;
33751
78420
class ExtAC;
33752
78421
class ExtACBuilderCoupling;
33753
78422
class ExtACSyntaxCoupling;
33754
78423
class ExtACTree;
33755
78424
class ExtACKeywords;
33756
 
class WinAsm;
33757
 
class WinDeclSpecs;
33758
 
class WinMemberExplSpec;
33759
 
class WinTypeKeywords;
 
78425
class ExtGnu;
33760
78426
class PragmaOnceUnitState;
33761
78427
class PragmaOnce;
33762
 
class CCExprResolve;
33763
 
class CExprResolve;
 
78428
class CMatchSyntax;
33764
78429
namespace Puma {
33765
78430
 
33766
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78431
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33767
78432
class CT_DoStmt : public CT_Statement {
33768
 
#line 33769 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78433
#line 78434 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
78434
  friend class ::CCExprResolve;
 
78435
  friend class ::CExprResolve;
33769
78436
  friend class ::WinIfExists;
33770
78437
  friend class ::WinImportHandler;
33771
78438
  friend class ::WinMacros;
33772
 
  friend class ::CMatchSyntax;
33773
 
  friend class ::ExtGnu;
 
78439
  friend class ::WinAsm;
 
78440
  friend class ::WinDeclSpecs;
 
78441
  friend class ::WinMemberExplSpec;
 
78442
  friend class ::WinTypeKeywords;
 
78443
  friend class ::WinFriend;
33774
78444
  friend class ::ExtAC;
33775
78445
  friend class ::ExtACBuilderCoupling;
33776
78446
  friend class ::ExtACSyntaxCoupling;
33777
78447
  friend class ::ExtACTree;
33778
78448
  friend class ::ExtACKeywords;
33779
 
  friend class ::WinAsm;
33780
 
  friend class ::WinDeclSpecs;
33781
 
  friend class ::WinMemberExplSpec;
33782
 
  friend class ::WinTypeKeywords;
 
78449
  friend class ::ExtGnu;
33783
78450
  friend class ::PragmaOnceUnitState;
33784
78451
  friend class ::PragmaOnce;
33785
 
  friend class ::CCExprResolve;
33786
 
  friend class ::CExprResolve;
 
78452
  friend class ::CMatchSyntax;
33787
78453
 
33788
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78454
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33789
78455
 
33790
78456
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
33791
78457
 
33792
78458
public:
33793
78459
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
33794
78460
             CTree *c, CTree *sc) {
33795
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
33796
 
    sons[5] = c; sons[6] = sc; 
 
78461
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
78462
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
78463
    AddSon (sons[6], sc); 
33797
78464
  }
 
78465
  /** Get the identifier for this node type. Can be compared with NodeName(). */
33798
78466
  static const char *NodeId ();
 
78467
  /** Get the name of the node. Can be compared with NodeId(). */
33799
78468
  const char *NodeName () const { return NodeId (); }
 
78469
  /** Get the number of sons. */
33800
78470
  int Sons () const { return 7; }
 
78471
  /** Get the n-th son.
 
78472
   *  \param n The index of the son.
 
78473
   *  \return The n-th son or NULL. */
33801
78474
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
33802
78475
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
33803
78476
  CTree *Expr () const { return sons[4]; }
 
78477
  /** Replace a son.
 
78478
   *  \param old_son The son to replace.
 
78479
   *  \param new_son The new son. */
33804
78480
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33805
78481
    CTree::ReplaceSon (sons, 7, old_son, new_son);
33806
78482
  }
33807
78483
};
33808
78484
 
33809
78485
 
33810
 
#line 33811 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78486
#line 78487 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
33811
78487
} // closed Puma
 
78488
class CCExprResolve;
 
78489
class CExprResolve;
33812
78490
class WinIfExists;
33813
78491
class WinImportHandler;
33814
78492
class WinMacros;
33815
 
class CMatchSyntax;
33816
 
class ExtGnu;
 
78493
class WinAsm;
 
78494
class WinDeclSpecs;
 
78495
class WinMemberExplSpec;
 
78496
class WinTypeKeywords;
 
78497
class WinFriend;
33817
78498
class ExtAC;
33818
78499
class ExtACBuilderCoupling;
33819
78500
class ExtACSyntaxCoupling;
33820
78501
class ExtACTree;
33821
78502
class ExtACKeywords;
33822
 
class WinAsm;
33823
 
class WinDeclSpecs;
33824
 
class WinMemberExplSpec;
33825
 
class WinTypeKeywords;
 
78503
class ExtGnu;
33826
78504
class PragmaOnceUnitState;
33827
78505
class PragmaOnce;
33828
 
class CCExprResolve;
33829
 
class CExprResolve;
 
78506
class CMatchSyntax;
33830
78507
namespace Puma {
33831
78508
 
33832
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78509
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33833
78510
class CT_ForStmt : public CT_Statement, public CSemScope {
33834
 
#line 33835 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78511
#line 78512 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
78512
  friend class ::CCExprResolve;
 
78513
  friend class ::CExprResolve;
33835
78514
  friend class ::WinIfExists;
33836
78515
  friend class ::WinImportHandler;
33837
78516
  friend class ::WinMacros;
33838
 
  friend class ::CMatchSyntax;
33839
 
  friend class ::ExtGnu;
 
78517
  friend class ::WinAsm;
 
78518
  friend class ::WinDeclSpecs;
 
78519
  friend class ::WinMemberExplSpec;
 
78520
  friend class ::WinTypeKeywords;
 
78521
  friend class ::WinFriend;
33840
78522
  friend class ::ExtAC;
33841
78523
  friend class ::ExtACBuilderCoupling;
33842
78524
  friend class ::ExtACSyntaxCoupling;
33843
78525
  friend class ::ExtACTree;
33844
78526
  friend class ::ExtACKeywords;
33845
 
  friend class ::WinAsm;
33846
 
  friend class ::WinDeclSpecs;
33847
 
  friend class ::WinMemberExplSpec;
33848
 
  friend class ::WinTypeKeywords;
 
78527
  friend class ::ExtGnu;
33849
78528
  friend class ::PragmaOnceUnitState;
33850
78529
  friend class ::PragmaOnce;
33851
 
  friend class ::CCExprResolve;
33852
 
  friend class ::CExprResolve;
 
78530
  friend class ::CMatchSyntax;
33853
78531
 
33854
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78532
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33855
78533
 
33856
78534
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
33857
78535
 
33858
78536
public:
33859
78537
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
33860
78538
              CTree *e, CTree *c, CTree *stmt) {
33861
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
33862
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
78539
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
78540
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
78541
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
33863
78542
  }
 
78543
  /** Get the identifier for this node type. Can be compared with NodeName(). */
33864
78544
  static const char *NodeId ();
 
78545
  /** Get the name of the node. Can be compared with NodeId(). */
33865
78546
  const char *NodeName () const { return NodeId (); }
 
78547
  /** Get the number of sons. */
33866
78548
  int Sons () const { return CTree::Sons (sons, 8); }
 
78549
  /** Get the n-th son.
 
78550
   *  \param n The index of the son.
 
78551
   *  \return The n-th son or NULL. */
33867
78552
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
33868
78553
  CTree *InitStmt () const { return sons[2]; }
33869
78554
  CTree *Condition () const { return sons[3]; }
33870
78555
  CTree *Expr () const { return sons[5]; }
33871
78556
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
78557
  /** Replace a son.
 
78558
   *  \param old_son The son to replace.
 
78559
   *  \param new_son The new son. */
33872
78560
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33873
78561
    CTree::ReplaceSon (sons, 8, old_son, new_son);
33874
78562
  }
 
78563
  CSemScope *SemScope () const { return (CSemScope*)this; }
33875
78564
};
33876
78565
 
33877
78566
 
33878
 
#line 33879 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78567
#line 78568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
33879
78568
} // closed Puma
 
78569
class CCExprResolve;
 
78570
class CExprResolve;
33880
78571
class WinIfExists;
33881
78572
class WinImportHandler;
33882
78573
class WinMacros;
33883
 
class CMatchSyntax;
33884
 
class ExtGnu;
 
78574
class WinAsm;
 
78575
class WinDeclSpecs;
 
78576
class WinMemberExplSpec;
 
78577
class WinTypeKeywords;
 
78578
class WinFriend;
33885
78579
class ExtAC;
33886
78580
class ExtACBuilderCoupling;
33887
78581
class ExtACSyntaxCoupling;
33888
78582
class ExtACTree;
33889
78583
class ExtACKeywords;
33890
 
class WinAsm;
33891
 
class WinDeclSpecs;
33892
 
class WinMemberExplSpec;
33893
 
class WinTypeKeywords;
 
78584
class ExtGnu;
33894
78585
class PragmaOnceUnitState;
33895
78586
class PragmaOnce;
33896
 
class CCExprResolve;
33897
 
class CExprResolve;
 
78587
class CMatchSyntax;
33898
78588
namespace Puma {
33899
78589
 
33900
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78590
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33901
78591
class CT_Condition : public CT_Decl, public CSemObject {
33902
 
#line 33903 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78592
#line 78593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
78593
  friend class ::CCExprResolve;
 
78594
  friend class ::CExprResolve;
33903
78595
  friend class ::WinIfExists;
33904
78596
  friend class ::WinImportHandler;
33905
78597
  friend class ::WinMacros;
33906
 
  friend class ::CMatchSyntax;
33907
 
  friend class ::ExtGnu;
 
78598
  friend class ::WinAsm;
 
78599
  friend class ::WinDeclSpecs;
 
78600
  friend class ::WinMemberExplSpec;
 
78601
  friend class ::WinTypeKeywords;
 
78602
  friend class ::WinFriend;
33908
78603
  friend class ::ExtAC;
33909
78604
  friend class ::ExtACBuilderCoupling;
33910
78605
  friend class ::ExtACSyntaxCoupling;
33911
78606
  friend class ::ExtACTree;
33912
78607
  friend class ::ExtACKeywords;
33913
 
  friend class ::WinAsm;
33914
 
  friend class ::WinDeclSpecs;
33915
 
  friend class ::WinMemberExplSpec;
33916
 
  friend class ::WinTypeKeywords;
 
78608
  friend class ::ExtGnu;
33917
78609
  friend class ::PragmaOnceUnitState;
33918
78610
  friend class ::PragmaOnce;
33919
 
  friend class ::CCExprResolve;
33920
 
  friend class ::CExprResolve;
 
78611
  friend class ::CMatchSyntax;
33921
78612
 
33922
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78613
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33923
78614
 
33924
78615
  CTree *sons[3]; // declspecs, declarator, init
33925
78616
 
33926
78617
public:
33927
78618
  CT_Condition (CTree *dsl, CTree *d) {
33928
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
78619
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
33929
78620
  }
 
78621
  /** Get the identifier for this node type. Can be compared with NodeName(). */
33930
78622
  static const char *NodeId ();
 
78623
  /** Get the name of the node. Can be compared with NodeId(). */
33931
78624
  const char *NodeName () const { return NodeId (); }
 
78625
  /** Get the number of sons. */
33932
78626
  int Sons () const { return CTree::Sons (sons, 3); }
 
78627
  /** Get the n-th son.
 
78628
   *  \param n The index of the son.
 
78629
   *  \return The n-th son or NULL. */
33933
78630
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
33934
78631
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
33935
78632
  CTree *Declarator () const { return sons[1]; }
33936
78633
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
33937
78634
  CSemObject *SemObject () const { return (CSemObject*)this; }
33938
 
  void Initializer (CTree *i) { sons[2] = i; }
 
78635
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
78636
  /** Replace a son.
 
78637
   *  \param old_son The son to replace.
 
78638
   *  \param new_son The new son. */
33939
78639
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33940
78640
    CTree::ReplaceSon (sons, 3, old_son, new_son);
33941
78641
  }
33948
78648
/*****************************************************************************/
33949
78649
 
33950
78650
 
33951
 
#line 33952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78651
#line 78652 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
33952
78652
} // closed Puma
 
78653
class CCExprResolve;
 
78654
class CExprResolve;
33953
78655
class WinIfExists;
33954
78656
class WinImportHandler;
33955
78657
class WinMacros;
33956
 
class CMatchSyntax;
33957
 
class ExtGnu;
 
78658
class WinAsm;
 
78659
class WinDeclSpecs;
 
78660
class WinMemberExplSpec;
 
78661
class WinTypeKeywords;
 
78662
class WinFriend;
33958
78663
class ExtAC;
33959
78664
class ExtACBuilderCoupling;
33960
78665
class ExtACSyntaxCoupling;
33961
78666
class ExtACTree;
33962
78667
class ExtACKeywords;
33963
 
class WinAsm;
33964
 
class WinDeclSpecs;
33965
 
class WinMemberExplSpec;
33966
 
class WinTypeKeywords;
 
78668
class ExtGnu;
33967
78669
class PragmaOnceUnitState;
33968
78670
class PragmaOnce;
33969
 
class CCExprResolve;
33970
 
class CExprResolve;
33971
 
namespace Puma {
33972
 
 
33973
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78671
class CMatchSyntax;
 
78672
namespace Puma {
 
78673
 
 
78674
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78675
 
 
78676
#line 78677 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
78677
} // closed Puma
 
78678
 
 
78679
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
78680
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
78681
#include "ExtACTree.ah"
 
78682
#endif
 
78683
namespace Puma {
 
78684
 
 
78685
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33974
78686
class CT_ClassDef : public CT_Decl, public CSemObject {
33975
 
#line 33976 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78687
#line 78688 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
78688
  friend class ::CCExprResolve;
 
78689
  friend class ::CExprResolve;
33976
78690
  friend class ::WinIfExists;
33977
78691
  friend class ::WinImportHandler;
33978
78692
  friend class ::WinMacros;
33979
 
  friend class ::CMatchSyntax;
33980
 
  friend class ::ExtGnu;
 
78693
  friend class ::WinAsm;
 
78694
  friend class ::WinDeclSpecs;
 
78695
  friend class ::WinMemberExplSpec;
 
78696
  friend class ::WinTypeKeywords;
 
78697
  friend class ::WinFriend;
33981
78698
  friend class ::ExtAC;
33982
78699
  friend class ::ExtACBuilderCoupling;
33983
78700
  friend class ::ExtACSyntaxCoupling;
33984
78701
  friend class ::ExtACTree;
33985
78702
  friend class ::ExtACKeywords;
33986
 
  friend class ::WinAsm;
33987
 
  friend class ::WinDeclSpecs;
33988
 
  friend class ::WinMemberExplSpec;
33989
 
  friend class ::WinTypeKeywords;
 
78703
  friend class ::ExtGnu;
33990
78704
  friend class ::PragmaOnceUnitState;
33991
78705
  friend class ::PragmaOnce;
33992
 
  friend class ::CCExprResolve;
33993
 
  friend class ::CExprResolve;
 
78706
  friend class ::CMatchSyntax;
33994
78707
 
33995
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78708
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
33996
78709
 
33997
78710
   
33998
 
#line 33999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78711
#line 78712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
33999
78712
 
34000
78713
  struct __ac_wrapper_sons {
34001
78714
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
34010
78723
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
34011
78724
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
34012
78725
  } sons
34013
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78726
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34014
78727
 
34015
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78728
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34016
78729
; // key, name, bases, members
34017
78730
  CTree *obj_decl;
34018
78731
 
34019
78732
public:
34020
78733
  
34021
 
#line 34022 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
34022
 
 
34023
 
 
34024
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
34025
 
  typedef void Result;
34026
 
  typedef ::Puma::CT_ClassDef That;
34027
 
  typedef ::Puma::CT_ClassDef Target;
34028
 
  static const int JPID = 4;
 
78734
#line 78735 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
78735
 
 
78736
 
 
78737
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
78738
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
78739
  typedef TResult Result;
 
78740
  typedef TThat   That;
 
78741
  typedef TTarget Target;
 
78742
  enum { ARGS = TArgs::ARGS };
 
78743
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
78744
  static const int JPID = 55;
34029
78745
  static const AC::JPType JPTYPE = (AC::JPType)16;
34030
78746
  struct Res {
34031
78747
    typedef void Type;
34032
78748
    typedef void ReferredType;
34033
78749
  };
34034
 
  enum { ARGS = 3 };
34035
 
  template <int I, int DUMMY = 0> struct Arg {
34036
 
    typedef void Type;
34037
 
    typedef void ReferredType;
34038
 
  };
34039
 
  template <int DUMMY> struct Arg<0, DUMMY> {
34040
 
    typedef ::Puma::CTree * Type;
34041
 
    typedef ::Puma::CTree * ReferredType;
34042
 
  };
34043
 
  template <int DUMMY> struct Arg<1, DUMMY> {
34044
 
    typedef ::Puma::CTree * Type;
34045
 
    typedef ::Puma::CTree * ReferredType;
34046
 
  };
34047
 
  template <int DUMMY> struct Arg<2, DUMMY> {
34048
 
    typedef ::Puma::CTree * Type;
34049
 
    typedef ::Puma::CTree * ReferredType;
34050
 
  };
34051
78750
 
34052
78751
  That *_that;
34053
78752
 
34056
78755
};
34057
78756
 
34058
78757
 
34059
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78758
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34060
78759
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
34061
 
#line 34062 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78760
#line 78761 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
34062
78761
{
34063
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
34064
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
34065
 
this->__exec_old_C1(arg0, arg1, arg2);
34066
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
34067
 
 
 
78762
  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;
 
78763
    __TJP tjp;
 
78764
  tjp._that =  (__TJP::That*)this;
 
78765
    this->__exec_old_C1(arg0, arg1, arg2);
 
78766
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
78767
  
34068
78768
}
34069
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
34070
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78769
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
78770
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34071
78771
{
34072
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
78772
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
78773
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
34073
78774
  }
 
78775
  /** Get the identifier for this node type. Can be compared with NodeName(). */
34074
78776
  static const char *NodeId ();
 
78777
  /** Get the name of the node. Can be compared with NodeId(). */
34075
78778
  const char *NodeName () const { return NodeId (); }
 
78779
  /** Get the number of sons. */
34076
78780
  int Sons () const { return CTree::Sons (sons, 4); }
 
78781
  /** Get the n-th son.
 
78782
   *  \param n The index of the son.
 
78783
   *  \return The n-th son or NULL. */
34077
78784
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
34078
78785
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
34079
78786
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
34080
78787
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
34081
78788
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
34082
78789
  CSemObject *SemObject () const { return (CSemObject*)this; }
34083
 
  void Members (CTree *m) { sons[3] = m; }
34084
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
34085
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
78790
  void Members (CTree *m) { AddSon (sons[3], m); }
 
78791
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
78792
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
78793
  /** Replace a son.
 
78794
   *  \param old_son The son to replace.
 
78795
   *  \param new_son The new son. */
34086
78796
  void ReplaceSon (CTree *old_son, CTree *new_son) {
34087
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
34088
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
78797
    CTree::ReplaceSon (sons, 4, old_son, new_son);
34089
78798
  }
34090
78799
   private:
34091
78800
 
34092
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
34093
 
 CTree * _intro_members ;
 
78801
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
78802
 Puma :: CTree * _intro_members ;
 
78803
Puma :: CTree * _base_intros ;
34094
78804
public :
34095
 
CTree * IntroMembers ( ) const { return _intro_members ; }
34096
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
34097
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34098
 
 
34099
 
#line 34100 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
34100
 
 
34101
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
34102
 
  typedef void Result;
34103
 
  typedef ::Puma::CT_ClassDef That;
34104
 
  typedef ::Puma::CT_ClassDef Target;
34105
 
  static const int JPID = 4;
 
78805
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
78806
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
78807
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
78808
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
78809
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78810
 
 
78811
#line 78812 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
78812
 
 
78813
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
78814
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
78815
  typedef TResult Result;
 
78816
  typedef TThat   That;
 
78817
  typedef TTarget Target;
 
78818
  enum { ARGS = TArgs::ARGS };
 
78819
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
78820
  static const int JPID = 6191;
34106
78821
  static const AC::JPType JPTYPE = (AC::JPType)16;
34107
78822
  struct Res {
34108
78823
    typedef void Type;
34109
78824
    typedef void ReferredType;
34110
78825
  };
34111
 
  enum { ARGS = 1 };
34112
 
  template <int I, int DUMMY = 0> struct Arg {
34113
 
    typedef void Type;
34114
 
    typedef void ReferredType;
34115
 
  };
34116
 
  template <int DUMMY> struct Arg<0, DUMMY> {
34117
 
    typedef const ::Puma::CT_ClassDef & Type;
34118
 
    typedef const ::Puma::CT_ClassDef ReferredType;
34119
 
  };
34120
78826
 
34121
78827
  That *_that;
34122
78828
 
34125
78831
};
34126
78832
 
34127
78833
 
34128
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78834
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34129
78835
 
34130
 
#line 34131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78836
#line 78837 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
34131
78837
 
34132
78838
public:
34133
 
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) {
34134
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
34135
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
34136
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
78839
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) {
 
78840
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
78841
  __TJP tjp;
 
78842
  tjp._that =  (__TJP::That*)this;
 
78843
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
34137
78844
 
34138
78845
}
34139
78846
 
34140
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34141
 
 
34142
 
#line 34143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
34143
 
 
34144
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
34145
 
  typedef void Result;
34146
 
  typedef ::Puma::CT_ClassDef That;
34147
 
  typedef ::Puma::CT_ClassDef Target;
34148
 
  static const int JPID = 4;
 
78847
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78848
 
 
78849
#line 78850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
78850
 
 
78851
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
78852
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
78853
  typedef TResult Result;
 
78854
  typedef TThat   That;
 
78855
  typedef TTarget Target;
 
78856
  enum { ARGS = TArgs::ARGS };
 
78857
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
78858
  static const int JPID = 6189;
34149
78859
  static const AC::JPType JPTYPE = (AC::JPType)32;
34150
78860
  struct Res {
34151
78861
    typedef void Type;
34152
78862
    typedef void ReferredType;
34153
78863
  };
34154
 
  enum { ARGS = 0 };
34155
 
  template <int I, int DUMMY = 0> struct Arg {
34156
 
    typedef void Type;
34157
 
    typedef void ReferredType;
34158
 
  };
34159
78864
 
34160
78865
  That *_that;
34161
78866
 
34164
78869
};
34165
78870
 
34166
78871
 
34167
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78872
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34168
78873
 
34169
 
#line 34170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78874
#line 78875 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
34170
78875
 
34171
78876
public:
34172
78877
inline ~CT_ClassDef () {
34173
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
34174
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
34175
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
78878
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
78879
  __TJP tjp;
 
78880
  tjp._that =  (__TJP::That*)this;
 
78881
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
34176
78882
 
34177
78883
}
34178
78884
 
34179
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78885
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34180
78886
};
34181
78887
      
34182
78888
 
34183
 
#line 34184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78889
#line 78890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
34184
78890
} // closed Puma
 
78891
class CCExprResolve;
 
78892
class CExprResolve;
34185
78893
class WinIfExists;
34186
78894
class WinImportHandler;
34187
78895
class WinMacros;
34188
 
class CMatchSyntax;
34189
 
class ExtGnu;
 
78896
class WinAsm;
 
78897
class WinDeclSpecs;
 
78898
class WinMemberExplSpec;
 
78899
class WinTypeKeywords;
 
78900
class WinFriend;
34190
78901
class ExtAC;
34191
78902
class ExtACBuilderCoupling;
34192
78903
class ExtACSyntaxCoupling;
34193
78904
class ExtACTree;
34194
78905
class ExtACKeywords;
34195
 
class WinAsm;
34196
 
class WinDeclSpecs;
34197
 
class WinMemberExplSpec;
34198
 
class WinTypeKeywords;
 
78906
class ExtGnu;
34199
78907
class PragmaOnceUnitState;
34200
78908
class PragmaOnce;
34201
 
class CCExprResolve;
34202
 
class CExprResolve;
 
78909
class CMatchSyntax;
34203
78910
namespace Puma {
34204
78911
 
34205
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78912
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34206
78913
class CT_UnionDef : public CT_ClassDef {
34207
 
#line 34208 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78914
#line 78915 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
78915
  friend class ::CCExprResolve;
 
78916
  friend class ::CExprResolve;
34208
78917
  friend class ::WinIfExists;
34209
78918
  friend class ::WinImportHandler;
34210
78919
  friend class ::WinMacros;
34211
 
  friend class ::CMatchSyntax;
34212
 
  friend class ::ExtGnu;
 
78920
  friend class ::WinAsm;
 
78921
  friend class ::WinDeclSpecs;
 
78922
  friend class ::WinMemberExplSpec;
 
78923
  friend class ::WinTypeKeywords;
 
78924
  friend class ::WinFriend;
34213
78925
  friend class ::ExtAC;
34214
78926
  friend class ::ExtACBuilderCoupling;
34215
78927
  friend class ::ExtACSyntaxCoupling;
34216
78928
  friend class ::ExtACTree;
34217
78929
  friend class ::ExtACKeywords;
34218
 
  friend class ::WinAsm;
34219
 
  friend class ::WinDeclSpecs;
34220
 
  friend class ::WinMemberExplSpec;
34221
 
  friend class ::WinTypeKeywords;
 
78930
  friend class ::ExtGnu;
34222
78931
  friend class ::PragmaOnceUnitState;
34223
78932
  friend class ::PragmaOnce;
34224
 
  friend class ::CCExprResolve;
34225
 
  friend class ::CExprResolve;
 
78933
  friend class ::CMatchSyntax;
34226
78934
 
34227
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78935
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34228
78936
 
34229
78937
public:
34230
78938
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
34231
78939
  static const char *NodeId ();
 
78940
  /** Get the name of the node. Can be compared with NodeId(). */
34232
78941
  const char *NodeName () const { return NodeId (); }
34233
78942
};
34234
78943
      
34235
78944
 
34236
 
#line 34237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78945
#line 78946 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
34237
78946
} // closed Puma
 
78947
class CCExprResolve;
 
78948
class CExprResolve;
34238
78949
class WinIfExists;
34239
78950
class WinImportHandler;
34240
78951
class WinMacros;
34241
 
class CMatchSyntax;
34242
 
class ExtGnu;
 
78952
class WinAsm;
 
78953
class WinDeclSpecs;
 
78954
class WinMemberExplSpec;
 
78955
class WinTypeKeywords;
 
78956
class WinFriend;
34243
78957
class ExtAC;
34244
78958
class ExtACBuilderCoupling;
34245
78959
class ExtACSyntaxCoupling;
34246
78960
class ExtACTree;
34247
78961
class ExtACKeywords;
34248
 
class WinAsm;
34249
 
class WinDeclSpecs;
34250
 
class WinMemberExplSpec;
34251
 
class WinTypeKeywords;
 
78962
class ExtGnu;
34252
78963
class PragmaOnceUnitState;
34253
78964
class PragmaOnce;
34254
 
class CCExprResolve;
34255
 
class CExprResolve;
 
78965
class CMatchSyntax;
34256
78966
namespace Puma {
34257
78967
 
34258
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78968
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34259
78969
class CT_MembList : public CT_DeclList, public CSemScope {
34260
 
#line 34261 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
78970
#line 78971 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
78971
  friend class ::CCExprResolve;
 
78972
  friend class ::CExprResolve;
34261
78973
  friend class ::WinIfExists;
34262
78974
  friend class ::WinImportHandler;
34263
78975
  friend class ::WinMacros;
34264
 
  friend class ::CMatchSyntax;
34265
 
  friend class ::ExtGnu;
 
78976
  friend class ::WinAsm;
 
78977
  friend class ::WinDeclSpecs;
 
78978
  friend class ::WinMemberExplSpec;
 
78979
  friend class ::WinTypeKeywords;
 
78980
  friend class ::WinFriend;
34266
78981
  friend class ::ExtAC;
34267
78982
  friend class ::ExtACBuilderCoupling;
34268
78983
  friend class ::ExtACSyntaxCoupling;
34269
78984
  friend class ::ExtACTree;
34270
78985
  friend class ::ExtACKeywords;
34271
 
  friend class ::WinAsm;
34272
 
  friend class ::WinDeclSpecs;
34273
 
  friend class ::WinMemberExplSpec;
34274
 
  friend class ::WinTypeKeywords;
 
78986
  friend class ::ExtGnu;
34275
78987
  friend class ::PragmaOnceUnitState;
34276
78988
  friend class ::PragmaOnce;
34277
 
  friend class ::CCExprResolve;
34278
 
  friend class ::CExprResolve;
 
78989
  friend class ::CMatchSyntax;
34279
78990
 
34280
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78991
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34281
78992
 
34282
78993
public:
34283
78994
  CT_MembList (int size = 10, int incr = 10) : 
34284
78995
    CT_DeclList (size, incr) {}
 
78996
  /** Get the identifier for this node type. Can be compared with NodeName(). */
34285
78997
  static const char *NodeId ();
 
78998
  /** Get the name of the node. Can be compared with NodeId(). */
34286
78999
  const char *NodeName () const { return NodeId (); }
 
79000
  CSemScope *SemScope () const { return (CSemScope*)this; }
34287
79001
};
34288
79002
 
34289
79003
 
34290
 
#line 34291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79004
#line 79005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
34291
79005
} // closed Puma
 
79006
class CCExprResolve;
 
79007
class CExprResolve;
34292
79008
class WinIfExists;
34293
79009
class WinImportHandler;
34294
79010
class WinMacros;
34295
 
class CMatchSyntax;
34296
 
class ExtGnu;
 
79011
class WinAsm;
 
79012
class WinDeclSpecs;
 
79013
class WinMemberExplSpec;
 
79014
class WinTypeKeywords;
 
79015
class WinFriend;
34297
79016
class ExtAC;
34298
79017
class ExtACBuilderCoupling;
34299
79018
class ExtACSyntaxCoupling;
34300
79019
class ExtACTree;
34301
79020
class ExtACKeywords;
34302
 
class WinAsm;
34303
 
class WinDeclSpecs;
34304
 
class WinMemberExplSpec;
34305
 
class WinTypeKeywords;
 
79021
class ExtGnu;
34306
79022
class PragmaOnceUnitState;
34307
79023
class PragmaOnce;
34308
 
class CCExprResolve;
34309
 
class CExprResolve;
 
79024
class CMatchSyntax;
34310
79025
namespace Puma {
34311
79026
 
34312
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79027
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34313
79028
class CT_MembInitList : public CT_List, public CSemScope {
34314
 
#line 34315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79029
#line 79030 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79030
  friend class ::CCExprResolve;
 
79031
  friend class ::CExprResolve;
34315
79032
  friend class ::WinIfExists;
34316
79033
  friend class ::WinImportHandler;
34317
79034
  friend class ::WinMacros;
34318
 
  friend class ::CMatchSyntax;
34319
 
  friend class ::ExtGnu;
 
79035
  friend class ::WinAsm;
 
79036
  friend class ::WinDeclSpecs;
 
79037
  friend class ::WinMemberExplSpec;
 
79038
  friend class ::WinTypeKeywords;
 
79039
  friend class ::WinFriend;
34320
79040
  friend class ::ExtAC;
34321
79041
  friend class ::ExtACBuilderCoupling;
34322
79042
  friend class ::ExtACSyntaxCoupling;
34323
79043
  friend class ::ExtACTree;
34324
79044
  friend class ::ExtACKeywords;
34325
 
  friend class ::WinAsm;
34326
 
  friend class ::WinDeclSpecs;
34327
 
  friend class ::WinMemberExplSpec;
34328
 
  friend class ::WinTypeKeywords;
 
79045
  friend class ::ExtGnu;
34329
79046
  friend class ::PragmaOnceUnitState;
34330
79047
  friend class ::PragmaOnce;
34331
 
  friend class ::CCExprResolve;
34332
 
  friend class ::CExprResolve;
 
79048
  friend class ::CMatchSyntax;
34333
79049
 
34334
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79050
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34335
79051
 
34336
79052
public:
34337
79053
  CT_MembInitList (int size = 2) : 
34338
79054
    CT_List (size, 2, CT_List::OPEN) {}
34339
79055
  static const char *NodeId ();
 
79056
  /** Get the name of the node. Can be compared with NodeId(). */
34340
79057
  const char *NodeName () const { return NodeId (); }
 
79058
  CSemScope *SemScope () const { return (CSemScope*)this; }
34341
79059
};
34342
79060
 
34343
79061
 
34344
 
#line 34345 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79062
#line 79063 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
34345
79063
} // closed Puma
 
79064
class CCExprResolve;
 
79065
class CExprResolve;
34346
79066
class WinIfExists;
34347
79067
class WinImportHandler;
34348
79068
class WinMacros;
34349
 
class CMatchSyntax;
34350
 
class ExtGnu;
 
79069
class WinAsm;
 
79070
class WinDeclSpecs;
 
79071
class WinMemberExplSpec;
 
79072
class WinTypeKeywords;
 
79073
class WinFriend;
34351
79074
class ExtAC;
34352
79075
class ExtACBuilderCoupling;
34353
79076
class ExtACSyntaxCoupling;
34354
79077
class ExtACTree;
34355
79078
class ExtACKeywords;
34356
 
class WinAsm;
34357
 
class WinDeclSpecs;
34358
 
class WinMemberExplSpec;
34359
 
class WinTypeKeywords;
 
79079
class ExtGnu;
34360
79080
class PragmaOnceUnitState;
34361
79081
class PragmaOnce;
34362
 
class CCExprResolve;
34363
 
class CExprResolve;
34364
 
namespace Puma {
34365
 
 
34366
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79082
class CMatchSyntax;
 
79083
namespace Puma {
 
79084
 
 
79085
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79086
 
 
79087
#line 79088 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79088
} // closed Puma
 
79089
 
 
79090
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79091
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79092
#include "CCExprResolveH.ah"
 
79093
#endif
 
79094
namespace Puma {
 
79095
 
 
79096
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79097
 
 
79098
#line 79099 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79099
} // closed Puma
 
79100
 
 
79101
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79102
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79103
#include "CExprResolveH.ah"
 
79104
#endif
 
79105
namespace Puma {
 
79106
 
 
79107
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34367
79108
class CT_MembInit : public CT_Expression, public CSemObject {
34368
 
#line 34369 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79109
#line 79110 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79110
  friend class ::CCExprResolve;
 
79111
  friend class ::CExprResolve;
34369
79112
  friend class ::WinIfExists;
34370
79113
  friend class ::WinImportHandler;
34371
79114
  friend class ::WinMacros;
34372
 
  friend class ::CMatchSyntax;
34373
 
  friend class ::ExtGnu;
 
79115
  friend class ::WinAsm;
 
79116
  friend class ::WinDeclSpecs;
 
79117
  friend class ::WinMemberExplSpec;
 
79118
  friend class ::WinTypeKeywords;
 
79119
  friend class ::WinFriend;
34374
79120
  friend class ::ExtAC;
34375
79121
  friend class ::ExtACBuilderCoupling;
34376
79122
  friend class ::ExtACSyntaxCoupling;
34377
79123
  friend class ::ExtACTree;
34378
79124
  friend class ::ExtACKeywords;
34379
 
  friend class ::WinAsm;
34380
 
  friend class ::WinDeclSpecs;
34381
 
  friend class ::WinMemberExplSpec;
34382
 
  friend class ::WinTypeKeywords;
 
79125
  friend class ::ExtGnu;
34383
79126
  friend class ::PragmaOnceUnitState;
34384
79127
  friend class ::PragmaOnce;
34385
 
  friend class ::CCExprResolve;
34386
 
  friend class ::CExprResolve;
 
79128
  friend class ::CMatchSyntax;
34387
79129
 
34388
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79130
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34389
79131
 
34390
79132
  CTree *sons[2]; // name, init
34391
79133
 
34392
79134
public:
34393
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
79135
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
79136
  /** Get the identifier for this node type. Can be compared with NodeName(). */
34394
79137
  static const char *NodeId ();
 
79138
  /** Get the name of the node. Can be compared with NodeId(). */
34395
79139
  const char *NodeName () const { return NodeId (); }
 
79140
  /** Get the number of sons. */
34396
79141
  int Sons () const { return 2; }
 
79142
  /** Get the n-th son.
 
79143
   *  \param n The index of the son.
 
79144
   *  \return The n-th son or NULL. */
34397
79145
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
79146
  /** Replace a son.
 
79147
   *  \param old_son The son to replace.
 
79148
   *  \param new_son The new son. */
34398
79149
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34399
79150
    CTree::ReplaceSon (sons, 2, old_son, new_son);
34400
79151
  }
34404
79155
   private:
34405
79156
  typedef CT_MembInit CCExprResolveExpr;
34406
79157
 
34407
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
79158
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
34408
79159
 public :
34409
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
79160
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
34410
79161
  typedef CT_MembInit CExprResolveExpr;
34411
79162
 
34412
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
79163
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
34413
79164
 public :
34414
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
34415
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79165
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
79166
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34416
79167
};
34417
79168
 
34418
79169
 
34419
 
#line 34420 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79170
#line 79171 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
34420
79171
} // closed Puma
 
79172
class CCExprResolve;
 
79173
class CExprResolve;
34421
79174
class WinIfExists;
34422
79175
class WinImportHandler;
34423
79176
class WinMacros;
34424
 
class CMatchSyntax;
34425
 
class ExtGnu;
 
79177
class WinAsm;
 
79178
class WinDeclSpecs;
 
79179
class WinMemberExplSpec;
 
79180
class WinTypeKeywords;
 
79181
class WinFriend;
34426
79182
class ExtAC;
34427
79183
class ExtACBuilderCoupling;
34428
79184
class ExtACSyntaxCoupling;
34429
79185
class ExtACTree;
34430
79186
class ExtACKeywords;
34431
 
class WinAsm;
34432
 
class WinDeclSpecs;
34433
 
class WinMemberExplSpec;
34434
 
class WinTypeKeywords;
 
79187
class ExtGnu;
34435
79188
class PragmaOnceUnitState;
34436
79189
class PragmaOnce;
34437
 
class CCExprResolve;
34438
 
class CExprResolve;
 
79190
class CMatchSyntax;
34439
79191
namespace Puma {
34440
79192
 
34441
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79193
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34442
79194
class CT_BaseSpecList : public CT_List {
34443
 
#line 34444 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79195
#line 79196 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79196
  friend class ::CCExprResolve;
 
79197
  friend class ::CExprResolve;
34444
79198
  friend class ::WinIfExists;
34445
79199
  friend class ::WinImportHandler;
34446
79200
  friend class ::WinMacros;
34447
 
  friend class ::CMatchSyntax;
34448
 
  friend class ::ExtGnu;
 
79201
  friend class ::WinAsm;
 
79202
  friend class ::WinDeclSpecs;
 
79203
  friend class ::WinMemberExplSpec;
 
79204
  friend class ::WinTypeKeywords;
 
79205
  friend class ::WinFriend;
34449
79206
  friend class ::ExtAC;
34450
79207
  friend class ::ExtACBuilderCoupling;
34451
79208
  friend class ::ExtACSyntaxCoupling;
34452
79209
  friend class ::ExtACTree;
34453
79210
  friend class ::ExtACKeywords;
34454
 
  friend class ::WinAsm;
34455
 
  friend class ::WinDeclSpecs;
34456
 
  friend class ::WinMemberExplSpec;
34457
 
  friend class ::WinTypeKeywords;
 
79211
  friend class ::ExtGnu;
34458
79212
  friend class ::PragmaOnceUnitState;
34459
79213
  friend class ::PragmaOnce;
34460
 
  friend class ::CCExprResolve;
34461
 
  friend class ::CExprResolve;
 
79214
  friend class ::CMatchSyntax;
34462
79215
 
34463
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79216
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34464
79217
 
34465
79218
public:
34466
79219
  CT_BaseSpecList (int size = 2) : 
34467
79220
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
79221
  /** Get the identifier for this node type. Can be compared with NodeName(). */
34468
79222
  static const char *NodeId ();
 
79223
  /** Get the name of the node. Can be compared with NodeId(). */
34469
79224
  const char *NodeName () const { return NodeId (); }
34470
79225
};
34471
79226
 
34472
79227
 
34473
 
#line 34474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79228
#line 79229 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
34474
79229
} // closed Puma
 
79230
class CCExprResolve;
 
79231
class CExprResolve;
34475
79232
class WinIfExists;
34476
79233
class WinImportHandler;
34477
79234
class WinMacros;
34478
 
class CMatchSyntax;
34479
 
class ExtGnu;
 
79235
class WinAsm;
 
79236
class WinDeclSpecs;
 
79237
class WinMemberExplSpec;
 
79238
class WinTypeKeywords;
 
79239
class WinFriend;
34480
79240
class ExtAC;
34481
79241
class ExtACBuilderCoupling;
34482
79242
class ExtACSyntaxCoupling;
34483
79243
class ExtACTree;
34484
79244
class ExtACKeywords;
34485
 
class WinAsm;
34486
 
class WinDeclSpecs;
34487
 
class WinMemberExplSpec;
34488
 
class WinTypeKeywords;
 
79245
class ExtGnu;
34489
79246
class PragmaOnceUnitState;
34490
79247
class PragmaOnce;
34491
 
class CCExprResolve;
34492
 
class CExprResolve;
 
79248
class CMatchSyntax;
34493
79249
namespace Puma {
34494
79250
 
34495
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79251
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34496
79252
class CT_AccessSpec : public CTree {
34497
 
#line 34498 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79253
#line 79254 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79254
  friend class ::CCExprResolve;
 
79255
  friend class ::CExprResolve;
34498
79256
  friend class ::WinIfExists;
34499
79257
  friend class ::WinImportHandler;
34500
79258
  friend class ::WinMacros;
34501
 
  friend class ::CMatchSyntax;
34502
 
  friend class ::ExtGnu;
 
79259
  friend class ::WinAsm;
 
79260
  friend class ::WinDeclSpecs;
 
79261
  friend class ::WinMemberExplSpec;
 
79262
  friend class ::WinTypeKeywords;
 
79263
  friend class ::WinFriend;
34503
79264
  friend class ::ExtAC;
34504
79265
  friend class ::ExtACBuilderCoupling;
34505
79266
  friend class ::ExtACSyntaxCoupling;
34506
79267
  friend class ::ExtACTree;
34507
79268
  friend class ::ExtACKeywords;
34508
 
  friend class ::WinAsm;
34509
 
  friend class ::WinDeclSpecs;
34510
 
  friend class ::WinMemberExplSpec;
34511
 
  friend class ::WinTypeKeywords;
 
79269
  friend class ::ExtGnu;
34512
79270
  friend class ::PragmaOnceUnitState;
34513
79271
  friend class ::PragmaOnce;
34514
 
  friend class ::CCExprResolve;
34515
 
  friend class ::CExprResolve;
 
79272
  friend class ::CMatchSyntax;
34516
79273
 
34517
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79274
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34518
79275
 
34519
79276
  CTree *sons[2]; // access, colon
34520
79277
 
34521
79278
public:
34522
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
79279
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
79280
  /** Get the identifier for this node type. Can be compared with NodeName(). */
34523
79281
  static const char *NodeId ();
 
79282
  /** Get the name of the node. Can be compared with NodeId(). */
34524
79283
  const char *NodeName () const { return NodeId (); }
 
79284
  /** Get the number of sons. */
34525
79285
  int Sons () const { return 2; }
 
79286
  /** Get the n-th son.
 
79287
   *  \param n The index of the son.
 
79288
   *  \return The n-th son or NULL. */
34526
79289
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
34527
79290
  int Access () const { return sons[0]->token ()->type (); }
 
79291
  /** Replace a son.
 
79292
   *  \param old_son The son to replace.
 
79293
   *  \param new_son The new son. */
34528
79294
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34529
79295
    CTree::ReplaceSon (sons, 2, old_son, new_son);
34530
79296
  }
34531
79297
};
34532
79298
 
34533
79299
 
34534
 
#line 34535 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79300
#line 79301 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
34535
79301
} // closed Puma
 
79302
class CCExprResolve;
 
79303
class CExprResolve;
34536
79304
class WinIfExists;
34537
79305
class WinImportHandler;
34538
79306
class WinMacros;
34539
 
class CMatchSyntax;
34540
 
class ExtGnu;
 
79307
class WinAsm;
 
79308
class WinDeclSpecs;
 
79309
class WinMemberExplSpec;
 
79310
class WinTypeKeywords;
 
79311
class WinFriend;
34541
79312
class ExtAC;
34542
79313
class ExtACBuilderCoupling;
34543
79314
class ExtACSyntaxCoupling;
34544
79315
class ExtACTree;
34545
79316
class ExtACKeywords;
34546
 
class WinAsm;
34547
 
class WinDeclSpecs;
34548
 
class WinMemberExplSpec;
34549
 
class WinTypeKeywords;
 
79317
class ExtGnu;
34550
79318
class PragmaOnceUnitState;
34551
79319
class PragmaOnce;
34552
 
class CCExprResolve;
34553
 
class CExprResolve;
 
79320
class CMatchSyntax;
34554
79321
namespace Puma {
34555
79322
 
34556
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79323
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34557
79324
class CT_BaseSpec : public CTree {
34558
 
#line 34559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79325
#line 79326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79326
  friend class ::CCExprResolve;
 
79327
  friend class ::CExprResolve;
34559
79328
  friend class ::WinIfExists;
34560
79329
  friend class ::WinImportHandler;
34561
79330
  friend class ::WinMacros;
34562
 
  friend class ::CMatchSyntax;
34563
 
  friend class ::ExtGnu;
 
79331
  friend class ::WinAsm;
 
79332
  friend class ::WinDeclSpecs;
 
79333
  friend class ::WinMemberExplSpec;
 
79334
  friend class ::WinTypeKeywords;
 
79335
  friend class ::WinFriend;
34564
79336
  friend class ::ExtAC;
34565
79337
  friend class ::ExtACBuilderCoupling;
34566
79338
  friend class ::ExtACSyntaxCoupling;
34567
79339
  friend class ::ExtACTree;
34568
79340
  friend class ::ExtACKeywords;
34569
 
  friend class ::WinAsm;
34570
 
  friend class ::WinDeclSpecs;
34571
 
  friend class ::WinMemberExplSpec;
34572
 
  friend class ::WinTypeKeywords;
 
79341
  friend class ::ExtGnu;
34573
79342
  friend class ::PragmaOnceUnitState;
34574
79343
  friend class ::PragmaOnce;
34575
 
  friend class ::CCExprResolve;
34576
 
  friend class ::CExprResolve;
 
79344
  friend class ::CMatchSyntax;
34577
79345
 
34578
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79346
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34579
79347
 
34580
79348
  CTree *sons[3]; // virtual, access, name
34581
79349
 
34582
79350
public:
34583
79351
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
34584
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
79352
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
34585
79353
  }
 
79354
  /** Get the identifier for this node type. Can be compared with NodeName(). */
34586
79355
  static const char *NodeId ();
 
79356
  /** Get the name of the node. Can be compared with NodeId(). */
34587
79357
  const char *NodeName () const { return NodeId (); }
 
79358
  /** Get the number of sons. */
34588
79359
  int Sons () const { return CTree::Sons (sons, 3); }
 
79360
  /** Get the n-th son.
 
79361
   *  \param n The index of the son.
 
79362
   *  \return The n-th son or NULL. */
34589
79363
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
34590
79364
  int Access () const { return sons[1]->token ()->type (); }
34591
79365
  CTree *AccessSpec () const { return sons[1]; }
34592
79366
  CTree *Virtual () const { return sons[0]; }
34593
79367
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
79368
  /** Replace a son.
 
79369
   *  \param old_son The son to replace.
 
79370
   *  \param new_son The new son. */
34594
79371
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34595
79372
    CTree::ReplaceSon (sons, 3, old_son, new_son);
34596
79373
  }
34597
79374
};
34598
79375
 
34599
79376
 
34600
 
#line 34601 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79377
#line 79378 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
34601
79378
} // closed Puma
 
79379
class CCExprResolve;
 
79380
class CExprResolve;
34602
79381
class WinIfExists;
34603
79382
class WinImportHandler;
34604
79383
class WinMacros;
34605
 
class CMatchSyntax;
34606
 
class ExtGnu;
 
79384
class WinAsm;
 
79385
class WinDeclSpecs;
 
79386
class WinMemberExplSpec;
 
79387
class WinTypeKeywords;
 
79388
class WinFriend;
34607
79389
class ExtAC;
34608
79390
class ExtACBuilderCoupling;
34609
79391
class ExtACSyntaxCoupling;
34610
79392
class ExtACTree;
34611
79393
class ExtACKeywords;
34612
 
class WinAsm;
34613
 
class WinDeclSpecs;
34614
 
class WinMemberExplSpec;
34615
 
class WinTypeKeywords;
 
79394
class ExtGnu;
34616
79395
class PragmaOnceUnitState;
34617
79396
class PragmaOnce;
34618
 
class CCExprResolve;
34619
 
class CExprResolve;
 
79397
class CMatchSyntax;
34620
79398
namespace Puma {
34621
79399
 
34622
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79400
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34623
79401
class CT_AccessDecl : public CT_Decl {
34624
 
#line 34625 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79402
#line 79403 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79403
  friend class ::CCExprResolve;
 
79404
  friend class ::CExprResolve;
34625
79405
  friend class ::WinIfExists;
34626
79406
  friend class ::WinImportHandler;
34627
79407
  friend class ::WinMacros;
34628
 
  friend class ::CMatchSyntax;
34629
 
  friend class ::ExtGnu;
 
79408
  friend class ::WinAsm;
 
79409
  friend class ::WinDeclSpecs;
 
79410
  friend class ::WinMemberExplSpec;
 
79411
  friend class ::WinTypeKeywords;
 
79412
  friend class ::WinFriend;
34630
79413
  friend class ::ExtAC;
34631
79414
  friend class ::ExtACBuilderCoupling;
34632
79415
  friend class ::ExtACSyntaxCoupling;
34633
79416
  friend class ::ExtACTree;
34634
79417
  friend class ::ExtACKeywords;
34635
 
  friend class ::WinAsm;
34636
 
  friend class ::WinDeclSpecs;
34637
 
  friend class ::WinMemberExplSpec;
34638
 
  friend class ::WinTypeKeywords;
 
79418
  friend class ::ExtGnu;
34639
79419
  friend class ::PragmaOnceUnitState;
34640
79420
  friend class ::PragmaOnce;
34641
 
  friend class ::CCExprResolve;
34642
 
  friend class ::CExprResolve;
 
79421
  friend class ::CMatchSyntax;
34643
79422
 
34644
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79423
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34645
79424
 
34646
79425
  CTree *sons[2]; // name, semi_colon
34647
79426
 
34648
79427
public:
34649
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
79428
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
79429
  /** Get the identifier for this node type. Can be compared with NodeName(). */
34650
79430
  static const char *NodeId ();
 
79431
  /** Get the name of the node. Can be compared with NodeId(). */
34651
79432
  const char *NodeName () const { return NodeId (); }
 
79433
  /** Get the number of sons. */
34652
79434
  int Sons () const { return 2; }
 
79435
  /** Get the n-th son.
 
79436
   *  \param n The index of the son.
 
79437
   *  \return The n-th son or NULL. */
34653
79438
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
34654
79439
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
79440
  /** Replace a son.
 
79441
   *  \param old_son The son to replace.
 
79442
   *  \param new_son The new son. */
34655
79443
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34656
79444
    CTree::ReplaceSon (sons, 2, old_son, new_son);
34657
79445
  }
34658
79446
};
34659
79447
 
34660
79448
 
34661
 
#line 34662 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79449
#line 79450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
34662
79450
} // closed Puma
 
79451
class CCExprResolve;
 
79452
class CExprResolve;
34663
79453
class WinIfExists;
34664
79454
class WinImportHandler;
34665
79455
class WinMacros;
34666
 
class CMatchSyntax;
34667
 
class ExtGnu;
 
79456
class WinAsm;
 
79457
class WinDeclSpecs;
 
79458
class WinMemberExplSpec;
 
79459
class WinTypeKeywords;
 
79460
class WinFriend;
34668
79461
class ExtAC;
34669
79462
class ExtACBuilderCoupling;
34670
79463
class ExtACSyntaxCoupling;
34671
79464
class ExtACTree;
34672
79465
class ExtACKeywords;
34673
 
class WinAsm;
34674
 
class WinDeclSpecs;
34675
 
class WinMemberExplSpec;
34676
 
class WinTypeKeywords;
 
79466
class ExtGnu;
34677
79467
class PragmaOnceUnitState;
34678
79468
class PragmaOnce;
34679
 
class CCExprResolve;
34680
 
class CExprResolve;
 
79469
class CMatchSyntax;
34681
79470
namespace Puma {
34682
79471
 
34683
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79472
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34684
79473
class CT_UsingDecl : public CT_AccessDecl {
34685
 
#line 34686 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79474
#line 79475 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79475
  friend class ::CCExprResolve;
 
79476
  friend class ::CExprResolve;
34686
79477
  friend class ::WinIfExists;
34687
79478
  friend class ::WinImportHandler;
34688
79479
  friend class ::WinMacros;
34689
 
  friend class ::CMatchSyntax;
34690
 
  friend class ::ExtGnu;
 
79480
  friend class ::WinAsm;
 
79481
  friend class ::WinDeclSpecs;
 
79482
  friend class ::WinMemberExplSpec;
 
79483
  friend class ::WinTypeKeywords;
 
79484
  friend class ::WinFriend;
34691
79485
  friend class ::ExtAC;
34692
79486
  friend class ::ExtACBuilderCoupling;
34693
79487
  friend class ::ExtACSyntaxCoupling;
34694
79488
  friend class ::ExtACTree;
34695
79489
  friend class ::ExtACKeywords;
34696
 
  friend class ::WinAsm;
34697
 
  friend class ::WinDeclSpecs;
34698
 
  friend class ::WinMemberExplSpec;
34699
 
  friend class ::WinTypeKeywords;
 
79490
  friend class ::ExtGnu;
34700
79491
  friend class ::PragmaOnceUnitState;
34701
79492
  friend class ::PragmaOnce;
34702
 
  friend class ::CCExprResolve;
34703
 
  friend class ::CExprResolve;
 
79493
  friend class ::CMatchSyntax;
34704
79494
 
34705
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79495
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34706
79496
 
34707
79497
  CTree *sons[2]; // using, typename
34708
79498
 
34709
79499
public:
34710
79500
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
34711
 
    sons[0] = u; sons[1] = 0; 
 
79501
    AddSon (sons[0], u); AddSon (sons[1], 0); 
34712
79502
  }
34713
79503
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
34714
 
    sons[0] = u; sons[1] = t; 
 
79504
    AddSon (sons[0], u); AddSon (sons[1], t); 
34715
79505
  }
 
79506
  /** Get the identifier for this node type. Can be compared with NodeName(). */
34716
79507
  static const char *NodeId ();
 
79508
  /** Get the name of the node. Can be compared with NodeId(). */
34717
79509
  const char *NodeName () const { return NodeId (); }
 
79510
  /** Get the number of sons. */
34718
79511
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
79512
  /** Get the n-th son.
 
79513
   *  \param n The index of the son.
 
79514
   *  \return The n-th son or NULL. */
34719
79515
  CTree *Son (int n) const {
34720
79516
    int num = CTree::Sons (sons, 2);
34721
79517
    CTree *result = CTree::Son (sons, 2, n);
34722
79518
    return result ? result : CT_AccessDecl::Son (n-num);
34723
79519
  }
34724
79520
  CTree *Typename () const { return sons[1]; }
 
79521
  /** Replace a son.
 
79522
   *  \param old_son The son to replace.
 
79523
   *  \param new_son The new son. */
34725
79524
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34726
79525
    CTree::ReplaceSon (sons, 2, old_son, new_son);
34727
79526
    CT_AccessDecl::ReplaceSon (old_son, new_son);
34735
79534
/*****************************************************************************/
34736
79535
 
34737
79536
 
34738
 
#line 34739 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79537
#line 79538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
34739
79538
} // closed Puma
 
79539
class CCExprResolve;
 
79540
class CExprResolve;
34740
79541
class WinIfExists;
34741
79542
class WinImportHandler;
34742
79543
class WinMacros;
34743
 
class CMatchSyntax;
34744
 
class ExtGnu;
 
79544
class WinAsm;
 
79545
class WinDeclSpecs;
 
79546
class WinMemberExplSpec;
 
79547
class WinTypeKeywords;
 
79548
class WinFriend;
34745
79549
class ExtAC;
34746
79550
class ExtACBuilderCoupling;
34747
79551
class ExtACSyntaxCoupling;
34748
79552
class ExtACTree;
34749
79553
class ExtACKeywords;
34750
 
class WinAsm;
34751
 
class WinDeclSpecs;
34752
 
class WinMemberExplSpec;
34753
 
class WinTypeKeywords;
 
79554
class ExtGnu;
34754
79555
class PragmaOnceUnitState;
34755
79556
class PragmaOnce;
34756
 
class CCExprResolve;
34757
 
class CExprResolve;
 
79557
class CMatchSyntax;
34758
79558
namespace Puma {
34759
79559
 
34760
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79560
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34761
79561
class CT_Any : public CTree {
34762
 
#line 34763 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79562
#line 79563 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79563
  friend class ::CCExprResolve;
 
79564
  friend class ::CExprResolve;
34763
79565
  friend class ::WinIfExists;
34764
79566
  friend class ::WinImportHandler;
34765
79567
  friend class ::WinMacros;
34766
 
  friend class ::CMatchSyntax;
34767
 
  friend class ::ExtGnu;
 
79568
  friend class ::WinAsm;
 
79569
  friend class ::WinDeclSpecs;
 
79570
  friend class ::WinMemberExplSpec;
 
79571
  friend class ::WinTypeKeywords;
 
79572
  friend class ::WinFriend;
34768
79573
  friend class ::ExtAC;
34769
79574
  friend class ::ExtACBuilderCoupling;
34770
79575
  friend class ::ExtACSyntaxCoupling;
34771
79576
  friend class ::ExtACTree;
34772
79577
  friend class ::ExtACKeywords;
34773
 
  friend class ::WinAsm;
34774
 
  friend class ::WinDeclSpecs;
34775
 
  friend class ::WinMemberExplSpec;
34776
 
  friend class ::WinTypeKeywords;
 
79578
  friend class ::ExtGnu;
34777
79579
  friend class ::PragmaOnceUnitState;
34778
79580
  friend class ::PragmaOnce;
34779
 
  friend class ::CCExprResolve;
34780
 
  friend class ::CExprResolve;
 
79581
  friend class ::CMatchSyntax;
34781
79582
 
34782
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79583
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34783
79584
 
34784
79585
  CTree *sons[2]; // keyword, extension
34785
79586
 
34786
79587
public:
34787
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
79588
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
79589
  /** Get the identifier for this node type. Can be compared with NodeName(). */
34788
79590
  static const char *NodeId ();
 
79591
  /** Get the name of the node. Can be compared with NodeId(). */
34789
79592
  const char *NodeName () const { return NodeId (); }
 
79593
  /** Get the number of sons. */
34790
79594
  int Sons () const { return CTree::Sons (sons, 2); }
 
79595
  /** Get the n-th son.
 
79596
   *  \param n The index of the son.
 
79597
   *  \return The n-th son or NULL. */
34791
79598
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
79599
  /** Replace a son.
 
79600
   *  \param old_son The son to replace.
 
79601
   *  \param new_son The new son. */
34792
79602
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34793
79603
    CTree::ReplaceSon (sons, 2, old_son, new_son);
34794
79604
  }
34797
79607
};
34798
79608
 
34799
79609
 
34800
 
#line 34801 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79610
#line 79611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
34801
79611
} // closed Puma
 
79612
class CCExprResolve;
 
79613
class CExprResolve;
34802
79614
class WinIfExists;
34803
79615
class WinImportHandler;
34804
79616
class WinMacros;
34805
 
class CMatchSyntax;
34806
 
class ExtGnu;
 
79617
class WinAsm;
 
79618
class WinDeclSpecs;
 
79619
class WinMemberExplSpec;
 
79620
class WinTypeKeywords;
 
79621
class WinFriend;
34807
79622
class ExtAC;
34808
79623
class ExtACBuilderCoupling;
34809
79624
class ExtACSyntaxCoupling;
34810
79625
class ExtACTree;
34811
79626
class ExtACKeywords;
34812
 
class WinAsm;
34813
 
class WinDeclSpecs;
34814
 
class WinMemberExplSpec;
34815
 
class WinTypeKeywords;
 
79627
class ExtGnu;
34816
79628
class PragmaOnceUnitState;
34817
79629
class PragmaOnce;
34818
 
class CCExprResolve;
34819
 
class CExprResolve;
 
79630
class CMatchSyntax;
34820
79631
namespace Puma {
34821
79632
 
34822
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79633
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34823
79634
class CT_AnyList : public CT_Any {
34824
 
#line 34825 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79635
#line 79636 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79636
  friend class ::CCExprResolve;
 
79637
  friend class ::CExprResolve;
34825
79638
  friend class ::WinIfExists;
34826
79639
  friend class ::WinImportHandler;
34827
79640
  friend class ::WinMacros;
34828
 
  friend class ::CMatchSyntax;
34829
 
  friend class ::ExtGnu;
 
79641
  friend class ::WinAsm;
 
79642
  friend class ::WinDeclSpecs;
 
79643
  friend class ::WinMemberExplSpec;
 
79644
  friend class ::WinTypeKeywords;
 
79645
  friend class ::WinFriend;
34830
79646
  friend class ::ExtAC;
34831
79647
  friend class ::ExtACBuilderCoupling;
34832
79648
  friend class ::ExtACSyntaxCoupling;
34833
79649
  friend class ::ExtACTree;
34834
79650
  friend class ::ExtACKeywords;
34835
 
  friend class ::WinAsm;
34836
 
  friend class ::WinDeclSpecs;
34837
 
  friend class ::WinMemberExplSpec;
34838
 
  friend class ::WinTypeKeywords;
 
79651
  friend class ::ExtGnu;
34839
79652
  friend class ::PragmaOnceUnitState;
34840
79653
  friend class ::PragmaOnce;
34841
 
  friend class ::CCExprResolve;
34842
 
  friend class ::CExprResolve;
 
79654
  friend class ::CMatchSyntax;
34843
79655
 
34844
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79656
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34845
79657
 
34846
79658
public:
34847
79659
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
79660
  /** Get the identifier for this node type. Can be compared with NodeName(). */
34848
79661
  static const char *NodeId ();
 
79662
  /** Get the name of the node. Can be compared with NodeId(). */
34849
79663
  const char *NodeName () const { return NodeId (); }
34850
79664
};
34851
79665
 
34852
79666
 
34853
 
#line 34854 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79667
#line 79668 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
34854
79668
} // closed Puma
 
79669
class CCExprResolve;
 
79670
class CExprResolve;
34855
79671
class WinIfExists;
34856
79672
class WinImportHandler;
34857
79673
class WinMacros;
34858
 
class CMatchSyntax;
34859
 
class ExtGnu;
 
79674
class WinAsm;
 
79675
class WinDeclSpecs;
 
79676
class WinMemberExplSpec;
 
79677
class WinTypeKeywords;
 
79678
class WinFriend;
34860
79679
class ExtAC;
34861
79680
class ExtACBuilderCoupling;
34862
79681
class ExtACSyntaxCoupling;
34863
79682
class ExtACTree;
34864
79683
class ExtACKeywords;
34865
 
class WinAsm;
34866
 
class WinDeclSpecs;
34867
 
class WinMemberExplSpec;
34868
 
class WinTypeKeywords;
 
79684
class ExtGnu;
34869
79685
class PragmaOnceUnitState;
34870
79686
class PragmaOnce;
34871
 
class CCExprResolve;
34872
 
class CExprResolve;
 
79687
class CMatchSyntax;
34873
79688
namespace Puma {
34874
79689
 
34875
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79690
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34876
79691
class CT_AnyExtension : public CTree, public CSemValue {
34877
 
#line 34878 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79692
#line 79693 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79693
  friend class ::CCExprResolve;
 
79694
  friend class ::CExprResolve;
34878
79695
  friend class ::WinIfExists;
34879
79696
  friend class ::WinImportHandler;
34880
79697
  friend class ::WinMacros;
34881
 
  friend class ::CMatchSyntax;
34882
 
  friend class ::ExtGnu;
 
79698
  friend class ::WinAsm;
 
79699
  friend class ::WinDeclSpecs;
 
79700
  friend class ::WinMemberExplSpec;
 
79701
  friend class ::WinTypeKeywords;
 
79702
  friend class ::WinFriend;
34883
79703
  friend class ::ExtAC;
34884
79704
  friend class ::ExtACBuilderCoupling;
34885
79705
  friend class ::ExtACSyntaxCoupling;
34886
79706
  friend class ::ExtACTree;
34887
79707
  friend class ::ExtACKeywords;
34888
 
  friend class ::WinAsm;
34889
 
  friend class ::WinDeclSpecs;
34890
 
  friend class ::WinMemberExplSpec;
34891
 
  friend class ::WinTypeKeywords;
 
79708
  friend class ::ExtGnu;
34892
79709
  friend class ::PragmaOnceUnitState;
34893
79710
  friend class ::PragmaOnce;
34894
 
  friend class ::CCExprResolve;
34895
 
  friend class ::CExprResolve;
 
79711
  friend class ::CMatchSyntax;
34896
79712
 
34897
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79713
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34898
79714
 
34899
79715
  CTree *sons[5]; // open, string, comma, cond, close
34900
79716
 
34901
79717
public:
34902
79718
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
34903
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
79719
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
79720
    AddSon (sons[3], c); AddSon (sons[4], cr); 
34904
79721
  }
 
79722
  /** Get the identifier for this node type. Can be compared with NodeName(). */
34905
79723
  static const char *NodeId ();
 
79724
  /** Get the name of the node. Can be compared with NodeId(). */
34906
79725
  const char *NodeName () const { return NodeId (); }
 
79726
  /** Get the number of sons. */
34907
79727
  int Sons () const { return CTree::Sons (sons, 5); }
 
79728
  /** Get the n-th son.
 
79729
   *  \param n The index of the son.
 
79730
   *  \return The n-th son or NULL. */
34908
79731
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
79732
  /** Replace a son.
 
79733
   *  \param old_son The son to replace.
 
79734
   *  \param new_son The new son. */
34909
79735
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34910
79736
    CTree::ReplaceSon (sons, 5, old_son, new_son);
34911
79737
  }
34919
79745
};
34920
79746
 
34921
79747
 
34922
 
#line 34923 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79748
#line 79749 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
34923
79749
} // closed Puma
 
79750
class CCExprResolve;
 
79751
class CExprResolve;
34924
79752
class WinIfExists;
34925
79753
class WinImportHandler;
34926
79754
class WinMacros;
34927
 
class CMatchSyntax;
34928
 
class ExtGnu;
 
79755
class WinAsm;
 
79756
class WinDeclSpecs;
 
79757
class WinMemberExplSpec;
 
79758
class WinTypeKeywords;
 
79759
class WinFriend;
34929
79760
class ExtAC;
34930
79761
class ExtACBuilderCoupling;
34931
79762
class ExtACSyntaxCoupling;
34932
79763
class ExtACTree;
34933
79764
class ExtACKeywords;
34934
 
class WinAsm;
34935
 
class WinDeclSpecs;
34936
 
class WinMemberExplSpec;
34937
 
class WinTypeKeywords;
 
79765
class ExtGnu;
34938
79766
class PragmaOnceUnitState;
34939
79767
class PragmaOnce;
34940
 
class CCExprResolve;
34941
 
class CExprResolve;
 
79768
class CMatchSyntax;
34942
79769
namespace Puma {
34943
79770
 
34944
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79771
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34945
79772
class CT_AnyCondition : public CTree {
34946
 
#line 34947 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79773
#line 79774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79774
  friend class ::CCExprResolve;
 
79775
  friend class ::CExprResolve;
34947
79776
  friend class ::WinIfExists;
34948
79777
  friend class ::WinImportHandler;
34949
79778
  friend class ::WinMacros;
34950
 
  friend class ::CMatchSyntax;
34951
 
  friend class ::ExtGnu;
 
79779
  friend class ::WinAsm;
 
79780
  friend class ::WinDeclSpecs;
 
79781
  friend class ::WinMemberExplSpec;
 
79782
  friend class ::WinTypeKeywords;
 
79783
  friend class ::WinFriend;
34952
79784
  friend class ::ExtAC;
34953
79785
  friend class ::ExtACBuilderCoupling;
34954
79786
  friend class ::ExtACSyntaxCoupling;
34955
79787
  friend class ::ExtACTree;
34956
79788
  friend class ::ExtACKeywords;
34957
 
  friend class ::WinAsm;
34958
 
  friend class ::WinDeclSpecs;
34959
 
  friend class ::WinMemberExplSpec;
34960
 
  friend class ::WinTypeKeywords;
 
79789
  friend class ::ExtGnu;
34961
79790
  friend class ::PragmaOnceUnitState;
34962
79791
  friend class ::PragmaOnce;
34963
 
  friend class ::CCExprResolve;
34964
 
  friend class ::CExprResolve;
 
79792
  friend class ::CMatchSyntax;
34965
79793
 
34966
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79794
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34967
79795
 
34968
79796
  CTree *sons[3]; // arg1, arg2, arg3
34969
79797
 
34970
79798
public:
34971
79799
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
34972
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
79800
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
34973
79801
  }
 
79802
  /** Get the identifier for this node type. Can be compared with NodeName(). */
34974
79803
  static const char *NodeId ();
 
79804
  /** Get the name of the node. Can be compared with NodeId(). */
34975
79805
  const char *NodeName () const { return NodeId (); }
 
79806
  /** Get the number of sons. */
34976
79807
  int Sons () const { return CTree::Sons (sons, 3); }
 
79808
  /** Get the n-th son.
 
79809
   *  \param n The index of the son.
 
79810
   *  \return The n-th son or NULL. */
34977
79811
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
79812
  /** Replace a son.
 
79813
   *  \param old_son The son to replace.
 
79814
   *  \param new_son The new son. */
34978
79815
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34979
79816
    CTree::ReplaceSon (sons, 3, old_son, new_son);
34980
79817
  }
34985
79822
 
34986
79823
#endif /* __CTree_h__ */
34987
79824
 
34988
 
#line 34989 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
34989
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
34990
 
 
34991
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34992
 
 
34993
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
79825
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
34994
79826
namespace Puma {
34995
79827
 
34996
79828
 
34997
79829
class ErrorSink;
34998
79830
 
34999
79831
 
35000
 
#line 35001 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79832
#line 79833 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35001
79833
} // closed Puma
 
79834
class CCExprResolve;
 
79835
class CExprResolve;
35002
79836
class WinIfExists;
35003
79837
class WinImportHandler;
35004
79838
class WinMacros;
35005
 
class CMatchSyntax;
35006
 
class ExtGnu;
 
79839
class WinAsm;
 
79840
class WinDeclSpecs;
 
79841
class WinMemberExplSpec;
 
79842
class WinTypeKeywords;
 
79843
class WinFriend;
35007
79844
class ExtAC;
35008
79845
class ExtACBuilderCoupling;
35009
79846
class ExtACSyntaxCoupling;
35010
79847
class ExtACTree;
35011
79848
class ExtACKeywords;
35012
 
class WinAsm;
35013
 
class WinDeclSpecs;
35014
 
class WinMemberExplSpec;
35015
 
class WinTypeKeywords;
 
79849
class ExtGnu;
35016
79850
class PragmaOnceUnitState;
35017
79851
class PragmaOnce;
35018
 
class CCExprResolve;
35019
 
class CExprResolve;
35020
 
namespace Puma {
35021
 
 
35022
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
79852
class CMatchSyntax;
 
79853
namespace Puma {
 
79854
 
 
79855
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
79856
 
 
79857
#line 79858 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79858
} // closed Puma
 
79859
 
 
79860
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
79861
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
79862
 
 
79863
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
 
79864
// This file is part of PUMA.
 
79865
// Copyright (C) 1999-2003  The PUMA developer team.
 
79866
//                                                                
 
79867
// This program is free software;  you can redistribute it and/or 
 
79868
// modify it under the terms of the GNU General Public License as 
 
79869
// published by the Free Software Foundation; either version 2 of 
 
79870
// the License, or (at your option) any later version.            
 
79871
//                                                                
 
79872
// This program is distributed in the hope that it will be useful,
 
79873
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
79874
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
79875
// GNU General Public License for more details.                   
 
79876
//                                                                
 
79877
// You should have received a copy of the GNU General Public      
 
79878
// License along with this program; if not, write to the Free     
 
79879
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
79880
// MA  02111-1307  USA                                            
 
79881
 
 
79882
#ifndef __ext_gnu_csem_decl_specs_ah__
 
79883
#define __ext_gnu_csem_decl_specs_ah__
 
79884
 
 
79885
 
 
79886
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
 
79887
namespace Puma {
 
79888
  
 
79889
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
 
79890
 
 
79891
}
 
79892
 
 
79893
#endif /* __ext_gnu_csem_decl_specs_ah__ */
 
79894
 
 
79895
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
79896
#endif
 
79897
namespace Puma {
 
79898
 
 
79899
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35023
79900
class CSemDeclSpecs {
35024
 
#line 35025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
79901
#line 79902 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79902
  friend class ::CCExprResolve;
 
79903
  friend class ::CExprResolve;
35025
79904
  friend class ::WinIfExists;
35026
79905
  friend class ::WinImportHandler;
35027
79906
  friend class ::WinMacros;
35028
 
  friend class ::CMatchSyntax;
35029
 
  friend class ::ExtGnu;
 
79907
  friend class ::WinAsm;
 
79908
  friend class ::WinDeclSpecs;
 
79909
  friend class ::WinMemberExplSpec;
 
79910
  friend class ::WinTypeKeywords;
 
79911
  friend class ::WinFriend;
35030
79912
  friend class ::ExtAC;
35031
79913
  friend class ::ExtACBuilderCoupling;
35032
79914
  friend class ::ExtACSyntaxCoupling;
35033
79915
  friend class ::ExtACTree;
35034
79916
  friend class ::ExtACKeywords;
35035
 
  friend class ::WinAsm;
35036
 
  friend class ::WinDeclSpecs;
35037
 
  friend class ::WinMemberExplSpec;
35038
 
  friend class ::WinTypeKeywords;
 
79917
  friend class ::ExtGnu;
35039
79918
  friend class ::PragmaOnceUnitState;
35040
79919
  friend class ::PragmaOnce;
35041
 
  friend class ::CCExprResolve;
35042
 
  friend class ::CExprResolve;
 
79920
  friend class ::CMatchSyntax;
35043
79921
 
35044
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
79922
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35045
79923
 
35046
79924
 
35047
79925
  // initialization context
35068
79946
  // analyses the syntax tree nodes of the decl-spec sequence. Return false
35069
79947
  // if an error was detected. 
35070
79948
  
35071
 
#line 35072 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
35072
 
public: inline bool __exec_old_analyze_seq();
 
79949
#line 79950 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79950
public: __attribute__((always_inline)) inline bool __exec_old_analyze_seq();
35073
79951
private:
35074
79952
 
35075
 
#line 55 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
79953
#line 55 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35076
79954
bool analyze_seq ();
35077
79955
  
35078
79956
  // analyzes the current declaration specifier in the sequence and set some
35079
79957
  // attributes according to the result. Returns false if the specifier type
35080
79958
  // is unknown.
35081
79959
  
35082
 
#line 35083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
35083
 
public: inline bool __exec_old_analyze(::Puma::CTree * spec);
 
79960
#line 79961 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79961
public: __attribute__((always_inline)) inline bool __exec_old_analyze(::Puma::CTree * spec);
35084
79962
private:
35085
79963
 
35086
 
#line 60 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
79964
#line 60 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35087
79965
bool analyze (CTree *spec);
35088
79966
 
35089
79967
  // check functions (used after analyse_seq()
35090
79968
  bool check_prim_decl_specs (bool &have_type);
35091
79969
  
35092
 
#line 35093 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
35093
 
public: inline bool __exec_old_check_complex_decl_specs(bool & have_type);
 
79970
#line 79971 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79971
public: __attribute__((always_inline)) inline bool __exec_old_check_complex_decl_specs(bool & have_type);
35094
79972
private:
35095
79973
 
35096
 
#line 64 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
79974
#line 64 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35097
79975
bool check_complex_decl_specs (bool &have_type);  
35098
79976
  bool check_storage_class ();
35099
79977
  
35100
 
#line 35101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
35101
 
public: inline bool __exec_old_check_signed_unsigned();
 
79978
#line 79979 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79979
public: __attribute__((always_inline)) inline bool __exec_old_check_signed_unsigned();
35102
79980
private:
35103
79981
 
35104
 
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
79982
#line 66 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35105
79983
bool check_signed_unsigned ();
35106
79984
  bool check_long_short (); 
35107
79985
  
35108
 
#line 35109 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
35109
 
public: inline bool __exec_old_check_finally();
 
79986
#line 79987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79987
public: __attribute__((always_inline)) inline bool __exec_old_check_finally();
35110
79988
private:
35111
79989
 
35112
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
79990
#line 68 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35113
79991
bool check_finally ();
35114
79992
  
35115
79993
  // type creation code
35116
79994
  
35117
 
#line 35118 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
35118
 
public: inline ::Puma::CTypeInfo * __exec_old_create_type();
 
79995
#line 79996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
79996
public: __attribute__((always_inline)) inline ::Puma::CTypeInfo * __exec_old_create_type();
35119
79997
private:
35120
79998
 
35121
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
79999
#line 71 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35122
80000
CTypeInfo *create_type ();
35123
80001
  CTypeInfo *create_qualifiers (CTypeInfo *type);
35124
80002
  
35125
80003
public:
35126
 
  CSemDeclSpecs (ErrorSink *, CT_DeclSpecSeq *);
 
80004
  CSemDeclSpecs (ErrorSink *, CT_DeclSpecSeq *, bool support_implicit_int = false);
35127
80005
  ~CSemDeclSpecs ();
35128
80006
 
35129
80007
  CTypeInfo *make_type () const;
35134
80012
  bool defUnion () const;
35135
80013
  bool defEnum () const;
35136
80014
   private:
 
80015
  typedef CSemDeclSpecs ExtGnuCSemDeclSpecs;
35137
80016
 
35138
 
#line 151 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80017
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
35139
80018
 public :
35140
80019
int _typeofs ;
35141
80020
CT_GnuTypeof * _typeof_node ;
35142
 
#line 85 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
80021
#line 85 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35143
80022
};
35144
80023
 
35145
80024
inline CSemDeclSpecs::~CSemDeclSpecs () 
35165
80044
 
35166
80045
#endif /* __c_sem_decl_specs_h__ */
35167
80046
 
35168
 
#line 35169 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
35169
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
35170
 
 
35171
 
#line 108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35172
 
 
35173
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80047
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35174
80048
namespace Puma {
35175
80049
  class CCSyntax;
35176
80050
  class CSyntax;
35177
 
} // namespace Puma
35178
 
 
35179
 
 
35180
 
using namespace Puma;
 
80051
}
 
80052
 
35181
80053
 
35182
80054
namespace Puma {
35183
80055
  
35184
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35185
 
 
35186
 
  
35187
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35188
 
 
35189
 
  
35190
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35191
 
 
35192
 
  
35193
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35194
 
 
35195
 
  
35196
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35197
 
 
35198
 
  
35199
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35200
 
 
35201
 
  
35202
 
#line 46 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35203
 
 
35204
 
  
35205
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35206
 
 
35207
 
  
35208
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35209
 
 
35210
 
  
35211
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80056
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80057
 
 
80058
  
 
80059
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80060
 
 
80061
  
 
80062
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80063
 
 
80064
  
 
80065
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80066
 
 
80067
  
 
80068
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80069
 
 
80070
  
 
80071
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80072
 
 
80073
  
 
80074
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80075
 
 
80076
  
 
80077
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80078
 
 
80079
  
 
80080
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80081
 
 
80082
  
 
80083
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35212
80084
 
35213
80085
}
35214
80086
 
35215
80087
 
35216
 
#line 35217 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80088
#line 80089 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
80089
class CCExprResolve;
 
80090
class CExprResolve;
35217
80091
class WinIfExists;
35218
80092
class WinImportHandler;
35219
80093
class WinMacros;
35220
 
class CMatchSyntax;
 
80094
class WinAsm;
 
80095
class WinDeclSpecs;
 
80096
class WinMemberExplSpec;
 
80097
class WinTypeKeywords;
 
80098
class WinFriend;
35221
80099
class ExtAC;
35222
80100
class ExtACBuilderCoupling;
35223
80101
class ExtACSyntaxCoupling;
35224
80102
class ExtACTree;
35225
80103
class ExtACKeywords;
35226
 
class WinAsm;
35227
 
class WinDeclSpecs;
35228
 
class WinMemberExplSpec;
35229
 
class WinTypeKeywords;
35230
80104
class PragmaOnceUnitState;
35231
80105
class PragmaOnce;
35232
 
class CCExprResolve;
35233
 
class CExprResolve;
 
80106
class CMatchSyntax;
35234
80107
 
35235
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80108
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35236
80109
class ExtGnu {
35237
 
#line 35238 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80110
#line 80111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35238
80111
 
35239
80112
public:
35240
80113
  static ExtGnu *aspectof () {
35246
80119
  }
35247
80120
private:
35248
80121
 
35249
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80122
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35250
80123
 
35251
 
#line 35252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80124
#line 80125 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
80125
  friend class ::CCExprResolve;
 
80126
  friend class ::CExprResolve;
35252
80127
  friend class ::WinIfExists;
35253
80128
  friend class ::WinImportHandler;
35254
80129
  friend class ::WinMacros;
35255
 
  friend class ::CMatchSyntax;
 
80130
  friend class ::WinAsm;
 
80131
  friend class ::WinDeclSpecs;
 
80132
  friend class ::WinMemberExplSpec;
 
80133
  friend class ::WinTypeKeywords;
 
80134
  friend class ::WinFriend;
35256
80135
  friend class ::ExtAC;
35257
80136
  friend class ::ExtACBuilderCoupling;
35258
80137
  friend class ::ExtACSyntaxCoupling;
35259
80138
  friend class ::ExtACTree;
35260
80139
  friend class ::ExtACKeywords;
35261
 
  friend class ::WinAsm;
35262
 
  friend class ::WinDeclSpecs;
35263
 
  friend class ::WinMemberExplSpec;
35264
 
  friend class ::WinTypeKeywords;
35265
80140
  friend class ::PragmaOnceUnitState;
35266
80141
  friend class ::PragmaOnce;
35267
 
  friend class ::CCExprResolve;
35268
 
  friend class ::CExprResolve;
 
80142
  friend class ::CMatchSyntax;
35269
80143
 
35270
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80144
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35271
80145
 
35272
80146
 
35273
80147
  // flags to enable/disable certain Gnu features
35280
80154
 
35281
80155
  // pointcut definitions
35282
80156
  
35283
 
#line 63 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35284
 
 
35285
 
  
35286
 
#line 64 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35287
 
 
35288
 
  
35289
 
#line 65 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35290
 
 
35291
 
  
35292
 
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35293
 
 
35294
 
  
35295
 
#line 67 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80157
#line 62 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80158
 
 
80159
  
 
80160
#line 63 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80161
 
 
80162
  
 
80163
#line 64 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80164
 
 
80165
  
 
80166
#line 65 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80167
 
 
80168
  
 
80169
#line 66 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80170
 
 
80171
  
 
80172
#line 67 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35296
80173
 
35297
80174
 
35298
80175
  // ----------------------------------------------------
35301
80178
 
35302
80179
  // structural extensions
35303
80180
  
35304
 
#line 74 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35305
 
 
35306
 
  
35307
 
#line 75 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35308
 
 
35309
 
 
35310
 
  // extended asm statement
35311
 
  
35312
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35313
 
 
35314
 
public: template<class JoinPoint> void __a0_after 
35315
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35316
 
 
35317
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35318
 
(JoinPoint *tjp, CSyntax *syntax)
35319
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35320
 
 {
35321
 
#line 35322 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
35322
 
 
35323
 
  typedef typename JoinPoint::That __JP_That;
35324
 
  typedef typename JoinPoint::Target __JP_Target;
35325
 
  typedef typename JoinPoint::Result __JP_Result;
35326
 
 
35327
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35328
 
 
35329
 
    CTree *&result = *(CTree**)tjp->result ();
35330
 
    if (extended_asm && !result &&
35331
 
        ((__JP_That
35332
 
#line 82 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35333
 
*)syntax)->look_ahead (TOK_ASM) &&
35334
 
        ((__JP_That
35335
 
#line 83 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35336
 
*)syntax)->parse (&__JP_That
35337
 
#line 83 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35338
 
::gnu_asm_def)) {
35339
 
      result = ((__JP_That
35340
 
#line 84 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35341
 
*)syntax)->builder().simple_decl ();
35342
 
    }
35343
 
  }
35344
 
#line 35345 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
35345
 
 
35346
 
private:
35347
 
 
35348
 
#line 86 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35349
 
 
35350
 
 
35351
 
  // extended asm statement
35352
 
  
35353
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35354
 
 
35355
 
public: template<class JoinPoint> void __a1_around 
35356
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35357
 
 
35358
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35359
 
(JoinPoint *tjp, CSyntax *syn)
35360
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35361
 
 {
35362
 
#line 35363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
35363
 
 
35364
 
  typedef typename JoinPoint::That __JP_That;
35365
 
  typedef typename JoinPoint::Target __JP_Target;
35366
 
  typedef typename JoinPoint::Result __JP_Result;
35367
 
 
35368
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80181
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80182
 
 
80183
  
 
80184
#line 75 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80185
 
 
80186
 
 
80187
  // extended asm statement
 
80188
  
 
80189
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80190
 
 
80191
public: template<class JoinPoint> void __a0_around 
 
80192
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80193
 
 
80194
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80195
(JoinPoint *tjp, Puma::CSyntax *syn)
 
80196
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80197
 {
 
80198
#line 80199 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
80199
 
 
80200
  typedef typename JoinPoint::That __JP_That;
 
80201
  typedef typename JoinPoint::Target __JP_Target;
 
80202
  typedef typename JoinPoint::Result __JP_Result;
 
80203
 
 
80204
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35369
80205
 
35370
80206
    if (extended_asm)
35371
80207
      *tjp->result () = ((__JP_That
35372
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80208
#line 81 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35373
80209
*)syn)->gnu_asm_def ();
35374
80210
    else
35375
80211
      tjp->proceed ();
35376
80212
  }
35377
 
#line 35378 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
35378
 
 
35379
 
private:
35380
 
 
35381
 
#line 95 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35382
 
 
 
80213
#line 80214 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
80214
 
 
80215
private:
 
80216
 
 
80217
#line 84 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80218
 
 
80219
 
 
80220
  // extended asm init declarator syntax
 
80221
  
 
80222
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80223
 
 
80224
public: template<class JoinPoint> void __a1_after 
 
80225
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80226
 
 
80227
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80228
(JoinPoint *tjp, Puma::CSyntax *syn)
 
80229
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80230
 {
 
80231
#line 80232 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
80232
 
 
80233
  typedef typename JoinPoint::That __JP_That;
 
80234
  typedef typename JoinPoint::Target __JP_Target;
 
80235
  typedef typename JoinPoint::Result __JP_Result;
 
80236
 
 
80237
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80238
 
 
80239
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
80240
    if (extended_asm && !result &&
 
80241
        ((__JP_That
 
80242
#line 92 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80243
*)syn)->look_ahead (Puma::TOK_ASM))
 
80244
      result = ((__JP_That
 
80245
#line 93 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80246
*)syn)->gnu_asm_spec ();
 
80247
  }
 
80248
#line 80249 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
80249
 
 
80250
private:
 
80251
 
 
80252
#line 94 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80253
 
 
80254
 
 
80255
//   // asm declaration specifiers
 
80256
//   advice within (derived (syntax ())) &&
 
80257
//          execution ("% Puma::%::init_simple_type_spec()") : after () {
 
80258
//     if (extended_asm)
 
80259
//       tjp->that ()->_simple_type_spec_1.set (Puma::TOK_ASM);
 
80260
//   }
 
80261
//   advice execution ("% Puma::CSyntax::rule_simple_type_spec()") : after () {
 
80262
//     Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
80263
//     if (extended_asm && !result && tjp->that ()->look_ahead (Puma::TOK_ASM) &&
 
80264
//         tjp->that ()->parse (&JoinPoint::That::gnu_asm_spec))
 
80265
//       result = tjp->that ()->builder ().gnu_asm_spec ();
 
80266
//   }
 
80267
//   advice execution ("% Puma::CCSyntax::rule_simple_type_spec()") : after () {
 
80268
//     Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
80269
//     if (extended_asm && !result && tjp->that ()->look_ahead (Puma::TOK_ASM) &&
 
80270
//         tjp->that ()->parse (&JoinPoint::That::gnu_asm_spec))
 
80271
//       result = tjp->that ()->semantic ().simple_type_spec ();
 
80272
//   }
 
80273
//   // make the analysis function aware of 'asm(...)'
 
80274
//   advice execution("bool Puma::%::analyze(...)") && within (csemdeclspecs ()) &&
 
80275
//          args (spec): after (Puma::CTree *spec) {
 
80276
//     bool &result = *tjp->result ();
 
80277
//     if (!result && spec->NodeName () == Puma::CT_GnuAsmSpec::NodeId ())
 
80278
//       result = true;
 
80279
//   }
35383
80280
 
35384
80281
  // ----------------------------------------------------
35385
80282
  // the 'restrict' keyword
35387
80284
 
35388
80285
  // extended cv qualifier
35389
80286
  
35390
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80287
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35391
80288
 
35392
80289
public: template<class JoinPoint> void __a2_after 
35393
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80290
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35394
80291
 
35395
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80292
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35396
80293
(JoinPoint *tjp)
35397
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80294
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35398
80295
 {
35399
 
#line 35400 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80296
#line 80297 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35400
80297
 
35401
80298
  typedef typename JoinPoint::That __JP_That;
35402
80299
  typedef typename JoinPoint::Target __JP_Target;
35403
80300
  typedef typename JoinPoint::Result __JP_Result;
35404
80301
 
35405
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80302
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35406
80303
 
35407
80304
    if (extended_cv_qual)
35408
 
      tjp->that ()->_cv_qual_1.set (TOK_RESTRICT);
 
80305
      tjp->that ()->_cv_qual_1.set (Puma::TOK_RESTRICT);
35409
80306
  }
35410
 
#line 35411 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80307
#line 80308 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35411
80308
 
35412
80309
private:
35413
80310
 
35414
 
#line 105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80311
#line 130 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35415
80312
 
35416
80313
 
35417
80314
  // -------------------------
35420
80317
 
35421
80318
  // pointcut definitions
35422
80319
  
35423
 
#line 112 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80320
#line 137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35424
80321
 
35425
80322
  
35426
 
#line 113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80323
#line 138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35427
80324
 
35428
80325
 
35429
80326
  // structural extensions
35430
80327
  
35431
 
#line 116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35432
 
 
35433
 
  
35434
 
#line 117 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35435
 
 
35436
 
  
35437
 
#line 118 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80328
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80329
 
 
80330
  
 
80331
#line 142 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80332
 
 
80333
  
 
80334
#line 143 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35438
80335
 
35439
80336
 
35440
80337
  // extended primary expression syntax
35441
80338
  
35442
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80339
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35443
80340
 
35444
80341
public: template<class JoinPoint> void __a3_around 
35445
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80342
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35446
80343
 
35447
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80344
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35448
80345
(JoinPoint *tjp)
35449
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80346
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35450
80347
 {
35451
 
#line 35452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80348
#line 80349 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35452
80349
 
35453
80350
  typedef typename JoinPoint::That __JP_That;
35454
80351
  typedef typename JoinPoint::Target __JP_Target;
35455
80352
  typedef typename JoinPoint::Result __JP_Result;
35456
80353
 
35457
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80354
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35458
80355
 
35459
80356
    __JP_That
35460
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80357
#line 148 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35461
80358
 *syntax = tjp->that ();
35462
80359
    if (statement_exprs &&
35463
80360
        ((__JP_That
35464
 
#line 125 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35465
 
*)syntax)->look_ahead (TOK_OPEN_ROUND) &&
 
80361
#line 150 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80362
*)syntax)->look_ahead (Puma::TOK_OPEN_ROUND) &&
35466
80363
        ((__JP_That
35467
 
#line 126 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35468
 
*)syntax)->look_ahead (TOK_OPEN_CURLY, 2)) {
35469
 
      CTree *&result = *(CTree**)tjp->result ();
 
80364
#line 151 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80365
*)syntax)->look_ahead (Puma::TOK_OPEN_CURLY, 2)) {
 
80366
      Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
35470
80367
      ((__JP_That
35471
 
#line 128 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35472
 
*)syntax)->consume (); // skip the TOK_OPEN_ROUND
 
80368
#line 153 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80369
*)syntax)->consume (); // skip the Puma::TOK_OPEN_ROUND
35473
80370
      result =
35474
80371
        (((__JP_That
35475
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80372
#line 155 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35476
80373
*)syntax)->parse (&__JP_That
35477
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80374
#line 155 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35478
80375
::cmpd_stmt) &&
35479
80376
        ((__JP_That
35480
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35481
 
*)syntax)->parse (TOK_CLOSE_ROUND)) ?
 
80377
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80378
*)syntax)->parse (Puma::TOK_CLOSE_ROUND)) ?
35482
80379
        ((__JP_That
35483
 
#line 132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80380
#line 157 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35484
80381
*)syntax)->builder().gnu_statement_expr () : 0;
35485
80382
    }
35486
80383
    else
35487
80384
      tjp->proceed ();
35488
80385
  }
35489
 
#line 35490 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80386
#line 80387 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35490
80387
 
35491
80388
private:
35492
80389
 
35493
 
#line 136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80390
#line 161 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35494
80391
 
35495
80392
 
35496
80393
  // ----------------------
35499
80396
 
35500
80397
  // structural extensions
35501
80398
  
35502
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35503
 
 
35504
 
  
35505
 
#line 144 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35506
 
 
35507
 
  
35508
 
#line 145 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35509
 
 
35510
 
  
35511
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80399
#line 168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80400
 
 
80401
  
 
80402
#line 169 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80403
 
 
80404
  
 
80405
#line 170 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80406
 
 
80407
  
 
80408
#line 171 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35512
80409
 
35513
80410
 
35514
80411
  // introduce new state into CSemDeclSpecs
35515
80412
  
35516
 
#line 149 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35517
 
 
35518
 
  
35519
 
#line 154 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80413
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35520
80414
 
35521
80415
 
35522
80416
  // syntax extension
35523
80417
  
35524
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80418
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35525
80419
 
35526
80420
public: template<class JoinPoint> void __a4_after 
35527
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80421
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35528
80422
 
35529
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80423
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35530
80424
(JoinPoint *tjp)
35531
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80425
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35532
80426
 {
35533
 
#line 35534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80427
#line 80428 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35534
80428
 
35535
80429
  typedef typename JoinPoint::That __JP_That;
35536
80430
  typedef typename JoinPoint::Target __JP_Target;
35537
80431
  typedef typename JoinPoint::Result __JP_Result;
35538
80432
 
35539
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80433
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35540
80434
 
35541
80435
    if (typeof_keyword)
35542
 
      tjp->that ()->_simple_type_spec_1.set (TOK_TYPEOF);
 
80436
      tjp->that ()->_simple_type_spec_1.set (Puma::TOK_TYPEOF);
35543
80437
  }
35544
 
#line 35545 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80438
#line 80439 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35545
80439
 
35546
80440
private:
35547
80441
 
35548
 
#line 161 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80442
#line 181 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35549
80443
 
35550
80444
  
35551
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80445
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35552
80446
 
35553
80447
public: template<class JoinPoint> void __a5_after 
35554
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80448
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35555
80449
 
35556
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80450
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35557
80451
(JoinPoint *tjp)
35558
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80452
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35559
80453
 {
35560
 
#line 35561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80454
#line 80455 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35561
80455
 
35562
80456
  typedef typename JoinPoint::That __JP_That;
35563
80457
  typedef typename JoinPoint::Target __JP_Target;
35564
80458
  typedef typename JoinPoint::Result __JP_Result;
35565
80459
 
35566
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80460
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35567
80461
 
35568
 
    CTree *&result = *(CTree**)tjp->result ();
35569
 
    if (typeof_keyword && !result && tjp->that ()->look_ahead (TOK_TYPEOF) &&
 
80462
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
80463
    if (typeof_keyword && !result && tjp->that ()->look_ahead (Puma::TOK_TYPEOF) &&
35570
80464
        tjp->that ()->parse (&__JP_That
35571
 
#line 165 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80465
#line 185 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35572
80466
::gnu_typeof))
35573
80467
      result = tjp->that ()->builder ().simple_type_spec ();
35574
80468
  }
35575
 
#line 35576 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80469
#line 80470 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35576
80470
 
35577
80471
private:
35578
80472
 
35579
 
#line 167 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80473
#line 187 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35580
80474
 
35581
80475
  
35582
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80476
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35583
80477
 
35584
80478
public: template<class JoinPoint> void __a6_after 
35585
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80479
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35586
80480
 
35587
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80481
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35588
80482
(JoinPoint *tjp)
35589
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80483
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35590
80484
 {
35591
 
#line 35592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80485
#line 80486 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35592
80486
 
35593
80487
  typedef typename JoinPoint::That __JP_That;
35594
80488
  typedef typename JoinPoint::Target __JP_Target;
35595
80489
  typedef typename JoinPoint::Result __JP_Result;
35596
80490
 
35597
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80491
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35598
80492
 
35599
 
    CTree *&result = *(CTree**)tjp->result ();
35600
 
    if (typeof_keyword && !result && tjp->that ()->look_ahead (TOK_TYPEOF) &&
 
80493
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
80494
    if (typeof_keyword && !result && tjp->that ()->look_ahead (Puma::TOK_TYPEOF) &&
35601
80495
        tjp->that ()->parse (&__JP_That
35602
 
#line 171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80496
#line 191 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35603
80497
::gnu_typeof))
35604
80498
      result = tjp->that ()->semantic ().simple_type_spec ();
35605
80499
  }
35606
 
#line 35607 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80500
#line 80501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35607
80501
 
35608
80502
private:
35609
80503
 
35610
 
#line 173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80504
#line 193 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35611
80505
 
35612
80506
 
35613
80507
  // initialize the new state before an analysis starts
35614
80508
  
35615
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80509
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35616
80510
 
35617
80511
public: void __a7_before 
35618
 
#line 177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80512
#line 197 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35619
80513
 
35620
 
#line 177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35621
 
(CSemDeclSpecs &csd)
35622
 
#line 177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80514
#line 197 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80515
(Puma::CSemDeclSpecs &csd)
 
80516
#line 197 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35623
80517
 {
35624
80518
    csd._typeofs = 0;
35625
80519
    csd._typeof_node = 0;
35626
80520
  }
35627
 
#line 35628 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80521
#line 80522 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35628
80522
 
35629
80523
private:
35630
80524
 
35631
 
#line 180 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80525
#line 200 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35632
80526
 
35633
80527
 
35634
80528
  // make the analysis function aware of 'typeof'
35635
80529
  
35636
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80530
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35637
80531
 
35638
80532
public: template<class JoinPoint> void __a8_after 
35639
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80533
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35640
80534
 
35641
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35642
 
(JoinPoint *tjp, CSemDeclSpecs &csd, CTree *spec)
35643
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80535
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80536
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd, Puma::CTree *spec)
 
80537
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35644
80538
 {
35645
 
#line 35646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80539
#line 80540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35646
80540
 
35647
80541
  typedef typename JoinPoint::That __JP_That;
35648
80542
  typedef typename JoinPoint::Target __JP_Target;
35649
80543
  typedef typename JoinPoint::Result __JP_Result;
35650
80544
 
35651
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80545
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35652
80546
 
35653
80547
    bool &result = *tjp->result ();
35654
 
    if (!result && spec->NodeName () == CT_GnuTypeof::NodeId ()) {
 
80548
    if (!result && spec->NodeName () == Puma::CT_GnuTypeof::NodeId ()) {
35655
80549
      csd._typeofs++;      
35656
 
      csd._typeof_node = (CT_GnuTypeof*)spec;
 
80550
      csd._typeof_node = (Puma::CT_GnuTypeof*)spec;
35657
80551
      result = true;
35658
80552
    }
35659
80553
  }
35660
 
#line 35661 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80554
#line 80555 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35661
80555
 
35662
80556
private:
35663
80557
 
35664
 
#line 191 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80558
#line 211 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35665
80559
 
35666
80560
  
35667
80561
  // make the check functions aware of 'typeof'
35668
80562
  
35669
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80563
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35670
80564
 
35671
80565
public: template<class JoinPoint> void __a9_after 
35672
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80566
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35673
80567
 
35674
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35675
 
(JoinPoint *tjp, CSemDeclSpecs &csd, bool &have_type)
35676
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80568
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80569
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd, bool &have_type)
 
80570
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35677
80571
 {
35678
 
#line 35679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80572
#line 80573 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35679
80573
 
35680
80574
  typedef typename JoinPoint::That __JP_That;
35681
80575
  typedef typename JoinPoint::Target __JP_Target;
35682
80576
  typedef typename JoinPoint::Result __JP_Result;
35683
80577
 
35684
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80578
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35685
80579
 
35686
80580
    bool &result = *tjp->result ();
35687
80581
    if (result && !have_type && csd._typeofs) {
35689
80583
      result    = true;
35690
80584
    }
35691
80585
  }
35692
 
#line 35693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80586
#line 80587 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35693
80587
 
35694
80588
private:
35695
80589
 
35696
 
#line 202 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80590
#line 222 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35697
80591
 
35698
80592
  
35699
80593
  
35700
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80594
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35701
80595
 
35702
80596
public: template<class JoinPoint> void __a10_after 
35703
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80597
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35704
80598
 
35705
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35706
 
(JoinPoint *tjp, CSemDeclSpecs &csd)
35707
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80599
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80600
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd)
 
80601
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35708
80602
 {
35709
 
#line 35710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80603
#line 80604 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35710
80604
 
35711
80605
  typedef typename JoinPoint::That __JP_That;
35712
80606
  typedef typename JoinPoint::Target __JP_Target;
35713
80607
  typedef typename JoinPoint::Result __JP_Result;
35714
80608
 
35715
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80609
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35716
80610
 
35717
80611
    bool &result = *tjp->result ();
35718
80612
    if (result) {
35719
 
      if ((csd._prim_map[CT_PrimDeclSpec::PDS_SIGNED] || 
35720
 
           csd._prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) &&
 
80613
      if ((csd._prim_map[Puma::CT_PrimDeclSpec::PDS_SIGNED] || 
 
80614
           csd._prim_map[Puma::CT_PrimDeclSpec::PDS_UNSIGNED]) &&
35721
80615
          csd._typeofs) {
35722
 
        *csd._err << sev_error << csd._dss->token ()->location () 
 
80616
        *csd._err << Puma::sev_error << csd._dss->token ()->location () 
35723
80617
                  << "`signed' or `unsigned' invalid for 'typeof'"
35724
 
                  << endMessage;
 
80618
                  << Puma::endMessage;
35725
80619
        result = false;
35726
80620
      }
35727
80621
    }
35728
80622
  }
35729
 
#line 35730 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80623
#line 80624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35730
80624
 
35731
80625
private:
35732
80626
 
35733
 
#line 217 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80627
#line 237 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35734
80628
 
35735
80629
 
35736
80630
  
35737
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80631
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35738
80632
 
35739
80633
public: template<class JoinPoint> void __a11_after 
35740
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80634
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35741
80635
 
35742
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35743
 
(JoinPoint *tjp, CSemDeclSpecs &csd)
35744
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80636
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80637
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd)
 
80638
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35745
80639
 {
35746
 
#line 35747 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80640
#line 80641 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35747
80641
 
35748
80642
  typedef typename JoinPoint::That __JP_That;
35749
80643
  typedef typename JoinPoint::Target __JP_Target;
35750
80644
  typedef typename JoinPoint::Result __JP_Result;
35751
80645
 
35752
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80646
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35753
80647
 
35754
80648
    bool &result = *tjp->result ();
35755
80649
    if (result && csd._typeofs > 0) {
35756
 
      *csd._err << sev_error << csd._dss->token ()->location () 
 
80650
      *csd._err << Puma::sev_error << csd._dss->token ()->location () 
35757
80651
                << "invalid type specified in declaration"
35758
 
                << endMessage;
 
80652
                << Puma::endMessage;
35759
80653
      result = false;
35760
80654
    }
35761
80655
  }
35762
 
#line 35763 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80656
#line 80657 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35763
80657
 
35764
80658
private:
35765
80659
 
35766
 
#line 228 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80660
#line 248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35767
80661
 
35768
80662
 
35769
80663
  // make the type creation function aware of 'typeof'
35770
80664
  
35771
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80665
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35772
80666
 
35773
80667
public: template<class JoinPoint> void __a12_after 
35774
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80668
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35775
80669
 
35776
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35777
 
(JoinPoint *tjp, CSemDeclSpecs &csd)
35778
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80670
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80671
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd)
 
80672
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35779
80673
 {
35780
 
#line 35781 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80674
#line 80675 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35781
80675
 
35782
80676
  typedef typename JoinPoint::That __JP_That;
35783
80677
  typedef typename JoinPoint::Target __JP_Target;
35784
80678
  typedef typename JoinPoint::Result __JP_Result;
35785
80679
 
35786
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80680
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35787
80681
 
35788
 
    CTypeInfo *&result = *tjp->result ();
 
80682
    Puma::CTypeInfo *&result = *tjp->result ();
35789
80683
    if (result->isUndefined () && csd._typeofs) {
35790
80684
      csd._typeofs--;
35791
80685
      if (csd._typeof_node->Type ()) {
35792
 
        result = CTypeInfo::Duplicate (csd._typeof_node->Type ());
 
80686
        result = Puma::CTypeInfo::Duplicate (csd._typeof_node->Type ());
35793
80687
      }
35794
80688
    }
35795
80689
  }
35796
 
#line 35797 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80690
#line 80691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35797
80691
 
35798
80692
private:
35799
80693
 
35800
 
#line 240 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80694
#line 260 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35801
80695
 
35802
80696
  
35803
80697
  // ----------------------
35806
80700
 
35807
80701
  // structural extensions
35808
80702
  
35809
 
#line 247 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80703
#line 267 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35810
80704
 
35811
80705
 
35812
80706
  
35813
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80707
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35814
80708
 
35815
80709
public: template<class JoinPoint> void __a13_after 
35816
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80710
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35817
80711
 
35818
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80712
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35819
80713
(JoinPoint *tjp)
35820
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80714
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35821
80715
 {
35822
 
#line 35823 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80716
#line 80717 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35823
80717
 
35824
80718
  typedef typename JoinPoint::That __JP_That;
35825
80719
  typedef typename JoinPoint::Target __JP_Target;
35826
80720
  typedef typename JoinPoint::Result __JP_Result;
35827
80721
 
35828
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80722
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35829
80723
 
35830
80724
    if (gnu_builtins)
35831
80725
      tjp->that ()->define_gnu_builtins ();
35832
80726
  }
35833
 
#line 35834 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80727
#line 80728 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35834
80728
 
35835
80729
private:
35836
80730
 
35837
 
#line 253 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80731
#line 273 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35838
80732
 
35839
80733
 
35840
80734
  // ----------------------------------------------------
35842
80736
  // ----------------------------------------------------
35843
80737
 
35844
80738
  
35845
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80739
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35846
80740
 
35847
80741
public: template<class JoinPoint> void __a14_before 
35848
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80742
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35849
80743
 
35850
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80744
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35851
80745
(JoinPoint *tjp)
35852
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80746
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35853
80747
 {
35854
 
#line 35855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80748
#line 80749 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35855
80749
 
35856
80750
  typedef typename JoinPoint::That __JP_That;
35857
80751
  typedef typename JoinPoint::Target __JP_Target;
35858
80752
  typedef typename JoinPoint::Result __JP_Result;
35859
80753
 
35860
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80754
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35861
80755
 
35862
80756
    if (std_hack) {
35863
 
      CStructure *&scope = *(CStructure**)tjp->arg (0);
 
80757
      Puma::CStructure *&scope = *(Puma::CStructure**)tjp->arg (0);
35864
80758
      bool &nested = *(bool*)tjp->arg (1);
35865
80759
      if (scope->Parent ()->GlobalScope () &&
35866
80760
          strcmp (scope->Name (), "std") == 0)
35867
80761
        nested = true;
35868
80762
    }
35869
80763
  }
35870
 
#line 35871 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80764
#line 80765 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35871
80765
 
35872
80766
private:
35873
80767
 
35874
 
#line 268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80768
#line 288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35875
80769
 
35876
80770
  
35877
80771
  // get the configuration and check whether the GNU mode is enabled
35878
80772
  
35879
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80773
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35880
80774
 
35881
80775
public: void __a15_before 
35882
 
#line 272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80776
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35883
80777
 
35884
 
#line 272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35885
 
(Config &config)
35886
 
#line 272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80778
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80779
(Puma::Config &config)
 
80780
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35887
80781
 {
35888
80782
    if (config.Option ("--gnu") || config.Option ("--gnu-2.95")) {
35889
80783
      extended_asm     = true;
35897
80791
    if (config.Option ("--gnu-2.95") || config.Option ("--gnu-std-hack"))
35898
80792
      std_hack = true;
35899
80793
  }
35900
 
#line 35901 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
35901
 
 
35902
 
private:
35903
 
 
35904
 
#line 284 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80794
#line 80795 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
80795
 
 
80796
private:
 
80797
 
 
80798
#line 304 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80799
 
 
80800
 
 
80801
  // --------------------------------------------------
 
80802
  // support for unnamed struct/union members
 
80803
  // --------------------------------------------------
 
80804
  
 
80805
  
 
80806
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80807
 
 
80808
public: template<class JoinPoint> void __a16_around 
 
80809
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80810
 
 
80811
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80812
(JoinPoint *tjp)
 
80813
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80814
 {
 
80815
#line 80816 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
80816
 
 
80817
  typedef typename JoinPoint::That __JP_That;
 
80818
  typedef typename JoinPoint::Target __JP_Target;
 
80819
  typedef typename JoinPoint::Result __JP_Result;
 
80820
 
 
80821
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80822
 
 
80823
    // 2: type_spec_seq                          ;
 
80824
    // 3: type_spec_seq  member_declarator_list  ;
 
80825
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
80826
    if (! (tjp->that ()->parse (&__JP_That
 
80827
#line 314 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80828
::type_spec_seq) && 
 
80829
           tjp->that ()->opt(tjp->that ()->parse (&__JP_That
 
80830
#line 315 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80831
::member_declarator_list)) && 
 
80832
           tjp->that ()->parse (Puma::TOK_SEMI_COLON))) {
 
80833
      result = (Puma::CTree*)0;
 
80834
    } else {
 
80835
      tjp->that ()->semantic ().finish_decl ();
 
80836
      result = tjp->that ()->builder ().member_decl (); 
 
80837
    }
 
80838
  }
 
80839
#line 80840 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
80840
 
 
80841
private:
 
80842
 
 
80843
#line 322 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35905
80844
 
35906
80845
 
35907
80846
protected:
35910
80849
    statement_exprs (false)
35911
80850
  {}
35912
80851
};
35913
 
#line 35914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
80852
#line 80853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
35914
80853
 
35915
80854
namespace AC {
35916
 
  template <class JoinPoint, class Binding>
35917
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp) {
35918
 
    typedef typename Binding::template Arg<0> Arg0;
35919
 
    ::ExtGnu::aspectof()->__a0_after (tjp, (Puma::CSyntax *)Arg0::val (tjp));
35920
 
  }
35921
 
  template <class JoinPoint, class Binding>
35922
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp) {
35923
 
    typedef typename Binding::template Arg<0> Arg0;
35924
 
    ::ExtGnu::aspectof()->__a1_around (tjp, (Puma::CSyntax *)Arg0::val (tjp));
35925
 
  }
35926
 
  template <class JoinPoint>
35927
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp) {
 
80855
  template <class JoinPoint>
 
80856
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp) {
 
80857
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a0_around::template Arg<0> Arg0;
 
80858
    ::ExtGnu::aspectof()->__a0_around (tjp, (Puma::CSyntax *)Arg0::val (tjp));
 
80859
  }
 
80860
  template <class JoinPoint>
 
80861
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp) {
 
80862
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a1_after::template Arg<0> Arg0;
 
80863
    ::ExtGnu::aspectof()->__a1_after (tjp, (Puma::CSyntax *)Arg0::val (tjp));
 
80864
  }
 
80865
  template <class JoinPoint>
 
80866
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp) {
35928
80867
    ::ExtGnu::aspectof()->__a2_after (tjp);
35929
80868
  }
35930
80869
  template <class JoinPoint>
35931
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp) {
 
80870
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp) {
35932
80871
    ::ExtGnu::aspectof()->__a3_around (tjp);
35933
80872
  }
35934
80873
  template <class JoinPoint>
35935
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp) {
 
80874
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp) {
35936
80875
    ::ExtGnu::aspectof()->__a4_after (tjp);
35937
80876
  }
35938
80877
  template <class JoinPoint>
35939
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp) {
 
80878
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp) {
35940
80879
    ::ExtGnu::aspectof()->__a5_after (tjp);
35941
80880
  }
35942
80881
  template <class JoinPoint>
35943
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp) {
 
80882
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp) {
35944
80883
    ::ExtGnu::aspectof()->__a6_after (tjp);
35945
80884
  }
35946
 
  template <class JoinPoint, class Binding>
35947
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp) {
35948
 
    typedef typename Binding::template Arg<0> Arg0;
 
80885
  template <class JoinPoint>
 
80886
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp) {
 
80887
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a7_before::template Arg<0> Arg0;
35949
80888
    ::ExtGnu::aspectof()->__a7_before ((Puma::CSemDeclSpecs &)Arg0::val (tjp));
35950
80889
  }
35951
 
  template <class JoinPoint, class Binding>
35952
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp) {
35953
 
    typedef typename Binding::template Arg<0> Arg0;
35954
 
    typedef typename Binding::template Arg<1> Arg1;
 
80890
  template <class JoinPoint>
 
80891
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp) {
 
80892
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a8_after::template Arg<0> Arg0;
 
80893
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a8_after::template Arg<1> Arg1;
35955
80894
    ::ExtGnu::aspectof()->__a8_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp), (Puma::CTree *)Arg1::val (tjp));
35956
80895
  }
35957
 
  template <class JoinPoint, class Binding>
35958
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp) {
35959
 
    typedef typename Binding::template Arg<0> Arg0;
35960
 
    typedef typename Binding::template Arg<1> Arg1;
 
80896
  template <class JoinPoint>
 
80897
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp) {
 
80898
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a9_after::template Arg<0> Arg0;
 
80899
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a9_after::template Arg<1> Arg1;
35961
80900
    ::ExtGnu::aspectof()->__a9_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp), (bool &)Arg1::val (tjp));
35962
80901
  }
35963
 
  template <class JoinPoint, class Binding>
35964
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp) {
35965
 
    typedef typename Binding::template Arg<0> Arg0;
 
80902
  template <class JoinPoint>
 
80903
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp) {
 
80904
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a10_after::template Arg<0> Arg0;
35966
80905
    ::ExtGnu::aspectof()->__a10_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp));
35967
80906
  }
35968
 
  template <class JoinPoint, class Binding>
35969
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp) {
35970
 
    typedef typename Binding::template Arg<0> Arg0;
 
80907
  template <class JoinPoint>
 
80908
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp) {
 
80909
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a11_after::template Arg<0> Arg0;
35971
80910
    ::ExtGnu::aspectof()->__a11_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp));
35972
80911
  }
35973
 
  template <class JoinPoint, class Binding>
35974
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp) {
35975
 
    typedef typename Binding::template Arg<0> Arg0;
 
80912
  template <class JoinPoint>
 
80913
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp) {
 
80914
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a12_after::template Arg<0> Arg0;
35976
80915
    ::ExtGnu::aspectof()->__a12_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp));
35977
80916
  }
35978
80917
  template <class JoinPoint>
35979
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp) {
 
80918
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp) {
35980
80919
    ::ExtGnu::aspectof()->__a13_after (tjp);
35981
80920
  }
35982
80921
  template <class JoinPoint>
35983
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp) {
 
80922
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp) {
35984
80923
    ::ExtGnu::aspectof()->__a14_before (tjp);
35985
80924
  }
35986
 
  template <class JoinPoint, class Binding>
35987
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp) {
35988
 
    typedef typename Binding::template Arg<0> Arg0;
 
80925
  template <class JoinPoint>
 
80926
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp) {
 
80927
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a15_before::template Arg<0> Arg0;
35989
80928
    ::ExtGnu::aspectof()->__a15_before ((Puma::Config &)Arg0::val (tjp));
35990
80929
  }
 
80930
  template <class JoinPoint>
 
80931
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp) {
 
80932
    ::ExtGnu::aspectof()->__a16_around (tjp);
 
80933
  }
35991
80934
35992
80935
 
35993
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80936
#line 329 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35994
80937
 
35995
80938
 
35996
80939
 
36000
80943
 
36001
80944
// add rules to the C Syntax
36002
80945
 
36003
 
#line 305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36004
 
 
36005
 
 
36006
 
 
36007
 
#line 315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36008
 
 
36009
 
 
36010
 
 
36011
 
#line 321 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36012
 
 
36013
 
 
36014
 
 
36015
 
#line 327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36016
 
 
36017
 
 
36018
 
 
36019
 
#line 332 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80946
#line 344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80947
 
 
80948
 
 
80949
 
 
80950
#line 352 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80951
 
 
80952
 
 
80953
 
 
80954
#line 362 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80955
 
 
80956
 
 
80957
 
 
80958
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80959
 
 
80960
 
 
80961
 
 
80962
#line 374 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80963
 
 
80964
 
 
80965
 
 
80966
#line 379 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36020
80967
 
36021
80968
 
36022
80969
// extend the C Builder
36023
80970
 
36024
 
#line 341 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36025
 
 
36026
 
 
36027
 
 
36028
 
#line 355 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36029
 
 
36030
 
 
36031
 
 
36032
 
#line 359 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36033
 
 
36034
 
 
36035
 
 
36036
 
#line 364 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80971
#line 389 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80972
 
 
80973
 
 
80974
 
 
80975
#line 394 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80976
 
 
80977
 
 
80978
 
 
80979
#line 408 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80980
 
 
80981
 
 
80982
 
 
80983
#line 412 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80984
 
 
80985
 
 
80986
 
 
80987
#line 417 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36037
80988
 
36038
80989
        
36039
80990
 
36040
 
#line 368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
80991
#line 421 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36041
80992
 
36042
80993
 
36043
80994
// -------------------------
36046
80997
 
36047
80998
// C Builder extension
36048
80999
 
36049
 
#line 378 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36050
 
 
36051
 
 
36052
 
 
36053
 
#line 382 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81000
#line 431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81001
 
 
81002
 
 
81003
 
 
81004
#line 435 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36054
81005
 
36055
81006
 
36056
81007
// C semantic extension
36057
81008
 
36058
 
#line 388 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81009
#line 441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36059
81010
 
36060
81011
 
36061
81012
// the necessary #include "..CSemVisitor.h" in CSemExpr.cc will is inserted
36062
81013
// manually (for now)!
36063
81014
 
36064
 
#line 422 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81015
#line 475 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36065
81016
 
36066
81017
 
36067
81018
// C++ semantic extension
36068
81019
 
36069
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81020
#line 481 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36070
81021
 
36071
81022
 
36072
81023
// the necessary #include "..CCSemVisitor.h" in CCSemExpr.cc will is inserted
36073
81024
// manually (for now)!
36074
81025
 
36075
 
#line 462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81026
#line 515 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36076
81027
 
36077
81028
 
36078
81029
// ----------------------
36081
81032
 
36082
81033
// add rules to the C Syntax for the Gnu Typeof syntax
36083
81034
 
36084
 
#line 472 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36085
 
 
36086
 
 
36087
 
 
36088
 
#line 478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81035
#line 525 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81036
 
 
81037
 
 
81038
 
 
81039
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36089
81040
 
36090
81041
 
36091
81042
// add rules to the C Builder for the Gnu Typeof syntax
36092
81043
 
36093
 
#line 484 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81044
#line 537 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36094
81045
 
36095
81046
 
36096
81047
// builder extension
36097
81048
 
36098
 
#line 497 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81049
#line 550 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36099
81050
 
36100
81051
 
36101
81052
// C semantic extension
36102
81053
 
36103
 
#line 503 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36104
 
 
36105
 
 
36106
 
 
36107
 
#line 521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81054
#line 556 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81055
 
 
81056
 
 
81057
 
 
81058
#line 574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36108
81059
 
36109
81060
 
36110
81061
// C++ semantic extension
36111
81062
 
36112
 
#line 527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36113
 
 
36114
 
 
36115
 
 
36116
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81063
#line 580 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81064
 
 
81065
 
 
81066
 
 
81067
#line 597 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36117
81068
 
36118
81069
 
36119
81070
 
36123
81074
 
36124
81075
// extend the C/C++ semantic
36125
81076
 
36126
 
#line 555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36127
 
 
36128
 
 
36129
 
 
36130
 
#line 894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81077
#line 608 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81078
 
 
81079
 
 
81080
 
 
81081
#line 947 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36131
81082
 
36132
81083
 
36133
81084
 
36134
81085
#endif /* __ext_gnu_h__ */
36135
81086
 
36136
 
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCSemExpr.h"
36137
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CCSemExpr_h__
36138
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CCSemExpr_h__
36139
 
 
36140
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCSemExpr.h"
 
81087
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemExpr.h"
 
81088
#endif
 
81089
namespace Puma {
 
81090
 
 
81091
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemExpr.h"
 
81092
class CSemExpr {
 
81093
#line 81094 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
81094
  friend class ::CCExprResolve;
 
81095
  friend class ::CExprResolve;
 
81096
  friend class ::WinIfExists;
 
81097
  friend class ::WinImportHandler;
 
81098
  friend class ::WinMacros;
 
81099
  friend class ::WinAsm;
 
81100
  friend class ::WinDeclSpecs;
 
81101
  friend class ::WinMemberExplSpec;
 
81102
  friend class ::WinTypeKeywords;
 
81103
  friend class ::WinFriend;
 
81104
  friend class ::ExtAC;
 
81105
  friend class ::ExtACBuilderCoupling;
 
81106
  friend class ::ExtACSyntaxCoupling;
 
81107
  friend class ::ExtACTree;
 
81108
  friend class ::ExtACKeywords;
 
81109
  friend class ::ExtGnu;
 
81110
  friend class ::PragmaOnceUnitState;
 
81111
  friend class ::PragmaOnce;
 
81112
  friend class ::CMatchSyntax;
 
81113
 
 
81114
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemExpr.h"
 
81115
 
 
81116
protected:
 
81117
  ErrorSink &err;            // error stream
 
81118
  CStructure *current_scope;
 
81119
 
 
81120
protected: // expression evaluation
 
81121
  int conv_to_ptr; // convert array/function type to pointer type
 
81122
 
 
81123
  enum SemObjType { 
 
81124
    CLASS, UNION, ENUM, 
 
81125
    TYPEDEF, FCT, 
 
81126
    ATTRIB, ARG, 
 
81127
    TAG, NON_TAG, 
 
81128
    ANY 
 
81129
  };
 
81130
 
 
81131
public: // public interface
 
81132
  CSemExpr (ErrorSink &, CStructure *scope);
 
81133
 
 
81134
  CTypeInfo *resolveExpr (CTree *expr, CTree *base = (CTree*)0);
 
81135
  void resolveInit (CObjectInfo *, CTree *, CTree *, bool = false);
 
81136
 
 
81137
public:
 
81138
  CTypeInfo *resolve (CTree *, CTree *);
 
81139
  CTypeInfo *resolve (CT_SimpleName *, CTree *);
 
81140
  CTypeInfo *resolve (CT_String *, CTree *);
 
81141
  CTypeInfo *resolve (CT_WideString *, CTree *);
 
81142
  CTypeInfo *resolve (CT_CmpdLiteral *, CTree *);
 
81143
  CTypeInfo *resolve (CT_Bool *, CTree *);
 
81144
  CTypeInfo *resolve (CT_Character *, CTree *);
 
81145
  CTypeInfo *resolve (CT_WideCharacter *, CTree *);
 
81146
  CTypeInfo *resolve (CT_Integer *, CTree *);
 
81147
  CTypeInfo *resolve (CT_Float *, CTree *);
 
81148
  CTypeInfo *resolve (CT_BracedExpr *, CTree *);
 
81149
  CTypeInfo *resolve (CT_BinaryExpr *, CTree *);
 
81150
  CTypeInfo *resolve (CT_UnaryExpr *, CTree *);
 
81151
  CTypeInfo *resolve (CT_AddrExpr *, CTree *);
 
81152
  CTypeInfo *resolve (CT_DerefExpr *, CTree *);
 
81153
  CTypeInfo *resolve (CT_PostfixExpr *, CTree *);
 
81154
  CTypeInfo *resolve (CT_IndexExpr *, CTree *);
 
81155
  CTypeInfo *resolve (CT_SizeofExpr *, CTree *);
 
81156
  CTypeInfo *resolve (CT_IfThenExpr *, CTree *);
 
81157
  CTypeInfo *resolve (CT_CastExpr *, CTree *);
 
81158
  CTypeInfo *resolve (CT_CallExpr *, CTree *);
 
81159
  CTypeInfo *resolve (CT_MembPtrExpr *, CTree *);
 
81160
 
 
81161
  // binary expressions
 
81162
  CTypeInfo *binary_rel (CT_BinaryExpr *);
 
81163
  CTypeInfo *binary_ass (CT_BinaryExpr *);
 
81164
  CTypeInfo *binary_log (CT_BinaryExpr *);
 
81165
  CTypeInfo *binary_and (CT_BinaryExpr *);
 
81166
  CTypeInfo *binary_equ (CT_BinaryExpr *);
 
81167
  CTypeInfo *binary_mul (CT_BinaryExpr *);
 
81168
  CTypeInfo *binary_add (CT_BinaryExpr *);
 
81169
  CTypeInfo *binary_shift (CT_BinaryExpr *);
 
81170
  CTypeInfo *binary_comma (CT_BinaryExpr *);
 
81171
  CTypeInfo *apply_binary_op (CTree *, int);
 
81172
 
 
81173
  // constant expression
 
81174
  static bool isConstExpr (CTree *, bool = false);
 
81175
  static bool isConstIntExpr (CTree *);
 
81176
 
 
81177
  // helper
 
81178
  static bool isLvalue (CTree *);
 
81179
  CTypeInfo* applyImplicitConv (CTree* expr, CTree* base, CTypeInfo* type);
 
81180
  void overflow (CTree *, int, bool &) const;
 
81181
  int scan_character (CTree *, LONG_LONG &) const;
 
81182
  LONG_LONG next_character (const char *&) const;
 
81183
  static CTypeInfo *cast_to (CTypeInfo *, CTree *, CTree *, bool = true);
 
81184
  static CTypeInfo *promote (CTree *, CTree *);
 
81185
  static CObjectInfo *findObject (CTree *);
 
81186
 
 
81187
protected: // initializer evaluation
 
81188
  struct SubObj {
 
81189
#line 81190 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
81190
  friend class ::CCExprResolve;
 
81191
  friend class ::CExprResolve;
 
81192
  friend class ::WinIfExists;
 
81193
  friend class ::WinImportHandler;
 
81194
  friend class ::WinMacros;
 
81195
  friend class ::WinAsm;
 
81196
  friend class ::WinDeclSpecs;
 
81197
  friend class ::WinMemberExplSpec;
 
81198
  friend class ::WinTypeKeywords;
 
81199
  friend class ::WinFriend;
 
81200
  friend class ::ExtAC;
 
81201
  friend class ::ExtACBuilderCoupling;
 
81202
  friend class ::ExtACSyntaxCoupling;
 
81203
  friend class ::ExtACTree;
 
81204
  friend class ::ExtACKeywords;
 
81205
  friend class ::ExtGnu;
 
81206
  friend class ::PragmaOnceUnitState;
 
81207
  friend class ::PragmaOnce;
 
81208
  friend class ::CMatchSyntax;
 
81209
 
 
81210
#line 108 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemExpr.h"
 
81211
 
 
81212
    CObjectInfo *info;
 
81213
    CTypeInfo *type; 
 
81214
    int size; 
 
81215
    
 
81216
    SubObj () 
 
81217
     { info = 0; type = 0; size = 0; }
 
81218
    SubObj (CObjectInfo *i, CTypeInfo *t, int s)
 
81219
     { info = i; type = t; size = s; }
 
81220
    SubObj &operator =(const SubObj& s) 
 
81221
     { info = s.info; type = s.type; size = s.size; return *this; }
 
81222
  };
 
81223
 
 
81224
  void resolveInit (CObjectInfo *, CTree *, CTree *, bool, Stack<SubObj> &);
 
81225
  void singleExprInit (CTree *, CTree *, CTypeInfo *, bool);
 
81226
  void findFirst (CTree *, CTypeInfo *&, CObjectInfo *&, CObjectInfo *&, 
 
81227
                  CObjectInfo *, Stack<SubObj> &, bool) const;
 
81228
  void findNext (CTree *, CTypeInfo *&, CObjectInfo *&, CObjectInfo *&, 
 
81229
                 CObjectInfo *, Stack<SubObj> &, bool) const;
 
81230
  
 
81231
  // helper
 
81232
  void pushSubObj (CTypeInfo *&, CObjectInfo *&, Stack<SubObj> &) const;
 
81233
  void popSubObj (CTypeInfo *&, CObjectInfo *&, CObjectInfo *&, 
 
81234
                  Stack<SubObj> &) const;
 
81235
  CObjectInfo *nextMember (CStructure *, CObjectInfo *) const;
 
81236
  
 
81237
protected: // name lookup
 
81238
  CObjectInfo *lookup (CT_SimpleName *, SemObjType, bool = false) const;
 
81239
  CObjectInfo *lookup (const char *, CStructure *, SemObjType, bool, 
 
81240
                       unsigned long int) const;
 
81241
 
 
81242
  // helper
 
81243
  CObjectInfo *Type (const char *, CStructure *, SemObjType, unsigned long int) const;
 
81244
  CObjectInfo *Attribute (const char *, CStructure *, unsigned long int) const;
 
81245
  CObjectInfo *Function (const char *, CStructure *, unsigned long int) const;
 
81246
  bool known_here (CObjectInfo *, unsigned long int) const;
 
81247
 
 
81248
public: // common helper, also for CSemVisitor
 
81249
  static bool isPtrToObj (CTypeInfo *, unsigned long = 0);
 
81250
  static bool isModifiable (CTypeInfo *, unsigned long = 0);
 
81251
  static bool compatible (CTypeInfo *, CTypeInfo *, CConstant* value = 0);
 
81252
  static bool compatibleBase (CTypeInfo *, CTypeInfo *, CConstant* value = 0);
 
81253
   private:
 
81254
  typedef CSemExpr ExtGnuStmtExprsCSemExpr;
 
81255
 
 
81256
#line 439 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81257
 public :
 
81258
Puma :: CTypeInfo * resolve ( Puma :: CT_GnuStatementExpr * , Puma :: CTree * ) ;
 
81259
#line 150 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemExpr.h"
 
81260
};
 
81261
 
 
81262
inline CSemExpr::CSemExpr (ErrorSink &e, CStructure *s) : 
 
81263
  err (e), current_scope (s), conv_to_ptr (1) {
 
81264
}
 
81265
inline bool CSemExpr::isPtrToObj (CTypeInfo *type, unsigned long pos) {
 
81266
  return type->isPointer () && type->VirtualType ()->BaseType ()->isComplete (pos);
 
81267
}
 
81268
inline bool CSemExpr::isModifiable (CTypeInfo *type, unsigned long pos) {
 
81269
  return ! (! type->isComplete (pos) || type->isArray () || type->isConst () ||
 
81270
             (type->isRecord () && type->VirtualType ()->TypeRecord ()->
 
81271
              hasConstMember ()));
 
81272
}
 
81273
inline bool CSemExpr::compatibleBase (CTypeInfo *t1, CTypeInfo *t2, CConstant* value) {
 
81274
  return compatible (t1->VirtualType ()->BaseType (), t2->VirtualType ()->BaseType (), value);
 
81275
}
 
81276
 
 
81277
 
 
81278
} // namespace Puma
 
81279
 
 
81280
#endif /* __CSemExpr_h__ */
 
81281
 
 
81282
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
81283
namespace Puma {
 
81284
  
 
81285
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
81286
 
 
81287
}
 
81288
 
 
81289
 
 
81290
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
81291
 
 
81292
 
 
81293
#endif /* __CExprResolveCC_ah__ */
 
81294
 
 
81295
#line 7 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
81296
#endif
 
81297
 
 
81298
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
81299
 
 
81300
#line 81301 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
81301
 
 
81302
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
81303
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
81304
 
 
81305
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
81306
// This file is part of PUMA.
 
81307
// Copyright (C) 1999-2003  The PUMA developer team.
 
81308
//                                                                
 
81309
// This program is free software;  you can redistribute it and/or 
 
81310
// modify it under the terms of the GNU General Public License as 
 
81311
// published by the Free Software Foundation; either version 2 of 
 
81312
// the License, or (at your option) any later version.            
 
81313
//                                                                
 
81314
// This program is distributed in the hope that it will be useful,
 
81315
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
81316
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
81317
// GNU General Public License for more details.                   
 
81318
//                                                                
 
81319
// You should have received a copy of the GNU General Public      
 
81320
// License along with this program; if not, write to the Free     
 
81321
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
81322
// MA  02111-1307  USA                                            
 
81323
 
 
81324
#ifndef __CCExprResolveCC_ah__
 
81325
#define __CCExprResolveCC_ah__
 
81326
 
 
81327
// This aspect inserts resolve member functions into all syntax tree classes
 
81328
// that represent expressions. As the function is virtual, an efficient
 
81329
// run-time switch over the node type is implemented.
 
81330
 
 
81331
 
 
81332
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCSemExpr.h"
36141
81333
// This file is part of PUMA.
36142
81334
// Copyright (C) 1999-2003  The PUMA developer team.
36143
81335
//                                                                
36160
81352
#define __CCSemExpr_h__
36161
81353
 
36162
81354
 
36163
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81355
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36164
81356
 
36165
 
#line 36166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
81357
#line 81358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
36166
81358
 
36167
81359
#ifndef __ac_fwd_ExtACTree__
36168
81360
#define __ac_fwd_ExtACTree__
36169
81361
class ExtACTree;
36170
81362
namespace AC {
36171
81363
  template <class JoinPoint>
36172
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
81364
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
36173
81365
  template <class JoinPoint>
36174
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
81366
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
36175
81367
}
36176
81368
#endif
36177
81369
 
36178
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
36179
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
81370
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
81371
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
36180
81372
#endif
36181
81373
 
36182
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
36183
 
 
36184
 
#line 36185 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
36185
 
 
36186
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
36187
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
36188
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
36189
 
 
36190
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81374
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36191
81375
// This file is part of PUMA.
36192
81376
// Copyright (C) 1999-2003  The PUMA developer team.
36193
81377
//                                                                
36232
81416
class     CT_DefaultStmt;
36233
81417
class     CT_TryStmt;
36234
81418
class   CT_Expression;
 
81419
class     CT_Call;
 
81420
class       CT_CallExpr;
 
81421
class       CT_ImplicitCall;
36235
81422
class     CT_ThrowExpr;
36236
81423
class     CT_NewExpr;
36237
81424
class     CT_DeleteExpr;
36252
81439
class     CT_IfThenExpr;
36253
81440
class     CT_CmpdLiteral;
36254
81441
class     CT_IndexExpr;
36255
 
class     CT_CallExpr;
36256
81442
class     CT_CastExpr;
36257
81443
class     CT_StaticCast;
36258
81444
class       CT_ConstCast;
36299
81485
class     CT_NamespaceDef;
36300
81486
class     CT_NamespaceAliasDef;
36301
81487
class     CT_UsingDirective;
 
81488
class     CT_Condition;
36302
81489
class   CT_List;
36303
81490
class     CT_CmpdStmt;
36304
81491
class     CT_DeclSpecSeq;
36329
81516
class     CT_TemplateArgList;
36330
81517
class   CT_Token;
36331
81518
class   CT_Error;
36332
 
class   CT_Condition;
36333
81519
class   CT_BaseSpec;
36334
81520
class   CT_AccessSpec;
36335
81521
class   CT_ArrayDelimiter;
36369
81555
/*                                                                           */
36370
81556
/*****************************************************************************/
36371
81557
 
36372
 
 
36373
 
#line 36374 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
81558
/** \file
 
81559
 *  C/C++ syntax tree classes.
 
81560
 *  \see Puma::CTree */
 
81561
 
 
81562
/** \class CTree CTree.h Puma/CTree.h
 
81563
 *  Base class for all C/C++ syntax tree classes. */
 
81564
 
 
81565
#line 81566 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
36374
81566
} // closed Puma
 
81567
class CCExprResolve;
 
81568
class CExprResolve;
36375
81569
class WinIfExists;
36376
81570
class WinImportHandler;
36377
81571
class WinMacros;
36378
 
class CMatchSyntax;
36379
 
class ExtGnu;
 
81572
class WinAsm;
 
81573
class WinDeclSpecs;
 
81574
class WinMemberExplSpec;
 
81575
class WinTypeKeywords;
 
81576
class WinFriend;
36380
81577
class ExtAC;
36381
81578
class ExtACBuilderCoupling;
36382
81579
class ExtACSyntaxCoupling;
36383
81580
class ExtACTree;
36384
81581
class ExtACKeywords;
36385
 
class WinAsm;
36386
 
class WinDeclSpecs;
36387
 
class WinMemberExplSpec;
36388
 
class WinTypeKeywords;
 
81582
class ExtGnu;
36389
81583
class PragmaOnceUnitState;
36390
81584
class PragmaOnce;
36391
 
class CCExprResolve;
36392
 
class CExprResolve;
36393
 
namespace Puma {
36394
 
 
36395
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81585
class CMatchSyntax;
 
81586
namespace Puma {
 
81587
 
 
81588
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81589
 
 
81590
#line 81591 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
81591
} // closed Puma
 
81592
 
 
81593
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81594
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81595
#include "CCExprResolveH.ah"
 
81596
#endif
 
81597
namespace Puma {
 
81598
 
 
81599
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81600
 
 
81601
#line 81602 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
81602
} // closed Puma
 
81603
 
 
81604
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81605
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81606
#include "CExprResolveH.ah"
 
81607
#endif
 
81608
namespace Puma {
 
81609
 
 
81610
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36396
81611
class CTree {
36397
 
#line 36398 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
81612
#line 81613 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
81613
  friend class ::CCExprResolve;
 
81614
  friend class ::CExprResolve;
36398
81615
  friend class ::WinIfExists;
36399
81616
  friend class ::WinImportHandler;
36400
81617
  friend class ::WinMacros;
36401
 
  friend class ::CMatchSyntax;
36402
 
  friend class ::ExtGnu;
 
81618
  friend class ::WinAsm;
 
81619
  friend class ::WinDeclSpecs;
 
81620
  friend class ::WinMemberExplSpec;
 
81621
  friend class ::WinTypeKeywords;
 
81622
  friend class ::WinFriend;
36403
81623
  friend class ::ExtAC;
36404
81624
  friend class ::ExtACBuilderCoupling;
36405
81625
  friend class ::ExtACSyntaxCoupling;
36406
81626
  friend class ::ExtACTree;
36407
81627
  friend class ::ExtACKeywords;
36408
 
  friend class ::WinAsm;
36409
 
  friend class ::WinDeclSpecs;
36410
 
  friend class ::WinMemberExplSpec;
36411
 
  friend class ::WinTypeKeywords;
 
81628
  friend class ::ExtGnu;
36412
81629
  friend class ::PragmaOnceUnitState;
36413
81630
  friend class ::PragmaOnce;
36414
 
  friend class ::CCExprResolve;
36415
 
  friend class ::CExprResolve;
36416
 
 
36417
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81631
  friend class ::CMatchSyntax;
 
81632
 
 
81633
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81634
 
 
81635
  CTree * _parent;
36418
81636
 
36419
81637
public:
36420
81638
  /*DEBUG*/static int alloc;
36421
81639
  /*DEBUG*/static int release;
36422
81640
 
36423
81641
protected:
36424
 
  CTree *Son (CTree * const *, int, int) const;
36425
 
  int Sons (CTree * const *, int) const;
36426
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
81642
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
81643
   *  \param sons The sons array.
 
81644
   *  \param len Length of the sons array.
 
81645
   *  \param n Index of the son.
 
81646
   *  \return The n-th son or NULL. */
 
81647
  CTree *Son (CTree * const *sons, int len, int n) const;
 
81648
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
81649
   *  \param sons The sons array.
 
81650
   *  \param len Length of the sons array. */
 
81651
  int Sons (CTree * const *sons, int len) const;
 
81652
  /** Replace a son.
 
81653
   *  \param sons The sons array.
 
81654
   *  \param len Length of the sons array.
 
81655
   *  \param old_son The son to replace.
 
81656
   *  \param new_son The new son. */
 
81657
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
81658
  /** Replace a son if it equals the given son.
 
81659
   *  \param son The actual son.
 
81660
   *  \param old_son The son to replace, must match the actual son.
 
81661
   *  \param new_son The new son, overwrites the actual son. */
 
81662
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
81663
  /** Add a new son.
 
81664
   *  \param son The actual son.
 
81665
   *  \param new_son The new son, overwrites the actual son. */
 
81666
  void AddSon (CTree *&son, CTree *new_son);
 
81667
  /** Set the parent tree node.
 
81668
   *  \param parent The new parent tree node. */
 
81669
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
81670
  /** Set the parent tree node of the given tree node.
 
81671
   *  \param node The tree node.
 
81672
   *  \param parent The new parent. */
 
81673
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
36427
81674
  
36428
81675
protected:
36429
 
  CTree () { /*DEBUG*/alloc++; }
 
81676
  /** Default constructor. */
 
81677
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
36430
81678
 
36431
81679
public:
 
81680
  /** Destructor. */
36432
81681
  virtual ~CTree () { /*DEBUG*/release++; }
 
81682
  /** Get the number of sons. */
36433
81683
  virtual int Sons () const = 0;
 
81684
  /** Get the n-th son.
 
81685
   *  \param n The index of the son.
 
81686
   *  \return The n-th son or NULL. */
36434
81687
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
81688
  /** Get the node name (node identifier). */
36435
81689
  virtual const char *NodeName () const = 0;
 
81690
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
81691
   *  \return The token or NULL. */
36436
81692
  virtual Token *token () const;
 
81693
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
81694
   *  \return The token or NULL. */
36437
81695
  virtual Token *end_token () const;
 
81696
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
81697
   *  \return The token node or NULL. */
36438
81698
  virtual CT_Token *token_node () const;
 
81699
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
81700
   *  \return The token node or NULL. */
36439
81701
  virtual CT_Token *end_token_node () const;
36440
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
81702
  /** Replace a son.
 
81703
   *  \param old_son The son to replace.
 
81704
   *  \param new_son The son with which to replace. */
 
81705
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
81706
  /** Get the parent node.
 
81707
   *  \return The parent node or NULL. */
 
81708
  virtual CTree *Parent () const { return (CTree*)_parent; }
36441
81709
 
36442
81710
public: // semantic information
 
81711
  /** Get the semantic type of the node.
 
81712
   *  \return The type object or NULL. */
36443
81713
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
81714
  /** Get the calculated value of the expression.
 
81715
   *  \return The value object or NULL. */
36444
81716
  virtual CExprValue *Value () const { return (CExprValue*)0; }
36445
81717
  
 
81718
  /** Get the semantic scope of the node.
 
81719
   *  \return The scope object or NULL. */
 
81720
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
81721
  /** Get the semantic value of the node.
 
81722
   *  \return The value object or NULL. */
36446
81723
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
81724
  /** Get the semantic object of the node.
 
81725
   *  \return The semantic object or NULL. */
36447
81726
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
36448
81727
  
36449
81728
public: // node classification function
 
81729
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
81730
   *  \return The CT_SimpleName node or NULL. */
36450
81731
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
81732
  /** Get a pointer to CT_String if the current node represents a string.
 
81733
   *  \return The CT_String node or NULL. */
 
81734
  virtual CT_String *IsString () { return 0; }
 
81735
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
81736
   *  \return The CT_Declarator pointer or NULL. */
36451
81737
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
81738
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
81739
   *  \return The CT_Statement pointer or NULL. */
 
81740
  virtual CT_Statement *IsStatement () { return 0; }
 
81741
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
81742
   *  \return The CT_Expression pointer or NULL. */
 
81743
  virtual CT_Expression *IsExpression () { return 0; }
 
81744
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
81745
   *  \return The CT_Decl pointer or NULL. */
 
81746
  virtual CT_Decl *IsDeclaration () { return 0; }
 
81747
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
81748
   *  \return The CT_Call pointer or NULL. */
 
81749
  virtual CT_Call *IsCall () { return 0; }
36452
81750
   private:
36453
81751
  typedef CTree CCExprResolveCTree;
36454
81752
 
36455
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81753
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
36456
81754
 public :
36457
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81755
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
36458
81756
  typedef CTree CExprResolveCTree;
36459
81757
 
36460
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81758
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
36461
81759
 public :
36462
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
36463
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81760
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81761
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36464
81762
};
36465
81763
 
 
81764
/** \class CT_Error CTree.h Puma/CTree.h
 
81765
 *  Error tree node that is inserted into the tree for syntactic constructs
 
81766
 *  that could not be parsed. */
36466
81767
 
36467
 
#line 36468 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
81768
#line 81769 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
36468
81769
} // closed Puma
 
81770
class CCExprResolve;
 
81771
class CExprResolve;
36469
81772
class WinIfExists;
36470
81773
class WinImportHandler;
36471
81774
class WinMacros;
36472
 
class CMatchSyntax;
36473
 
class ExtGnu;
 
81775
class WinAsm;
 
81776
class WinDeclSpecs;
 
81777
class WinMemberExplSpec;
 
81778
class WinTypeKeywords;
 
81779
class WinFriend;
36474
81780
class ExtAC;
36475
81781
class ExtACBuilderCoupling;
36476
81782
class ExtACSyntaxCoupling;
36477
81783
class ExtACTree;
36478
81784
class ExtACKeywords;
36479
 
class WinAsm;
36480
 
class WinDeclSpecs;
36481
 
class WinMemberExplSpec;
36482
 
class WinTypeKeywords;
 
81785
class ExtGnu;
36483
81786
class PragmaOnceUnitState;
36484
81787
class PragmaOnce;
36485
 
class CCExprResolve;
36486
 
class CExprResolve;
 
81788
class CMatchSyntax;
36487
81789
namespace Puma {
36488
81790
 
36489
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81791
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36490
81792
class CT_Error : public CTree {
36491
 
#line 36492 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
81793
#line 81794 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
81794
  friend class ::CCExprResolve;
 
81795
  friend class ::CExprResolve;
36492
81796
  friend class ::WinIfExists;
36493
81797
  friend class ::WinImportHandler;
36494
81798
  friend class ::WinMacros;
36495
 
  friend class ::CMatchSyntax;
36496
 
  friend class ::ExtGnu;
 
81799
  friend class ::WinAsm;
 
81800
  friend class ::WinDeclSpecs;
 
81801
  friend class ::WinMemberExplSpec;
 
81802
  friend class ::WinTypeKeywords;
 
81803
  friend class ::WinFriend;
36497
81804
  friend class ::ExtAC;
36498
81805
  friend class ::ExtACBuilderCoupling;
36499
81806
  friend class ::ExtACSyntaxCoupling;
36500
81807
  friend class ::ExtACTree;
36501
81808
  friend class ::ExtACKeywords;
36502
 
  friend class ::WinAsm;
36503
 
  friend class ::WinDeclSpecs;
36504
 
  friend class ::WinMemberExplSpec;
36505
 
  friend class ::WinTypeKeywords;
 
81809
  friend class ::ExtGnu;
36506
81810
  friend class ::PragmaOnceUnitState;
36507
81811
  friend class ::PragmaOnce;
36508
 
  friend class ::CCExprResolve;
36509
 
  friend class ::CExprResolve;
 
81812
  friend class ::CMatchSyntax;
36510
81813
 
36511
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81814
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36512
81815
 
36513
81816
public:
 
81817
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36514
81818
  static const char *NodeId ();
 
81819
  /** Get the name of the node. Can be compared with NodeId(). */
36515
81820
  const char *NodeName () const { return NodeId (); }
 
81821
  /** Get the number of sons. */
36516
81822
  int Sons () const { return 0; }
36517
81823
};
36518
81824
 
 
81825
/** \class CT_Token CTree.h Puma/CTree.h
 
81826
 *  Tree node representing a single token in the source code. */
36519
81827
 
36520
 
#line 36521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
81828
#line 81829 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
36521
81829
} // closed Puma
 
81830
class CCExprResolve;
 
81831
class CExprResolve;
36522
81832
class WinIfExists;
36523
81833
class WinImportHandler;
36524
81834
class WinMacros;
36525
 
class CMatchSyntax;
36526
 
class ExtGnu;
 
81835
class WinAsm;
 
81836
class WinDeclSpecs;
 
81837
class WinMemberExplSpec;
 
81838
class WinTypeKeywords;
 
81839
class WinFriend;
36527
81840
class ExtAC;
36528
81841
class ExtACBuilderCoupling;
36529
81842
class ExtACSyntaxCoupling;
36530
81843
class ExtACTree;
36531
81844
class ExtACKeywords;
36532
 
class WinAsm;
36533
 
class WinDeclSpecs;
36534
 
class WinMemberExplSpec;
36535
 
class WinTypeKeywords;
 
81845
class ExtGnu;
36536
81846
class PragmaOnceUnitState;
36537
81847
class PragmaOnce;
36538
 
class CCExprResolve;
36539
 
class CExprResolve;
 
81848
class CMatchSyntax;
36540
81849
namespace Puma {
36541
81850
 
36542
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81851
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36543
81852
class CT_Token : public CTree {
36544
 
#line 36545 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
81853
#line 81854 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
81854
  friend class ::CCExprResolve;
 
81855
  friend class ::CExprResolve;
36545
81856
  friend class ::WinIfExists;
36546
81857
  friend class ::WinImportHandler;
36547
81858
  friend class ::WinMacros;
36548
 
  friend class ::CMatchSyntax;
36549
 
  friend class ::ExtGnu;
 
81859
  friend class ::WinAsm;
 
81860
  friend class ::WinDeclSpecs;
 
81861
  friend class ::WinMemberExplSpec;
 
81862
  friend class ::WinTypeKeywords;
 
81863
  friend class ::WinFriend;
36550
81864
  friend class ::ExtAC;
36551
81865
  friend class ::ExtACBuilderCoupling;
36552
81866
  friend class ::ExtACSyntaxCoupling;
36553
81867
  friend class ::ExtACTree;
36554
81868
  friend class ::ExtACKeywords;
36555
 
  friend class ::WinAsm;
36556
 
  friend class ::WinDeclSpecs;
36557
 
  friend class ::WinMemberExplSpec;
36558
 
  friend class ::WinTypeKeywords;
 
81869
  friend class ::ExtGnu;
36559
81870
  friend class ::PragmaOnceUnitState;
36560
81871
  friend class ::PragmaOnce;
36561
 
  friend class ::CCExprResolve;
36562
 
  friend class ::CExprResolve;
 
81872
  friend class ::CMatchSyntax;
36563
81873
 
36564
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81874
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36565
81875
 
36566
81876
  Token *_token;
36567
81877
  unsigned long int _number;
36568
81878
  
36569
81879
public:
36570
 
  CT_Token (Token *t, unsigned long int n = 0) : 
36571
 
    _token (t), _number (n) {}
 
81880
  /** Constructor. 
 
81881
   *  \param token The represented token.
 
81882
   *  \param number The token number (a consecutive number). */
 
81883
  CT_Token (Token *token, unsigned long int number = 0) : 
 
81884
    _token (token), _number (number) {}
 
81885
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36572
81886
  static const char *NodeId ();
 
81887
  /** Get the name of the node. Can be compared with NodeId(). */
36573
81888
  const char *NodeName () const { return NodeId (); }
 
81889
  /** Get the number of sons. */
36574
81890
  int Sons () const { return 0; }
 
81891
  /** Get the represented token. */
36575
81892
  Token *token () const { return _token; }
 
81893
  /** Get the represented token. */
36576
81894
  Token *end_token () const { return _token; }
 
81895
  /** Get this. */
36577
81896
  CT_Token *token_node () const { return (CT_Token*)this; }
 
81897
  /** Get this. */
36578
81898
  CT_Token *end_token_node () const { return (CT_Token*)this; }
36579
 
  void Number (unsigned long int n) { _number = n; }
 
81899
  /** Set the token number. 
 
81900
   *  \param number The token number. */ 
 
81901
  void Number (unsigned long int number) { _number = number; }
 
81902
  /** Get the token number. Can be used to indentify this token. */
36580
81903
  unsigned long int Number () const { return _number; }
36581
 
  // special new / delete with reusing memory
 
81904
  
 
81905
public:
 
81906
  /** Own new operator reusing memory. */
36582
81907
  void *operator new (size_t);
36583
 
  void  operator delete (void *);
 
81908
  /** Own delete operator. */
 
81909
  void operator delete (void *);
36584
81910
};
36585
81911
 
36586
81912
/*****************************************************************************/
36589
81915
/*                                                                           */
36590
81916
/*****************************************************************************/
36591
81917
 
 
81918
/** \class CT_List CTree.h Puma/CTree.h
 
81919
 *  Base class for tree nodes representing lists. */
36592
81920
 
36593
 
#line 36594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
81921
#line 81922 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
36594
81922
} // closed Puma
 
81923
class CCExprResolve;
 
81924
class CExprResolve;
36595
81925
class WinIfExists;
36596
81926
class WinImportHandler;
36597
81927
class WinMacros;
36598
 
class CMatchSyntax;
36599
 
class ExtGnu;
 
81928
class WinAsm;
 
81929
class WinDeclSpecs;
 
81930
class WinMemberExplSpec;
 
81931
class WinTypeKeywords;
 
81932
class WinFriend;
36600
81933
class ExtAC;
36601
81934
class ExtACBuilderCoupling;
36602
81935
class ExtACSyntaxCoupling;
36603
81936
class ExtACTree;
36604
81937
class ExtACKeywords;
36605
 
class WinAsm;
36606
 
class WinDeclSpecs;
36607
 
class WinMemberExplSpec;
36608
 
class WinTypeKeywords;
 
81938
class ExtGnu;
36609
81939
class PragmaOnceUnitState;
36610
81940
class PragmaOnce;
36611
 
class CCExprResolve;
36612
 
class CExprResolve;
 
81941
class CMatchSyntax;
36613
81942
namespace Puma {
36614
81943
 
36615
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81944
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36616
81945
class CT_List : public CTree {
36617
 
#line 36618 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
81946
#line 81947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
81947
  friend class ::CCExprResolve;
 
81948
  friend class ::CExprResolve;
36618
81949
  friend class ::WinIfExists;
36619
81950
  friend class ::WinImportHandler;
36620
81951
  friend class ::WinMacros;
36621
 
  friend class ::CMatchSyntax;
36622
 
  friend class ::ExtGnu;
 
81952
  friend class ::WinAsm;
 
81953
  friend class ::WinDeclSpecs;
 
81954
  friend class ::WinMemberExplSpec;
 
81955
  friend class ::WinTypeKeywords;
 
81956
  friend class ::WinFriend;
36623
81957
  friend class ::ExtAC;
36624
81958
  friend class ::ExtACBuilderCoupling;
36625
81959
  friend class ::ExtACSyntaxCoupling;
36626
81960
  friend class ::ExtACTree;
36627
81961
  friend class ::ExtACKeywords;
36628
 
  friend class ::WinAsm;
36629
 
  friend class ::WinDeclSpecs;
36630
 
  friend class ::WinMemberExplSpec;
36631
 
  friend class ::WinTypeKeywords;
 
81962
  friend class ::ExtGnu;
36632
81963
  friend class ::PragmaOnceUnitState;
36633
81964
  friend class ::PragmaOnce;
36634
 
  friend class ::CCExprResolve;
36635
 
  friend class ::CExprResolve;
 
81965
  friend class ::CMatchSyntax;
36636
81966
 
36637
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81967
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36638
81968
 
36639
81969
  Array<CTree*> _sons;
36640
81970
  int _properties;
36641
81971
 
36642
81972
protected:
 
81973
  /** Constructor.
 
81974
   *  \param size The initial list size.
 
81975
   *  \param incr The initial increment count. 
 
81976
   *  \param props The list properties (bit array). */
36643
81977
  CT_List(int size = 5, int incr = 5, int props = 0) : 
36644
81978
    _sons (size, incr), _properties (props) {}
36645
81979
 
36646
81980
public:
 
81981
  /** List properties. */
36647
81982
  enum {
36648
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
36649
 
    CLOSE = 2,
36650
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
36651
 
    SEPARATORS = 4,   // the list has separators like ','
36652
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
36653
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
36654
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
36655
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
81983
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
81984
    CLOSE = 2,        /** List has an end token */
 
81985
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
81986
    SEPARATORS = 4,   /** List has separators, like ',' */
 
81987
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
81988
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
81989
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
81990
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
36656
81991
  };
36657
81992
 
 
81993
  /** Get the number of list entries. */
36658
81994
  int Entries () const;
36659
 
  CTree *Entry (int no) const;
 
81995
  /** Get the n-th list entry.
 
81996
   *  \param n The index of the entry. 
 
81997
   *  \return The list entry or NULL. */
 
81998
  CTree *Entry (int n) const;
 
81999
  /** Get the number of sons. */
36660
82000
  int Sons () const { return _sons.length (); }
 
82001
  /** Get the n-th son.
 
82002
   *  \param n The index of the son. 
 
82003
   *  \return The n-th son or NULL. */
36661
82004
  CTree *Son (int n) const { return _sons.lookup (n); }
 
82005
  /** Get the list properties. */
36662
82006
  int GetProperties () const { return _properties; }
 
82007
  /** Add a list property.
 
82008
   *  \param p The property to add. */
36663
82009
  void AddProperties (int p) { _properties |= p; }
36664
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
36665
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
36666
 
  void InsertSon (CTree *, CTree *);  // before given son
36667
 
  void ReplaceSon (CTree *, CTree *);
36668
 
  void RemoveSon (CTree *);
 
82010
  /** Add a son.
 
82011
   *  \param s The son to add. */
 
82012
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
82013
  /** Prepend a son.
 
82014
   *  \param s The son to prepend. */
 
82015
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
82016
  /** Insert a son before another son.
 
82017
   *  \param before The son to insert the new son before.
 
82018
   *  \param son The son to insert. */
 
82019
  void InsertSon (CTree *before, CTree *son); 
 
82020
  /** Replace a son.
 
82021
   *  \param old_son The son to replace.
 
82022
   *  \param new_son The new son. */
 
82023
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
82024
  /** Remove a son.
 
82025
   *  \param son The son to remove. */
 
82026
  void RemoveSon (CTree *son);
 
82027
  /** Insert a son at the given index. 
 
82028
   *  \param idx The index at which to insert.
 
82029
   *  \param s The son to insert. */
36669
82030
  void InsertSon (int idx, CTree *s)
36670
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
82031
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
82032
  /** Replace the son at the given index.
 
82033
   *  \param idx The index of the son to replace.
 
82034
   *  \param s The new son. */
36671
82035
  void ReplaceSon (int idx, CTree *s) 
36672
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
82036
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
82037
  /** Remove the son at the given index. 
 
82038
   *  \param idx The index of the son to remove. */
36673
82039
  void RemoveSon (int idx) 
36674
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
82040
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
36675
82041
};
36676
82042
 
 
82043
/** \class CT_ExprList CTree.h Puma/CTree.h
 
82044
 *  Tree node representing an expression list. */
36677
82045
 
36678
 
#line 36679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82046
#line 82047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
36679
82047
} // closed Puma
 
82048
class CCExprResolve;
 
82049
class CExprResolve;
36680
82050
class WinIfExists;
36681
82051
class WinImportHandler;
36682
82052
class WinMacros;
36683
 
class CMatchSyntax;
36684
 
class ExtGnu;
 
82053
class WinAsm;
 
82054
class WinDeclSpecs;
 
82055
class WinMemberExplSpec;
 
82056
class WinTypeKeywords;
 
82057
class WinFriend;
36685
82058
class ExtAC;
36686
82059
class ExtACBuilderCoupling;
36687
82060
class ExtACSyntaxCoupling;
36688
82061
class ExtACTree;
36689
82062
class ExtACKeywords;
36690
 
class WinAsm;
36691
 
class WinDeclSpecs;
36692
 
class WinMemberExplSpec;
36693
 
class WinTypeKeywords;
 
82063
class ExtGnu;
36694
82064
class PragmaOnceUnitState;
36695
82065
class PragmaOnce;
36696
 
class CCExprResolve;
36697
 
class CExprResolve;
 
82066
class CMatchSyntax;
36698
82067
namespace Puma {
36699
82068
 
36700
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82069
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36701
82070
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
36702
 
#line 36703 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82071
#line 82072 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82072
  friend class ::CCExprResolve;
 
82073
  friend class ::CExprResolve;
36703
82074
  friend class ::WinIfExists;
36704
82075
  friend class ::WinImportHandler;
36705
82076
  friend class ::WinMacros;
36706
 
  friend class ::CMatchSyntax;
36707
 
  friend class ::ExtGnu;
 
82077
  friend class ::WinAsm;
 
82078
  friend class ::WinDeclSpecs;
 
82079
  friend class ::WinMemberExplSpec;
 
82080
  friend class ::WinTypeKeywords;
 
82081
  friend class ::WinFriend;
36708
82082
  friend class ::ExtAC;
36709
82083
  friend class ::ExtACBuilderCoupling;
36710
82084
  friend class ::ExtACSyntaxCoupling;
36711
82085
  friend class ::ExtACTree;
36712
82086
  friend class ::ExtACKeywords;
36713
 
  friend class ::WinAsm;
36714
 
  friend class ::WinDeclSpecs;
36715
 
  friend class ::WinMemberExplSpec;
36716
 
  friend class ::WinTypeKeywords;
 
82087
  friend class ::ExtGnu;
36717
82088
  friend class ::PragmaOnceUnitState;
36718
82089
  friend class ::PragmaOnce;
36719
 
  friend class ::CCExprResolve;
36720
 
  friend class ::CExprResolve;
 
82090
  friend class ::CMatchSyntax;
36721
82091
 
36722
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82092
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36723
82093
 
36724
82094
public:
 
82095
  /** Constructor. */
36725
82096
  CT_ExprList () { AddProperties (SEPARATORS); }
 
82097
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36726
82098
  static const char *NodeId ();
 
82099
  /** Get the name of the node. Can be compared with NodeId(). */
36727
82100
  const char *NodeName () const { return NodeId (); }
36728
82101
 
 
82102
  /** Get the type of the last expression in the expression list.
 
82103
   *  \return The type or NULL. */
36729
82104
  CTypeInfo *Type () const { return type; }
 
82105
  /** Get the value of the last expression in the expression list.
 
82106
   *  \return The value of NULL. */
36730
82107
  CExprValue *Value () const { return value; }
 
82108
  /** Get the semantic value of the node. */
36731
82109
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
82110
  /** Get the semantic object of the node. */
36732
82111
  CSemObject *SemObject () const { return (CSemObject*)this; }
36733
82112
};
36734
82113
 
 
82114
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
82115
 *  Tree node representing a list of declarators. */
36735
82116
 
36736
 
#line 36737 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82117
#line 82118 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
36737
82118
} // closed Puma
 
82119
class CCExprResolve;
 
82120
class CExprResolve;
36738
82121
class WinIfExists;
36739
82122
class WinImportHandler;
36740
82123
class WinMacros;
36741
 
class CMatchSyntax;
36742
 
class ExtGnu;
 
82124
class WinAsm;
 
82125
class WinDeclSpecs;
 
82126
class WinMemberExplSpec;
 
82127
class WinTypeKeywords;
 
82128
class WinFriend;
36743
82129
class ExtAC;
36744
82130
class ExtACBuilderCoupling;
36745
82131
class ExtACSyntaxCoupling;
36746
82132
class ExtACTree;
36747
82133
class ExtACKeywords;
36748
 
class WinAsm;
36749
 
class WinDeclSpecs;
36750
 
class WinMemberExplSpec;
36751
 
class WinTypeKeywords;
 
82134
class ExtGnu;
36752
82135
class PragmaOnceUnitState;
36753
82136
class PragmaOnce;
36754
 
class CCExprResolve;
36755
 
class CExprResolve;
 
82137
class CMatchSyntax;
36756
82138
namespace Puma {
36757
82139
 
36758
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82140
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36759
82141
class CT_DeclaratorList : public CT_List {
36760
 
#line 36761 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82142
#line 82143 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82143
  friend class ::CCExprResolve;
 
82144
  friend class ::CExprResolve;
36761
82145
  friend class ::WinIfExists;
36762
82146
  friend class ::WinImportHandler;
36763
82147
  friend class ::WinMacros;
36764
 
  friend class ::CMatchSyntax;
36765
 
  friend class ::ExtGnu;
 
82148
  friend class ::WinAsm;
 
82149
  friend class ::WinDeclSpecs;
 
82150
  friend class ::WinMemberExplSpec;
 
82151
  friend class ::WinTypeKeywords;
 
82152
  friend class ::WinFriend;
36766
82153
  friend class ::ExtAC;
36767
82154
  friend class ::ExtACBuilderCoupling;
36768
82155
  friend class ::ExtACSyntaxCoupling;
36769
82156
  friend class ::ExtACTree;
36770
82157
  friend class ::ExtACKeywords;
36771
 
  friend class ::WinAsm;
36772
 
  friend class ::WinDeclSpecs;
36773
 
  friend class ::WinMemberExplSpec;
36774
 
  friend class ::WinTypeKeywords;
 
82158
  friend class ::ExtGnu;
36775
82159
  friend class ::PragmaOnceUnitState;
36776
82160
  friend class ::PragmaOnce;
36777
 
  friend class ::CCExprResolve;
36778
 
  friend class ::CExprResolve;
 
82161
  friend class ::CMatchSyntax;
36779
82162
 
36780
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82163
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36781
82164
 
36782
82165
public:
 
82166
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36783
82167
  static const char *NodeId ();
 
82168
  /** Get the name of the node. Can be compared with NodeId(). */
36784
82169
  const char *NodeName () const { return NodeId (); }
36785
82170
};
36786
82171
 
 
82172
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
82173
 *  Tree node representing a list of enumerator constants. */
36787
82174
 
36788
 
#line 36789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82175
#line 82176 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
36789
82176
} // closed Puma
 
82177
class CCExprResolve;
 
82178
class CExprResolve;
36790
82179
class WinIfExists;
36791
82180
class WinImportHandler;
36792
82181
class WinMacros;
36793
 
class CMatchSyntax;
36794
 
class ExtGnu;
 
82182
class WinAsm;
 
82183
class WinDeclSpecs;
 
82184
class WinMemberExplSpec;
 
82185
class WinTypeKeywords;
 
82186
class WinFriend;
36795
82187
class ExtAC;
36796
82188
class ExtACBuilderCoupling;
36797
82189
class ExtACSyntaxCoupling;
36798
82190
class ExtACTree;
36799
82191
class ExtACKeywords;
36800
 
class WinAsm;
36801
 
class WinDeclSpecs;
36802
 
class WinMemberExplSpec;
36803
 
class WinTypeKeywords;
 
82192
class ExtGnu;
36804
82193
class PragmaOnceUnitState;
36805
82194
class PragmaOnce;
36806
 
class CCExprResolve;
36807
 
class CExprResolve;
 
82195
class CMatchSyntax;
36808
82196
namespace Puma {
36809
82197
 
36810
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82198
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36811
82199
class CT_EnumeratorList : public CT_List {
36812
 
#line 36813 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82200
#line 82201 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82201
  friend class ::CCExprResolve;
 
82202
  friend class ::CExprResolve;
36813
82203
  friend class ::WinIfExists;
36814
82204
  friend class ::WinImportHandler;
36815
82205
  friend class ::WinMacros;
36816
 
  friend class ::CMatchSyntax;
36817
 
  friend class ::ExtGnu;
 
82206
  friend class ::WinAsm;
 
82207
  friend class ::WinDeclSpecs;
 
82208
  friend class ::WinMemberExplSpec;
 
82209
  friend class ::WinTypeKeywords;
 
82210
  friend class ::WinFriend;
36818
82211
  friend class ::ExtAC;
36819
82212
  friend class ::ExtACBuilderCoupling;
36820
82213
  friend class ::ExtACSyntaxCoupling;
36821
82214
  friend class ::ExtACTree;
36822
82215
  friend class ::ExtACKeywords;
36823
 
  friend class ::WinAsm;
36824
 
  friend class ::WinDeclSpecs;
36825
 
  friend class ::WinMemberExplSpec;
36826
 
  friend class ::WinTypeKeywords;
 
82216
  friend class ::ExtGnu;
36827
82217
  friend class ::PragmaOnceUnitState;
36828
82218
  friend class ::PragmaOnce;
36829
 
  friend class ::CCExprResolve;
36830
 
  friend class ::CExprResolve;
 
82219
  friend class ::CMatchSyntax;
36831
82220
 
36832
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82221
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36833
82222
 
36834
82223
public:
 
82224
  /** Constructor. */
36835
82225
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
82226
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36836
82227
  static const char *NodeId ();
 
82228
  /** Get the name of the node. Can be compared with NodeId(). */
36837
82229
  const char *NodeName () const { return NodeId (); }
36838
82230
};
36839
82231
   
 
82232
/** \class CT_DeclList CTree.h Puma/CTree.h
 
82233
 *  Tree node representing a list of declarations. */
36840
82234
 
36841
 
#line 36842 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82235
#line 82236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
36842
82236
} // closed Puma
 
82237
class CCExprResolve;
 
82238
class CExprResolve;
36843
82239
class WinIfExists;
36844
82240
class WinImportHandler;
36845
82241
class WinMacros;
36846
 
class CMatchSyntax;
36847
 
class ExtGnu;
 
82242
class WinAsm;
 
82243
class WinDeclSpecs;
 
82244
class WinMemberExplSpec;
 
82245
class WinTypeKeywords;
 
82246
class WinFriend;
36848
82247
class ExtAC;
36849
82248
class ExtACBuilderCoupling;
36850
82249
class ExtACSyntaxCoupling;
36851
82250
class ExtACTree;
36852
82251
class ExtACKeywords;
36853
 
class WinAsm;
36854
 
class WinDeclSpecs;
36855
 
class WinMemberExplSpec;
36856
 
class WinTypeKeywords;
 
82252
class ExtGnu;
36857
82253
class PragmaOnceUnitState;
36858
82254
class PragmaOnce;
36859
 
class CCExprResolve;
36860
 
class CExprResolve;
 
82255
class CMatchSyntax;
36861
82256
namespace Puma {
36862
82257
 
36863
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82258
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36864
82259
class CT_DeclList : public CT_List {
36865
 
#line 36866 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82260
#line 82261 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82261
  friend class ::CCExprResolve;
 
82262
  friend class ::CExprResolve;
36866
82263
  friend class ::WinIfExists;
36867
82264
  friend class ::WinImportHandler;
36868
82265
  friend class ::WinMacros;
36869
 
  friend class ::CMatchSyntax;
36870
 
  friend class ::ExtGnu;
 
82266
  friend class ::WinAsm;
 
82267
  friend class ::WinDeclSpecs;
 
82268
  friend class ::WinMemberExplSpec;
 
82269
  friend class ::WinTypeKeywords;
 
82270
  friend class ::WinFriend;
36871
82271
  friend class ::ExtAC;
36872
82272
  friend class ::ExtACBuilderCoupling;
36873
82273
  friend class ::ExtACSyntaxCoupling;
36874
82274
  friend class ::ExtACTree;
36875
82275
  friend class ::ExtACKeywords;
36876
 
  friend class ::WinAsm;
36877
 
  friend class ::WinDeclSpecs;
36878
 
  friend class ::WinMemberExplSpec;
36879
 
  friend class ::WinTypeKeywords;
 
82276
  friend class ::ExtGnu;
36880
82277
  friend class ::PragmaOnceUnitState;
36881
82278
  friend class ::PragmaOnce;
36882
 
  friend class ::CCExprResolve;
36883
 
  friend class ::CExprResolve;
 
82279
  friend class ::CMatchSyntax;
36884
82280
 
36885
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82281
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36886
82282
 
36887
82283
public:
 
82284
  /** Constructor. 
 
82285
   *  \param size The initial size of the list.
 
82286
   *  \param incr The initial increment count of the list. */
36888
82287
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
82288
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36889
82289
  static const char *NodeId ();
 
82290
  /** Get the name of the node. Can be compared with NodeId(). */
36890
82291
  const char *NodeName () const { return NodeId (); }
 
82292
  /** Set the linkage specifiers to each declaration in the list.
 
82293
   *  \param l The linkage specifiers node. */
36891
82294
  void Linkage (CT_LinkageSpec *l);
36892
82295
};
36893
82296
 
 
82297
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
82298
 *  Tree node representing a sequence of declaration specifiers. */
36894
82299
 
36895
 
#line 36896 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82300
#line 82301 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
36896
82301
} // closed Puma
 
82302
class CCExprResolve;
 
82303
class CExprResolve;
36897
82304
class WinIfExists;
36898
82305
class WinImportHandler;
36899
82306
class WinMacros;
36900
 
class CMatchSyntax;
36901
 
class ExtGnu;
 
82307
class WinAsm;
 
82308
class WinDeclSpecs;
 
82309
class WinMemberExplSpec;
 
82310
class WinTypeKeywords;
 
82311
class WinFriend;
36902
82312
class ExtAC;
36903
82313
class ExtACBuilderCoupling;
36904
82314
class ExtACSyntaxCoupling;
36905
82315
class ExtACTree;
36906
82316
class ExtACKeywords;
36907
 
class WinAsm;
36908
 
class WinDeclSpecs;
36909
 
class WinMemberExplSpec;
36910
 
class WinTypeKeywords;
 
82317
class ExtGnu;
36911
82318
class PragmaOnceUnitState;
36912
82319
class PragmaOnce;
36913
 
class CCExprResolve;
36914
 
class CExprResolve;
 
82320
class CMatchSyntax;
36915
82321
namespace Puma {
36916
82322
 
36917
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82323
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36918
82324
class CT_DeclSpecSeq : public CT_List {
36919
 
#line 36920 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82325
#line 82326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82326
  friend class ::CCExprResolve;
 
82327
  friend class ::CExprResolve;
36920
82328
  friend class ::WinIfExists;
36921
82329
  friend class ::WinImportHandler;
36922
82330
  friend class ::WinMacros;
36923
 
  friend class ::CMatchSyntax;
36924
 
  friend class ::ExtGnu;
 
82331
  friend class ::WinAsm;
 
82332
  friend class ::WinDeclSpecs;
 
82333
  friend class ::WinMemberExplSpec;
 
82334
  friend class ::WinTypeKeywords;
 
82335
  friend class ::WinFriend;
36925
82336
  friend class ::ExtAC;
36926
82337
  friend class ::ExtACBuilderCoupling;
36927
82338
  friend class ::ExtACSyntaxCoupling;
36928
82339
  friend class ::ExtACTree;
36929
82340
  friend class ::ExtACKeywords;
36930
 
  friend class ::WinAsm;
36931
 
  friend class ::WinDeclSpecs;
36932
 
  friend class ::WinMemberExplSpec;
36933
 
  friend class ::WinTypeKeywords;
 
82341
  friend class ::ExtGnu;
36934
82342
  friend class ::PragmaOnceUnitState;
36935
82343
  friend class ::PragmaOnce;
36936
 
  friend class ::CCExprResolve;
36937
 
  friend class ::CExprResolve;
 
82344
  friend class ::CMatchSyntax;
36938
82345
 
36939
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82346
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36940
82347
 
36941
82348
public:
 
82349
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36942
82350
  static const char *NodeId ();
 
82351
  /** Get the name of the node. Can be compared with NodeId(). */
36943
82352
  const char *NodeName () const { return NodeId (); }
36944
82353
};
36945
82354
 
 
82355
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
82356
 *  Tree node representing a compound statement. */
36946
82357
 
36947
 
#line 36948 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82358
#line 82359 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
36948
82359
} // closed Puma
 
82360
class CCExprResolve;
 
82361
class CExprResolve;
36949
82362
class WinIfExists;
36950
82363
class WinImportHandler;
36951
82364
class WinMacros;
36952
 
class CMatchSyntax;
36953
 
class ExtGnu;
 
82365
class WinAsm;
 
82366
class WinDeclSpecs;
 
82367
class WinMemberExplSpec;
 
82368
class WinTypeKeywords;
 
82369
class WinFriend;
36954
82370
class ExtAC;
36955
82371
class ExtACBuilderCoupling;
36956
82372
class ExtACSyntaxCoupling;
36957
82373
class ExtACTree;
36958
82374
class ExtACKeywords;
36959
 
class WinAsm;
36960
 
class WinDeclSpecs;
36961
 
class WinMemberExplSpec;
36962
 
class WinTypeKeywords;
 
82375
class ExtGnu;
36963
82376
class PragmaOnceUnitState;
36964
82377
class PragmaOnce;
36965
 
class CCExprResolve;
36966
 
class CExprResolve;
 
82378
class CMatchSyntax;
36967
82379
namespace Puma {
36968
82380
 
36969
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82381
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36970
82382
class CT_CmpdStmt : public CT_List, public CSemScope {
36971
 
#line 36972 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82383
#line 82384 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82384
  friend class ::CCExprResolve;
 
82385
  friend class ::CExprResolve;
36972
82386
  friend class ::WinIfExists;
36973
82387
  friend class ::WinImportHandler;
36974
82388
  friend class ::WinMacros;
36975
 
  friend class ::CMatchSyntax;
36976
 
  friend class ::ExtGnu;
 
82389
  friend class ::WinAsm;
 
82390
  friend class ::WinDeclSpecs;
 
82391
  friend class ::WinMemberExplSpec;
 
82392
  friend class ::WinTypeKeywords;
 
82393
  friend class ::WinFriend;
36977
82394
  friend class ::ExtAC;
36978
82395
  friend class ::ExtACBuilderCoupling;
36979
82396
  friend class ::ExtACSyntaxCoupling;
36980
82397
  friend class ::ExtACTree;
36981
82398
  friend class ::ExtACKeywords;
36982
 
  friend class ::WinAsm;
36983
 
  friend class ::WinDeclSpecs;
36984
 
  friend class ::WinMemberExplSpec;
36985
 
  friend class ::WinTypeKeywords;
 
82399
  friend class ::ExtGnu;
36986
82400
  friend class ::PragmaOnceUnitState;
36987
82401
  friend class ::PragmaOnce;
36988
 
  friend class ::CCExprResolve;
36989
 
  friend class ::CExprResolve;
 
82402
  friend class ::CMatchSyntax;
36990
82403
 
36991
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82404
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36992
82405
 
36993
82406
public:
 
82407
  /* Constructor. */
36994
82408
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
82409
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36995
82410
  static const char *NodeId ();
 
82411
  /** Get the name of the node. Can be compared with NodeId(). */
36996
82412
  const char *NodeName () const { return NodeId (); }
 
82413
  /** Get the local scope of the compound statement. */
 
82414
  CSemScope *SemScope () const { return (CSemScope*)this; }
36997
82415
};
36998
82416
 
 
82417
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
82418
 *  Tree node representing an exception handler sequence. */
36999
82419
 
37000
 
#line 37001 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82420
#line 82421 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
37001
82421
} // closed Puma
 
82422
class CCExprResolve;
 
82423
class CExprResolve;
37002
82424
class WinIfExists;
37003
82425
class WinImportHandler;
37004
82426
class WinMacros;
37005
 
class CMatchSyntax;
37006
 
class ExtGnu;
 
82427
class WinAsm;
 
82428
class WinDeclSpecs;
 
82429
class WinMemberExplSpec;
 
82430
class WinTypeKeywords;
 
82431
class WinFriend;
37007
82432
class ExtAC;
37008
82433
class ExtACBuilderCoupling;
37009
82434
class ExtACSyntaxCoupling;
37010
82435
class ExtACTree;
37011
82436
class ExtACKeywords;
37012
 
class WinAsm;
37013
 
class WinDeclSpecs;
37014
 
class WinMemberExplSpec;
37015
 
class WinTypeKeywords;
 
82437
class ExtGnu;
37016
82438
class PragmaOnceUnitState;
37017
82439
class PragmaOnce;
37018
 
class CCExprResolve;
37019
 
class CExprResolve;
 
82440
class CMatchSyntax;
37020
82441
namespace Puma {
37021
82442
 
37022
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82443
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37023
82444
class CT_HandlerSeq : public CT_List {
37024
 
#line 37025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82445
#line 82446 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82446
  friend class ::CCExprResolve;
 
82447
  friend class ::CExprResolve;
37025
82448
  friend class ::WinIfExists;
37026
82449
  friend class ::WinImportHandler;
37027
82450
  friend class ::WinMacros;
37028
 
  friend class ::CMatchSyntax;
37029
 
  friend class ::ExtGnu;
 
82451
  friend class ::WinAsm;
 
82452
  friend class ::WinDeclSpecs;
 
82453
  friend class ::WinMemberExplSpec;
 
82454
  friend class ::WinTypeKeywords;
 
82455
  friend class ::WinFriend;
37030
82456
  friend class ::ExtAC;
37031
82457
  friend class ::ExtACBuilderCoupling;
37032
82458
  friend class ::ExtACSyntaxCoupling;
37033
82459
  friend class ::ExtACTree;
37034
82460
  friend class ::ExtACKeywords;
37035
 
  friend class ::WinAsm;
37036
 
  friend class ::WinDeclSpecs;
37037
 
  friend class ::WinMemberExplSpec;
37038
 
  friend class ::WinTypeKeywords;
 
82461
  friend class ::ExtGnu;
37039
82462
  friend class ::PragmaOnceUnitState;
37040
82463
  friend class ::PragmaOnce;
37041
 
  friend class ::CCExprResolve;
37042
 
  friend class ::CExprResolve;
 
82464
  friend class ::CMatchSyntax;
37043
82465
 
37044
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82466
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37045
82467
 
37046
82468
public:
 
82469
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37047
82470
  static const char *NodeId ();
 
82471
  /** Get the name of the node. Can be compared with NodeId(). */
37048
82472
  const char *NodeName () const { return NodeId (); }
37049
82473
};
37050
82474
 
 
82475
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
82476
 *  Tree node representing a template parameter list. */
37051
82477
 
37052
 
#line 37053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82478
#line 82479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
37053
82479
} // closed Puma
 
82480
class CCExprResolve;
 
82481
class CExprResolve;
37054
82482
class WinIfExists;
37055
82483
class WinImportHandler;
37056
82484
class WinMacros;
37057
 
class CMatchSyntax;
37058
 
class ExtGnu;
 
82485
class WinAsm;
 
82486
class WinDeclSpecs;
 
82487
class WinMemberExplSpec;
 
82488
class WinTypeKeywords;
 
82489
class WinFriend;
37059
82490
class ExtAC;
37060
82491
class ExtACBuilderCoupling;
37061
82492
class ExtACSyntaxCoupling;
37062
82493
class ExtACTree;
37063
82494
class ExtACKeywords;
37064
 
class WinAsm;
37065
 
class WinDeclSpecs;
37066
 
class WinMemberExplSpec;
37067
 
class WinTypeKeywords;
 
82495
class ExtGnu;
37068
82496
class PragmaOnceUnitState;
37069
82497
class PragmaOnce;
37070
 
class CCExprResolve;
37071
 
class CExprResolve;
 
82498
class CMatchSyntax;
37072
82499
namespace Puma {
37073
82500
 
37074
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82501
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37075
82502
class CT_TemplateParamList : public CT_List, public CSemScope {
37076
 
#line 37077 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82503
#line 82504 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82504
  friend class ::CCExprResolve;
 
82505
  friend class ::CExprResolve;
37077
82506
  friend class ::WinIfExists;
37078
82507
  friend class ::WinImportHandler;
37079
82508
  friend class ::WinMacros;
37080
 
  friend class ::CMatchSyntax;
37081
 
  friend class ::ExtGnu;
 
82509
  friend class ::WinAsm;
 
82510
  friend class ::WinDeclSpecs;
 
82511
  friend class ::WinMemberExplSpec;
 
82512
  friend class ::WinTypeKeywords;
 
82513
  friend class ::WinFriend;
37082
82514
  friend class ::ExtAC;
37083
82515
  friend class ::ExtACBuilderCoupling;
37084
82516
  friend class ::ExtACSyntaxCoupling;
37085
82517
  friend class ::ExtACTree;
37086
82518
  friend class ::ExtACKeywords;
37087
 
  friend class ::WinAsm;
37088
 
  friend class ::WinDeclSpecs;
37089
 
  friend class ::WinMemberExplSpec;
37090
 
  friend class ::WinTypeKeywords;
 
82519
  friend class ::ExtGnu;
37091
82520
  friend class ::PragmaOnceUnitState;
37092
82521
  friend class ::PragmaOnce;
37093
 
  friend class ::CCExprResolve;
37094
 
  friend class ::CExprResolve;
 
82522
  friend class ::CMatchSyntax;
37095
82523
 
37096
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82524
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37097
82525
 
37098
82526
public:
37099
82527
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
82528
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37100
82529
  static const char *NodeId ();
 
82530
  /** Get the name of the node. Can be compared with NodeId(). */
37101
82531
  const char *NodeName () const { return NodeId (); }
 
82532
  /** Get the scope of the template parameter list. */
 
82533
  CSemScope *SemScope () const { return (CSemScope*)this; }
37102
82534
};
37103
82535
 
 
82536
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
82537
 *  Tree node representing a template argument list. */
37104
82538
 
37105
 
#line 37106 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82539
#line 82540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
37106
82540
} // closed Puma
 
82541
class CCExprResolve;
 
82542
class CExprResolve;
37107
82543
class WinIfExists;
37108
82544
class WinImportHandler;
37109
82545
class WinMacros;
37110
 
class CMatchSyntax;
37111
 
class ExtGnu;
 
82546
class WinAsm;
 
82547
class WinDeclSpecs;
 
82548
class WinMemberExplSpec;
 
82549
class WinTypeKeywords;
 
82550
class WinFriend;
37112
82551
class ExtAC;
37113
82552
class ExtACBuilderCoupling;
37114
82553
class ExtACSyntaxCoupling;
37115
82554
class ExtACTree;
37116
82555
class ExtACKeywords;
37117
 
class WinAsm;
37118
 
class WinDeclSpecs;
37119
 
class WinMemberExplSpec;
37120
 
class WinTypeKeywords;
 
82556
class ExtGnu;
37121
82557
class PragmaOnceUnitState;
37122
82558
class PragmaOnce;
37123
 
class CCExprResolve;
37124
 
class CExprResolve;
 
82559
class CMatchSyntax;
37125
82560
namespace Puma {
37126
82561
 
37127
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82562
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37128
82563
class CT_TemplateArgList : public CT_List {
37129
 
#line 37130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82564
#line 82565 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82565
  friend class ::CCExprResolve;
 
82566
  friend class ::CExprResolve;
37130
82567
  friend class ::WinIfExists;
37131
82568
  friend class ::WinImportHandler;
37132
82569
  friend class ::WinMacros;
37133
 
  friend class ::CMatchSyntax;
37134
 
  friend class ::ExtGnu;
 
82570
  friend class ::WinAsm;
 
82571
  friend class ::WinDeclSpecs;
 
82572
  friend class ::WinMemberExplSpec;
 
82573
  friend class ::WinTypeKeywords;
 
82574
  friend class ::WinFriend;
37135
82575
  friend class ::ExtAC;
37136
82576
  friend class ::ExtACBuilderCoupling;
37137
82577
  friend class ::ExtACSyntaxCoupling;
37138
82578
  friend class ::ExtACTree;
37139
82579
  friend class ::ExtACKeywords;
37140
 
  friend class ::WinAsm;
37141
 
  friend class ::WinDeclSpecs;
37142
 
  friend class ::WinMemberExplSpec;
37143
 
  friend class ::WinTypeKeywords;
 
82580
  friend class ::ExtGnu;
37144
82581
  friend class ::PragmaOnceUnitState;
37145
82582
  friend class ::PragmaOnce;
37146
 
  friend class ::CCExprResolve;
37147
 
  friend class ::CExprResolve;
 
82583
  friend class ::CMatchSyntax;
37148
82584
 
37149
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82585
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37150
82586
 
37151
82587
public:
 
82588
  /** Constructor. */
37152
82589
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
82590
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37153
82591
  static const char *NodeId ();
 
82592
  /** Get the name of the node. Can be compared with NodeId(). */
37154
82593
  const char *NodeName () const { return NodeId (); }
37155
82594
};
37156
82595
 
37160
82599
/*                                                                           */
37161
82600
/*****************************************************************************/
37162
82601
 
 
82602
/** \class CT_Expression CTree.h Puma/CTree.h
 
82603
 *  Base class for all expression tree nodes. */
37163
82604
 
37164
 
#line 37165 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82605
#line 82606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
37165
82606
} // closed Puma
 
82607
class CCExprResolve;
 
82608
class CExprResolve;
37166
82609
class WinIfExists;
37167
82610
class WinImportHandler;
37168
82611
class WinMacros;
37169
 
class CMatchSyntax;
37170
 
class ExtGnu;
 
82612
class WinAsm;
 
82613
class WinDeclSpecs;
 
82614
class WinMemberExplSpec;
 
82615
class WinTypeKeywords;
 
82616
class WinFriend;
37171
82617
class ExtAC;
37172
82618
class ExtACBuilderCoupling;
37173
82619
class ExtACSyntaxCoupling;
37174
82620
class ExtACTree;
37175
82621
class ExtACKeywords;
37176
 
class WinAsm;
37177
 
class WinDeclSpecs;
37178
 
class WinMemberExplSpec;
37179
 
class WinTypeKeywords;
 
82622
class ExtGnu;
37180
82623
class PragmaOnceUnitState;
37181
82624
class PragmaOnce;
37182
 
class CCExprResolve;
37183
 
class CExprResolve;
37184
 
namespace Puma {
37185
 
 
37186
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82625
class CMatchSyntax;
 
82626
namespace Puma {
 
82627
 
 
82628
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82629
 
 
82630
#line 82631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82631
} // closed Puma
 
82632
 
 
82633
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82634
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82635
#include "CCExprResolveH.ah"
 
82636
#endif
 
82637
namespace Puma {
 
82638
 
 
82639
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82640
 
 
82641
#line 82642 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82642
} // closed Puma
 
82643
 
 
82644
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82645
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82646
#include "CExprResolveH.ah"
 
82647
#endif
 
82648
namespace Puma {
 
82649
 
 
82650
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37187
82651
class CT_Expression : public CTree, public CSemValue {
37188
 
#line 37189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82652
#line 82653 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82653
  friend class ::CCExprResolve;
 
82654
  friend class ::CExprResolve;
37189
82655
  friend class ::WinIfExists;
37190
82656
  friend class ::WinImportHandler;
37191
82657
  friend class ::WinMacros;
37192
 
  friend class ::CMatchSyntax;
37193
 
  friend class ::ExtGnu;
 
82658
  friend class ::WinAsm;
 
82659
  friend class ::WinDeclSpecs;
 
82660
  friend class ::WinMemberExplSpec;
 
82661
  friend class ::WinTypeKeywords;
 
82662
  friend class ::WinFriend;
37194
82663
  friend class ::ExtAC;
37195
82664
  friend class ::ExtACBuilderCoupling;
37196
82665
  friend class ::ExtACSyntaxCoupling;
37197
82666
  friend class ::ExtACTree;
37198
82667
  friend class ::ExtACKeywords;
37199
 
  friend class ::WinAsm;
37200
 
  friend class ::WinDeclSpecs;
37201
 
  friend class ::WinMemberExplSpec;
37202
 
  friend class ::WinTypeKeywords;
 
82668
  friend class ::ExtGnu;
37203
82669
  friend class ::PragmaOnceUnitState;
37204
82670
  friend class ::PragmaOnce;
37205
 
  friend class ::CCExprResolve;
37206
 
  friend class ::CExprResolve;
 
82671
  friend class ::CMatchSyntax;
37207
82672
 
37208
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82673
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37209
82674
 
37210
82675
protected:
 
82676
  /** Constructor. */
37211
82677
  CT_Expression () {}
37212
82678
 
37213
82679
public:
 
82680
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37214
82681
  static const char *NodeId ();
 
82682
  /** Get the name of the node. Can be compared with NodeId(). */
37215
82683
  const char *NodeName () const { return NodeId (); }
 
82684
  /** Get the type of the expression.
 
82685
   *  \return The type information object or NULL. */
37216
82686
  CTypeInfo *Type () const { return type; }
 
82687
  /** Get the value of the expression.
 
82688
   *  \return The value object or NULL. */
37217
82689
  CExprValue *Value () const { return value; }
 
82690
  /** Get the semantic value information of the expression.
 
82691
   *  \return The value object or NULL. */
37218
82692
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
82693
  /** Get this. */
 
82694
  virtual CT_Expression *IsExpression () { return this; }
37219
82695
   private:
37220
82696
  typedef CT_Expression CCExprResolveExpr;
37221
82697
 
37222
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82698
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37223
82699
 public :
37224
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82700
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37225
82701
  typedef CT_Expression CExprResolveExpr;
37226
82702
 
37227
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37228
 
 public :
37229
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37230
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37231
 
};
37232
 
 
37233
 
 
37234
 
#line 37235 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
37235
 
} // closed Puma
37236
 
class WinIfExists;
37237
 
class WinImportHandler;
37238
 
class WinMacros;
37239
 
class CMatchSyntax;
37240
 
class ExtGnu;
37241
 
class ExtAC;
37242
 
class ExtACBuilderCoupling;
37243
 
class ExtACSyntaxCoupling;
37244
 
class ExtACTree;
37245
 
class ExtACKeywords;
37246
 
class WinAsm;
37247
 
class WinDeclSpecs;
37248
 
class WinMemberExplSpec;
37249
 
class WinTypeKeywords;
37250
 
class PragmaOnceUnitState;
37251
 
class PragmaOnce;
37252
 
class CCExprResolve;
37253
 
class CExprResolve;
37254
 
namespace Puma {
37255
 
 
37256
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82703
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82704
 public :
 
82705
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82706
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82707
};
 
82708
 
 
82709
/** \class CT_Call CTree.h Puma/CTree.h
 
82710
 *  Tree node representing explicit or implicit function calls 
 
82711
 *  including built-in or user-defined functions and overloaded
 
82712
 *  operators. */
 
82713
 
 
82714
#line 82715 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82715
} // closed Puma
 
82716
class CCExprResolve;
 
82717
class CExprResolve;
 
82718
class WinIfExists;
 
82719
class WinImportHandler;
 
82720
class WinMacros;
 
82721
class WinAsm;
 
82722
class WinDeclSpecs;
 
82723
class WinMemberExplSpec;
 
82724
class WinTypeKeywords;
 
82725
class WinFriend;
 
82726
class ExtAC;
 
82727
class ExtACBuilderCoupling;
 
82728
class ExtACSyntaxCoupling;
 
82729
class ExtACTree;
 
82730
class ExtACKeywords;
 
82731
class ExtGnu;
 
82732
class PragmaOnceUnitState;
 
82733
class PragmaOnce;
 
82734
class CMatchSyntax;
 
82735
namespace Puma {
 
82736
 
 
82737
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82738
 
 
82739
#line 82740 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82740
} // closed Puma
 
82741
 
 
82742
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82743
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82744
#include "CCExprResolveH.ah"
 
82745
#endif
 
82746
namespace Puma {
 
82747
 
 
82748
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82749
 
 
82750
#line 82751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82751
} // closed Puma
 
82752
 
 
82753
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82754
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82755
#include "CExprResolveH.ah"
 
82756
#endif
 
82757
namespace Puma {
 
82758
 
 
82759
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82760
class CT_Call : public CT_Expression, public CSemObject {
 
82761
#line 82762 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82762
  friend class ::CCExprResolve;
 
82763
  friend class ::CExprResolve;
 
82764
  friend class ::WinIfExists;
 
82765
  friend class ::WinImportHandler;
 
82766
  friend class ::WinMacros;
 
82767
  friend class ::WinAsm;
 
82768
  friend class ::WinDeclSpecs;
 
82769
  friend class ::WinMemberExplSpec;
 
82770
  friend class ::WinTypeKeywords;
 
82771
  friend class ::WinFriend;
 
82772
  friend class ::ExtAC;
 
82773
  friend class ::ExtACBuilderCoupling;
 
82774
  friend class ::ExtACSyntaxCoupling;
 
82775
  friend class ::ExtACTree;
 
82776
  friend class ::ExtACKeywords;
 
82777
  friend class ::ExtGnu;
 
82778
  friend class ::PragmaOnceUnitState;
 
82779
  friend class ::PragmaOnce;
 
82780
  friend class ::CMatchSyntax;
 
82781
 
 
82782
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82783
 
 
82784
protected:
 
82785
  /** Constructor. */
 
82786
  CT_Call () {}
 
82787
  
 
82788
public:
 
82789
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
82790
  static const char *NodeId ();
 
82791
  /** Get the name of the node. Can be compared with NodeId(). */
 
82792
  const char *NodeName () const { return NodeId (); }
 
82793
  /** Get the semantic information of the call.
 
82794
   *  \return The semantic information or NULL. */
 
82795
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
82796
  /** Get this. */
 
82797
  CT_Call *IsCall () { return this; }
 
82798
   private:
 
82799
  typedef CT_Call CCExprResolveExpr;
 
82800
 
 
82801
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82802
 public :
 
82803
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
82804
  typedef CT_Call CExprResolveExpr;
 
82805
 
 
82806
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82807
 public :
 
82808
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82809
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82810
};
 
82811
 
 
82812
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
82813
 *  Tree node representing implicit function calls detected by
 
82814
 *  the semantic analysis. */
 
82815
 
 
82816
#line 82817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82817
} // closed Puma
 
82818
class CCExprResolve;
 
82819
class CExprResolve;
 
82820
class WinIfExists;
 
82821
class WinImportHandler;
 
82822
class WinMacros;
 
82823
class WinAsm;
 
82824
class WinDeclSpecs;
 
82825
class WinMemberExplSpec;
 
82826
class WinTypeKeywords;
 
82827
class WinFriend;
 
82828
class ExtAC;
 
82829
class ExtACBuilderCoupling;
 
82830
class ExtACSyntaxCoupling;
 
82831
class ExtACTree;
 
82832
class ExtACKeywords;
 
82833
class ExtGnu;
 
82834
class PragmaOnceUnitState;
 
82835
class PragmaOnce;
 
82836
class CMatchSyntax;
 
82837
namespace Puma {
 
82838
 
 
82839
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82840
 
 
82841
#line 82842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82842
} // closed Puma
 
82843
 
 
82844
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82845
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82846
#include "CCExprResolveH.ah"
 
82847
#endif
 
82848
namespace Puma {
 
82849
 
 
82850
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82851
 
 
82852
#line 82853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82853
} // closed Puma
 
82854
 
 
82855
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82856
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82857
#include "CExprResolveH.ah"
 
82858
#endif
 
82859
namespace Puma {
 
82860
 
 
82861
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82862
class CT_ImplicitCall : public CT_Call {
 
82863
#line 82864 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82864
  friend class ::CCExprResolve;
 
82865
  friend class ::CExprResolve;
 
82866
  friend class ::WinIfExists;
 
82867
  friend class ::WinImportHandler;
 
82868
  friend class ::WinMacros;
 
82869
  friend class ::WinAsm;
 
82870
  friend class ::WinDeclSpecs;
 
82871
  friend class ::WinMemberExplSpec;
 
82872
  friend class ::WinTypeKeywords;
 
82873
  friend class ::WinFriend;
 
82874
  friend class ::ExtAC;
 
82875
  friend class ::ExtACBuilderCoupling;
 
82876
  friend class ::ExtACSyntaxCoupling;
 
82877
  friend class ::ExtACTree;
 
82878
  friend class ::ExtACKeywords;
 
82879
  friend class ::ExtGnu;
 
82880
  friend class ::PragmaOnceUnitState;
 
82881
  friend class ::PragmaOnce;
 
82882
  friend class ::CMatchSyntax;
 
82883
 
 
82884
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82885
 
 
82886
  CTree *_arg;
 
82887
 
 
82888
public:
 
82889
  /** Constructor.
 
82890
   *  \param arg The call argument. */
 
82891
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
82892
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
82893
  static const char *NodeId ();
 
82894
  /** Get the name of the node. Can be compared with NodeId(). */
 
82895
  const char *NodeName () const { return NodeId (); }
 
82896
  /** Get the number of sons. */
 
82897
  int Sons () const { return 1; }
 
82898
  /** Get the n-th son.
 
82899
   *  \param n The index of the son.
 
82900
   *  \return The n-th son or NULL. */
 
82901
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
82902
  /** Replace a son.
 
82903
   *  \param old_son The son to replace.
 
82904
   *  \param new_son The new son. */
 
82905
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
82906
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
82907
   private:
 
82908
  typedef CT_ImplicitCall CCExprResolveExpr;
 
82909
 
 
82910
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82911
 public :
 
82912
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
82913
  typedef CT_ImplicitCall CExprResolveExpr;
 
82914
 
 
82915
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82916
 public :
 
82917
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82918
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82919
};
 
82920
 
 
82921
/** \class CT_String CTree.h Puma/CTree.h
 
82922
 *  Tree node representing a string literal. */
 
82923
 
 
82924
#line 82925 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82925
} // closed Puma
 
82926
class CCExprResolve;
 
82927
class CExprResolve;
 
82928
class WinIfExists;
 
82929
class WinImportHandler;
 
82930
class WinMacros;
 
82931
class WinAsm;
 
82932
class WinDeclSpecs;
 
82933
class WinMemberExplSpec;
 
82934
class WinTypeKeywords;
 
82935
class WinFriend;
 
82936
class ExtAC;
 
82937
class ExtACBuilderCoupling;
 
82938
class ExtACSyntaxCoupling;
 
82939
class ExtACTree;
 
82940
class ExtACKeywords;
 
82941
class ExtGnu;
 
82942
class PragmaOnceUnitState;
 
82943
class PragmaOnce;
 
82944
class CMatchSyntax;
 
82945
namespace Puma {
 
82946
 
 
82947
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82948
 
 
82949
#line 82950 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82950
} // closed Puma
 
82951
 
 
82952
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82953
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82954
#include "CCExprResolveH.ah"
 
82955
#endif
 
82956
namespace Puma {
 
82957
 
 
82958
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82959
 
 
82960
#line 82961 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82961
} // closed Puma
 
82962
 
 
82963
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82964
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82965
#include "CExprResolveH.ah"
 
82966
#endif
 
82967
namespace Puma {
 
82968
 
 
82969
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37257
82970
class CT_String : public CT_List, public CSemValue {
37258
 
#line 37259 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
82971
#line 82972 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
82972
  friend class ::CCExprResolve;
 
82973
  friend class ::CExprResolve;
37259
82974
  friend class ::WinIfExists;
37260
82975
  friend class ::WinImportHandler;
37261
82976
  friend class ::WinMacros;
37262
 
  friend class ::CMatchSyntax;
37263
 
  friend class ::ExtGnu;
 
82977
  friend class ::WinAsm;
 
82978
  friend class ::WinDeclSpecs;
 
82979
  friend class ::WinMemberExplSpec;
 
82980
  friend class ::WinTypeKeywords;
 
82981
  friend class ::WinFriend;
37264
82982
  friend class ::ExtAC;
37265
82983
  friend class ::ExtACBuilderCoupling;
37266
82984
  friend class ::ExtACSyntaxCoupling;
37267
82985
  friend class ::ExtACTree;
37268
82986
  friend class ::ExtACKeywords;
37269
 
  friend class ::WinAsm;
37270
 
  friend class ::WinDeclSpecs;
37271
 
  friend class ::WinMemberExplSpec;
37272
 
  friend class ::WinTypeKeywords;
 
82987
  friend class ::ExtGnu;
37273
82988
  friend class ::PragmaOnceUnitState;
37274
82989
  friend class ::PragmaOnce;
37275
 
  friend class ::CCExprResolve;
37276
 
  friend class ::CExprResolve;
 
82990
  friend class ::CMatchSyntax;
37277
82991
 
37278
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82992
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37279
82993
 
37280
82994
public:
 
82995
  /** Constructor. 
 
82996
   *  \param size The number of sub-strings. */
37281
82997
  CT_String (int size) : CT_List (size, 1) {}
 
82998
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37282
82999
  static const char *NodeId ();
 
83000
  /** Get the name of the node. Can be compared with NodeId(). */
37283
83001
  const char *NodeName () const { return NodeId (); }
37284
83002
 
 
83003
  /** Get the type of the string. 
 
83004
   *  \return The type or NULL. */
37285
83005
  CTypeInfo *Type () const { return type; }
 
83006
  /** Get the string value.
 
83007
   *  \return The value or NULL. */
37286
83008
  CExprValue *Value () const { return value; }
 
83009
  /** Get the semantic value info object.
 
83010
   *  \return The semantic value object or NULL. */
37287
83011
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
83012
  /** Get this. */
 
83013
  virtual CT_String *IsString () { return this; }
37288
83014
   private:
37289
83015
  typedef CT_String CCExprResolveExpr;
37290
83016
 
37291
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83017
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37292
83018
 public :
37293
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83019
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37294
83020
  typedef CT_String CExprResolveExpr;
37295
83021
 
37296
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83022
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37297
83023
 public :
37298
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37299
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83024
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83025
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37300
83026
};
37301
83027
 
 
83028
/** \class CT_WideString CTree.h Puma/CTree.h
 
83029
 *  Tree node representing a wide string literal. */
37302
83030
 
37303
 
#line 37304 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83031
#line 83032 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
37304
83032
} // closed Puma
 
83033
class CCExprResolve;
 
83034
class CExprResolve;
37305
83035
class WinIfExists;
37306
83036
class WinImportHandler;
37307
83037
class WinMacros;
37308
 
class CMatchSyntax;
37309
 
class ExtGnu;
 
83038
class WinAsm;
 
83039
class WinDeclSpecs;
 
83040
class WinMemberExplSpec;
 
83041
class WinTypeKeywords;
 
83042
class WinFriend;
37310
83043
class ExtAC;
37311
83044
class ExtACBuilderCoupling;
37312
83045
class ExtACSyntaxCoupling;
37313
83046
class ExtACTree;
37314
83047
class ExtACKeywords;
37315
 
class WinAsm;
37316
 
class WinDeclSpecs;
37317
 
class WinMemberExplSpec;
37318
 
class WinTypeKeywords;
 
83048
class ExtGnu;
37319
83049
class PragmaOnceUnitState;
37320
83050
class PragmaOnce;
37321
 
class CCExprResolve;
37322
 
class CExprResolve;
37323
 
namespace Puma {
37324
 
 
37325
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83051
class CMatchSyntax;
 
83052
namespace Puma {
 
83053
 
 
83054
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83055
 
 
83056
#line 83057 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83057
} // closed Puma
 
83058
 
 
83059
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83060
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83061
#include "CCExprResolveH.ah"
 
83062
#endif
 
83063
namespace Puma {
 
83064
 
 
83065
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83066
 
 
83067
#line 83068 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83068
} // closed Puma
 
83069
 
 
83070
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83071
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83072
#include "CExprResolveH.ah"
 
83073
#endif
 
83074
namespace Puma {
 
83075
 
 
83076
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37326
83077
class CT_WideString : public CT_String {
37327
 
#line 37328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83078
#line 83079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83079
  friend class ::CCExprResolve;
 
83080
  friend class ::CExprResolve;
37328
83081
  friend class ::WinIfExists;
37329
83082
  friend class ::WinImportHandler;
37330
83083
  friend class ::WinMacros;
37331
 
  friend class ::CMatchSyntax;
37332
 
  friend class ::ExtGnu;
 
83084
  friend class ::WinAsm;
 
83085
  friend class ::WinDeclSpecs;
 
83086
  friend class ::WinMemberExplSpec;
 
83087
  friend class ::WinTypeKeywords;
 
83088
  friend class ::WinFriend;
37333
83089
  friend class ::ExtAC;
37334
83090
  friend class ::ExtACBuilderCoupling;
37335
83091
  friend class ::ExtACSyntaxCoupling;
37336
83092
  friend class ::ExtACTree;
37337
83093
  friend class ::ExtACKeywords;
37338
 
  friend class ::WinAsm;
37339
 
  friend class ::WinDeclSpecs;
37340
 
  friend class ::WinMemberExplSpec;
37341
 
  friend class ::WinTypeKeywords;
 
83094
  friend class ::ExtGnu;
37342
83095
  friend class ::PragmaOnceUnitState;
37343
83096
  friend class ::PragmaOnce;
37344
 
  friend class ::CCExprResolve;
37345
 
  friend class ::CExprResolve;
 
83097
  friend class ::CMatchSyntax;
37346
83098
 
37347
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83099
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37348
83100
 
37349
83101
public:
 
83102
  /** Constructor.
 
83103
   *  \param size The number of sub-strings. */
37350
83104
  CT_WideString (int size) : CT_String (size) {}
 
83105
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37351
83106
  static const char *NodeId ();
 
83107
  /** Get the name of the node. Can be compared with NodeId(). */
37352
83108
  const char *NodeName () const { return NodeId (); }
37353
83109
   private:
37354
83110
  typedef CT_WideString CCExprResolveExpr;
37355
83111
 
37356
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83112
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37357
83113
 public :
37358
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83114
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37359
83115
  typedef CT_WideString CExprResolveExpr;
37360
83116
 
37361
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83117
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37362
83118
 public :
37363
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37364
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83119
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83120
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37365
83121
};
37366
83122
 
 
83123
/** \class CT_Integer CTree.h Puma/CTree.h
 
83124
 *  Tree node representing an integer constant. */
37367
83125
 
37368
 
#line 37369 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83126
#line 83127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
37369
83127
} // closed Puma
 
83128
class CCExprResolve;
 
83129
class CExprResolve;
37370
83130
class WinIfExists;
37371
83131
class WinImportHandler;
37372
83132
class WinMacros;
37373
 
class CMatchSyntax;
37374
 
class ExtGnu;
 
83133
class WinAsm;
 
83134
class WinDeclSpecs;
 
83135
class WinMemberExplSpec;
 
83136
class WinTypeKeywords;
 
83137
class WinFriend;
37375
83138
class ExtAC;
37376
83139
class ExtACBuilderCoupling;
37377
83140
class ExtACSyntaxCoupling;
37378
83141
class ExtACTree;
37379
83142
class ExtACKeywords;
37380
 
class WinAsm;
37381
 
class WinDeclSpecs;
37382
 
class WinMemberExplSpec;
37383
 
class WinTypeKeywords;
 
83143
class ExtGnu;
37384
83144
class PragmaOnceUnitState;
37385
83145
class PragmaOnce;
37386
 
class CCExprResolve;
37387
 
class CExprResolve;
37388
 
namespace Puma {
37389
 
 
37390
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83146
class CMatchSyntax;
 
83147
namespace Puma {
 
83148
 
 
83149
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83150
 
 
83151
#line 83152 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83152
} // closed Puma
 
83153
 
 
83154
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83155
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83156
#include "CCExprResolveH.ah"
 
83157
#endif
 
83158
namespace Puma {
 
83159
 
 
83160
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83161
 
 
83162
#line 83163 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83163
} // closed Puma
 
83164
 
 
83165
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83166
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83167
#include "CExprResolveH.ah"
 
83168
#endif
 
83169
namespace Puma {
 
83170
 
 
83171
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37391
83172
class CT_Integer : public CT_Expression {
37392
 
#line 37393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83173
#line 83174 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83174
  friend class ::CCExprResolve;
 
83175
  friend class ::CExprResolve;
37393
83176
  friend class ::WinIfExists;
37394
83177
  friend class ::WinImportHandler;
37395
83178
  friend class ::WinMacros;
37396
 
  friend class ::CMatchSyntax;
37397
 
  friend class ::ExtGnu;
 
83179
  friend class ::WinAsm;
 
83180
  friend class ::WinDeclSpecs;
 
83181
  friend class ::WinMemberExplSpec;
 
83182
  friend class ::WinTypeKeywords;
 
83183
  friend class ::WinFriend;
37398
83184
  friend class ::ExtAC;
37399
83185
  friend class ::ExtACBuilderCoupling;
37400
83186
  friend class ::ExtACSyntaxCoupling;
37401
83187
  friend class ::ExtACTree;
37402
83188
  friend class ::ExtACKeywords;
37403
 
  friend class ::WinAsm;
37404
 
  friend class ::WinDeclSpecs;
37405
 
  friend class ::WinMemberExplSpec;
37406
 
  friend class ::WinTypeKeywords;
 
83189
  friend class ::ExtGnu;
37407
83190
  friend class ::PragmaOnceUnitState;
37408
83191
  friend class ::PragmaOnce;
37409
 
  friend class ::CCExprResolve;
37410
 
  friend class ::CExprResolve;
 
83192
  friend class ::CMatchSyntax;
37411
83193
 
37412
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83194
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37413
83195
 
37414
83196
  CTree *_value;  // CT_Token
37415
83197
 
37416
83198
public:
37417
 
  CT_Integer (CTree *t) : _value (t) {}
 
83199
  /** Constructor.
 
83200
   *  \param token The token containing the integer value. */
 
83201
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
83202
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37418
83203
  static const char *NodeId ();
 
83204
  /** Get the name of the node. Can be compared with NodeId(). */
37419
83205
  const char *NodeName () const { return NodeId (); }
 
83206
  /** Get the number of sons. */
37420
83207
  int Sons () const { return _value ? 1 : 0; }
 
83208
  /** Get the n-th son.
 
83209
   *  \param n The index of the son.
 
83210
   *  \return The n-th son or NULL. */
37421
83211
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
83212
  /** Replace a son.
 
83213
   *  \param old_son The son to replace.
 
83214
   *  \param new_son The new son. */
37422
83215
  void ReplaceSon (CTree *old_son, CTree *new_son) 
37423
 
   { if (old_son == _value) _value = new_son; }
 
83216
   { CTree::ReplaceSon (_value, old_son, new_son); }
37424
83217
   private:
37425
83218
  typedef CT_Integer CCExprResolveExpr;
37426
83219
 
37427
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83220
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37428
83221
 public :
37429
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83222
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37430
83223
  typedef CT_Integer CExprResolveExpr;
37431
83224
 
37432
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83225
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37433
83226
 public :
37434
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37435
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83227
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83228
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37436
83229
};
37437
83230
 
 
83231
/** \class CT_Character CTree.h Puma/CTree.h
 
83232
 *  Tree node representing a single character constant. */
37438
83233
 
37439
 
#line 37440 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83234
#line 83235 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
37440
83235
} // closed Puma
 
83236
class CCExprResolve;
 
83237
class CExprResolve;
37441
83238
class WinIfExists;
37442
83239
class WinImportHandler;
37443
83240
class WinMacros;
37444
 
class CMatchSyntax;
37445
 
class ExtGnu;
 
83241
class WinAsm;
 
83242
class WinDeclSpecs;
 
83243
class WinMemberExplSpec;
 
83244
class WinTypeKeywords;
 
83245
class WinFriend;
37446
83246
class ExtAC;
37447
83247
class ExtACBuilderCoupling;
37448
83248
class ExtACSyntaxCoupling;
37449
83249
class ExtACTree;
37450
83250
class ExtACKeywords;
37451
 
class WinAsm;
37452
 
class WinDeclSpecs;
37453
 
class WinMemberExplSpec;
37454
 
class WinTypeKeywords;
 
83251
class ExtGnu;
37455
83252
class PragmaOnceUnitState;
37456
83253
class PragmaOnce;
37457
 
class CCExprResolve;
37458
 
class CExprResolve;
37459
 
namespace Puma {
37460
 
 
37461
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83254
class CMatchSyntax;
 
83255
namespace Puma {
 
83256
 
 
83257
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83258
 
 
83259
#line 83260 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83260
} // closed Puma
 
83261
 
 
83262
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83263
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83264
#include "CCExprResolveH.ah"
 
83265
#endif
 
83266
namespace Puma {
 
83267
 
 
83268
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83269
 
 
83270
#line 83271 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83271
} // closed Puma
 
83272
 
 
83273
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83274
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83275
#include "CExprResolveH.ah"
 
83276
#endif
 
83277
namespace Puma {
 
83278
 
 
83279
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37462
83280
class CT_Character : public CT_Expression {
37463
 
#line 37464 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83281
#line 83282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83282
  friend class ::CCExprResolve;
 
83283
  friend class ::CExprResolve;
37464
83284
  friend class ::WinIfExists;
37465
83285
  friend class ::WinImportHandler;
37466
83286
  friend class ::WinMacros;
37467
 
  friend class ::CMatchSyntax;
37468
 
  friend class ::ExtGnu;
 
83287
  friend class ::WinAsm;
 
83288
  friend class ::WinDeclSpecs;
 
83289
  friend class ::WinMemberExplSpec;
 
83290
  friend class ::WinTypeKeywords;
 
83291
  friend class ::WinFriend;
37469
83292
  friend class ::ExtAC;
37470
83293
  friend class ::ExtACBuilderCoupling;
37471
83294
  friend class ::ExtACSyntaxCoupling;
37472
83295
  friend class ::ExtACTree;
37473
83296
  friend class ::ExtACKeywords;
37474
 
  friend class ::WinAsm;
37475
 
  friend class ::WinDeclSpecs;
37476
 
  friend class ::WinMemberExplSpec;
37477
 
  friend class ::WinTypeKeywords;
 
83297
  friend class ::ExtGnu;
37478
83298
  friend class ::PragmaOnceUnitState;
37479
83299
  friend class ::PragmaOnce;
37480
 
  friend class ::CCExprResolve;
37481
 
  friend class ::CExprResolve;
 
83300
  friend class ::CMatchSyntax;
37482
83301
 
37483
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83302
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37484
83303
 
37485
83304
  CTree *_value;  // CT_Token
37486
83305
 
37487
83306
public:
37488
 
  CT_Character (CTree *t) : _value (t) {}
 
83307
  /** Constructor.
 
83308
   *  \param token The token containing the character value. */
 
83309
  CT_Character (CTree *token) { AddSon (_value, token); }
 
83310
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37489
83311
  static const char *NodeId ();
 
83312
  /** Get the name of the node. Can be compared with NodeId(). */
37490
83313
  const char *NodeName () const { return NodeId (); }
 
83314
  /** Get the number of sons. */
37491
83315
  int Sons () const { return 1; }
 
83316
  /** Get the n-th son.
 
83317
   *  \param n The index of the son.
 
83318
   *  \return The n-th son or NULL. */
37492
83319
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
83320
  /** Replace a son.
 
83321
   *  \param old_son The son to replace.
 
83322
   *  \param new_son The new son. */
37493
83323
  void ReplaceSon (CTree *old_son, CTree *new_son) 
37494
 
   { if (old_son == _value) _value = new_son; }
 
83324
   { CTree::ReplaceSon (_value, old_son, new_son); }
37495
83325
   private:
37496
83326
  typedef CT_Character CCExprResolveExpr;
37497
83327
 
37498
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83328
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37499
83329
 public :
37500
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83330
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37501
83331
  typedef CT_Character CExprResolveExpr;
37502
83332
 
37503
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83333
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37504
83334
 public :
37505
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37506
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83335
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83336
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37507
83337
};
37508
83338
 
 
83339
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
83340
 *  Tree node representing a wide character constant. */
37509
83341
 
37510
 
#line 37511 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83342
#line 83343 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
37511
83343
} // closed Puma
 
83344
class CCExprResolve;
 
83345
class CExprResolve;
37512
83346
class WinIfExists;
37513
83347
class WinImportHandler;
37514
83348
class WinMacros;
37515
 
class CMatchSyntax;
37516
 
class ExtGnu;
 
83349
class WinAsm;
 
83350
class WinDeclSpecs;
 
83351
class WinMemberExplSpec;
 
83352
class WinTypeKeywords;
 
83353
class WinFriend;
37517
83354
class ExtAC;
37518
83355
class ExtACBuilderCoupling;
37519
83356
class ExtACSyntaxCoupling;
37520
83357
class ExtACTree;
37521
83358
class ExtACKeywords;
37522
 
class WinAsm;
37523
 
class WinDeclSpecs;
37524
 
class WinMemberExplSpec;
37525
 
class WinTypeKeywords;
 
83359
class ExtGnu;
37526
83360
class PragmaOnceUnitState;
37527
83361
class PragmaOnce;
37528
 
class CCExprResolve;
37529
 
class CExprResolve;
37530
 
namespace Puma {
37531
 
 
37532
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83362
class CMatchSyntax;
 
83363
namespace Puma {
 
83364
 
 
83365
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83366
 
 
83367
#line 83368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83368
} // closed Puma
 
83369
 
 
83370
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83371
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83372
#include "CCExprResolveH.ah"
 
83373
#endif
 
83374
namespace Puma {
 
83375
 
 
83376
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83377
 
 
83378
#line 83379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83379
} // closed Puma
 
83380
 
 
83381
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83382
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83383
#include "CExprResolveH.ah"
 
83384
#endif
 
83385
namespace Puma {
 
83386
 
 
83387
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37533
83388
class CT_WideCharacter : public CT_Character {
37534
 
#line 37535 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83389
#line 83390 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83390
  friend class ::CCExprResolve;
 
83391
  friend class ::CExprResolve;
37535
83392
  friend class ::WinIfExists;
37536
83393
  friend class ::WinImportHandler;
37537
83394
  friend class ::WinMacros;
37538
 
  friend class ::CMatchSyntax;
37539
 
  friend class ::ExtGnu;
 
83395
  friend class ::WinAsm;
 
83396
  friend class ::WinDeclSpecs;
 
83397
  friend class ::WinMemberExplSpec;
 
83398
  friend class ::WinTypeKeywords;
 
83399
  friend class ::WinFriend;
37540
83400
  friend class ::ExtAC;
37541
83401
  friend class ::ExtACBuilderCoupling;
37542
83402
  friend class ::ExtACSyntaxCoupling;
37543
83403
  friend class ::ExtACTree;
37544
83404
  friend class ::ExtACKeywords;
37545
 
  friend class ::WinAsm;
37546
 
  friend class ::WinDeclSpecs;
37547
 
  friend class ::WinMemberExplSpec;
37548
 
  friend class ::WinTypeKeywords;
 
83405
  friend class ::ExtGnu;
37549
83406
  friend class ::PragmaOnceUnitState;
37550
83407
  friend class ::PragmaOnce;
37551
 
  friend class ::CCExprResolve;
37552
 
  friend class ::CExprResolve;
37553
 
 
37554
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37555
 
 
37556
 
  CTree *_value;  // CT_Token
 
83408
  friend class ::CMatchSyntax;
 
83409
 
 
83410
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37557
83411
 
37558
83412
public:
37559
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
83413
  /** Constructor.
 
83414
   *  \param token The token containing the wide character value. */
 
83415
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
83416
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37560
83417
  static const char *NodeId ();
 
83418
  /** Get the name of the node. Can be compared with NodeId(). */
37561
83419
  const char *NodeName () const { return NodeId (); }
37562
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
37563
 
   { if (old_son == _value) _value = new_son; }
37564
83420
   private:
37565
83421
  typedef CT_WideCharacter CCExprResolveExpr;
37566
83422
 
37567
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83423
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37568
83424
 public :
37569
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83425
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37570
83426
  typedef CT_WideCharacter CExprResolveExpr;
37571
83427
 
37572
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83428
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37573
83429
 public :
37574
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37575
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83430
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83431
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37576
83432
};
37577
83433
 
 
83434
/** \class CT_Float CTree.h Puma/CTree.h
 
83435
 *  Tree node representing a floating point constant. */
37578
83436
 
37579
 
#line 37580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83437
#line 83438 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
37580
83438
} // closed Puma
 
83439
class CCExprResolve;
 
83440
class CExprResolve;
37581
83441
class WinIfExists;
37582
83442
class WinImportHandler;
37583
83443
class WinMacros;
37584
 
class CMatchSyntax;
37585
 
class ExtGnu;
 
83444
class WinAsm;
 
83445
class WinDeclSpecs;
 
83446
class WinMemberExplSpec;
 
83447
class WinTypeKeywords;
 
83448
class WinFriend;
37586
83449
class ExtAC;
37587
83450
class ExtACBuilderCoupling;
37588
83451
class ExtACSyntaxCoupling;
37589
83452
class ExtACTree;
37590
83453
class ExtACKeywords;
37591
 
class WinAsm;
37592
 
class WinDeclSpecs;
37593
 
class WinMemberExplSpec;
37594
 
class WinTypeKeywords;
 
83454
class ExtGnu;
37595
83455
class PragmaOnceUnitState;
37596
83456
class PragmaOnce;
37597
 
class CCExprResolve;
37598
 
class CExprResolve;
37599
 
namespace Puma {
37600
 
 
37601
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83457
class CMatchSyntax;
 
83458
namespace Puma {
 
83459
 
 
83460
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83461
 
 
83462
#line 83463 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83463
} // closed Puma
 
83464
 
 
83465
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83466
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83467
#include "CCExprResolveH.ah"
 
83468
#endif
 
83469
namespace Puma {
 
83470
 
 
83471
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83472
 
 
83473
#line 83474 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83474
} // closed Puma
 
83475
 
 
83476
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83477
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83478
#include "CExprResolveH.ah"
 
83479
#endif
 
83480
namespace Puma {
 
83481
 
 
83482
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37602
83483
class CT_Float : public CT_Expression {
37603
 
#line 37604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83484
#line 83485 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83485
  friend class ::CCExprResolve;
 
83486
  friend class ::CExprResolve;
37604
83487
  friend class ::WinIfExists;
37605
83488
  friend class ::WinImportHandler;
37606
83489
  friend class ::WinMacros;
37607
 
  friend class ::CMatchSyntax;
37608
 
  friend class ::ExtGnu;
 
83490
  friend class ::WinAsm;
 
83491
  friend class ::WinDeclSpecs;
 
83492
  friend class ::WinMemberExplSpec;
 
83493
  friend class ::WinTypeKeywords;
 
83494
  friend class ::WinFriend;
37609
83495
  friend class ::ExtAC;
37610
83496
  friend class ::ExtACBuilderCoupling;
37611
83497
  friend class ::ExtACSyntaxCoupling;
37612
83498
  friend class ::ExtACTree;
37613
83499
  friend class ::ExtACKeywords;
37614
 
  friend class ::WinAsm;
37615
 
  friend class ::WinDeclSpecs;
37616
 
  friend class ::WinMemberExplSpec;
37617
 
  friend class ::WinTypeKeywords;
 
83500
  friend class ::ExtGnu;
37618
83501
  friend class ::PragmaOnceUnitState;
37619
83502
  friend class ::PragmaOnce;
37620
 
  friend class ::CCExprResolve;
37621
 
  friend class ::CExprResolve;
 
83503
  friend class ::CMatchSyntax;
37622
83504
 
37623
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83505
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37624
83506
 
37625
83507
  CTree *_value;  // CT_Token
37626
83508
 
37627
83509
public:
37628
 
  CT_Float (CTree *t) : _value (t) {}
 
83510
  /** Constructor.
 
83511
   *  \param token The token containing the floating point value. */
 
83512
  CT_Float (CTree *token) { AddSon (_value, token); }
 
83513
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37629
83514
  static const char *NodeId ();
 
83515
  /** Get the name of the node. Can be compared with NodeId(). */
37630
83516
  const char *NodeName () const { return NodeId (); }
 
83517
  /** Get the number of sons. */
37631
83518
  int Sons () const { return 1; }
 
83519
  /** Get the n-th son.
 
83520
   *  \param n The index of the son.
 
83521
   *  \return The n-th son or NULL. */
37632
83522
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
83523
  /** Replace a son.
 
83524
   *  \param old_son The son to replace.
 
83525
   *  \param new_son The new son. */
37633
83526
  void ReplaceSon (CTree *old_son, CTree *new_son) 
37634
 
   { if (old_son == _value) _value = new_son; }
 
83527
   { CTree::ReplaceSon (_value, old_son, new_son); }
37635
83528
   private:
37636
83529
  typedef CT_Float CCExprResolveExpr;
37637
83530
 
37638
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83531
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37639
83532
 public :
37640
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83533
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37641
83534
  typedef CT_Float CExprResolveExpr;
37642
83535
 
37643
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83536
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37644
83537
 public :
37645
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37646
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83538
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83539
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37647
83540
};
37648
83541
 
 
83542
/** \class CT_Bool CTree.h Puma/CTree.h
 
83543
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
37649
83544
 
37650
 
#line 37651 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83545
#line 83546 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
37651
83546
} // closed Puma
 
83547
class CCExprResolve;
 
83548
class CExprResolve;
37652
83549
class WinIfExists;
37653
83550
class WinImportHandler;
37654
83551
class WinMacros;
37655
 
class CMatchSyntax;
37656
 
class ExtGnu;
 
83552
class WinAsm;
 
83553
class WinDeclSpecs;
 
83554
class WinMemberExplSpec;
 
83555
class WinTypeKeywords;
 
83556
class WinFriend;
37657
83557
class ExtAC;
37658
83558
class ExtACBuilderCoupling;
37659
83559
class ExtACSyntaxCoupling;
37660
83560
class ExtACTree;
37661
83561
class ExtACKeywords;
37662
 
class WinAsm;
37663
 
class WinDeclSpecs;
37664
 
class WinMemberExplSpec;
37665
 
class WinTypeKeywords;
 
83562
class ExtGnu;
37666
83563
class PragmaOnceUnitState;
37667
83564
class PragmaOnce;
37668
 
class CCExprResolve;
37669
 
class CExprResolve;
37670
 
namespace Puma {
37671
 
 
37672
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83565
class CMatchSyntax;
 
83566
namespace Puma {
 
83567
 
 
83568
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83569
 
 
83570
#line 83571 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83571
} // closed Puma
 
83572
 
 
83573
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83574
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83575
#include "CCExprResolveH.ah"
 
83576
#endif
 
83577
namespace Puma {
 
83578
 
 
83579
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83580
 
 
83581
#line 83582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83582
} // closed Puma
 
83583
 
 
83584
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83585
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83586
#include "CExprResolveH.ah"
 
83587
#endif
 
83588
namespace Puma {
 
83589
 
 
83590
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37673
83591
class CT_Bool : public CT_Expression {
37674
 
#line 37675 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83592
#line 83593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83593
  friend class ::CCExprResolve;
 
83594
  friend class ::CExprResolve;
37675
83595
  friend class ::WinIfExists;
37676
83596
  friend class ::WinImportHandler;
37677
83597
  friend class ::WinMacros;
37678
 
  friend class ::CMatchSyntax;
37679
 
  friend class ::ExtGnu;
 
83598
  friend class ::WinAsm;
 
83599
  friend class ::WinDeclSpecs;
 
83600
  friend class ::WinMemberExplSpec;
 
83601
  friend class ::WinTypeKeywords;
 
83602
  friend class ::WinFriend;
37680
83603
  friend class ::ExtAC;
37681
83604
  friend class ::ExtACBuilderCoupling;
37682
83605
  friend class ::ExtACSyntaxCoupling;
37683
83606
  friend class ::ExtACTree;
37684
83607
  friend class ::ExtACKeywords;
37685
 
  friend class ::WinAsm;
37686
 
  friend class ::WinDeclSpecs;
37687
 
  friend class ::WinMemberExplSpec;
37688
 
  friend class ::WinTypeKeywords;
 
83608
  friend class ::ExtGnu;
37689
83609
  friend class ::PragmaOnceUnitState;
37690
83610
  friend class ::PragmaOnce;
37691
 
  friend class ::CCExprResolve;
37692
 
  friend class ::CExprResolve;
 
83611
  friend class ::CMatchSyntax;
37693
83612
 
37694
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83613
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37695
83614
 
37696
83615
  CTree *_value;  // CT_Token
37697
83616
 
37698
83617
public:
37699
 
  CT_Bool (CTree *t) : _value (t) {}
 
83618
  /** Constructor.
 
83619
   *  \param token The token containing the boolean value. */
 
83620
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
83621
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37700
83622
  static const char *NodeId ();
 
83623
  /** Get the name of the node. Can be compared with NodeId(). */
37701
83624
  const char *NodeName () const { return NodeId (); }
 
83625
  /** Get the number of sons. */
37702
83626
  int Sons () const { return 1; }
 
83627
  /** Get the n-th son.
 
83628
   *  \param n The index of the son.
 
83629
   *  \return The n-th son or NULL. */
37703
83630
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
83631
  /** Replace a son.
 
83632
   *  \param old_son The son to replace.
 
83633
   *  \param new_son The new son. */
37704
83634
  void ReplaceSon (CTree *old_son, CTree *new_son) 
37705
 
   { if (old_son == _value) _value = new_son; }
 
83635
   { CTree::ReplaceSon (_value, old_son, new_son); }
37706
83636
   private:
37707
83637
  typedef CT_Bool CCExprResolveExpr;
37708
83638
 
37709
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83639
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37710
83640
 public :
37711
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83641
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37712
83642
  typedef CT_Bool CExprResolveExpr;
37713
83643
 
37714
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83644
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37715
83645
 public :
37716
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37717
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83646
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83647
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37718
83648
};
37719
83649
 
 
83650
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
83651
 *  Tree node representing a braced expression, e.g. (a+b). */
37720
83652
 
37721
 
#line 37722 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83653
#line 83654 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
37722
83654
} // closed Puma
 
83655
class CCExprResolve;
 
83656
class CExprResolve;
37723
83657
class WinIfExists;
37724
83658
class WinImportHandler;
37725
83659
class WinMacros;
37726
 
class CMatchSyntax;
37727
 
class ExtGnu;
 
83660
class WinAsm;
 
83661
class WinDeclSpecs;
 
83662
class WinMemberExplSpec;
 
83663
class WinTypeKeywords;
 
83664
class WinFriend;
37728
83665
class ExtAC;
37729
83666
class ExtACBuilderCoupling;
37730
83667
class ExtACSyntaxCoupling;
37731
83668
class ExtACTree;
37732
83669
class ExtACKeywords;
37733
 
class WinAsm;
37734
 
class WinDeclSpecs;
37735
 
class WinMemberExplSpec;
37736
 
class WinTypeKeywords;
 
83670
class ExtGnu;
37737
83671
class PragmaOnceUnitState;
37738
83672
class PragmaOnce;
37739
 
class CCExprResolve;
37740
 
class CExprResolve;
37741
 
namespace Puma {
37742
 
 
37743
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83673
class CMatchSyntax;
 
83674
namespace Puma {
 
83675
 
 
83676
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83677
 
 
83678
#line 83679 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83679
} // closed Puma
 
83680
 
 
83681
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83682
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83683
#include "CCExprResolveH.ah"
 
83684
#endif
 
83685
namespace Puma {
 
83686
 
 
83687
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83688
 
 
83689
#line 83690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83690
} // closed Puma
 
83691
 
 
83692
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83693
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83694
#include "CExprResolveH.ah"
 
83695
#endif
 
83696
namespace Puma {
 
83697
 
 
83698
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37744
83699
class CT_BracedExpr : public CT_Expression {
37745
 
#line 37746 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83700
#line 83701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83701
  friend class ::CCExprResolve;
 
83702
  friend class ::CExprResolve;
37746
83703
  friend class ::WinIfExists;
37747
83704
  friend class ::WinImportHandler;
37748
83705
  friend class ::WinMacros;
37749
 
  friend class ::CMatchSyntax;
37750
 
  friend class ::ExtGnu;
 
83706
  friend class ::WinAsm;
 
83707
  friend class ::WinDeclSpecs;
 
83708
  friend class ::WinMemberExplSpec;
 
83709
  friend class ::WinTypeKeywords;
 
83710
  friend class ::WinFriend;
37751
83711
  friend class ::ExtAC;
37752
83712
  friend class ::ExtACBuilderCoupling;
37753
83713
  friend class ::ExtACSyntaxCoupling;
37754
83714
  friend class ::ExtACTree;
37755
83715
  friend class ::ExtACKeywords;
37756
 
  friend class ::WinAsm;
37757
 
  friend class ::WinDeclSpecs;
37758
 
  friend class ::WinMemberExplSpec;
37759
 
  friend class ::WinTypeKeywords;
 
83716
  friend class ::ExtGnu;
37760
83717
  friend class ::PragmaOnceUnitState;
37761
83718
  friend class ::PragmaOnce;
37762
 
  friend class ::CCExprResolve;
37763
 
  friend class ::CExprResolve;
 
83719
  friend class ::CMatchSyntax;
37764
83720
 
37765
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83721
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37766
83722
 
37767
83723
  CTree *sons[3]; // open, expr, close
37768
83724
 
37769
83725
public:
 
83726
  /** Constructor.
 
83727
   *  \param o The opening brace.
 
83728
   *  \param e The enclosed expression.
 
83729
   *  \param c The closing brace. */
37770
83730
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
37771
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
83731
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
37772
83732
  }
 
83733
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37773
83734
  static const char *NodeId ();
 
83735
  /** Get the name of the node. Can be compared with NodeId(). */
37774
83736
  const char *NodeName () const { return NodeId (); }
 
83737
  /** Get the number of sons. */
37775
83738
  int Sons () const { return 3; }
 
83739
  /** Get the n-th son.
 
83740
   *  \param n The index of the son.
 
83741
   *  \return The n-th son or NULL. */
37776
83742
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
83743
  /** Get the enclosed expression. */
37777
83744
  CTree *Expr () const { return sons[1]; }
 
83745
  /** Get the type of the enclosed expression. */
37778
83746
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
83747
  /** Get the value of the enclosed expression. */
37779
83748
  CExprValue *Value () const { return Expr ()->Value (); }
 
83749
  /** Get the semantic value object. */
37780
83750
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
83751
  /** Replace a son.
 
83752
   *  \param old_son The son to replace.
 
83753
   *  \param new_son The new son. */
37781
83754
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
37782
83755
    CTree::ReplaceSon (sons, 3, old_son, new_son);
37783
83756
  }
37784
83757
   private:
37785
83758
  typedef CT_BracedExpr CCExprResolveExpr;
37786
83759
 
37787
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83760
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37788
83761
 public :
37789
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83762
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37790
83763
  typedef CT_BracedExpr CExprResolveExpr;
37791
83764
 
37792
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83765
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37793
83766
 public :
37794
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37795
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83767
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83768
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37796
83769
};
37797
83770
 
 
83771
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
83772
 *  Base class for all tree nodes representing a name. */
37798
83773
 
37799
 
#line 37800 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83774
#line 83775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
37800
83775
} // closed Puma
 
83776
class CCExprResolve;
 
83777
class CExprResolve;
37801
83778
class WinIfExists;
37802
83779
class WinImportHandler;
37803
83780
class WinMacros;
37804
 
class CMatchSyntax;
37805
 
class ExtGnu;
 
83781
class WinAsm;
 
83782
class WinDeclSpecs;
 
83783
class WinMemberExplSpec;
 
83784
class WinTypeKeywords;
 
83785
class WinFriend;
37806
83786
class ExtAC;
37807
83787
class ExtACBuilderCoupling;
37808
83788
class ExtACSyntaxCoupling;
37809
83789
class ExtACTree;
37810
83790
class ExtACKeywords;
37811
 
class WinAsm;
37812
 
class WinDeclSpecs;
37813
 
class WinMemberExplSpec;
37814
 
class WinTypeKeywords;
 
83791
class ExtGnu;
37815
83792
class PragmaOnceUnitState;
37816
83793
class PragmaOnce;
37817
 
class CCExprResolve;
37818
 
class CExprResolve;
37819
 
namespace Puma {
37820
 
 
37821
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83794
class CMatchSyntax;
 
83795
namespace Puma {
 
83796
 
 
83797
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83798
 
 
83799
#line 83800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83800
} // closed Puma
 
83801
 
 
83802
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83803
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83804
#include "CCExprResolveH.ah"
 
83805
#endif
 
83806
namespace Puma {
 
83807
 
 
83808
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83809
 
 
83810
#line 83811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83811
} // closed Puma
 
83812
 
 
83813
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83814
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83815
#include "CExprResolveH.ah"
 
83816
#endif
 
83817
namespace Puma {
 
83818
 
 
83819
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37822
83820
class CT_SimpleName : public CT_List, public Printable, 
37823
83821
                      public CSemValue, public CSemObject {
37824
 
#line 37825 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83822
#line 83823 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83823
  friend class ::CCExprResolve;
 
83824
  friend class ::CExprResolve;
37825
83825
  friend class ::WinIfExists;
37826
83826
  friend class ::WinImportHandler;
37827
83827
  friend class ::WinMacros;
37828
 
  friend class ::CMatchSyntax;
37829
 
  friend class ::ExtGnu;
 
83828
  friend class ::WinAsm;
 
83829
  friend class ::WinDeclSpecs;
 
83830
  friend class ::WinMemberExplSpec;
 
83831
  friend class ::WinTypeKeywords;
 
83832
  friend class ::WinFriend;
37830
83833
  friend class ::ExtAC;
37831
83834
  friend class ::ExtACBuilderCoupling;
37832
83835
  friend class ::ExtACSyntaxCoupling;
37833
83836
  friend class ::ExtACTree;
37834
83837
  friend class ::ExtACKeywords;
37835
 
  friend class ::WinAsm;
37836
 
  friend class ::WinDeclSpecs;
37837
 
  friend class ::WinMemberExplSpec;
37838
 
  friend class ::WinTypeKeywords;
 
83838
  friend class ::ExtGnu;
37839
83839
  friend class ::PragmaOnceUnitState;
37840
83840
  friend class ::PragmaOnce;
37841
 
  friend class ::CCExprResolve;
37842
 
  friend class ::CExprResolve;
 
83841
  friend class ::CMatchSyntax;
37843
83842
 
37844
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83843
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37845
83844
 
37846
83845
protected:
 
83846
  /** Constructor.
 
83847
   *  \param size The number of sub-names (for qualified names). */
37847
83848
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
83849
  /** Constructor.
 
83850
   *  \param size The number of sub-names (for qualified names). 
 
83851
   *  \param properties Additional name list properties (for root qualified names). */
37848
83852
  CT_SimpleName (int size, int properties) : 
37849
83853
    CT_List (size, 2, properties) {}
37850
83854
  
37851
83855
public:
 
83856
  /** Constructor.
 
83857
   *  \param n The sub-tree containing the name. */
37852
83858
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
83859
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37853
83860
  static const char *NodeId ();
 
83861
  /** Get the name of the node. Can be compared with NodeId(). */
37854
83862
  const char *NodeName () const { return NodeId (); }
 
83863
  /** Get the string containing the name. */
37855
83864
  virtual const char *Text () const 
37856
83865
   { return Son (Sons ()-1)->token ()->text (); }
 
83866
  /** Print the name on the given stream. 
 
83867
   *  \param os The output stream. */
37857
83868
  virtual void print (ostream &os) const { os << Text (); }
 
83869
  /** Get this. */
37858
83870
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
83871
  /** Get the type of the entity represented by the name. */
37859
83872
  CTypeInfo *Type () const { return type; }
 
83873
  /** Get the value of the entity represented by the name. */ 
37860
83874
  CExprValue *Value () const { return value; }
 
83875
  /** Get the sematic value information object. */
37861
83876
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
83877
  /** Get the sematic information object. */
37862
83878
  CSemObject *SemObject () const { return (CSemObject*)this; }
37863
 
  // special new / delete with reusing memory
37864
 
  void *operator new (size_t);
37865
 
  void  operator delete (void *);
37866
 
  // classification function
 
83879
  /** Get this. */
37867
83880
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
83881
 
 
83882
public:
 
83883
  /** Own new operator reusing memory. */
 
83884
  void *operator new (size_t);
 
83885
  /** Own delete operator. */
 
83886
  void operator delete (void *);
37868
83887
   private:
37869
83888
  typedef CT_SimpleName CCExprResolveExpr;
37870
83889
 
37871
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83890
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37872
83891
 public :
37873
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83892
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37874
83893
  typedef CT_SimpleName CExprResolveExpr;
37875
83894
 
37876
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83895
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37877
83896
 public :
37878
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37879
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83897
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83898
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37880
83899
};
37881
83900
 
 
83901
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
83902
 *  Base class for tree nodes representing a special name, like destructor names. */
37882
83903
 
37883
 
#line 37884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83904
#line 83905 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
37884
83905
} // closed Puma
 
83906
class CCExprResolve;
 
83907
class CExprResolve;
37885
83908
class WinIfExists;
37886
83909
class WinImportHandler;
37887
83910
class WinMacros;
37888
 
class CMatchSyntax;
37889
 
class ExtGnu;
 
83911
class WinAsm;
 
83912
class WinDeclSpecs;
 
83913
class WinMemberExplSpec;
 
83914
class WinTypeKeywords;
 
83915
class WinFriend;
37890
83916
class ExtAC;
37891
83917
class ExtACBuilderCoupling;
37892
83918
class ExtACSyntaxCoupling;
37893
83919
class ExtACTree;
37894
83920
class ExtACKeywords;
37895
 
class WinAsm;
37896
 
class WinDeclSpecs;
37897
 
class WinMemberExplSpec;
37898
 
class WinTypeKeywords;
 
83921
class ExtGnu;
37899
83922
class PragmaOnceUnitState;
37900
83923
class PragmaOnce;
37901
 
class CCExprResolve;
37902
 
class CExprResolve;
37903
 
namespace Puma {
37904
 
 
37905
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83924
class CMatchSyntax;
 
83925
namespace Puma {
 
83926
 
 
83927
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83928
 
 
83929
#line 83930 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83930
} // closed Puma
 
83931
 
 
83932
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83933
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83934
#include "CCExprResolveH.ah"
 
83935
#endif
 
83936
namespace Puma {
 
83937
 
 
83938
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83939
 
 
83940
#line 83941 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83941
} // closed Puma
 
83942
 
 
83943
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83944
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83945
#include "CExprResolveH.ah"
 
83946
#endif
 
83947
namespace Puma {
 
83948
 
 
83949
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37906
83950
class CT_SpecialName : public CT_SimpleName {
37907
 
#line 37908 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
83951
#line 83952 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
83952
  friend class ::CCExprResolve;
 
83953
  friend class ::CExprResolve;
37908
83954
  friend class ::WinIfExists;
37909
83955
  friend class ::WinImportHandler;
37910
83956
  friend class ::WinMacros;
37911
 
  friend class ::CMatchSyntax;
37912
 
  friend class ::ExtGnu;
 
83957
  friend class ::WinAsm;
 
83958
  friend class ::WinDeclSpecs;
 
83959
  friend class ::WinMemberExplSpec;
 
83960
  friend class ::WinTypeKeywords;
 
83961
  friend class ::WinFriend;
37913
83962
  friend class ::ExtAC;
37914
83963
  friend class ::ExtACBuilderCoupling;
37915
83964
  friend class ::ExtACSyntaxCoupling;
37916
83965
  friend class ::ExtACTree;
37917
83966
  friend class ::ExtACKeywords;
37918
 
  friend class ::WinAsm;
37919
 
  friend class ::WinDeclSpecs;
37920
 
  friend class ::WinMemberExplSpec;
37921
 
  friend class ::WinTypeKeywords;
 
83967
  friend class ::ExtGnu;
37922
83968
  friend class ::PragmaOnceUnitState;
37923
83969
  friend class ::PragmaOnce;
37924
 
  friend class ::CCExprResolve;
37925
 
  friend class ::CExprResolve;
 
83970
  friend class ::CMatchSyntax;
37926
83971
 
37927
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83972
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37928
83973
 
37929
83974
  char *_name;
37930
83975
  
37931
83976
protected:
 
83977
  /** Constructor.
 
83978
   *  \param size The number of sub-names (for qualified names). */
37932
83979
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
37933
83980
  
37934
83981
public:
 
83982
  /** Destructor. Deletes the name string. */
37935
83983
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
83984
  /** Get the string containing the name. */
37936
83985
  const char *Text () const { return _name; }
 
83986
  /** Set the name. The name is copied.
 
83987
   *  \param n The name. */
37937
83988
  void Name (const char *n) { 
37938
83989
    if (n) { 
37939
83990
      _name = new char[strlen(n) + 1];
37940
83991
      strcpy (_name,n);
37941
83992
    }
37942
83993
  }
37943
 
  // special new / delete with reusing memory
 
83994
 
 
83995
public:
 
83996
  /** Own new operator reusing memory. */
37944
83997
  void *operator new (size_t);
37945
 
  void  operator delete (void *);
 
83998
  /** Own delete operator. */
 
83999
  void operator delete (void *);
37946
84000
   private:
37947
84001
  typedef CT_SpecialName CCExprResolveExpr;
37948
84002
 
37949
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84003
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37950
84004
 public :
37951
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84005
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37952
84006
  typedef CT_SpecialName CExprResolveExpr;
37953
84007
 
37954
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84008
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37955
84009
 public :
37956
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37957
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84010
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84011
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37958
84012
};
37959
84013
 
 
84014
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
84015
 *  Tree node representing a private name. Private names 
 
84016
 *  are generated names for abstract declarators etc. */
37960
84017
 
37961
 
#line 37962 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84018
#line 84019 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
37962
84019
} // closed Puma
 
84020
class CCExprResolve;
 
84021
class CExprResolve;
37963
84022
class WinIfExists;
37964
84023
class WinImportHandler;
37965
84024
class WinMacros;
37966
 
class CMatchSyntax;
37967
 
class ExtGnu;
 
84025
class WinAsm;
 
84026
class WinDeclSpecs;
 
84027
class WinMemberExplSpec;
 
84028
class WinTypeKeywords;
 
84029
class WinFriend;
37968
84030
class ExtAC;
37969
84031
class ExtACBuilderCoupling;
37970
84032
class ExtACSyntaxCoupling;
37971
84033
class ExtACTree;
37972
84034
class ExtACKeywords;
37973
 
class WinAsm;
37974
 
class WinDeclSpecs;
37975
 
class WinMemberExplSpec;
37976
 
class WinTypeKeywords;
 
84035
class ExtGnu;
37977
84036
class PragmaOnceUnitState;
37978
84037
class PragmaOnce;
37979
 
class CCExprResolve;
37980
 
class CExprResolve;
37981
 
namespace Puma {
37982
 
 
37983
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84038
class CMatchSyntax;
 
84039
namespace Puma {
 
84040
 
 
84041
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84042
 
 
84043
#line 84044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84044
} // closed Puma
 
84045
 
 
84046
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84047
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84048
#include "CCExprResolveH.ah"
 
84049
#endif
 
84050
namespace Puma {
 
84051
 
 
84052
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84053
 
 
84054
#line 84055 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84055
} // closed Puma
 
84056
 
 
84057
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84058
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84059
#include "CExprResolveH.ah"
 
84060
#endif
 
84061
namespace Puma {
 
84062
 
 
84063
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37984
84064
class CT_PrivateName : public CT_SpecialName {
37985
 
#line 37986 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84065
#line 84066 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84066
  friend class ::CCExprResolve;
 
84067
  friend class ::CExprResolve;
37986
84068
  friend class ::WinIfExists;
37987
84069
  friend class ::WinImportHandler;
37988
84070
  friend class ::WinMacros;
37989
 
  friend class ::CMatchSyntax;
37990
 
  friend class ::ExtGnu;
 
84071
  friend class ::WinAsm;
 
84072
  friend class ::WinDeclSpecs;
 
84073
  friend class ::WinMemberExplSpec;
 
84074
  friend class ::WinTypeKeywords;
 
84075
  friend class ::WinFriend;
37991
84076
  friend class ::ExtAC;
37992
84077
  friend class ::ExtACBuilderCoupling;
37993
84078
  friend class ::ExtACSyntaxCoupling;
37994
84079
  friend class ::ExtACTree;
37995
84080
  friend class ::ExtACKeywords;
37996
 
  friend class ::WinAsm;
37997
 
  friend class ::WinDeclSpecs;
37998
 
  friend class ::WinMemberExplSpec;
37999
 
  friend class ::WinTypeKeywords;
 
84081
  friend class ::ExtGnu;
38000
84082
  friend class ::PragmaOnceUnitState;
38001
84083
  friend class ::PragmaOnce;
38002
 
  friend class ::CCExprResolve;
38003
 
  friend class ::CExprResolve;
 
84084
  friend class ::CMatchSyntax;
38004
84085
 
38005
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84086
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38006
84087
 
38007
84088
public:
 
84089
  /** Constructor.
 
84090
   *  \param n The private (generated) name. */
38008
84091
  CT_PrivateName (const char *n) { Name (n); }
 
84092
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38009
84093
  static const char *NodeId ();
 
84094
  /** Get the name of the node. Can be compared with NodeId(). */
38010
84095
  const char *NodeName () const { return NodeId (); }
 
84096
  /** Get the number of sons. */
38011
84097
  int Sons () const { return 0; }
 
84098
  /** Get the n-th son.
 
84099
   *  \param n The index of the son.
 
84100
   *  \return The n-th son or NULL. */
38012
84101
  CTree *Son (int n) const { return (CTree*)0; }
38013
 
  // special new / delete with reusing memory
 
84102
 
 
84103
public:
 
84104
  /** Own new operator reusing memory. */
38014
84105
  void *operator new (size_t);
38015
 
  void  operator delete (void *);
 
84106
  /** Own delete operator. */
 
84107
  void operator delete (void *);
38016
84108
   private:
38017
84109
  typedef CT_PrivateName CCExprResolveExpr;
38018
84110
 
38019
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84111
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38020
84112
 public :
38021
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84113
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38022
84114
  typedef CT_PrivateName CExprResolveExpr;
38023
84115
 
38024
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84116
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38025
84117
 public :
38026
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38027
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84118
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84119
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38028
84120
};
38029
84121
 
 
84122
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
84123
 *  Tree node representing a destructor name. */
38030
84124
 
38031
 
#line 38032 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84125
#line 84126 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
38032
84126
} // closed Puma
 
84127
class CCExprResolve;
 
84128
class CExprResolve;
38033
84129
class WinIfExists;
38034
84130
class WinImportHandler;
38035
84131
class WinMacros;
38036
 
class CMatchSyntax;
38037
 
class ExtGnu;
 
84132
class WinAsm;
 
84133
class WinDeclSpecs;
 
84134
class WinMemberExplSpec;
 
84135
class WinTypeKeywords;
 
84136
class WinFriend;
38038
84137
class ExtAC;
38039
84138
class ExtACBuilderCoupling;
38040
84139
class ExtACSyntaxCoupling;
38041
84140
class ExtACTree;
38042
84141
class ExtACKeywords;
38043
 
class WinAsm;
38044
 
class WinDeclSpecs;
38045
 
class WinMemberExplSpec;
38046
 
class WinTypeKeywords;
 
84142
class ExtGnu;
38047
84143
class PragmaOnceUnitState;
38048
84144
class PragmaOnce;
38049
 
class CCExprResolve;
38050
 
class CExprResolve;
38051
 
namespace Puma {
38052
 
 
38053
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84145
class CMatchSyntax;
 
84146
namespace Puma {
 
84147
 
 
84148
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84149
 
 
84150
#line 84151 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84151
} // closed Puma
 
84152
 
 
84153
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84154
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84155
#include "CCExprResolveH.ah"
 
84156
#endif
 
84157
namespace Puma {
 
84158
 
 
84159
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84160
 
 
84161
#line 84162 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84162
} // closed Puma
 
84163
 
 
84164
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84165
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84166
#include "CExprResolveH.ah"
 
84167
#endif
 
84168
namespace Puma {
 
84169
 
 
84170
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38054
84171
class CT_DestructorName : public CT_SpecialName {
38055
 
#line 38056 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84172
#line 84173 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84173
  friend class ::CCExprResolve;
 
84174
  friend class ::CExprResolve;
38056
84175
  friend class ::WinIfExists;
38057
84176
  friend class ::WinImportHandler;
38058
84177
  friend class ::WinMacros;
38059
 
  friend class ::CMatchSyntax;
38060
 
  friend class ::ExtGnu;
 
84178
  friend class ::WinAsm;
 
84179
  friend class ::WinDeclSpecs;
 
84180
  friend class ::WinMemberExplSpec;
 
84181
  friend class ::WinTypeKeywords;
 
84182
  friend class ::WinFriend;
38061
84183
  friend class ::ExtAC;
38062
84184
  friend class ::ExtACBuilderCoupling;
38063
84185
  friend class ::ExtACSyntaxCoupling;
38064
84186
  friend class ::ExtACTree;
38065
84187
  friend class ::ExtACKeywords;
38066
 
  friend class ::WinAsm;
38067
 
  friend class ::WinDeclSpecs;
38068
 
  friend class ::WinMemberExplSpec;
38069
 
  friend class ::WinTypeKeywords;
 
84188
  friend class ::ExtGnu;
38070
84189
  friend class ::PragmaOnceUnitState;
38071
84190
  friend class ::PragmaOnce;
38072
 
  friend class ::CCExprResolve;
38073
 
  friend class ::CExprResolve;
 
84191
  friend class ::CMatchSyntax;
38074
84192
 
38075
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84193
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38076
84194
 
38077
84195
public:
38078
 
  CT_DestructorName (CTree *, CTree *);
 
84196
  /** Constructor.
 
84197
   *  \param t The tilde operator.
 
84198
   *  \param n The class name. */
 
84199
  CT_DestructorName (CTree *t, CTree *n);
 
84200
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38079
84201
  static const char *NodeId ();
 
84202
  /** Get the name of the node. Can be compared with NodeId(). */
38080
84203
  const char *NodeName () const { return NodeId (); }
38081
 
  // special new / delete with reusing memory
 
84204
 
 
84205
public:
 
84206
  /** Own new operator reusing memory. */
38082
84207
  void *operator new (size_t);
38083
 
  void  operator delete (void *);
 
84208
  /** Own delete operator. */
 
84209
  void operator delete (void *);
38084
84210
   private:
38085
84211
  typedef CT_DestructorName CCExprResolveExpr;
38086
84212
 
38087
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84213
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38088
84214
 public :
38089
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84215
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38090
84216
  typedef CT_DestructorName CExprResolveExpr;
38091
84217
 
38092
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84218
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38093
84219
 public :
38094
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38095
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84220
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84221
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38096
84222
};
38097
84223
 
 
84224
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
84225
 *  Tree node representing a template name. */
38098
84226
 
38099
 
#line 38100 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84227
#line 84228 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
38100
84228
} // closed Puma
 
84229
class CCExprResolve;
 
84230
class CExprResolve;
38101
84231
class WinIfExists;
38102
84232
class WinImportHandler;
38103
84233
class WinMacros;
38104
 
class CMatchSyntax;
38105
 
class ExtGnu;
 
84234
class WinAsm;
 
84235
class WinDeclSpecs;
 
84236
class WinMemberExplSpec;
 
84237
class WinTypeKeywords;
 
84238
class WinFriend;
38106
84239
class ExtAC;
38107
84240
class ExtACBuilderCoupling;
38108
84241
class ExtACSyntaxCoupling;
38109
84242
class ExtACTree;
38110
84243
class ExtACKeywords;
38111
 
class WinAsm;
38112
 
class WinDeclSpecs;
38113
 
class WinMemberExplSpec;
38114
 
class WinTypeKeywords;
 
84244
class ExtGnu;
38115
84245
class PragmaOnceUnitState;
38116
84246
class PragmaOnce;
38117
 
class CCExprResolve;
38118
 
class CExprResolve;
38119
 
namespace Puma {
38120
 
 
38121
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84247
class CMatchSyntax;
 
84248
namespace Puma {
 
84249
 
 
84250
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84251
 
 
84252
#line 84253 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84253
} // closed Puma
 
84254
 
 
84255
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84256
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84257
#include "CCExprResolveH.ah"
 
84258
#endif
 
84259
namespace Puma {
 
84260
 
 
84261
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84262
 
 
84263
#line 84264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84264
} // closed Puma
 
84265
 
 
84266
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84267
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84268
#include "CExprResolveH.ah"
 
84269
#endif
 
84270
namespace Puma {
 
84271
 
 
84272
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38122
84273
class CT_TemplateName : public CT_SpecialName {
38123
 
#line 38124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84274
#line 84275 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84275
  friend class ::CCExprResolve;
 
84276
  friend class ::CExprResolve;
38124
84277
  friend class ::WinIfExists;
38125
84278
  friend class ::WinImportHandler;
38126
84279
  friend class ::WinMacros;
38127
 
  friend class ::CMatchSyntax;
38128
 
  friend class ::ExtGnu;
 
84280
  friend class ::WinAsm;
 
84281
  friend class ::WinDeclSpecs;
 
84282
  friend class ::WinMemberExplSpec;
 
84283
  friend class ::WinTypeKeywords;
 
84284
  friend class ::WinFriend;
38129
84285
  friend class ::ExtAC;
38130
84286
  friend class ::ExtACBuilderCoupling;
38131
84287
  friend class ::ExtACSyntaxCoupling;
38132
84288
  friend class ::ExtACTree;
38133
84289
  friend class ::ExtACKeywords;
38134
 
  friend class ::WinAsm;
38135
 
  friend class ::WinDeclSpecs;
38136
 
  friend class ::WinMemberExplSpec;
38137
 
  friend class ::WinTypeKeywords;
 
84290
  friend class ::ExtGnu;
38138
84291
  friend class ::PragmaOnceUnitState;
38139
84292
  friend class ::PragmaOnce;
38140
 
  friend class ::CCExprResolve;
38141
 
  friend class ::CExprResolve;
 
84293
  friend class ::CMatchSyntax;
38142
84294
 
38143
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84295
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38144
84296
 
38145
84297
public:
 
84298
  /** Constructor.
 
84299
   *  \param n The template class or function name.
 
84300
   *  \param a The template argument list. */
38146
84301
  CT_TemplateName (CTree *n, CTree *a) 
38147
84302
   { AddSon (n); AddSon (a); }
 
84303
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38148
84304
  static const char *NodeId ();
 
84305
  /** Get the name of the node. Can be compared with NodeId(). */
38149
84306
  const char *NodeName () const { return NodeId (); }
 
84307
  /** Get the template argument list. */
38150
84308
  CT_TemplateArgList *Arguments () const 
38151
84309
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
84310
  /** Get the template class or function name. */
38152
84311
  CT_SimpleName *TemplateName () const 
38153
84312
   { return (CT_SimpleName*)Son (Sons ()-2); }
38154
84313
  // may change in the future
38155
84314
  const char *Text () const { return TemplateName ()->Text (); }
38156
 
  // special new / delete with reusing memory
 
84315
 
 
84316
public:
 
84317
  /** Own new operator reusing memory. */
38157
84318
  void *operator new (size_t);
38158
 
  void  operator delete (void *);
 
84319
  /** Own delete operator. */
 
84320
  void operator delete (void *);
38159
84321
   private:
38160
84322
  typedef CT_TemplateName CCExprResolveExpr;
38161
84323
 
38162
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84324
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38163
84325
 public :
38164
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84326
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38165
84327
  typedef CT_TemplateName CExprResolveExpr;
38166
84328
 
38167
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84329
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38168
84330
 public :
38169
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38170
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84331
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84332
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38171
84333
};
38172
84334
 
 
84335
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
84336
 *  Tree node representing the name of an overloaded operator. */
38173
84337
 
38174
 
#line 38175 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84338
#line 84339 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
38175
84339
} // closed Puma
 
84340
class CCExprResolve;
 
84341
class CExprResolve;
38176
84342
class WinIfExists;
38177
84343
class WinImportHandler;
38178
84344
class WinMacros;
38179
 
class CMatchSyntax;
38180
 
class ExtGnu;
 
84345
class WinAsm;
 
84346
class WinDeclSpecs;
 
84347
class WinMemberExplSpec;
 
84348
class WinTypeKeywords;
 
84349
class WinFriend;
38181
84350
class ExtAC;
38182
84351
class ExtACBuilderCoupling;
38183
84352
class ExtACSyntaxCoupling;
38184
84353
class ExtACTree;
38185
84354
class ExtACKeywords;
38186
 
class WinAsm;
38187
 
class WinDeclSpecs;
38188
 
class WinMemberExplSpec;
38189
 
class WinTypeKeywords;
 
84355
class ExtGnu;
38190
84356
class PragmaOnceUnitState;
38191
84357
class PragmaOnce;
38192
 
class CCExprResolve;
38193
 
class CExprResolve;
38194
 
namespace Puma {
38195
 
 
38196
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84358
class CMatchSyntax;
 
84359
namespace Puma {
 
84360
 
 
84361
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84362
 
 
84363
#line 84364 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84364
} // closed Puma
 
84365
 
 
84366
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84367
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84368
#include "CCExprResolveH.ah"
 
84369
#endif
 
84370
namespace Puma {
 
84371
 
 
84372
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84373
 
 
84374
#line 84375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84375
} // closed Puma
 
84376
 
 
84377
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84378
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84379
#include "CExprResolveH.ah"
 
84380
#endif
 
84381
namespace Puma {
 
84382
 
 
84383
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38197
84384
class CT_OperatorName : public CT_SpecialName {
38198
 
#line 38199 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84385
#line 84386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84386
  friend class ::CCExprResolve;
 
84387
  friend class ::CExprResolve;
38199
84388
  friend class ::WinIfExists;
38200
84389
  friend class ::WinImportHandler;
38201
84390
  friend class ::WinMacros;
38202
 
  friend class ::CMatchSyntax;
38203
 
  friend class ::ExtGnu;
 
84391
  friend class ::WinAsm;
 
84392
  friend class ::WinDeclSpecs;
 
84393
  friend class ::WinMemberExplSpec;
 
84394
  friend class ::WinTypeKeywords;
 
84395
  friend class ::WinFriend;
38204
84396
  friend class ::ExtAC;
38205
84397
  friend class ::ExtACBuilderCoupling;
38206
84398
  friend class ::ExtACSyntaxCoupling;
38207
84399
  friend class ::ExtACTree;
38208
84400
  friend class ::ExtACKeywords;
38209
 
  friend class ::WinAsm;
38210
 
  friend class ::WinDeclSpecs;
38211
 
  friend class ::WinMemberExplSpec;
38212
 
  friend class ::WinTypeKeywords;
 
84401
  friend class ::ExtGnu;
38213
84402
  friend class ::PragmaOnceUnitState;
38214
84403
  friend class ::PragmaOnce;
38215
 
  friend class ::CCExprResolve;
38216
 
  friend class ::CExprResolve;
 
84404
  friend class ::CMatchSyntax;
38217
84405
 
38218
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84406
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38219
84407
 
38220
84408
  int _oper;
38221
84409
 
38222
84410
public:
38223
 
  enum { // complex operators
38224
 
    FCT_CALL = -100,
38225
 
    SUBSCRIPT,
38226
 
    NEW_ARRAY,
38227
 
    DEL_ARRAY
 
84411
  /** Complex operator types. */
 
84412
  enum { 
 
84413
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
84414
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
84415
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
84416
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
38228
84417
  };
38229
84418
 
38230
84419
public:
38231
 
  CT_OperatorName (CTree *);
38232
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
84420
  /** Constructor.
 
84421
   *  \param op The token containing the operator. */
 
84422
  CT_OperatorName (CTree *op);
 
84423
  /** Constructor.
 
84424
   *  \param f The operator function keyword 'operator'.
 
84425
   *  \param op The token containing the operator. 
 
84426
   *  \param o The token of '[' or '('.
 
84427
   *  \param c The token of ']' or ')'. */
 
84428
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
84429
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38233
84430
  static const char *NodeId ();
 
84431
  /** Get the name of the node. Can be compared with NodeId(). */
38234
84432
  const char *NodeName () const { return NodeId (); }
 
84433
  /** Get the operator type (either the token type or one of 
 
84434
   *  the complex operator types). */
38235
84435
  int Operator () const { return _oper; }
38236
 
  // special new / delete with reusing memory
 
84436
 
 
84437
public:
 
84438
  /** Own new operator reusing memory. */
38237
84439
  void *operator new (size_t);
38238
 
  void  operator delete (void *);
 
84440
  /** Own delete operator. */
 
84441
  void operator delete (void *);
38239
84442
   private:
38240
84443
  typedef CT_OperatorName CCExprResolveExpr;
38241
84444
 
38242
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84445
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38243
84446
 public :
38244
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84447
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38245
84448
  typedef CT_OperatorName CExprResolveExpr;
38246
84449
 
38247
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84450
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38248
84451
 public :
38249
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38250
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84452
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84453
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38251
84454
};
38252
84455
 
 
84456
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
84457
 *  Tree node representing the name of a conversion function. */
38253
84458
 
38254
 
#line 38255 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84459
#line 84460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
38255
84460
} // closed Puma
 
84461
class CCExprResolve;
 
84462
class CExprResolve;
38256
84463
class WinIfExists;
38257
84464
class WinImportHandler;
38258
84465
class WinMacros;
38259
 
class CMatchSyntax;
38260
 
class ExtGnu;
 
84466
class WinAsm;
 
84467
class WinDeclSpecs;
 
84468
class WinMemberExplSpec;
 
84469
class WinTypeKeywords;
 
84470
class WinFriend;
38261
84471
class ExtAC;
38262
84472
class ExtACBuilderCoupling;
38263
84473
class ExtACSyntaxCoupling;
38264
84474
class ExtACTree;
38265
84475
class ExtACKeywords;
38266
 
class WinAsm;
38267
 
class WinDeclSpecs;
38268
 
class WinMemberExplSpec;
38269
 
class WinTypeKeywords;
 
84476
class ExtGnu;
38270
84477
class PragmaOnceUnitState;
38271
84478
class PragmaOnce;
38272
 
class CCExprResolve;
38273
 
class CExprResolve;
38274
 
namespace Puma {
38275
 
 
38276
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84479
class CMatchSyntax;
 
84480
namespace Puma {
 
84481
 
 
84482
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84483
 
 
84484
#line 84485 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84485
} // closed Puma
 
84486
 
 
84487
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84488
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84489
#include "CCExprResolveH.ah"
 
84490
#endif
 
84491
namespace Puma {
 
84492
 
 
84493
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84494
 
 
84495
#line 84496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84496
} // closed Puma
 
84497
 
 
84498
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84499
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84500
#include "CExprResolveH.ah"
 
84501
#endif
 
84502
namespace Puma {
 
84503
 
 
84504
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38277
84505
class CT_ConversionName : public CT_SpecialName {
38278
 
#line 38279 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84506
#line 84507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84507
  friend class ::CCExprResolve;
 
84508
  friend class ::CExprResolve;
38279
84509
  friend class ::WinIfExists;
38280
84510
  friend class ::WinImportHandler;
38281
84511
  friend class ::WinMacros;
38282
 
  friend class ::CMatchSyntax;
38283
 
  friend class ::ExtGnu;
 
84512
  friend class ::WinAsm;
 
84513
  friend class ::WinDeclSpecs;
 
84514
  friend class ::WinMemberExplSpec;
 
84515
  friend class ::WinTypeKeywords;
 
84516
  friend class ::WinFriend;
38284
84517
  friend class ::ExtAC;
38285
84518
  friend class ::ExtACBuilderCoupling;
38286
84519
  friend class ::ExtACSyntaxCoupling;
38287
84520
  friend class ::ExtACTree;
38288
84521
  friend class ::ExtACKeywords;
38289
 
  friend class ::WinAsm;
38290
 
  friend class ::WinDeclSpecs;
38291
 
  friend class ::WinMemberExplSpec;
38292
 
  friend class ::WinTypeKeywords;
 
84522
  friend class ::ExtGnu;
38293
84523
  friend class ::PragmaOnceUnitState;
38294
84524
  friend class ::PragmaOnce;
38295
 
  friend class ::CCExprResolve;
38296
 
  friend class ::CExprResolve;
 
84525
  friend class ::CMatchSyntax;
38297
84526
 
38298
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84527
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38299
84528
 
38300
84529
public:
38301
 
  CT_ConversionName (CTree *, CTree *);
 
84530
  /** Constructor.
 
84531
   *  \param f The operator function keyword 'operator'.
 
84532
   *  \param t The sub-tree containing the conversion type. */
 
84533
  CT_ConversionName (CTree *f, CTree *t);
 
84534
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38302
84535
  static const char *NodeId ();
 
84536
  /** Get the name of the node. Can be compared with NodeId(). */
38303
84537
  const char *NodeName () const { return NodeId (); }
 
84538
  /** Get the conversion type. */
38304
84539
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
38305
 
  // special new / delete with reusing memory
 
84540
 
 
84541
public:
 
84542
  /** Own new operator reusing memory. */
38306
84543
  void *operator new (size_t);
38307
 
  void  operator delete (void *);
 
84544
  /** Own delete operator. */
 
84545
  void operator delete (void *);
38308
84546
   private:
38309
84547
  typedef CT_ConversionName CCExprResolveExpr;
38310
84548
 
38311
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84549
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38312
84550
 public :
38313
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84551
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38314
84552
  typedef CT_ConversionName CExprResolveExpr;
38315
84553
 
38316
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84554
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38317
84555
 public :
38318
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38319
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84556
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84557
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38320
84558
};
38321
84559
 
 
84560
/** \class CT_QualName CTree.h Puma/CTree.h
 
84561
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
38322
84562
 
38323
 
#line 38324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84563
#line 84564 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
38324
84564
} // closed Puma
 
84565
class CCExprResolve;
 
84566
class CExprResolve;
38325
84567
class WinIfExists;
38326
84568
class WinImportHandler;
38327
84569
class WinMacros;
38328
 
class CMatchSyntax;
38329
 
class ExtGnu;
 
84570
class WinAsm;
 
84571
class WinDeclSpecs;
 
84572
class WinMemberExplSpec;
 
84573
class WinTypeKeywords;
 
84574
class WinFriend;
38330
84575
class ExtAC;
38331
84576
class ExtACBuilderCoupling;
38332
84577
class ExtACSyntaxCoupling;
38333
84578
class ExtACTree;
38334
84579
class ExtACKeywords;
38335
 
class WinAsm;
38336
 
class WinDeclSpecs;
38337
 
class WinMemberExplSpec;
38338
 
class WinTypeKeywords;
 
84580
class ExtGnu;
38339
84581
class PragmaOnceUnitState;
38340
84582
class PragmaOnce;
38341
 
class CCExprResolve;
38342
 
class CExprResolve;
38343
 
namespace Puma {
38344
 
 
38345
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84583
class CMatchSyntax;
 
84584
namespace Puma {
 
84585
 
 
84586
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84587
 
 
84588
#line 84589 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84589
} // closed Puma
 
84590
 
 
84591
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84592
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84593
#include "CCExprResolveH.ah"
 
84594
#endif
 
84595
namespace Puma {
 
84596
 
 
84597
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84598
 
 
84599
#line 84600 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84600
} // closed Puma
 
84601
 
 
84602
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84603
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84604
#include "CExprResolveH.ah"
 
84605
#endif
 
84606
namespace Puma {
 
84607
 
 
84608
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38346
84609
class CT_QualName : public CT_SimpleName {
38347
 
#line 38348 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84610
#line 84611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84611
  friend class ::CCExprResolve;
 
84612
  friend class ::CExprResolve;
38348
84613
  friend class ::WinIfExists;
38349
84614
  friend class ::WinImportHandler;
38350
84615
  friend class ::WinMacros;
38351
 
  friend class ::CMatchSyntax;
38352
 
  friend class ::ExtGnu;
 
84616
  friend class ::WinAsm;
 
84617
  friend class ::WinDeclSpecs;
 
84618
  friend class ::WinMemberExplSpec;
 
84619
  friend class ::WinTypeKeywords;
 
84620
  friend class ::WinFriend;
38353
84621
  friend class ::ExtAC;
38354
84622
  friend class ::ExtACBuilderCoupling;
38355
84623
  friend class ::ExtACSyntaxCoupling;
38356
84624
  friend class ::ExtACTree;
38357
84625
  friend class ::ExtACKeywords;
38358
 
  friend class ::WinAsm;
38359
 
  friend class ::WinDeclSpecs;
38360
 
  friend class ::WinMemberExplSpec;
38361
 
  friend class ::WinTypeKeywords;
 
84626
  friend class ::ExtGnu;
38362
84627
  friend class ::PragmaOnceUnitState;
38363
84628
  friend class ::PragmaOnce;
38364
 
  friend class ::CCExprResolve;
38365
 
  friend class ::CExprResolve;
 
84629
  friend class ::CMatchSyntax;
38366
84630
 
38367
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84631
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38368
84632
 
38369
84633
public:
 
84634
  /** Constructor.
 
84635
   *  \param size The initial number sub-names plus separators. */
38370
84636
  CT_QualName (int size = 3) : 
38371
84637
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
84638
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38372
84639
  static const char *NodeId ();
 
84640
  /** Get the name of the node. Can be compared with NodeId(). */
38373
84641
  const char *NodeName () const { return NodeId (); }
38374
 
  void print (ostream &) const;
 
84642
  /** Print the qualified name on the given stream. 
 
84643
   *  \param os The output stream. */
 
84644
  void print (ostream &os) const;
 
84645
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
38375
84646
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
84647
  /** Get the string containing the last name of the qualified name. */
38376
84648
  const char *Text () const { return Name ()->Text (); }
 
84649
  /** Get the type of the last name. */
38377
84650
  CTypeInfo *Type () const { return Name ()->Type (); }
 
84651
  /** Get the value of the last name. */
38378
84652
  CExprValue *Value () const { return Name ()->Value (); }
 
84653
  /** Get the semantic value object of the last name. */
38379
84654
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
84655
  /** Get the semantic information object of the last name. */
38380
84656
  CSemObject *SemObject () const { return Name ()->SemObject (); }
38381
 
  // special new / delete with reusing memory
 
84657
 
 
84658
public:
 
84659
  /** Own new operator reusing memory. */
38382
84660
  void *operator new (size_t);
38383
 
  void  operator delete (void *);
 
84661
  /** Own delete operator. */
 
84662
  void operator delete (void *);
38384
84663
   private:
38385
84664
  typedef CT_QualName CCExprResolveExpr;
38386
84665
 
38387
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84666
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38388
84667
 public :
38389
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84668
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38390
84669
  typedef CT_QualName CExprResolveExpr;
38391
84670
 
38392
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84671
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38393
84672
 public :
38394
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38395
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84673
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84674
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38396
84675
};
38397
84676
 
 
84677
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
84678
 *  Tree node representing a qualified name with introducing name separator,
 
84679
 *  e.g. ::X::Y::Z. */
38398
84680
 
38399
 
#line 38400 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84681
#line 84682 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
38400
84682
} // closed Puma
 
84683
class CCExprResolve;
 
84684
class CExprResolve;
38401
84685
class WinIfExists;
38402
84686
class WinImportHandler;
38403
84687
class WinMacros;
38404
 
class CMatchSyntax;
38405
 
class ExtGnu;
 
84688
class WinAsm;
 
84689
class WinDeclSpecs;
 
84690
class WinMemberExplSpec;
 
84691
class WinTypeKeywords;
 
84692
class WinFriend;
38406
84693
class ExtAC;
38407
84694
class ExtACBuilderCoupling;
38408
84695
class ExtACSyntaxCoupling;
38409
84696
class ExtACTree;
38410
84697
class ExtACKeywords;
38411
 
class WinAsm;
38412
 
class WinDeclSpecs;
38413
 
class WinMemberExplSpec;
38414
 
class WinTypeKeywords;
 
84698
class ExtGnu;
38415
84699
class PragmaOnceUnitState;
38416
84700
class PragmaOnce;
38417
 
class CCExprResolve;
38418
 
class CExprResolve;
38419
 
namespace Puma {
38420
 
 
38421
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84701
class CMatchSyntax;
 
84702
namespace Puma {
 
84703
 
 
84704
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84705
 
 
84706
#line 84707 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84707
} // closed Puma
 
84708
 
 
84709
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84710
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84711
#include "CCExprResolveH.ah"
 
84712
#endif
 
84713
namespace Puma {
 
84714
 
 
84715
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84716
 
 
84717
#line 84718 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84718
} // closed Puma
 
84719
 
 
84720
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84721
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84722
#include "CExprResolveH.ah"
 
84723
#endif
 
84724
namespace Puma {
 
84725
 
 
84726
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38422
84727
class CT_RootQualName : public CT_QualName {
38423
 
#line 38424 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84728
#line 84729 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84729
  friend class ::CCExprResolve;
 
84730
  friend class ::CExprResolve;
38424
84731
  friend class ::WinIfExists;
38425
84732
  friend class ::WinImportHandler;
38426
84733
  friend class ::WinMacros;
38427
 
  friend class ::CMatchSyntax;
38428
 
  friend class ::ExtGnu;
 
84734
  friend class ::WinAsm;
 
84735
  friend class ::WinDeclSpecs;
 
84736
  friend class ::WinMemberExplSpec;
 
84737
  friend class ::WinTypeKeywords;
 
84738
  friend class ::WinFriend;
38429
84739
  friend class ::ExtAC;
38430
84740
  friend class ::ExtACBuilderCoupling;
38431
84741
  friend class ::ExtACSyntaxCoupling;
38432
84742
  friend class ::ExtACTree;
38433
84743
  friend class ::ExtACKeywords;
38434
 
  friend class ::WinAsm;
38435
 
  friend class ::WinDeclSpecs;
38436
 
  friend class ::WinMemberExplSpec;
38437
 
  friend class ::WinTypeKeywords;
 
84744
  friend class ::ExtGnu;
38438
84745
  friend class ::PragmaOnceUnitState;
38439
84746
  friend class ::PragmaOnce;
38440
 
  friend class ::CCExprResolve;
38441
 
  friend class ::CExprResolve;
 
84747
  friend class ::CMatchSyntax;
38442
84748
 
38443
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84749
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38444
84750
 
38445
84751
public:
 
84752
  /** Constructor.
 
84753
   *  \param size Initial number of sub-name plus separator. */
38446
84754
  CT_RootQualName (int size = 2) : 
38447
84755
    CT_QualName (size) { AddProperties (INTRO); }
 
84756
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38448
84757
  static const char *NodeId ();
 
84758
  /** Get the name of the node. Can be compared with NodeId(). */
38449
84759
  const char *NodeName () const { return NodeId (); }
38450
 
  // special new / delete with reusing memory
 
84760
 
 
84761
public:
 
84762
  /** Own new operator reusing memory. */
38451
84763
  void *operator new (size_t);
38452
 
  void  operator delete (void *);
 
84764
  /** Own delete operator. */
 
84765
  void operator delete (void *);
38453
84766
   private:
38454
84767
  typedef CT_RootQualName CCExprResolveExpr;
38455
84768
 
38456
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84769
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38457
84770
 public :
38458
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84771
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38459
84772
  typedef CT_RootQualName CExprResolveExpr;
38460
84773
 
38461
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84774
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38462
84775
 public :
38463
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38464
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84776
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84777
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38465
84778
};
38466
84779
 
 
84780
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
84781
 *  Tree node representing a binary expression, e.g. a+b. */
38467
84782
 
38468
 
#line 38469 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84783
#line 84784 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
38469
84784
} // closed Puma
 
84785
class CCExprResolve;
 
84786
class CExprResolve;
38470
84787
class WinIfExists;
38471
84788
class WinImportHandler;
38472
84789
class WinMacros;
38473
 
class CMatchSyntax;
38474
 
class ExtGnu;
 
84790
class WinAsm;
 
84791
class WinDeclSpecs;
 
84792
class WinMemberExplSpec;
 
84793
class WinTypeKeywords;
 
84794
class WinFriend;
38475
84795
class ExtAC;
38476
84796
class ExtACBuilderCoupling;
38477
84797
class ExtACSyntaxCoupling;
38478
84798
class ExtACTree;
38479
84799
class ExtACKeywords;
38480
 
class WinAsm;
38481
 
class WinDeclSpecs;
38482
 
class WinMemberExplSpec;
38483
 
class WinTypeKeywords;
 
84800
class ExtGnu;
38484
84801
class PragmaOnceUnitState;
38485
84802
class PragmaOnce;
38486
 
class CCExprResolve;
38487
 
class CExprResolve;
38488
 
namespace Puma {
38489
 
 
38490
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38491
 
class CT_BinaryExpr : public CT_Expression {
38492
 
#line 38493 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84803
class CMatchSyntax;
 
84804
namespace Puma {
 
84805
 
 
84806
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84807
 
 
84808
#line 84809 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84809
} // closed Puma
 
84810
 
 
84811
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84812
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84813
#include "CCExprResolveH.ah"
 
84814
#endif
 
84815
namespace Puma {
 
84816
 
 
84817
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84818
 
 
84819
#line 84820 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84820
} // closed Puma
 
84821
 
 
84822
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84823
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84824
#include "CExprResolveH.ah"
 
84825
#endif
 
84826
namespace Puma {
 
84827
 
 
84828
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84829
class CT_BinaryExpr : public CT_Call {
 
84830
#line 84831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84831
  friend class ::CCExprResolve;
 
84832
  friend class ::CExprResolve;
38493
84833
  friend class ::WinIfExists;
38494
84834
  friend class ::WinImportHandler;
38495
84835
  friend class ::WinMacros;
38496
 
  friend class ::CMatchSyntax;
38497
 
  friend class ::ExtGnu;
 
84836
  friend class ::WinAsm;
 
84837
  friend class ::WinDeclSpecs;
 
84838
  friend class ::WinMemberExplSpec;
 
84839
  friend class ::WinTypeKeywords;
 
84840
  friend class ::WinFriend;
38498
84841
  friend class ::ExtAC;
38499
84842
  friend class ::ExtACBuilderCoupling;
38500
84843
  friend class ::ExtACSyntaxCoupling;
38501
84844
  friend class ::ExtACTree;
38502
84845
  friend class ::ExtACKeywords;
38503
 
  friend class ::WinAsm;
38504
 
  friend class ::WinDeclSpecs;
38505
 
  friend class ::WinMemberExplSpec;
38506
 
  friend class ::WinTypeKeywords;
 
84846
  friend class ::ExtGnu;
38507
84847
  friend class ::PragmaOnceUnitState;
38508
84848
  friend class ::PragmaOnce;
38509
 
  friend class ::CCExprResolve;
38510
 
  friend class ::CExprResolve;
 
84849
  friend class ::CMatchSyntax;
38511
84850
 
38512
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84851
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38513
84852
 
38514
84853
  CTree *sons[3]; // expr, oper, expr
38515
84854
 
38516
84855
public:
 
84856
  /** Constructor. 
 
84857
   *  \param l Left hand side of the expression. 
 
84858
   *  \param o The operator token. 
 
84859
   *  \param r Right hand side of the expression. */
38517
84860
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
38518
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
84861
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
38519
84862
  }
 
84863
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38520
84864
  static const char *NodeId ();
 
84865
  /** Get the name of the node. Can be compared with NodeId(). */
38521
84866
  const char *NodeName () const { return NodeId (); }
 
84867
  /** Get the number of sons. */
38522
84868
  int Sons () const { return 3; }
 
84869
  /** Get the n-th son.
 
84870
   *  \param n The index of the son.
 
84871
   *  \return The n-th son or NULL. */
38523
84872
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
84873
  /** Replace a son.
 
84874
   *  \param old_son The son to replace.
 
84875
   *  \param new_son The new son. */
38524
84876
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
38525
84877
    CTree::ReplaceSon (sons, 3, old_son, new_son);
38526
84878
  }
38527
84879
   private:
38528
84880
  typedef CT_BinaryExpr CCExprResolveExpr;
38529
84881
 
38530
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84882
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38531
84883
 public :
38532
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84884
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38533
84885
  typedef CT_BinaryExpr CExprResolveExpr;
38534
84886
 
38535
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84887
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38536
84888
 public :
38537
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38538
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84889
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84890
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38539
84891
};
38540
84892
 
 
84893
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
84894
 *  Tree node representing a member pointer expression, e.g. a->b. */
38541
84895
 
38542
 
#line 38543 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84896
#line 84897 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
38543
84897
} // closed Puma
 
84898
class CCExprResolve;
 
84899
class CExprResolve;
38544
84900
class WinIfExists;
38545
84901
class WinImportHandler;
38546
84902
class WinMacros;
38547
 
class CMatchSyntax;
38548
 
class ExtGnu;
 
84903
class WinAsm;
 
84904
class WinDeclSpecs;
 
84905
class WinMemberExplSpec;
 
84906
class WinTypeKeywords;
 
84907
class WinFriend;
38549
84908
class ExtAC;
38550
84909
class ExtACBuilderCoupling;
38551
84910
class ExtACSyntaxCoupling;
38552
84911
class ExtACTree;
38553
84912
class ExtACKeywords;
38554
 
class WinAsm;
38555
 
class WinDeclSpecs;
38556
 
class WinMemberExplSpec;
38557
 
class WinTypeKeywords;
 
84913
class ExtGnu;
38558
84914
class PragmaOnceUnitState;
38559
84915
class PragmaOnce;
38560
 
class CCExprResolve;
38561
 
class CExprResolve;
38562
 
namespace Puma {
38563
 
 
38564
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38565
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
38566
 
#line 38567 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
84916
class CMatchSyntax;
 
84917
namespace Puma {
 
84918
 
 
84919
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84920
 
 
84921
#line 84922 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84922
} // closed Puma
 
84923
 
 
84924
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84925
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84926
#include "CCExprResolveH.ah"
 
84927
#endif
 
84928
namespace Puma {
 
84929
 
 
84930
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84931
 
 
84932
#line 84933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84933
} // closed Puma
 
84934
 
 
84935
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84936
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84937
#include "CExprResolveH.ah"
 
84938
#endif
 
84939
namespace Puma {
 
84940
 
 
84941
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84942
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
84943
#line 84944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
84944
  friend class ::CCExprResolve;
 
84945
  friend class ::CExprResolve;
38567
84946
  friend class ::WinIfExists;
38568
84947
  friend class ::WinImportHandler;
38569
84948
  friend class ::WinMacros;
38570
 
  friend class ::CMatchSyntax;
38571
 
  friend class ::ExtGnu;
 
84949
  friend class ::WinAsm;
 
84950
  friend class ::WinDeclSpecs;
 
84951
  friend class ::WinMemberExplSpec;
 
84952
  friend class ::WinTypeKeywords;
 
84953
  friend class ::WinFriend;
38572
84954
  friend class ::ExtAC;
38573
84955
  friend class ::ExtACBuilderCoupling;
38574
84956
  friend class ::ExtACSyntaxCoupling;
38575
84957
  friend class ::ExtACTree;
38576
84958
  friend class ::ExtACKeywords;
38577
 
  friend class ::WinAsm;
38578
 
  friend class ::WinDeclSpecs;
38579
 
  friend class ::WinMemberExplSpec;
38580
 
  friend class ::WinTypeKeywords;
 
84959
  friend class ::ExtGnu;
38581
84960
  friend class ::PragmaOnceUnitState;
38582
84961
  friend class ::PragmaOnce;
38583
 
  friend class ::CCExprResolve;
38584
 
  friend class ::CExprResolve;
38585
 
 
38586
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38587
 
 
 
84962
  friend class ::CMatchSyntax;
 
84963
 
 
84964
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84965
 
 
84966
  CTree *sons[3]; // expr, oper, expr
 
84967
  
38588
84968
public:
38589
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
38590
 
    CT_BinaryExpr (e, o, i) {}
 
84969
  /** Constructor.
 
84970
   *  \param e Expression on which to call the member.
 
84971
   *  \param o The arrow operator token.
 
84972
   *  \param i The member name. */
 
84973
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
84974
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
84975
  }
 
84976
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38591
84977
  static const char *NodeId ();
 
84978
  /** Get the name of the node. Can be compared with NodeId(). */
38592
84979
  const char *NodeName () const { return NodeId (); }
38593
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
84980
  /** Get the number of sons. */
 
84981
  int Sons () const { return 3; }
 
84982
  /** Get the n-th son.
 
84983
   *  \param n The index of the son.
 
84984
   *  \return The n-th son or NULL. */
 
84985
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
84986
  /** Replace a son.
 
84987
   *  \param old_son The son to replace.
 
84988
   *  \param new_son The new son. */
 
84989
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
84990
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
84991
  }
38594
84992
   private:
38595
84993
  typedef CT_MembPtrExpr CCExprResolveExpr;
38596
84994
 
38597
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84995
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38598
84996
 public :
38599
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84997
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38600
84998
  typedef CT_MembPtrExpr CExprResolveExpr;
38601
84999
 
38602
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
85000
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38603
85001
 public :
38604
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38605
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85002
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
85003
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38606
85004
};
38607
85005
 
 
85006
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
85007
 *  Tree node representing a member reference expression, e.g. a.b. */
38608
85008
 
38609
 
#line 38610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85009
#line 85010 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
38610
85010
} // closed Puma
 
85011
class CCExprResolve;
 
85012
class CExprResolve;
38611
85013
class WinIfExists;
38612
85014
class WinImportHandler;
38613
85015
class WinMacros;
38614
 
class CMatchSyntax;
38615
 
class ExtGnu;
 
85016
class WinAsm;
 
85017
class WinDeclSpecs;
 
85018
class WinMemberExplSpec;
 
85019
class WinTypeKeywords;
 
85020
class WinFriend;
38616
85021
class ExtAC;
38617
85022
class ExtACBuilderCoupling;
38618
85023
class ExtACSyntaxCoupling;
38619
85024
class ExtACTree;
38620
85025
class ExtACKeywords;
38621
 
class WinAsm;
38622
 
class WinDeclSpecs;
38623
 
class WinMemberExplSpec;
38624
 
class WinTypeKeywords;
 
85026
class ExtGnu;
38625
85027
class PragmaOnceUnitState;
38626
85028
class PragmaOnce;
38627
 
class CCExprResolve;
38628
 
class CExprResolve;
38629
 
namespace Puma {
38630
 
 
38631
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85029
class CMatchSyntax;
 
85030
namespace Puma {
 
85031
 
 
85032
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85033
 
 
85034
#line 85035 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85035
} // closed Puma
 
85036
 
 
85037
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85038
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85039
#include "CCExprResolveH.ah"
 
85040
#endif
 
85041
namespace Puma {
 
85042
 
 
85043
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85044
 
 
85045
#line 85046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85046
} // closed Puma
 
85047
 
 
85048
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85049
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85050
#include "CExprResolveH.ah"
 
85051
#endif
 
85052
namespace Puma {
 
85053
 
 
85054
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38632
85055
class CT_MembRefExpr : public CT_MembPtrExpr {
38633
 
#line 38634 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85056
#line 85057 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85057
  friend class ::CCExprResolve;
 
85058
  friend class ::CExprResolve;
38634
85059
  friend class ::WinIfExists;
38635
85060
  friend class ::WinImportHandler;
38636
85061
  friend class ::WinMacros;
38637
 
  friend class ::CMatchSyntax;
38638
 
  friend class ::ExtGnu;
 
85062
  friend class ::WinAsm;
 
85063
  friend class ::WinDeclSpecs;
 
85064
  friend class ::WinMemberExplSpec;
 
85065
  friend class ::WinTypeKeywords;
 
85066
  friend class ::WinFriend;
38639
85067
  friend class ::ExtAC;
38640
85068
  friend class ::ExtACBuilderCoupling;
38641
85069
  friend class ::ExtACSyntaxCoupling;
38642
85070
  friend class ::ExtACTree;
38643
85071
  friend class ::ExtACKeywords;
38644
 
  friend class ::WinAsm;
38645
 
  friend class ::WinDeclSpecs;
38646
 
  friend class ::WinMemberExplSpec;
38647
 
  friend class ::WinTypeKeywords;
 
85072
  friend class ::ExtGnu;
38648
85073
  friend class ::PragmaOnceUnitState;
38649
85074
  friend class ::PragmaOnce;
38650
 
  friend class ::CCExprResolve;
38651
 
  friend class ::CExprResolve;
 
85075
  friend class ::CMatchSyntax;
38652
85076
 
38653
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85077
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38654
85078
 
38655
85079
public:
 
85080
  /** Constructor.
 
85081
   *  \param e Expression on which to call the member.
 
85082
   *  \param o The dot operator.
 
85083
   *  \param i The member name. */
38656
85084
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
38657
85085
    CT_MembPtrExpr (e, o, i) {}
 
85086
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38658
85087
  static const char *NodeId ();
 
85088
  /** Get the name of the node. Can be compared with NodeId(). */
38659
85089
  const char *NodeName () const { return NodeId (); }
38660
85090
   private:
38661
85091
  typedef CT_MembRefExpr CCExprResolveExpr;
38662
85092
 
38663
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
85093
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38664
85094
 public :
38665
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
85095
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38666
85096
  typedef CT_MembRefExpr CExprResolveExpr;
38667
85097
 
38668
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
85098
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38669
85099
 public :
38670
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38671
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85100
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
85101
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38672
85102
};
38673
85103
 
 
85104
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
85105
 *  Base class for tree nodes representing unary expressions. */
38674
85106
 
38675
 
#line 38676 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85107
#line 85108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
38676
85108
} // closed Puma
 
85109
class CCExprResolve;
 
85110
class CExprResolve;
38677
85111
class WinIfExists;
38678
85112
class WinImportHandler;
38679
85113
class WinMacros;
38680
 
class CMatchSyntax;
38681
 
class ExtGnu;
 
85114
class WinAsm;
 
85115
class WinDeclSpecs;
 
85116
class WinMemberExplSpec;
 
85117
class WinTypeKeywords;
 
85118
class WinFriend;
38682
85119
class ExtAC;
38683
85120
class ExtACBuilderCoupling;
38684
85121
class ExtACSyntaxCoupling;
38685
85122
class ExtACTree;
38686
85123
class ExtACKeywords;
38687
 
class WinAsm;
38688
 
class WinDeclSpecs;
38689
 
class WinMemberExplSpec;
38690
 
class WinTypeKeywords;
 
85124
class ExtGnu;
38691
85125
class PragmaOnceUnitState;
38692
85126
class PragmaOnce;
38693
 
class CCExprResolve;
38694
 
class CExprResolve;
38695
 
namespace Puma {
38696
 
 
38697
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38698
 
class CT_UnaryExpr : public CT_Expression {
38699
 
#line 38700 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85127
class CMatchSyntax;
 
85128
namespace Puma {
 
85129
 
 
85130
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85131
 
 
85132
#line 85133 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85133
} // closed Puma
 
85134
 
 
85135
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85136
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85137
#include "CCExprResolveH.ah"
 
85138
#endif
 
85139
namespace Puma {
 
85140
 
 
85141
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85142
 
 
85143
#line 85144 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85144
} // closed Puma
 
85145
 
 
85146
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85147
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85148
#include "CExprResolveH.ah"
 
85149
#endif
 
85150
namespace Puma {
 
85151
 
 
85152
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85153
class CT_UnaryExpr : public CT_Call {
 
85154
#line 85155 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85155
  friend class ::CCExprResolve;
 
85156
  friend class ::CExprResolve;
38700
85157
  friend class ::WinIfExists;
38701
85158
  friend class ::WinImportHandler;
38702
85159
  friend class ::WinMacros;
38703
 
  friend class ::CMatchSyntax;
38704
 
  friend class ::ExtGnu;
 
85160
  friend class ::WinAsm;
 
85161
  friend class ::WinDeclSpecs;
 
85162
  friend class ::WinMemberExplSpec;
 
85163
  friend class ::WinTypeKeywords;
 
85164
  friend class ::WinFriend;
38705
85165
  friend class ::ExtAC;
38706
85166
  friend class ::ExtACBuilderCoupling;
38707
85167
  friend class ::ExtACSyntaxCoupling;
38708
85168
  friend class ::ExtACTree;
38709
85169
  friend class ::ExtACKeywords;
38710
 
  friend class ::WinAsm;
38711
 
  friend class ::WinDeclSpecs;
38712
 
  friend class ::WinMemberExplSpec;
38713
 
  friend class ::WinTypeKeywords;
 
85170
  friend class ::ExtGnu;
38714
85171
  friend class ::PragmaOnceUnitState;
38715
85172
  friend class ::PragmaOnce;
38716
 
  friend class ::CCExprResolve;
38717
 
  friend class ::CExprResolve;
 
85173
  friend class ::CMatchSyntax;
38718
85174
 
38719
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85175
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38720
85176
 
38721
85177
  CTree *sons[2]; // oper, expr
38722
85178
 
38723
85179
public:
38724
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
85180
  /** Constructor.
 
85181
   *  \param o The unary operator.
 
85182
   *  \param e The expression on which the operator is invoked. */
 
85183
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
85184
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38725
85185
  static const char *NodeId ();
 
85186
  /** Get the name of the node. Can be compared with NodeId(). */
38726
85187
  const char *NodeName () const { return NodeId (); }
 
85188
  /** Get the number of sons. */
38727
85189
  int Sons () const { return 2; }
 
85190
  /** Get the n-th son.
 
85191
   *  \param n The index of the son.
 
85192
   *  \return The n-th son or NULL. */
38728
85193
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
85194
  /** Replace a son.
 
85195
   *  \param old_son The son to replace.
 
85196
   *  \param new_son The new son. */
38729
85197
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
38730
85198
    CTree::ReplaceSon (sons, 2, old_son, new_son);
38731
85199
  }
 
85200
  /** Get the expression node. */
38732
85201
  CTree *Expr () const { return sons[1]; }
38733
85202
   private:
38734
85203
  typedef CT_UnaryExpr CCExprResolveExpr;
38735
85204
 
38736
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
85205
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38737
85206
 public :
38738
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
85207
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38739
85208
  typedef CT_UnaryExpr CExprResolveExpr;
38740
85209
 
38741
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
85210
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38742
85211
 public :
38743
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38744
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85212
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
85213
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38745
85214
};
38746
85215
 
 
85216
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
85217
 *  Tree node representing a postfix expression, e.g. a++. */
38747
85218
 
38748
 
#line 38749 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85219
#line 85220 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
38749
85220
} // closed Puma
 
85221
class CCExprResolve;
 
85222
class CExprResolve;
38750
85223
class WinIfExists;
38751
85224
class WinImportHandler;
38752
85225
class WinMacros;
38753
 
class CMatchSyntax;
38754
 
class ExtGnu;
 
85226
class WinAsm;
 
85227
class WinDeclSpecs;
 
85228
class WinMemberExplSpec;
 
85229
class WinTypeKeywords;
 
85230
class WinFriend;
38755
85231
class ExtAC;
38756
85232
class ExtACBuilderCoupling;
38757
85233
class ExtACSyntaxCoupling;
38758
85234
class ExtACTree;
38759
85235
class ExtACKeywords;
38760
 
class WinAsm;
38761
 
class WinDeclSpecs;
38762
 
class WinMemberExplSpec;
38763
 
class WinTypeKeywords;
 
85236
class ExtGnu;
38764
85237
class PragmaOnceUnitState;
38765
85238
class PragmaOnce;
38766
 
class CCExprResolve;
38767
 
class CExprResolve;
38768
 
namespace Puma {
38769
 
 
38770
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85239
class CMatchSyntax;
 
85240
namespace Puma {
 
85241
 
 
85242
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85243
 
 
85244
#line 85245 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85245
} // closed Puma
 
85246
 
 
85247
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85248
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85249
#include "CCExprResolveH.ah"
 
85250
#endif
 
85251
namespace Puma {
 
85252
 
 
85253
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85254
 
 
85255
#line 85256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85256
} // closed Puma
 
85257
 
 
85258
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85259
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85260
#include "CExprResolveH.ah"
 
85261
#endif
 
85262
namespace Puma {
 
85263
 
 
85264
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38771
85265
class CT_PostfixExpr : public CT_UnaryExpr {
38772
 
#line 38773 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85266
#line 85267 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85267
  friend class ::CCExprResolve;
 
85268
  friend class ::CExprResolve;
38773
85269
  friend class ::WinIfExists;
38774
85270
  friend class ::WinImportHandler;
38775
85271
  friend class ::WinMacros;
38776
 
  friend class ::CMatchSyntax;
38777
 
  friend class ::ExtGnu;
 
85272
  friend class ::WinAsm;
 
85273
  friend class ::WinDeclSpecs;
 
85274
  friend class ::WinMemberExplSpec;
 
85275
  friend class ::WinTypeKeywords;
 
85276
  friend class ::WinFriend;
38778
85277
  friend class ::ExtAC;
38779
85278
  friend class ::ExtACBuilderCoupling;
38780
85279
  friend class ::ExtACSyntaxCoupling;
38781
85280
  friend class ::ExtACTree;
38782
85281
  friend class ::ExtACKeywords;
38783
 
  friend class ::WinAsm;
38784
 
  friend class ::WinDeclSpecs;
38785
 
  friend class ::WinMemberExplSpec;
38786
 
  friend class ::WinTypeKeywords;
 
85282
  friend class ::ExtGnu;
38787
85283
  friend class ::PragmaOnceUnitState;
38788
85284
  friend class ::PragmaOnce;
38789
 
  friend class ::CCExprResolve;
38790
 
  friend class ::CExprResolve;
 
85285
  friend class ::CMatchSyntax;
38791
85286
 
38792
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85287
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38793
85288
 
38794
85289
public:
 
85290
  /** Constructor.
 
85291
   *  \param e The expression on which to invoke the operator. 
 
85292
   *  \param o The postfix operator. */
38795
85293
  CT_PostfixExpr (CTree *e, CTree *o) :
38796
85294
    CT_UnaryExpr (e, o) {}
 
85295
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38797
85296
  static const char *NodeId ();
 
85297
  /** Get the name of the node. Can be compared with NodeId(). */
38798
85298
  const char *NodeName () const { return NodeId (); }
38799
85299
   private:
38800
85300
  typedef CT_PostfixExpr CCExprResolveExpr;
38801
85301
 
38802
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
85302
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38803
85303
 public :
38804
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
85304
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38805
85305
  typedef CT_PostfixExpr CExprResolveExpr;
38806
85306
 
38807
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
85307
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38808
85308
 public :
38809
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38810
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85309
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
85310
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38811
85311
};
38812
85312
 
 
85313
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
85314
 *  Tree node representing an address expression, e.g. &a. */
38813
85315
 
38814
 
#line 38815 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85316
#line 85317 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
38815
85317
} // closed Puma
 
85318
class CCExprResolve;
 
85319
class CExprResolve;
38816
85320
class WinIfExists;
38817
85321
class WinImportHandler;
38818
85322
class WinMacros;
38819
 
class CMatchSyntax;
38820
 
class ExtGnu;
 
85323
class WinAsm;
 
85324
class WinDeclSpecs;
 
85325
class WinMemberExplSpec;
 
85326
class WinTypeKeywords;
 
85327
class WinFriend;
38821
85328
class ExtAC;
38822
85329
class ExtACBuilderCoupling;
38823
85330
class ExtACSyntaxCoupling;
38824
85331
class ExtACTree;
38825
85332
class ExtACKeywords;
38826
 
class WinAsm;
38827
 
class WinDeclSpecs;
38828
 
class WinMemberExplSpec;
38829
 
class WinTypeKeywords;
 
85333
class ExtGnu;
38830
85334
class PragmaOnceUnitState;
38831
85335
class PragmaOnce;
38832
 
class CCExprResolve;
38833
 
class CExprResolve;
38834
 
namespace Puma {
38835
 
 
38836
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85336
class CMatchSyntax;
 
85337
namespace Puma {
 
85338
 
 
85339
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85340
 
 
85341
#line 85342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85342
} // closed Puma
 
85343
 
 
85344
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85345
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85346
#include "CCExprResolveH.ah"
 
85347
#endif
 
85348
namespace Puma {
 
85349
 
 
85350
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85351
 
 
85352
#line 85353 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85353
} // closed Puma
 
85354
 
 
85355
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85356
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85357
#include "CExprResolveH.ah"
 
85358
#endif
 
85359
namespace Puma {
 
85360
 
 
85361
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38837
85362
class CT_AddrExpr : public CT_UnaryExpr {
38838
 
#line 38839 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85363
#line 85364 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85364
  friend class ::CCExprResolve;
 
85365
  friend class ::CExprResolve;
38839
85366
  friend class ::WinIfExists;
38840
85367
  friend class ::WinImportHandler;
38841
85368
  friend class ::WinMacros;
38842
 
  friend class ::CMatchSyntax;
38843
 
  friend class ::ExtGnu;
 
85369
  friend class ::WinAsm;
 
85370
  friend class ::WinDeclSpecs;
 
85371
  friend class ::WinMemberExplSpec;
 
85372
  friend class ::WinTypeKeywords;
 
85373
  friend class ::WinFriend;
38844
85374
  friend class ::ExtAC;
38845
85375
  friend class ::ExtACBuilderCoupling;
38846
85376
  friend class ::ExtACSyntaxCoupling;
38847
85377
  friend class ::ExtACTree;
38848
85378
  friend class ::ExtACKeywords;
38849
 
  friend class ::WinAsm;
38850
 
  friend class ::WinDeclSpecs;
38851
 
  friend class ::WinMemberExplSpec;
38852
 
  friend class ::WinTypeKeywords;
 
85379
  friend class ::ExtGnu;
38853
85380
  friend class ::PragmaOnceUnitState;
38854
85381
  friend class ::PragmaOnce;
38855
 
  friend class ::CCExprResolve;
38856
 
  friend class ::CExprResolve;
 
85382
  friend class ::CMatchSyntax;
38857
85383
 
38858
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85384
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38859
85385
 
38860
85386
public:
 
85387
  /** Constructor.
 
85388
   *  \param o The address operator, i.e. '&'.
 
85389
   *  \param e The expression from which to take the address. */
38861
85390
  CT_AddrExpr (CTree *o, CTree *e) :
38862
85391
    CT_UnaryExpr (o, e) {}
 
85392
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38863
85393
  static const char *NodeId ();
 
85394
  /** Get the name of the node. Can be compared with NodeId(). */
38864
85395
  const char *NodeName () const { return NodeId (); }
38865
85396
   private:
38866
85397
  typedef CT_AddrExpr CCExprResolveExpr;
38867
85398
 
38868
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
85399
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38869
85400
 public :
38870
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
85401
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38871
85402
  typedef CT_AddrExpr CExprResolveExpr;
38872
85403
 
38873
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
85404
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38874
85405
 public :
38875
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38876
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85406
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
85407
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38877
85408
};
38878
85409
 
 
85410
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
85411
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
38879
85412
 
38880
 
#line 38881 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85413
#line 85414 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
38881
85414
} // closed Puma
 
85415
class CCExprResolve;
 
85416
class CExprResolve;
38882
85417
class WinIfExists;
38883
85418
class WinImportHandler;
38884
85419
class WinMacros;
38885
 
class CMatchSyntax;
38886
 
class ExtGnu;
 
85420
class WinAsm;
 
85421
class WinDeclSpecs;
 
85422
class WinMemberExplSpec;
 
85423
class WinTypeKeywords;
 
85424
class WinFriend;
38887
85425
class ExtAC;
38888
85426
class ExtACBuilderCoupling;
38889
85427
class ExtACSyntaxCoupling;
38890
85428
class ExtACTree;
38891
85429
class ExtACKeywords;
38892
 
class WinAsm;
38893
 
class WinDeclSpecs;
38894
 
class WinMemberExplSpec;
38895
 
class WinTypeKeywords;
 
85430
class ExtGnu;
38896
85431
class PragmaOnceUnitState;
38897
85432
class PragmaOnce;
38898
 
class CCExprResolve;
38899
 
class CExprResolve;
38900
 
namespace Puma {
38901
 
 
38902
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85433
class CMatchSyntax;
 
85434
namespace Puma {
 
85435
 
 
85436
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85437
 
 
85438
#line 85439 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85439
} // closed Puma
 
85440
 
 
85441
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85442
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85443
#include "CCExprResolveH.ah"
 
85444
#endif
 
85445
namespace Puma {
 
85446
 
 
85447
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85448
 
 
85449
#line 85450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85450
} // closed Puma
 
85451
 
 
85452
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85453
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85454
#include "CExprResolveH.ah"
 
85455
#endif
 
85456
namespace Puma {
 
85457
 
 
85458
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38903
85459
class CT_DerefExpr : public CT_UnaryExpr {
38904
 
#line 38905 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85460
#line 85461 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85461
  friend class ::CCExprResolve;
 
85462
  friend class ::CExprResolve;
38905
85463
  friend class ::WinIfExists;
38906
85464
  friend class ::WinImportHandler;
38907
85465
  friend class ::WinMacros;
38908
 
  friend class ::CMatchSyntax;
38909
 
  friend class ::ExtGnu;
 
85466
  friend class ::WinAsm;
 
85467
  friend class ::WinDeclSpecs;
 
85468
  friend class ::WinMemberExplSpec;
 
85469
  friend class ::WinTypeKeywords;
 
85470
  friend class ::WinFriend;
38910
85471
  friend class ::ExtAC;
38911
85472
  friend class ::ExtACBuilderCoupling;
38912
85473
  friend class ::ExtACSyntaxCoupling;
38913
85474
  friend class ::ExtACTree;
38914
85475
  friend class ::ExtACKeywords;
38915
 
  friend class ::WinAsm;
38916
 
  friend class ::WinDeclSpecs;
38917
 
  friend class ::WinMemberExplSpec;
38918
 
  friend class ::WinTypeKeywords;
 
85476
  friend class ::ExtGnu;
38919
85477
  friend class ::PragmaOnceUnitState;
38920
85478
  friend class ::PragmaOnce;
38921
 
  friend class ::CCExprResolve;
38922
 
  friend class ::CExprResolve;
 
85479
  friend class ::CMatchSyntax;
38923
85480
 
38924
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85481
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38925
85482
 
38926
85483
public:
 
85484
  /** Constructor.
 
85485
   *  \param o The dereferencing operator, i.e. '*'.
 
85486
   *  \param e The expression to dereference. */
38927
85487
  CT_DerefExpr (CTree *o, CTree *e) :
38928
85488
    CT_UnaryExpr (o, e) {}
 
85489
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38929
85490
  static const char *NodeId ();
 
85491
  /** Get the name of the node. Can be compared with NodeId(). */
38930
85492
  const char *NodeName () const { return NodeId (); }
38931
85493
   private:
38932
85494
  typedef CT_DerefExpr CCExprResolveExpr;
38933
85495
 
38934
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
85496
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38935
85497
 public :
38936
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
85498
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38937
85499
  typedef CT_DerefExpr CExprResolveExpr;
38938
85500
 
38939
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
85501
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38940
85502
 public :
38941
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38942
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85503
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
85504
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38943
85505
};
38944
85506
 
 
85507
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
85508
 *  Tree node representing a delete expression, e.g. delete a. */
38945
85509
 
38946
 
#line 38947 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85510
#line 85511 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
38947
85511
} // closed Puma
 
85512
class CCExprResolve;
 
85513
class CExprResolve;
38948
85514
class WinIfExists;
38949
85515
class WinImportHandler;
38950
85516
class WinMacros;
38951
 
class CMatchSyntax;
38952
 
class ExtGnu;
 
85517
class WinAsm;
 
85518
class WinDeclSpecs;
 
85519
class WinMemberExplSpec;
 
85520
class WinTypeKeywords;
 
85521
class WinFriend;
38953
85522
class ExtAC;
38954
85523
class ExtACBuilderCoupling;
38955
85524
class ExtACSyntaxCoupling;
38956
85525
class ExtACTree;
38957
85526
class ExtACKeywords;
38958
 
class WinAsm;
38959
 
class WinDeclSpecs;
38960
 
class WinMemberExplSpec;
38961
 
class WinTypeKeywords;
 
85527
class ExtGnu;
38962
85528
class PragmaOnceUnitState;
38963
85529
class PragmaOnce;
38964
 
class CCExprResolve;
38965
 
class CExprResolve;
38966
 
namespace Puma {
38967
 
 
38968
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85530
class CMatchSyntax;
 
85531
namespace Puma {
 
85532
 
 
85533
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85534
 
 
85535
#line 85536 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85536
} // closed Puma
 
85537
 
 
85538
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85539
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85540
#include "CCExprResolveH.ah"
 
85541
#endif
 
85542
namespace Puma {
 
85543
 
 
85544
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85545
 
 
85546
#line 85547 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85547
} // closed Puma
 
85548
 
 
85549
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85550
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85551
#include "CExprResolveH.ah"
 
85552
#endif
 
85553
namespace Puma {
 
85554
 
 
85555
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38969
85556
class CT_DeleteExpr : public CT_Expression, public CSemObject {
38970
 
#line 38971 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85557
#line 85558 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85558
  friend class ::CCExprResolve;
 
85559
  friend class ::CExprResolve;
38971
85560
  friend class ::WinIfExists;
38972
85561
  friend class ::WinImportHandler;
38973
85562
  friend class ::WinMacros;
38974
 
  friend class ::CMatchSyntax;
38975
 
  friend class ::ExtGnu;
 
85563
  friend class ::WinAsm;
 
85564
  friend class ::WinDeclSpecs;
 
85565
  friend class ::WinMemberExplSpec;
 
85566
  friend class ::WinTypeKeywords;
 
85567
  friend class ::WinFriend;
38976
85568
  friend class ::ExtAC;
38977
85569
  friend class ::ExtACBuilderCoupling;
38978
85570
  friend class ::ExtACSyntaxCoupling;
38979
85571
  friend class ::ExtACTree;
38980
85572
  friend class ::ExtACKeywords;
38981
 
  friend class ::WinAsm;
38982
 
  friend class ::WinDeclSpecs;
38983
 
  friend class ::WinMemberExplSpec;
38984
 
  friend class ::WinTypeKeywords;
 
85573
  friend class ::ExtGnu;
38985
85574
  friend class ::PragmaOnceUnitState;
38986
85575
  friend class ::PragmaOnce;
38987
 
  friend class ::CCExprResolve;
38988
 
  friend class ::CExprResolve;
 
85576
  friend class ::CMatchSyntax;
38989
85577
 
38990
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85578
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38991
85579
 
38992
85580
  CTree *sons[2]; // oper, expr
38993
85581
 
38994
85582
public:
38995
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
85583
  /** Constructor.
 
85584
   *  \param op The delete operator.
 
85585
   *  \param e The expression representing the object to delete. */
 
85586
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
85587
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38996
85588
  static const char *NodeId ();
 
85589
  /** Get the name of the node. Can be compared with NodeId(). */
38997
85590
  const char *NodeName () const { return NodeId (); }
 
85591
  /** Get the number of sons. */
38998
85592
  int Sons () const { return 2; }
 
85593
  /** Get the n-th son.
 
85594
   *  \param n The index of the son.
 
85595
   *  \return The n-th son or NULL. */
38999
85596
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
85597
  /** Replace a son.
 
85598
   *  \param old_son The son to replace.
 
85599
   *  \param new_son The new son. */
39000
85600
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39001
85601
    CTree::ReplaceSon (sons, 2, old_son, new_son);
39002
85602
  }
 
85603
  /** Get the expression. */
39003
85604
  CTree *Expr () const { return sons[1]; }
 
85605
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
39004
85606
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
85607
  /** Get the semantic information object. */
39005
85608
  CSemObject *SemObject () const { return (CSemObject*)this; }
39006
85609
   private:
39007
85610
  typedef CT_DeleteExpr CCExprResolveExpr;
39008
85611
 
39009
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
85612
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39010
85613
 public :
39011
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
85614
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
39012
85615
  typedef CT_DeleteExpr CExprResolveExpr;
39013
85616
 
39014
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
85617
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39015
85618
 public :
39016
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39017
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85619
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
85620
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39018
85621
};
39019
85622
 
 
85623
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
85624
 *  Tree node representing a new expression, e.g. new A(). */
39020
85625
 
39021
 
#line 39022 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85626
#line 85627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
39022
85627
} // closed Puma
 
85628
class CCExprResolve;
 
85629
class CExprResolve;
39023
85630
class WinIfExists;
39024
85631
class WinImportHandler;
39025
85632
class WinMacros;
39026
 
class CMatchSyntax;
39027
 
class ExtGnu;
 
85633
class WinAsm;
 
85634
class WinDeclSpecs;
 
85635
class WinMemberExplSpec;
 
85636
class WinTypeKeywords;
 
85637
class WinFriend;
39028
85638
class ExtAC;
39029
85639
class ExtACBuilderCoupling;
39030
85640
class ExtACSyntaxCoupling;
39031
85641
class ExtACTree;
39032
85642
class ExtACKeywords;
39033
 
class WinAsm;
39034
 
class WinDeclSpecs;
39035
 
class WinMemberExplSpec;
39036
 
class WinTypeKeywords;
 
85643
class ExtGnu;
39037
85644
class PragmaOnceUnitState;
39038
85645
class PragmaOnce;
39039
 
class CCExprResolve;
39040
 
class CExprResolve;
39041
 
namespace Puma {
39042
 
 
39043
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85646
class CMatchSyntax;
 
85647
namespace Puma {
 
85648
 
 
85649
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85650
 
 
85651
#line 85652 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85652
} // closed Puma
 
85653
 
 
85654
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85655
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85656
#include "CCExprResolveH.ah"
 
85657
#endif
 
85658
namespace Puma {
 
85659
 
 
85660
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85661
 
 
85662
#line 85663 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85663
} // closed Puma
 
85664
 
 
85665
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85666
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85667
#include "CExprResolveH.ah"
 
85668
#endif
 
85669
namespace Puma {
 
85670
 
 
85671
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39044
85672
class CT_NewExpr : public CT_Expression, public CSemObject {
39045
 
#line 39046 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85673
#line 85674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85674
  friend class ::CCExprResolve;
 
85675
  friend class ::CExprResolve;
39046
85676
  friend class ::WinIfExists;
39047
85677
  friend class ::WinImportHandler;
39048
85678
  friend class ::WinMacros;
39049
 
  friend class ::CMatchSyntax;
39050
 
  friend class ::ExtGnu;
 
85679
  friend class ::WinAsm;
 
85680
  friend class ::WinDeclSpecs;
 
85681
  friend class ::WinMemberExplSpec;
 
85682
  friend class ::WinTypeKeywords;
 
85683
  friend class ::WinFriend;
39051
85684
  friend class ::ExtAC;
39052
85685
  friend class ::ExtACBuilderCoupling;
39053
85686
  friend class ::ExtACSyntaxCoupling;
39054
85687
  friend class ::ExtACTree;
39055
85688
  friend class ::ExtACKeywords;
39056
 
  friend class ::WinAsm;
39057
 
  friend class ::WinDeclSpecs;
39058
 
  friend class ::WinMemberExplSpec;
39059
 
  friend class ::WinTypeKeywords;
 
85689
  friend class ::ExtGnu;
39060
85690
  friend class ::PragmaOnceUnitState;
39061
85691
  friend class ::PragmaOnce;
39062
 
  friend class ::CCExprResolve;
39063
 
  friend class ::CExprResolve;
 
85692
  friend class ::CMatchSyntax;
39064
85693
 
39065
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85694
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39066
85695
 
39067
85696
  CTree *sons[6]; // oper, placement, open, type, close, init
39068
85697
 
39069
85698
public:
 
85699
  /** Constructor.
 
85700
   *  \param op The new operator.
 
85701
   *  \param p The optional placement expression.
 
85702
   *  \param o The optional left parenthesis around the type identifier.
 
85703
   *  \param t The type identifier specifying the type of the object to create.
 
85704
   *  \param c The optional right parenthesis around the type identifier.
 
85705
   *  \param i The optional initializer. */
39070
85706
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
39071
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
85707
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
85708
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
39072
85709
  }
 
85710
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39073
85711
  static const char *NodeId ();
 
85712
  /** Get the name of the node. Can be compared with NodeId(). */
39074
85713
  const char *NodeName () const { return NodeId (); }
 
85714
  /** Get the number of sons. */
39075
85715
  int Sons () const { return CTree::Sons (sons, 6); }
 
85716
  /** Get the n-th son.
 
85717
   *  \param n The index of the son.
 
85718
   *  \return The n-th son or NULL. */
39076
85719
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
85720
  /** Replace a son.
 
85721
   *  \param old_son The son to replace.
 
85722
   *  \param new_son The new son. */
39077
85723
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39078
85724
    CTree::ReplaceSon (sons, 6, old_son, new_son);
39079
85725
  }
 
85726
  /** Get the operator name. */
39080
85727
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
85728
  /** Get the placement expression. */
39081
85729
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
85730
  /** Get the initializer. */
39082
85731
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
85732
  /** Get the type of the object to create. */
39083
85733
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
85734
  /** Get the semantic information object. */
39084
85735
  CSemObject *SemObject () const { return (CSemObject*)this; }
39085
85736
   private:
39086
85737
  typedef CT_NewExpr CCExprResolveExpr;
39087
85738
 
39088
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
85739
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39089
85740
 public :
39090
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
85741
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
39091
85742
  typedef CT_NewExpr CExprResolveExpr;
39092
85743
 
39093
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
85744
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39094
85745
 public :
39095
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39096
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85746
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
85747
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39097
85748
};
39098
85749
 
 
85750
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
85751
 *  Tree node representing an if-then expression, 
 
85752
 *  e.g. a>0?a:b or a?:b. */
39099
85753
 
39100
 
#line 39101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85754
#line 85755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
39101
85755
} // closed Puma
 
85756
class CCExprResolve;
 
85757
class CExprResolve;
39102
85758
class WinIfExists;
39103
85759
class WinImportHandler;
39104
85760
class WinMacros;
39105
 
class CMatchSyntax;
39106
 
class ExtGnu;
 
85761
class WinAsm;
 
85762
class WinDeclSpecs;
 
85763
class WinMemberExplSpec;
 
85764
class WinTypeKeywords;
 
85765
class WinFriend;
39107
85766
class ExtAC;
39108
85767
class ExtACBuilderCoupling;
39109
85768
class ExtACSyntaxCoupling;
39110
85769
class ExtACTree;
39111
85770
class ExtACKeywords;
39112
 
class WinAsm;
39113
 
class WinDeclSpecs;
39114
 
class WinMemberExplSpec;
39115
 
class WinTypeKeywords;
 
85771
class ExtGnu;
39116
85772
class PragmaOnceUnitState;
39117
85773
class PragmaOnce;
39118
 
class CCExprResolve;
39119
 
class CExprResolve;
39120
 
namespace Puma {
39121
 
 
39122
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85774
class CMatchSyntax;
 
85775
namespace Puma {
 
85776
 
 
85777
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85778
 
 
85779
#line 85780 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85780
} // closed Puma
 
85781
 
 
85782
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85783
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85784
#include "CCExprResolveH.ah"
 
85785
#endif
 
85786
namespace Puma {
 
85787
 
 
85788
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85789
 
 
85790
#line 85791 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85791
} // closed Puma
 
85792
 
 
85793
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85794
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85795
#include "CExprResolveH.ah"
 
85796
#endif
 
85797
namespace Puma {
 
85798
 
 
85799
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39123
85800
class CT_IfThenExpr : public CT_Expression {
39124
 
#line 39125 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85801
#line 85802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85802
  friend class ::CCExprResolve;
 
85803
  friend class ::CExprResolve;
39125
85804
  friend class ::WinIfExists;
39126
85805
  friend class ::WinImportHandler;
39127
85806
  friend class ::WinMacros;
39128
 
  friend class ::CMatchSyntax;
39129
 
  friend class ::ExtGnu;
 
85807
  friend class ::WinAsm;
 
85808
  friend class ::WinDeclSpecs;
 
85809
  friend class ::WinMemberExplSpec;
 
85810
  friend class ::WinTypeKeywords;
 
85811
  friend class ::WinFriend;
39130
85812
  friend class ::ExtAC;
39131
85813
  friend class ::ExtACBuilderCoupling;
39132
85814
  friend class ::ExtACSyntaxCoupling;
39133
85815
  friend class ::ExtACTree;
39134
85816
  friend class ::ExtACKeywords;
39135
 
  friend class ::WinAsm;
39136
 
  friend class ::WinDeclSpecs;
39137
 
  friend class ::WinMemberExplSpec;
39138
 
  friend class ::WinTypeKeywords;
 
85817
  friend class ::ExtGnu;
39139
85818
  friend class ::PragmaOnceUnitState;
39140
85819
  friend class ::PragmaOnce;
39141
 
  friend class ::CCExprResolve;
39142
 
  friend class ::CExprResolve;
 
85820
  friend class ::CMatchSyntax;
39143
85821
 
39144
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85822
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39145
85823
 
39146
85824
  CTree *sons[5]; // cond, oper, left, colon, right
39147
85825
 
39148
85826
public:
 
85827
  /** Constructor.
 
85828
   *  \param c1 The condition expression.
 
85829
   *  \param o The question mark operator. 
 
85830
   *  \param l The expression to the left of the colon.
 
85831
   *  \param c2 The colon operator.
 
85832
   *  \param r The expression to the right of the colon. */ 
39149
85833
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
39150
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
85834
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
85835
    AddSon (sons[3], c2); AddSon (sons[4], r);
39151
85836
  }
 
85837
  /** Constructor.
 
85838
   *  \param c1 The condition expression.
 
85839
   *  \param o The question mark operator. 
 
85840
   *  \param c2 The colon operator.
 
85841
   *  \param r The expression to the right of the colon. */ 
39152
85842
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
39153
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
85843
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
85844
    AddSon (sons[3], c2); AddSon (sons[4], r);
39154
85845
  }
 
85846
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39155
85847
  static const char *NodeId ();
 
85848
  /** Get the name of the node. Can be compared with NodeId(). */
39156
85849
  const char *NodeName () const { return NodeId (); }
 
85850
  /** Get the number of sons. */
39157
85851
  int Sons () const { return CTree::Sons (sons, 5); }
 
85852
  /** Get the n-th son.
 
85853
   *  \param n The index of the son.
 
85854
   *  \return The n-th son or NULL. */
39158
85855
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
85856
  /** Get the condition expression. */
39159
85857
  CTree *Condition () const { return sons[0]; }
 
85858
  /** Get the left expression (condition=true). */
39160
85859
  CTree *LeftOperand () const { return sons[2]; }
 
85860
  /** Get the right expression (condition=false). */
39161
85861
  CTree *RightOperand () const { return sons[4]; }
 
85862
  /** Replace a son.
 
85863
   *  \param old_son The son to replace.
 
85864
   *  \param new_son The new son. */
39162
85865
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39163
85866
    CTree::ReplaceSon (sons, 5, old_son, new_son);
39164
85867
  }
39165
85868
   private:
39166
85869
  typedef CT_IfThenExpr CCExprResolveExpr;
39167
85870
 
39168
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
85871
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39169
85872
 public :
39170
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
85873
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
39171
85874
  typedef CT_IfThenExpr CExprResolveExpr;
39172
85875
 
39173
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
85876
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39174
85877
 public :
39175
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39176
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85878
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
85879
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39177
85880
};
39178
85881
 
 
85882
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
85883
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
39179
85884
 
39180
 
#line 39181 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85885
#line 85886 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
39181
85886
} // closed Puma
 
85887
class CCExprResolve;
 
85888
class CExprResolve;
39182
85889
class WinIfExists;
39183
85890
class WinImportHandler;
39184
85891
class WinMacros;
39185
 
class CMatchSyntax;
39186
 
class ExtGnu;
 
85892
class WinAsm;
 
85893
class WinDeclSpecs;
 
85894
class WinMemberExplSpec;
 
85895
class WinTypeKeywords;
 
85896
class WinFriend;
39187
85897
class ExtAC;
39188
85898
class ExtACBuilderCoupling;
39189
85899
class ExtACSyntaxCoupling;
39190
85900
class ExtACTree;
39191
85901
class ExtACKeywords;
39192
 
class WinAsm;
39193
 
class WinDeclSpecs;
39194
 
class WinMemberExplSpec;
39195
 
class WinTypeKeywords;
 
85902
class ExtGnu;
39196
85903
class PragmaOnceUnitState;
39197
85904
class PragmaOnce;
39198
 
class CCExprResolve;
39199
 
class CExprResolve;
39200
 
namespace Puma {
39201
 
 
39202
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85905
class CMatchSyntax;
 
85906
namespace Puma {
 
85907
 
 
85908
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85909
 
 
85910
#line 85911 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85911
} // closed Puma
 
85912
 
 
85913
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85914
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85915
#include "CCExprResolveH.ah"
 
85916
#endif
 
85917
namespace Puma {
 
85918
 
 
85919
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85920
 
 
85921
#line 85922 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85922
} // closed Puma
 
85923
 
 
85924
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85925
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85926
#include "CExprResolveH.ah"
 
85927
#endif
 
85928
namespace Puma {
 
85929
 
 
85930
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39203
85931
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
39204
 
#line 39205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
85932
#line 85933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
85933
  friend class ::CCExprResolve;
 
85934
  friend class ::CExprResolve;
39205
85935
  friend class ::WinIfExists;
39206
85936
  friend class ::WinImportHandler;
39207
85937
  friend class ::WinMacros;
39208
 
  friend class ::CMatchSyntax;
39209
 
  friend class ::ExtGnu;
 
85938
  friend class ::WinAsm;
 
85939
  friend class ::WinDeclSpecs;
 
85940
  friend class ::WinMemberExplSpec;
 
85941
  friend class ::WinTypeKeywords;
 
85942
  friend class ::WinFriend;
39210
85943
  friend class ::ExtAC;
39211
85944
  friend class ::ExtACBuilderCoupling;
39212
85945
  friend class ::ExtACSyntaxCoupling;
39213
85946
  friend class ::ExtACTree;
39214
85947
  friend class ::ExtACKeywords;
39215
 
  friend class ::WinAsm;
39216
 
  friend class ::WinDeclSpecs;
39217
 
  friend class ::WinMemberExplSpec;
39218
 
  friend class ::WinTypeKeywords;
 
85948
  friend class ::ExtGnu;
39219
85949
  friend class ::PragmaOnceUnitState;
39220
85950
  friend class ::PragmaOnce;
39221
 
  friend class ::CCExprResolve;
39222
 
  friend class ::CExprResolve;
 
85951
  friend class ::CMatchSyntax;
39223
85952
 
39224
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85953
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39225
85954
 
39226
85955
  CTree *sons[4]; // open, type, close, init
39227
85956
 
39228
85957
public:
 
85958
  /** Constructor.
 
85959
   *  \param r Left parenthesis of the type name.
 
85960
   *  \param t The type name.
 
85961
   *  \param cr Right parenthesis of the type name.
 
85962
   *  \param i The initializer list. */
39229
85963
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
39230
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
85964
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
85965
    AddSon (sons[2], cr); AddSon (sons[3], i);
39231
85966
  }
 
85967
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39232
85968
  static const char *NodeId ();
 
85969
  /** Get the name of the node. Can be compared with NodeId(). */
39233
85970
  const char *NodeName () const { return NodeId (); }
 
85971
  /** Get the number of sons. */
39234
85972
  int Sons () const { return 4; }
 
85973
  /** Get the n-th son.
 
85974
   *  \param n The index of the son.
 
85975
   *  \return The n-th son or NULL. */
39235
85976
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
85977
  /** Replace a son.
 
85978
   *  \param old_son The son to replace.
 
85979
   *  \param new_son The new son. */
39236
85980
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39237
85981
    CTree::ReplaceSon (sons, 4, old_son, new_son);
39238
85982
  }
 
85983
  /** Get the type name. */
39239
85984
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
85985
  /** Get the initializer list. */
39240
85986
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
85987
  /** Get the semantic information object. */
39241
85988
  CSemObject *SemObject () const { return (CSemObject*)this; }
39242
85989
   private:
39243
85990
  typedef CT_CmpdLiteral CCExprResolveExpr;
39244
85991
 
39245
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
85992
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39246
85993
 public :
39247
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
85994
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
39248
85995
  typedef CT_CmpdLiteral CExprResolveExpr;
39249
85996
 
39250
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
85997
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39251
85998
 public :
39252
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39253
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85999
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
86000
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39254
86001
};
39255
86002
 
 
86003
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
86004
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
39256
86005
 
39257
 
#line 39258 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86006
#line 86007 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
39258
86007
} // closed Puma
 
86008
class CCExprResolve;
 
86009
class CExprResolve;
39259
86010
class WinIfExists;
39260
86011
class WinImportHandler;
39261
86012
class WinMacros;
39262
 
class CMatchSyntax;
39263
 
class ExtGnu;
 
86013
class WinAsm;
 
86014
class WinDeclSpecs;
 
86015
class WinMemberExplSpec;
 
86016
class WinTypeKeywords;
 
86017
class WinFriend;
39264
86018
class ExtAC;
39265
86019
class ExtACBuilderCoupling;
39266
86020
class ExtACSyntaxCoupling;
39267
86021
class ExtACTree;
39268
86022
class ExtACKeywords;
39269
 
class WinAsm;
39270
 
class WinDeclSpecs;
39271
 
class WinMemberExplSpec;
39272
 
class WinTypeKeywords;
 
86023
class ExtGnu;
39273
86024
class PragmaOnceUnitState;
39274
86025
class PragmaOnce;
39275
 
class CCExprResolve;
39276
 
class CExprResolve;
39277
 
namespace Puma {
39278
 
 
39279
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86026
class CMatchSyntax;
 
86027
namespace Puma {
 
86028
 
 
86029
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86030
 
 
86031
#line 86032 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86032
} // closed Puma
 
86033
 
 
86034
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86035
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86036
#include "CCExprResolveH.ah"
 
86037
#endif
 
86038
namespace Puma {
 
86039
 
 
86040
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86041
 
 
86042
#line 86043 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86043
} // closed Puma
 
86044
 
 
86045
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86046
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86047
#include "CExprResolveH.ah"
 
86048
#endif
 
86049
namespace Puma {
 
86050
 
 
86051
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39280
86052
class CT_ConstructExpr : public CT_Expression, public CSemObject {
39281
 
#line 39282 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86053
#line 86054 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86054
  friend class ::CCExprResolve;
 
86055
  friend class ::CExprResolve;
39282
86056
  friend class ::WinIfExists;
39283
86057
  friend class ::WinImportHandler;
39284
86058
  friend class ::WinMacros;
39285
 
  friend class ::CMatchSyntax;
39286
 
  friend class ::ExtGnu;
 
86059
  friend class ::WinAsm;
 
86060
  friend class ::WinDeclSpecs;
 
86061
  friend class ::WinMemberExplSpec;
 
86062
  friend class ::WinTypeKeywords;
 
86063
  friend class ::WinFriend;
39287
86064
  friend class ::ExtAC;
39288
86065
  friend class ::ExtACBuilderCoupling;
39289
86066
  friend class ::ExtACSyntaxCoupling;
39290
86067
  friend class ::ExtACTree;
39291
86068
  friend class ::ExtACKeywords;
39292
 
  friend class ::WinAsm;
39293
 
  friend class ::WinDeclSpecs;
39294
 
  friend class ::WinMemberExplSpec;
39295
 
  friend class ::WinTypeKeywords;
 
86069
  friend class ::ExtGnu;
39296
86070
  friend class ::PragmaOnceUnitState;
39297
86071
  friend class ::PragmaOnce;
39298
 
  friend class ::CCExprResolve;
39299
 
  friend class ::CExprResolve;
 
86072
  friend class ::CMatchSyntax;
39300
86073
 
39301
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86074
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39302
86075
 
39303
86076
  CTree *sons[2]; // type, init
39304
86077
 
39305
86078
public:
39306
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
86079
  /** Constructor.
 
86080
   *  \param t The type name.
 
86081
   *  \param i The initializer list. */
 
86082
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
86083
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39307
86084
  static const char *NodeId ();
 
86085
  /** Get the name of the node. Can be compared with NodeId(). */
39308
86086
  const char *NodeName () const { return NodeId (); }
 
86087
  /** Get the number of sons. */
39309
86088
  int Sons () const { return 2; }
 
86089
  /** Get the n-th son.
 
86090
   *  \param n The index of the son.
 
86091
   *  \return The n-th son or NULL. */
39310
86092
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
86093
  /** Replace a son.
 
86094
   *  \param old_son The son to replace.
 
86095
   *  \param new_son The new son. */
39311
86096
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39312
86097
    CTree::ReplaceSon (sons, 2, old_son, new_son);
39313
86098
  }
 
86099
  /** Get the type name. */
39314
86100
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
86101
  /** Get the initializer. */
39315
86102
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
86103
  /** Get the semantic information object. */
39316
86104
  CSemObject *SemObject () const { return (CSemObject*)this; }
39317
86105
   private:
39318
86106
  typedef CT_ConstructExpr CCExprResolveExpr;
39319
86107
 
39320
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
86108
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39321
86109
 public :
39322
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
86110
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
39323
86111
  typedef CT_ConstructExpr CExprResolveExpr;
39324
86112
 
39325
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
86113
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39326
86114
 public :
39327
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39328
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86115
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
86116
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39329
86117
};
39330
86118
 
 
86119
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
86120
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
39331
86121
 
39332
 
#line 39333 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86122
#line 86123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
39333
86123
} // closed Puma
 
86124
class CCExprResolve;
 
86125
class CExprResolve;
39334
86126
class WinIfExists;
39335
86127
class WinImportHandler;
39336
86128
class WinMacros;
39337
 
class CMatchSyntax;
39338
 
class ExtGnu;
 
86129
class WinAsm;
 
86130
class WinDeclSpecs;
 
86131
class WinMemberExplSpec;
 
86132
class WinTypeKeywords;
 
86133
class WinFriend;
39339
86134
class ExtAC;
39340
86135
class ExtACBuilderCoupling;
39341
86136
class ExtACSyntaxCoupling;
39342
86137
class ExtACTree;
39343
86138
class ExtACKeywords;
39344
 
class WinAsm;
39345
 
class WinDeclSpecs;
39346
 
class WinMemberExplSpec;
39347
 
class WinTypeKeywords;
 
86139
class ExtGnu;
39348
86140
class PragmaOnceUnitState;
39349
86141
class PragmaOnce;
39350
 
class CCExprResolve;
39351
 
class CExprResolve;
39352
 
namespace Puma {
39353
 
 
39354
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86142
class CMatchSyntax;
 
86143
namespace Puma {
 
86144
 
 
86145
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86146
 
 
86147
#line 86148 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86148
} // closed Puma
 
86149
 
 
86150
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86151
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86152
#include "CCExprResolveH.ah"
 
86153
#endif
 
86154
namespace Puma {
 
86155
 
 
86156
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86157
 
 
86158
#line 86159 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86159
} // closed Puma
 
86160
 
 
86161
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86162
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86163
#include "CExprResolveH.ah"
 
86164
#endif
 
86165
namespace Puma {
 
86166
 
 
86167
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39355
86168
class CT_ThrowExpr : public CT_Expression {
39356
 
#line 39357 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86169
#line 86170 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86170
  friend class ::CCExprResolve;
 
86171
  friend class ::CExprResolve;
39357
86172
  friend class ::WinIfExists;
39358
86173
  friend class ::WinImportHandler;
39359
86174
  friend class ::WinMacros;
39360
 
  friend class ::CMatchSyntax;
39361
 
  friend class ::ExtGnu;
 
86175
  friend class ::WinAsm;
 
86176
  friend class ::WinDeclSpecs;
 
86177
  friend class ::WinMemberExplSpec;
 
86178
  friend class ::WinTypeKeywords;
 
86179
  friend class ::WinFriend;
39362
86180
  friend class ::ExtAC;
39363
86181
  friend class ::ExtACBuilderCoupling;
39364
86182
  friend class ::ExtACSyntaxCoupling;
39365
86183
  friend class ::ExtACTree;
39366
86184
  friend class ::ExtACKeywords;
39367
 
  friend class ::WinAsm;
39368
 
  friend class ::WinDeclSpecs;
39369
 
  friend class ::WinMemberExplSpec;
39370
 
  friend class ::WinTypeKeywords;
 
86185
  friend class ::ExtGnu;
39371
86186
  friend class ::PragmaOnceUnitState;
39372
86187
  friend class ::PragmaOnce;
39373
 
  friend class ::CCExprResolve;
39374
 
  friend class ::CExprResolve;
 
86188
  friend class ::CMatchSyntax;
39375
86189
 
39376
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86190
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39377
86191
 
39378
86192
  CTree *sons[2]; // throw, expr
39379
86193
 
39380
86194
public:
39381
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
86195
  /** Constructor.
 
86196
   *  \param t The 'throw' keyword.
 
86197
   *  \param e The expression. */
 
86198
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
86199
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39382
86200
  static const char *NodeId ();
 
86201
  /** Get the name of the node. Can be compared with NodeId(). */
39383
86202
  const char *NodeName () const { return NodeId (); }
 
86203
  /** Get the number of sons. */
39384
86204
  int Sons () const { return CTree::Sons (sons, 2); }
 
86205
  /** Get the n-th son.
 
86206
   *  \param n The index of the son.
 
86207
   *  \return The n-th son or NULL. */
39385
86208
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
86209
  /** Replace a son.
 
86210
   *  \param old_son The son to replace.
 
86211
   *  \param new_son The new son. */
39386
86212
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39387
86213
    CTree::ReplaceSon (sons, 2, old_son, new_son);
39388
86214
  }
 
86215
  /** Get the expression. */
39389
86216
  CTree *Expr () const { return sons[1]; }
39390
86217
   private:
39391
86218
  typedef CT_ThrowExpr CCExprResolveExpr;
39392
86219
 
39393
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
86220
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39394
86221
 public :
39395
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
86222
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
39396
86223
  typedef CT_ThrowExpr CExprResolveExpr;
39397
86224
 
39398
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
86225
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39399
86226
 public :
39400
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39401
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86227
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
86228
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39402
86229
};
39403
86230
 
 
86231
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
86232
 *  Tree node representing an index expression. */
39404
86233
 
39405
 
#line 39406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86234
#line 86235 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
39406
86235
} // closed Puma
 
86236
class CCExprResolve;
 
86237
class CExprResolve;
39407
86238
class WinIfExists;
39408
86239
class WinImportHandler;
39409
86240
class WinMacros;
39410
 
class CMatchSyntax;
39411
 
class ExtGnu;
 
86241
class WinAsm;
 
86242
class WinDeclSpecs;
 
86243
class WinMemberExplSpec;
 
86244
class WinTypeKeywords;
 
86245
class WinFriend;
39412
86246
class ExtAC;
39413
86247
class ExtACBuilderCoupling;
39414
86248
class ExtACSyntaxCoupling;
39415
86249
class ExtACTree;
39416
86250
class ExtACKeywords;
39417
 
class WinAsm;
39418
 
class WinDeclSpecs;
39419
 
class WinMemberExplSpec;
39420
 
class WinTypeKeywords;
 
86251
class ExtGnu;
39421
86252
class PragmaOnceUnitState;
39422
86253
class PragmaOnce;
39423
 
class CCExprResolve;
39424
 
class CExprResolve;
39425
 
namespace Puma {
39426
 
 
39427
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39428
 
class CT_IndexExpr : public CT_Expression {
39429
 
#line 39430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86254
class CMatchSyntax;
 
86255
namespace Puma {
 
86256
 
 
86257
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86258
 
 
86259
#line 86260 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86260
} // closed Puma
 
86261
 
 
86262
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86263
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86264
#include "CCExprResolveH.ah"
 
86265
#endif
 
86266
namespace Puma {
 
86267
 
 
86268
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86269
 
 
86270
#line 86271 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86271
} // closed Puma
 
86272
 
 
86273
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86274
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86275
#include "CExprResolveH.ah"
 
86276
#endif
 
86277
namespace Puma {
 
86278
 
 
86279
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86280
class CT_IndexExpr : public CT_Call {
 
86281
#line 86282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86282
  friend class ::CCExprResolve;
 
86283
  friend class ::CExprResolve;
39430
86284
  friend class ::WinIfExists;
39431
86285
  friend class ::WinImportHandler;
39432
86286
  friend class ::WinMacros;
39433
 
  friend class ::CMatchSyntax;
39434
 
  friend class ::ExtGnu;
 
86287
  friend class ::WinAsm;
 
86288
  friend class ::WinDeclSpecs;
 
86289
  friend class ::WinMemberExplSpec;
 
86290
  friend class ::WinTypeKeywords;
 
86291
  friend class ::WinFriend;
39435
86292
  friend class ::ExtAC;
39436
86293
  friend class ::ExtACBuilderCoupling;
39437
86294
  friend class ::ExtACSyntaxCoupling;
39438
86295
  friend class ::ExtACTree;
39439
86296
  friend class ::ExtACKeywords;
39440
 
  friend class ::WinAsm;
39441
 
  friend class ::WinDeclSpecs;
39442
 
  friend class ::WinMemberExplSpec;
39443
 
  friend class ::WinTypeKeywords;
 
86297
  friend class ::ExtGnu;
39444
86298
  friend class ::PragmaOnceUnitState;
39445
86299
  friend class ::PragmaOnce;
39446
 
  friend class ::CCExprResolve;
39447
 
  friend class ::CExprResolve;
 
86300
  friend class ::CMatchSyntax;
39448
86301
 
39449
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86302
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39450
86303
 
39451
86304
  CTree *sons[4]; // expr, open, index, close
39452
86305
 
39453
86306
public:
 
86307
  /** Constructor.
 
86308
   *  \param e The expression on which to invoke the index operator.
 
86309
   *  \param o Left parenthesis of the index expression.
 
86310
   *  \param i The index expression. 
 
86311
   *  \param c Right parenthesis of the index expression. */
39454
86312
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
39455
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
86313
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
86314
    AddSon (sons[2], i); AddSon (sons[3], c);
39456
86315
  }
 
86316
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39457
86317
  static const char *NodeId ();
 
86318
  /** Get the name of the node. Can be compared with NodeId(). */
39458
86319
  const char *NodeName () const { return NodeId (); }
 
86320
  /** Get the number of sons. */
39459
86321
  int Sons () const { return 4; }
 
86322
  /** Get the n-th son.
 
86323
   *  \param n The index of the son.
 
86324
   *  \return The n-th son or NULL. */
39460
86325
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
86326
  /** Replace a son.
 
86327
   *  \param old_son The son to replace.
 
86328
   *  \param new_son The new son. */
39461
86329
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39462
86330
    CTree::ReplaceSon (sons, 4, old_son, new_son);
39463
86331
  }
39464
86332
   private:
39465
86333
  typedef CT_IndexExpr CCExprResolveExpr;
39466
86334
 
39467
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
86335
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39468
86336
 public :
39469
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
86337
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
39470
86338
  typedef CT_IndexExpr CExprResolveExpr;
39471
86339
 
39472
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
86340
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39473
86341
 public :
39474
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39475
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86342
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
86343
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39476
86344
};
39477
86345
 
 
86346
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
86347
 *  Tree node representing a function call expression, e.g. f(i). */
39478
86348
 
39479
 
#line 39480 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86349
#line 86350 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
39480
86350
} // closed Puma
 
86351
class CCExprResolve;
 
86352
class CExprResolve;
39481
86353
class WinIfExists;
39482
86354
class WinImportHandler;
39483
86355
class WinMacros;
39484
 
class CMatchSyntax;
39485
 
class ExtGnu;
 
86356
class WinAsm;
 
86357
class WinDeclSpecs;
 
86358
class WinMemberExplSpec;
 
86359
class WinTypeKeywords;
 
86360
class WinFriend;
39486
86361
class ExtAC;
39487
86362
class ExtACBuilderCoupling;
39488
86363
class ExtACSyntaxCoupling;
39489
86364
class ExtACTree;
39490
86365
class ExtACKeywords;
39491
 
class WinAsm;
39492
 
class WinDeclSpecs;
39493
 
class WinMemberExplSpec;
39494
 
class WinTypeKeywords;
 
86366
class ExtGnu;
39495
86367
class PragmaOnceUnitState;
39496
86368
class PragmaOnce;
39497
 
class CCExprResolve;
39498
 
class CExprResolve;
39499
 
namespace Puma {
39500
 
 
39501
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39502
 
class CT_CallExpr : public CT_Expression, public CSemObject {
39503
 
#line 39504 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86369
class CMatchSyntax;
 
86370
namespace Puma {
 
86371
 
 
86372
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86373
 
 
86374
#line 86375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86375
} // closed Puma
 
86376
 
 
86377
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86378
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86379
#include "CCExprResolveH.ah"
 
86380
#endif
 
86381
namespace Puma {
 
86382
 
 
86383
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86384
 
 
86385
#line 86386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86386
} // closed Puma
 
86387
 
 
86388
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86389
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86390
#include "CExprResolveH.ah"
 
86391
#endif
 
86392
namespace Puma {
 
86393
 
 
86394
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86395
class CT_CallExpr : public CT_Call {
 
86396
#line 86397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86397
  friend class ::CCExprResolve;
 
86398
  friend class ::CExprResolve;
39504
86399
  friend class ::WinIfExists;
39505
86400
  friend class ::WinImportHandler;
39506
86401
  friend class ::WinMacros;
39507
 
  friend class ::CMatchSyntax;
39508
 
  friend class ::ExtGnu;
 
86402
  friend class ::WinAsm;
 
86403
  friend class ::WinDeclSpecs;
 
86404
  friend class ::WinMemberExplSpec;
 
86405
  friend class ::WinTypeKeywords;
 
86406
  friend class ::WinFriend;
39509
86407
  friend class ::ExtAC;
39510
86408
  friend class ::ExtACBuilderCoupling;
39511
86409
  friend class ::ExtACSyntaxCoupling;
39512
86410
  friend class ::ExtACTree;
39513
86411
  friend class ::ExtACKeywords;
39514
 
  friend class ::WinAsm;
39515
 
  friend class ::WinDeclSpecs;
39516
 
  friend class ::WinMemberExplSpec;
39517
 
  friend class ::WinTypeKeywords;
 
86412
  friend class ::ExtGnu;
39518
86413
  friend class ::PragmaOnceUnitState;
39519
86414
  friend class ::PragmaOnce;
39520
 
  friend class ::CCExprResolve;
39521
 
  friend class ::CExprResolve;
 
86415
  friend class ::CMatchSyntax;
39522
86416
 
39523
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86417
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39524
86418
 
39525
86419
  CTree *sons[2]; // expr, args
39526
86420
 
39527
86421
public:
39528
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
39529
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
86422
  /** Constructor.
 
86423
   *  \param e The expression on which the call is invoked. */
 
86424
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
86425
  /** Constructor.
 
86426
   *  \param e The expression on which the call is invoked.
 
86427
   *  \param l The argument list of the call. */
 
86428
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
86429
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39530
86430
  static const char *NodeId ();
 
86431
  /** Get the name of the node. Can be compared with NodeId(). */
39531
86432
  const char *NodeName () const { return NodeId (); }
 
86433
  /** Get the number of sons. */
39532
86434
  int Sons () const { return CTree::Sons (sons, 2); }
 
86435
  /** Get the n-th son.
 
86436
   *  \param n The index of the son.
 
86437
   *  \return The n-th son or NULL. */
39533
86438
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
86439
  /** Replace a son.
 
86440
   *  \param old_son The son to replace.
 
86441
   *  \param new_son The new son. */
39534
86442
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39535
86443
    CTree::ReplaceSon (sons, 2, old_son, new_son);
39536
86444
  }
39537
86445
  CTree *Expr () const { return sons[0]; }
39538
86446
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
39539
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
39540
86447
   private:
39541
86448
  typedef CT_CallExpr CCExprResolveExpr;
39542
86449
 
39543
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
86450
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39544
86451
 public :
39545
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
86452
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
39546
86453
  typedef CT_CallExpr CExprResolveExpr;
39547
86454
 
39548
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
86455
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39549
86456
 public :
39550
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39551
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86457
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
86458
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39552
86459
};
39553
86460
 
 
86461
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
86462
 *  Tree node representing a cast expression, e.g. (int)a. */
39554
86463
 
39555
 
#line 39556 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86464
#line 86465 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
39556
86465
} // closed Puma
 
86466
class CCExprResolve;
 
86467
class CExprResolve;
39557
86468
class WinIfExists;
39558
86469
class WinImportHandler;
39559
86470
class WinMacros;
39560
 
class CMatchSyntax;
39561
 
class ExtGnu;
 
86471
class WinAsm;
 
86472
class WinDeclSpecs;
 
86473
class WinMemberExplSpec;
 
86474
class WinTypeKeywords;
 
86475
class WinFriend;
39562
86476
class ExtAC;
39563
86477
class ExtACBuilderCoupling;
39564
86478
class ExtACSyntaxCoupling;
39565
86479
class ExtACTree;
39566
86480
class ExtACKeywords;
39567
 
class WinAsm;
39568
 
class WinDeclSpecs;
39569
 
class WinMemberExplSpec;
39570
 
class WinTypeKeywords;
 
86481
class ExtGnu;
39571
86482
class PragmaOnceUnitState;
39572
86483
class PragmaOnce;
39573
 
class CCExprResolve;
39574
 
class CExprResolve;
39575
 
namespace Puma {
39576
 
 
39577
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86484
class CMatchSyntax;
 
86485
namespace Puma {
 
86486
 
 
86487
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86488
 
 
86489
#line 86490 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86490
} // closed Puma
 
86491
 
 
86492
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86493
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86494
#include "CCExprResolveH.ah"
 
86495
#endif
 
86496
namespace Puma {
 
86497
 
 
86498
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86499
 
 
86500
#line 86501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86501
} // closed Puma
 
86502
 
 
86503
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86504
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86505
#include "CExprResolveH.ah"
 
86506
#endif
 
86507
namespace Puma {
 
86508
 
 
86509
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39578
86510
class CT_CastExpr : public CT_Expression {
39579
 
#line 39580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86511
#line 86512 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86512
  friend class ::CCExprResolve;
 
86513
  friend class ::CExprResolve;
39580
86514
  friend class ::WinIfExists;
39581
86515
  friend class ::WinImportHandler;
39582
86516
  friend class ::WinMacros;
39583
 
  friend class ::CMatchSyntax;
39584
 
  friend class ::ExtGnu;
 
86517
  friend class ::WinAsm;
 
86518
  friend class ::WinDeclSpecs;
 
86519
  friend class ::WinMemberExplSpec;
 
86520
  friend class ::WinTypeKeywords;
 
86521
  friend class ::WinFriend;
39585
86522
  friend class ::ExtAC;
39586
86523
  friend class ::ExtACBuilderCoupling;
39587
86524
  friend class ::ExtACSyntaxCoupling;
39588
86525
  friend class ::ExtACTree;
39589
86526
  friend class ::ExtACKeywords;
39590
 
  friend class ::WinAsm;
39591
 
  friend class ::WinDeclSpecs;
39592
 
  friend class ::WinMemberExplSpec;
39593
 
  friend class ::WinTypeKeywords;
 
86527
  friend class ::ExtGnu;
39594
86528
  friend class ::PragmaOnceUnitState;
39595
86529
  friend class ::PragmaOnce;
39596
 
  friend class ::CCExprResolve;
39597
 
  friend class ::CExprResolve;
 
86530
  friend class ::CMatchSyntax;
39598
86531
 
39599
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86532
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39600
86533
 
39601
86534
  CTree *sons[4]; // open, type, close, expr
39602
86535
 
39603
86536
public:
 
86537
  /** Constructor.
 
86538
   *  \param o Left parenthesis of the type name.
 
86539
   *  \param t The type to cast to.
 
86540
   *  \param c Right parenthesis of the type name. 
 
86541
   *  \param e The expression to cast. */
39604
86542
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
39605
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
86543
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
86544
    AddSon (sons[2], c); AddSon (sons[3], e);
39606
86545
  }
 
86546
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39607
86547
  static const char *NodeId ();
 
86548
  /** Get the name of the node. Can be compared with NodeId(). */
39608
86549
  const char *NodeName () const { return NodeId (); }
 
86550
  /** Get the number of sons. */
39609
86551
  int Sons () const { return 4; }
 
86552
  /** Get the n-th son.
 
86553
   *  \param n The index of the son.
 
86554
   *  \return The n-th son or NULL. */
39610
86555
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
86556
  /** Replace a son.
 
86557
   *  \param old_son The son to replace.
 
86558
   *  \param new_son The new son. */
39611
86559
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39612
86560
    CTree::ReplaceSon (sons, 4, old_son, new_son);
39613
86561
  }
 
86562
  /** Get the casted expression. */
39614
86563
  CTree *Expr () const { return sons[3]; }
 
86564
  /** Get the type to cast to. */
39615
86565
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
39616
86566
   private:
39617
86567
  typedef CT_CastExpr CCExprResolveExpr;
39618
86568
 
39619
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
86569
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39620
86570
 public :
39621
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
86571
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
39622
86572
  typedef CT_CastExpr CExprResolveExpr;
39623
86573
 
39624
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
86574
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39625
86575
 public :
39626
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39627
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86576
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
86577
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39628
86578
};
39629
86579
 
 
86580
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
86581
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
39630
86582
 
39631
 
#line 39632 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86583
#line 86584 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
39632
86584
} // closed Puma
 
86585
class CCExprResolve;
 
86586
class CExprResolve;
39633
86587
class WinIfExists;
39634
86588
class WinImportHandler;
39635
86589
class WinMacros;
39636
 
class CMatchSyntax;
39637
 
class ExtGnu;
 
86590
class WinAsm;
 
86591
class WinDeclSpecs;
 
86592
class WinMemberExplSpec;
 
86593
class WinTypeKeywords;
 
86594
class WinFriend;
39638
86595
class ExtAC;
39639
86596
class ExtACBuilderCoupling;
39640
86597
class ExtACSyntaxCoupling;
39641
86598
class ExtACTree;
39642
86599
class ExtACKeywords;
39643
 
class WinAsm;
39644
 
class WinDeclSpecs;
39645
 
class WinMemberExplSpec;
39646
 
class WinTypeKeywords;
 
86600
class ExtGnu;
39647
86601
class PragmaOnceUnitState;
39648
86602
class PragmaOnce;
39649
 
class CCExprResolve;
39650
 
class CExprResolve;
39651
 
namespace Puma {
39652
 
 
39653
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86603
class CMatchSyntax;
 
86604
namespace Puma {
 
86605
 
 
86606
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86607
 
 
86608
#line 86609 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86609
} // closed Puma
 
86610
 
 
86611
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86612
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86613
#include "CCExprResolveH.ah"
 
86614
#endif
 
86615
namespace Puma {
 
86616
 
 
86617
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86618
 
 
86619
#line 86620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86620
} // closed Puma
 
86621
 
 
86622
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86623
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86624
#include "CExprResolveH.ah"
 
86625
#endif
 
86626
namespace Puma {
 
86627
 
 
86628
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39654
86629
class CT_StaticCast : public CT_Expression {
39655
 
#line 39656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86630
#line 86631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86631
  friend class ::CCExprResolve;
 
86632
  friend class ::CExprResolve;
39656
86633
  friend class ::WinIfExists;
39657
86634
  friend class ::WinImportHandler;
39658
86635
  friend class ::WinMacros;
39659
 
  friend class ::CMatchSyntax;
39660
 
  friend class ::ExtGnu;
 
86636
  friend class ::WinAsm;
 
86637
  friend class ::WinDeclSpecs;
 
86638
  friend class ::WinMemberExplSpec;
 
86639
  friend class ::WinTypeKeywords;
 
86640
  friend class ::WinFriend;
39661
86641
  friend class ::ExtAC;
39662
86642
  friend class ::ExtACBuilderCoupling;
39663
86643
  friend class ::ExtACSyntaxCoupling;
39664
86644
  friend class ::ExtACTree;
39665
86645
  friend class ::ExtACKeywords;
39666
 
  friend class ::WinAsm;
39667
 
  friend class ::WinDeclSpecs;
39668
 
  friend class ::WinMemberExplSpec;
39669
 
  friend class ::WinTypeKeywords;
 
86646
  friend class ::ExtGnu;
39670
86647
  friend class ::PragmaOnceUnitState;
39671
86648
  friend class ::PragmaOnce;
39672
 
  friend class ::CCExprResolve;
39673
 
  friend class ::CExprResolve;
 
86649
  friend class ::CMatchSyntax;
39674
86650
 
39675
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86651
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39676
86652
 
39677
86653
  CTree *sons[5]; // cast, open, type, close, expr
39678
86654
 
39679
86655
public:
 
86656
  /** Constructor.
 
86657
   *  \param cst The cast operator, i.e. 'static_cast'.
 
86658
   *  \param o Left arrow bracket of the type name.
 
86659
   *  \param t The type to cast to.
 
86660
   *  \param c Right array bracket of the type name.
 
86661
   *  \param e The expression to cast. */
39680
86662
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
39681
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
86663
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
86664
    AddSon (sons[3], c); AddSon (sons[4], e);
39682
86665
  }
 
86666
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39683
86667
  static const char *NodeId ();
 
86668
  /** Get the name of the node. Can be compared with NodeId(). */
39684
86669
  const char *NodeName () const { return NodeId (); }
 
86670
  /** Get the number of sons. */
39685
86671
  int Sons () const { return 5; }
 
86672
  /** Get the n-th son.
 
86673
   *  \param n The index of the son.
 
86674
   *  \return The n-th son or NULL. */
39686
86675
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
86676
  /** Replace a son.
 
86677
   *  \param old_son The son to replace.
 
86678
   *  \param new_son The new son. */
39687
86679
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39688
86680
    CTree::ReplaceSon (sons, 5, old_son, new_son);
39689
86681
  }
 
86682
  /** Get the casted expression. */
39690
86683
  CTree *Expr () const { return sons[4]; }
 
86684
  /** Get the type to cast to. */
39691
86685
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
39692
86686
   private:
39693
86687
  typedef CT_StaticCast CCExprResolveExpr;
39694
86688
 
39695
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
86689
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39696
86690
 public :
39697
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
86691
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
39698
86692
  typedef CT_StaticCast CExprResolveExpr;
39699
86693
 
39700
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
86694
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39701
86695
 public :
39702
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39703
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86696
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
86697
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39704
86698
};
39705
86699
 
 
86700
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
86701
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
39706
86702
 
39707
 
#line 39708 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86703
#line 86704 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
39708
86704
} // closed Puma
 
86705
class CCExprResolve;
 
86706
class CExprResolve;
39709
86707
class WinIfExists;
39710
86708
class WinImportHandler;
39711
86709
class WinMacros;
39712
 
class CMatchSyntax;
39713
 
class ExtGnu;
 
86710
class WinAsm;
 
86711
class WinDeclSpecs;
 
86712
class WinMemberExplSpec;
 
86713
class WinTypeKeywords;
 
86714
class WinFriend;
39714
86715
class ExtAC;
39715
86716
class ExtACBuilderCoupling;
39716
86717
class ExtACSyntaxCoupling;
39717
86718
class ExtACTree;
39718
86719
class ExtACKeywords;
39719
 
class WinAsm;
39720
 
class WinDeclSpecs;
39721
 
class WinMemberExplSpec;
39722
 
class WinTypeKeywords;
 
86720
class ExtGnu;
39723
86721
class PragmaOnceUnitState;
39724
86722
class PragmaOnce;
39725
 
class CCExprResolve;
39726
 
class CExprResolve;
39727
 
namespace Puma {
39728
 
 
39729
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86723
class CMatchSyntax;
 
86724
namespace Puma {
 
86725
 
 
86726
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86727
 
 
86728
#line 86729 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86729
} // closed Puma
 
86730
 
 
86731
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86732
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86733
#include "CCExprResolveH.ah"
 
86734
#endif
 
86735
namespace Puma {
 
86736
 
 
86737
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86738
 
 
86739
#line 86740 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86740
} // closed Puma
 
86741
 
 
86742
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86743
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86744
#include "CExprResolveH.ah"
 
86745
#endif
 
86746
namespace Puma {
 
86747
 
 
86748
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39730
86749
class CT_ConstCast : public CT_StaticCast {
39731
 
#line 39732 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86750
#line 86751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86751
  friend class ::CCExprResolve;
 
86752
  friend class ::CExprResolve;
39732
86753
  friend class ::WinIfExists;
39733
86754
  friend class ::WinImportHandler;
39734
86755
  friend class ::WinMacros;
39735
 
  friend class ::CMatchSyntax;
39736
 
  friend class ::ExtGnu;
 
86756
  friend class ::WinAsm;
 
86757
  friend class ::WinDeclSpecs;
 
86758
  friend class ::WinMemberExplSpec;
 
86759
  friend class ::WinTypeKeywords;
 
86760
  friend class ::WinFriend;
39737
86761
  friend class ::ExtAC;
39738
86762
  friend class ::ExtACBuilderCoupling;
39739
86763
  friend class ::ExtACSyntaxCoupling;
39740
86764
  friend class ::ExtACTree;
39741
86765
  friend class ::ExtACKeywords;
39742
 
  friend class ::WinAsm;
39743
 
  friend class ::WinDeclSpecs;
39744
 
  friend class ::WinMemberExplSpec;
39745
 
  friend class ::WinTypeKeywords;
 
86766
  friend class ::ExtGnu;
39746
86767
  friend class ::PragmaOnceUnitState;
39747
86768
  friend class ::PragmaOnce;
39748
 
  friend class ::CCExprResolve;
39749
 
  friend class ::CExprResolve;
 
86769
  friend class ::CMatchSyntax;
39750
86770
 
39751
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86771
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39752
86772
 
39753
86773
public:
 
86774
  /** Constructor.
 
86775
   *  \param cst The cast operator, i.e. 'const_cast'.
 
86776
   *  \param o Left arrow bracket of the type name.
 
86777
   *  \param t The type to cast to.
 
86778
   *  \param c Right array bracket of the type name.
 
86779
   *  \param e The expression to cast. */
39754
86780
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
39755
86781
    CT_StaticCast (cst, o, t, c, e) {}
 
86782
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39756
86783
  static const char *NodeId ();
 
86784
  /** Get the name of the node. Can be compared with NodeId(). */
39757
86785
  const char *NodeName () const { return NodeId (); }
39758
86786
   private:
39759
86787
  typedef CT_ConstCast CCExprResolveExpr;
39760
86788
 
39761
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
86789
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39762
86790
 public :
39763
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
86791
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
39764
86792
  typedef CT_ConstCast CExprResolveExpr;
39765
86793
 
39766
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
86794
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39767
86795
 public :
39768
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39769
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86796
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
86797
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39770
86798
};
39771
86799
 
 
86800
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
86801
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
39772
86802
 
39773
 
#line 39774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86803
#line 86804 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
39774
86804
} // closed Puma
 
86805
class CCExprResolve;
 
86806
class CExprResolve;
39775
86807
class WinIfExists;
39776
86808
class WinImportHandler;
39777
86809
class WinMacros;
39778
 
class CMatchSyntax;
39779
 
class ExtGnu;
 
86810
class WinAsm;
 
86811
class WinDeclSpecs;
 
86812
class WinMemberExplSpec;
 
86813
class WinTypeKeywords;
 
86814
class WinFriend;
39780
86815
class ExtAC;
39781
86816
class ExtACBuilderCoupling;
39782
86817
class ExtACSyntaxCoupling;
39783
86818
class ExtACTree;
39784
86819
class ExtACKeywords;
39785
 
class WinAsm;
39786
 
class WinDeclSpecs;
39787
 
class WinMemberExplSpec;
39788
 
class WinTypeKeywords;
 
86820
class ExtGnu;
39789
86821
class PragmaOnceUnitState;
39790
86822
class PragmaOnce;
39791
 
class CCExprResolve;
39792
 
class CExprResolve;
39793
 
namespace Puma {
39794
 
 
39795
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86823
class CMatchSyntax;
 
86824
namespace Puma {
 
86825
 
 
86826
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86827
 
 
86828
#line 86829 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86829
} // closed Puma
 
86830
 
 
86831
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86832
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86833
#include "CCExprResolveH.ah"
 
86834
#endif
 
86835
namespace Puma {
 
86836
 
 
86837
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86838
 
 
86839
#line 86840 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86840
} // closed Puma
 
86841
 
 
86842
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86843
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86844
#include "CExprResolveH.ah"
 
86845
#endif
 
86846
namespace Puma {
 
86847
 
 
86848
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39796
86849
class CT_ReintCast : public CT_StaticCast {
39797
 
#line 39798 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86850
#line 86851 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86851
  friend class ::CCExprResolve;
 
86852
  friend class ::CExprResolve;
39798
86853
  friend class ::WinIfExists;
39799
86854
  friend class ::WinImportHandler;
39800
86855
  friend class ::WinMacros;
39801
 
  friend class ::CMatchSyntax;
39802
 
  friend class ::ExtGnu;
 
86856
  friend class ::WinAsm;
 
86857
  friend class ::WinDeclSpecs;
 
86858
  friend class ::WinMemberExplSpec;
 
86859
  friend class ::WinTypeKeywords;
 
86860
  friend class ::WinFriend;
39803
86861
  friend class ::ExtAC;
39804
86862
  friend class ::ExtACBuilderCoupling;
39805
86863
  friend class ::ExtACSyntaxCoupling;
39806
86864
  friend class ::ExtACTree;
39807
86865
  friend class ::ExtACKeywords;
39808
 
  friend class ::WinAsm;
39809
 
  friend class ::WinDeclSpecs;
39810
 
  friend class ::WinMemberExplSpec;
39811
 
  friend class ::WinTypeKeywords;
 
86866
  friend class ::ExtGnu;
39812
86867
  friend class ::PragmaOnceUnitState;
39813
86868
  friend class ::PragmaOnce;
39814
 
  friend class ::CCExprResolve;
39815
 
  friend class ::CExprResolve;
 
86869
  friend class ::CMatchSyntax;
39816
86870
 
39817
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86871
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39818
86872
 
39819
86873
public:
 
86874
  /** Constructor.
 
86875
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
86876
   *  \param o Left arrow bracket of the type name.
 
86877
   *  \param t The type to cast to.
 
86878
   *  \param c Right array bracket of the type name.
 
86879
   *  \param e The expression to cast. */
39820
86880
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
39821
86881
    CT_StaticCast (cst, o, t, c, e) {}
 
86882
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39822
86883
  static const char *NodeId ();
 
86884
  /** Get the name of the node. Can be compared with NodeId(). */
39823
86885
  const char *NodeName () const { return NodeId (); }
39824
86886
   private:
39825
86887
  typedef CT_ReintCast CCExprResolveExpr;
39826
86888
 
39827
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
86889
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39828
86890
 public :
39829
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
86891
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
39830
86892
  typedef CT_ReintCast CExprResolveExpr;
39831
86893
 
39832
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
86894
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39833
86895
 public :
39834
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39835
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86896
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
86897
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39836
86898
};
39837
86899
 
 
86900
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
86901
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
39838
86902
 
39839
 
#line 39840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86903
#line 86904 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
39840
86904
} // closed Puma
 
86905
class CCExprResolve;
 
86906
class CExprResolve;
39841
86907
class WinIfExists;
39842
86908
class WinImportHandler;
39843
86909
class WinMacros;
39844
 
class CMatchSyntax;
39845
 
class ExtGnu;
 
86910
class WinAsm;
 
86911
class WinDeclSpecs;
 
86912
class WinMemberExplSpec;
 
86913
class WinTypeKeywords;
 
86914
class WinFriend;
39846
86915
class ExtAC;
39847
86916
class ExtACBuilderCoupling;
39848
86917
class ExtACSyntaxCoupling;
39849
86918
class ExtACTree;
39850
86919
class ExtACKeywords;
39851
 
class WinAsm;
39852
 
class WinDeclSpecs;
39853
 
class WinMemberExplSpec;
39854
 
class WinTypeKeywords;
 
86920
class ExtGnu;
39855
86921
class PragmaOnceUnitState;
39856
86922
class PragmaOnce;
39857
 
class CCExprResolve;
39858
 
class CExprResolve;
39859
 
namespace Puma {
39860
 
 
39861
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86923
class CMatchSyntax;
 
86924
namespace Puma {
 
86925
 
 
86926
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86927
 
 
86928
#line 86929 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86929
} // closed Puma
 
86930
 
 
86931
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86932
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
86933
#include "CCExprResolveH.ah"
 
86934
#endif
 
86935
namespace Puma {
 
86936
 
 
86937
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86938
 
 
86939
#line 86940 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86940
} // closed Puma
 
86941
 
 
86942
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86943
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
86944
#include "CExprResolveH.ah"
 
86945
#endif
 
86946
namespace Puma {
 
86947
 
 
86948
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39862
86949
class CT_DynamicCast : public CT_StaticCast {
39863
 
#line 39864 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
86950
#line 86951 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
86951
  friend class ::CCExprResolve;
 
86952
  friend class ::CExprResolve;
39864
86953
  friend class ::WinIfExists;
39865
86954
  friend class ::WinImportHandler;
39866
86955
  friend class ::WinMacros;
39867
 
  friend class ::CMatchSyntax;
39868
 
  friend class ::ExtGnu;
 
86956
  friend class ::WinAsm;
 
86957
  friend class ::WinDeclSpecs;
 
86958
  friend class ::WinMemberExplSpec;
 
86959
  friend class ::WinTypeKeywords;
 
86960
  friend class ::WinFriend;
39869
86961
  friend class ::ExtAC;
39870
86962
  friend class ::ExtACBuilderCoupling;
39871
86963
  friend class ::ExtACSyntaxCoupling;
39872
86964
  friend class ::ExtACTree;
39873
86965
  friend class ::ExtACKeywords;
39874
 
  friend class ::WinAsm;
39875
 
  friend class ::WinDeclSpecs;
39876
 
  friend class ::WinMemberExplSpec;
39877
 
  friend class ::WinTypeKeywords;
 
86966
  friend class ::ExtGnu;
39878
86967
  friend class ::PragmaOnceUnitState;
39879
86968
  friend class ::PragmaOnce;
39880
 
  friend class ::CCExprResolve;
39881
 
  friend class ::CExprResolve;
 
86969
  friend class ::CMatchSyntax;
39882
86970
 
39883
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86971
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39884
86972
 
39885
86973
public:
 
86974
  /** Constructor.
 
86975
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
86976
   *  \param o Left arrow bracket of the type name.
 
86977
   *  \param t The type to cast to.
 
86978
   *  \param c Right array bracket of the type name.
 
86979
   *  \param e The expression to cast. */
39886
86980
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
39887
86981
    CT_StaticCast (cst, o, t, c, e) {}
 
86982
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39888
86983
  static const char *NodeId ();
 
86984
  /** Get the name of the node. Can be compared with NodeId(). */
39889
86985
  const char *NodeName () const { return NodeId (); }
39890
86986
   private:
39891
86987
  typedef CT_DynamicCast CCExprResolveExpr;
39892
86988
 
39893
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
86989
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39894
86990
 public :
39895
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
86991
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
39896
86992
  typedef CT_DynamicCast CExprResolveExpr;
39897
86993
 
39898
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
86994
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39899
86995
 public :
39900
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39901
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86996
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
86997
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39902
86998
};
39903
86999
 
 
87000
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
87001
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
87002
 *  where 1.2 is implicitely casted from float to int. */
39904
87003
 
39905
 
#line 39906 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87004
#line 87005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
39906
87005
} // closed Puma
 
87006
class CCExprResolve;
 
87007
class CExprResolve;
39907
87008
class WinIfExists;
39908
87009
class WinImportHandler;
39909
87010
class WinMacros;
39910
 
class CMatchSyntax;
39911
 
class ExtGnu;
 
87011
class WinAsm;
 
87012
class WinDeclSpecs;
 
87013
class WinMemberExplSpec;
 
87014
class WinTypeKeywords;
 
87015
class WinFriend;
39912
87016
class ExtAC;
39913
87017
class ExtACBuilderCoupling;
39914
87018
class ExtACSyntaxCoupling;
39915
87019
class ExtACTree;
39916
87020
class ExtACKeywords;
39917
 
class WinAsm;
39918
 
class WinDeclSpecs;
39919
 
class WinMemberExplSpec;
39920
 
class WinTypeKeywords;
 
87021
class ExtGnu;
39921
87022
class PragmaOnceUnitState;
39922
87023
class PragmaOnce;
39923
 
class CCExprResolve;
39924
 
class CExprResolve;
39925
 
namespace Puma {
39926
 
 
39927
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87024
class CMatchSyntax;
 
87025
namespace Puma {
 
87026
 
 
87027
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87028
 
 
87029
#line 87030 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87030
} // closed Puma
 
87031
 
 
87032
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
87033
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
87034
#include "CCExprResolveH.ah"
 
87035
#endif
 
87036
namespace Puma {
 
87037
 
 
87038
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87039
 
 
87040
#line 87041 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87041
} // closed Puma
 
87042
 
 
87043
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
87044
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
87045
#include "CExprResolveH.ah"
 
87046
#endif
 
87047
namespace Puma {
 
87048
 
 
87049
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39928
87050
class CT_ImplicitCast : public CT_Expression {
39929
 
#line 39930 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87051
#line 87052 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87052
  friend class ::CCExprResolve;
 
87053
  friend class ::CExprResolve;
39930
87054
  friend class ::WinIfExists;
39931
87055
  friend class ::WinImportHandler;
39932
87056
  friend class ::WinMacros;
39933
 
  friend class ::CMatchSyntax;
39934
 
  friend class ::ExtGnu;
 
87057
  friend class ::WinAsm;
 
87058
  friend class ::WinDeclSpecs;
 
87059
  friend class ::WinMemberExplSpec;
 
87060
  friend class ::WinTypeKeywords;
 
87061
  friend class ::WinFriend;
39935
87062
  friend class ::ExtAC;
39936
87063
  friend class ::ExtACBuilderCoupling;
39937
87064
  friend class ::ExtACSyntaxCoupling;
39938
87065
  friend class ::ExtACTree;
39939
87066
  friend class ::ExtACKeywords;
39940
 
  friend class ::WinAsm;
39941
 
  friend class ::WinDeclSpecs;
39942
 
  friend class ::WinMemberExplSpec;
39943
 
  friend class ::WinTypeKeywords;
 
87067
  friend class ::ExtGnu;
39944
87068
  friend class ::PragmaOnceUnitState;
39945
87069
  friend class ::PragmaOnce;
39946
 
  friend class ::CCExprResolve;
39947
 
  friend class ::CExprResolve;
 
87070
  friend class ::CMatchSyntax;
39948
87071
 
39949
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87072
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39950
87073
 
39951
87074
  CTree *_expr; // casted expression
39952
87075
 
39953
87076
public:
39954
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
87077
  /** Constructor.
 
87078
   *  \param e The expression that is implicitely casted. */
 
87079
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
87080
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39955
87081
  static const char *NodeId ();
 
87082
  /** Get the name of the node. Can be compared with NodeId(). */
39956
87083
  const char *NodeName () const { return NodeId (); }
 
87084
  /** Get the number of sons. */
39957
87085
  int Sons () const { return 1; }
 
87086
  /** Get the n-th son.
 
87087
   *  \param n The index of the son.
 
87088
   *  \return The n-th son or NULL. */
39958
87089
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
87090
  /** Get the casted expression. */
39959
87091
  CTree *Expr () const { return _expr; }
 
87092
  /** Replace a son.
 
87093
   *  \param old_son The son to replace.
 
87094
   *  \param new_son The new son. */
39960
87095
  void ReplaceSon (CTree *old_son, CTree *new_son) 
39961
 
   { if (old_son == _expr) _expr = new_son; }
 
87096
   { CTree::ReplaceSon (_expr, old_son, new_son); }
39962
87097
   private:
39963
87098
  typedef CT_ImplicitCast CCExprResolveExpr;
39964
87099
 
39965
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
87100
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39966
87101
 public :
39967
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
87102
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
39968
87103
  typedef CT_ImplicitCast CExprResolveExpr;
39969
87104
 
39970
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
87105
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39971
87106
 public :
39972
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39973
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87107
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
87108
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39974
87109
};
39975
87110
 
 
87111
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
87112
 *  Tree node representing a typeid expression, e.g. typeid(X). */
39976
87113
 
39977
 
#line 39978 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87114
#line 87115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
39978
87115
} // closed Puma
 
87116
class CCExprResolve;
 
87117
class CExprResolve;
39979
87118
class WinIfExists;
39980
87119
class WinImportHandler;
39981
87120
class WinMacros;
39982
 
class CMatchSyntax;
39983
 
class ExtGnu;
 
87121
class WinAsm;
 
87122
class WinDeclSpecs;
 
87123
class WinMemberExplSpec;
 
87124
class WinTypeKeywords;
 
87125
class WinFriend;
39984
87126
class ExtAC;
39985
87127
class ExtACBuilderCoupling;
39986
87128
class ExtACSyntaxCoupling;
39987
87129
class ExtACTree;
39988
87130
class ExtACKeywords;
39989
 
class WinAsm;
39990
 
class WinDeclSpecs;
39991
 
class WinMemberExplSpec;
39992
 
class WinTypeKeywords;
 
87131
class ExtGnu;
39993
87132
class PragmaOnceUnitState;
39994
87133
class PragmaOnce;
39995
 
class CCExprResolve;
39996
 
class CExprResolve;
39997
 
namespace Puma {
39998
 
 
39999
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87134
class CMatchSyntax;
 
87135
namespace Puma {
 
87136
 
 
87137
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87138
 
 
87139
#line 87140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87140
} // closed Puma
 
87141
 
 
87142
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
87143
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
87144
#include "CCExprResolveH.ah"
 
87145
#endif
 
87146
namespace Puma {
 
87147
 
 
87148
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87149
 
 
87150
#line 87151 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87151
} // closed Puma
 
87152
 
 
87153
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
87154
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
87155
#include "CExprResolveH.ah"
 
87156
#endif
 
87157
namespace Puma {
 
87158
 
 
87159
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40000
87160
class CT_TypeidExpr : public CT_Expression {
40001
 
#line 40002 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87161
#line 87162 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87162
  friend class ::CCExprResolve;
 
87163
  friend class ::CExprResolve;
40002
87164
  friend class ::WinIfExists;
40003
87165
  friend class ::WinImportHandler;
40004
87166
  friend class ::WinMacros;
40005
 
  friend class ::CMatchSyntax;
40006
 
  friend class ::ExtGnu;
 
87167
  friend class ::WinAsm;
 
87168
  friend class ::WinDeclSpecs;
 
87169
  friend class ::WinMemberExplSpec;
 
87170
  friend class ::WinTypeKeywords;
 
87171
  friend class ::WinFriend;
40007
87172
  friend class ::ExtAC;
40008
87173
  friend class ::ExtACBuilderCoupling;
40009
87174
  friend class ::ExtACSyntaxCoupling;
40010
87175
  friend class ::ExtACTree;
40011
87176
  friend class ::ExtACKeywords;
40012
 
  friend class ::WinAsm;
40013
 
  friend class ::WinDeclSpecs;
40014
 
  friend class ::WinMemberExplSpec;
40015
 
  friend class ::WinTypeKeywords;
 
87177
  friend class ::ExtGnu;
40016
87178
  friend class ::PragmaOnceUnitState;
40017
87179
  friend class ::PragmaOnce;
40018
 
  friend class ::CCExprResolve;
40019
 
  friend class ::CExprResolve;
 
87180
  friend class ::CMatchSyntax;
40020
87181
 
40021
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87182
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40022
87183
 
40023
87184
  CTree *sons[4]; // typeid, open, type_id/expr, close
40024
87185
 
40025
87186
public:
 
87187
  /** Constructor.
 
87188
   *  \param tid The 'typeid' operator.
 
87189
   *  \param o The left parenthesis of the type name or expression.
 
87190
   *  \param e The expression or type name for which to get the type identifier.
 
87191
   *  \param c The right parenthesis of the type name or expression. */
40026
87192
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
40027
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
87193
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
87194
    AddSon (sons[2], e); AddSon (sons[3], c);
40028
87195
  }
 
87196
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40029
87197
  static const char *NodeId ();
 
87198
  /** Get the name of the node. Can be compared with NodeId(). */
40030
87199
  const char *NodeName () const { return NodeId (); }
 
87200
  /** Get the number of sons. */
40031
87201
  int Sons () const { return 4; }
 
87202
  /** Get the n-th son.
 
87203
   *  \param n The index of the son.
 
87204
   *  \return The n-th son or NULL. */
40032
87205
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
87206
  /** Replace a son.
 
87207
   *  \param old_son The son to replace.
 
87208
   *  \param new_son The new son. */
40033
87209
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40034
87210
    CTree::ReplaceSon (sons, 4, old_son, new_son);
40035
87211
  }
 
87212
  /** Get the typeid argument, i.e. the expression or type name for
 
87213
   *  which to get the type identifier. */
40036
87214
  CTree *Arg () const { return sons[2]; }
40037
87215
   private:
40038
87216
  typedef CT_TypeidExpr CCExprResolveExpr;
40039
87217
 
40040
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
87218
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40041
87219
 public :
40042
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
87220
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
40043
87221
  typedef CT_TypeidExpr CExprResolveExpr;
40044
87222
 
40045
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
87223
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40046
87224
 public :
40047
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40048
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87225
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
87226
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40049
87227
};
40050
87228
 
 
87229
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
87230
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
40051
87231
 
40052
 
#line 40053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87232
#line 87233 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
40053
87233
} // closed Puma
 
87234
class CCExprResolve;
 
87235
class CExprResolve;
40054
87236
class WinIfExists;
40055
87237
class WinImportHandler;
40056
87238
class WinMacros;
40057
 
class CMatchSyntax;
40058
 
class ExtGnu;
 
87239
class WinAsm;
 
87240
class WinDeclSpecs;
 
87241
class WinMemberExplSpec;
 
87242
class WinTypeKeywords;
 
87243
class WinFriend;
40059
87244
class ExtAC;
40060
87245
class ExtACBuilderCoupling;
40061
87246
class ExtACSyntaxCoupling;
40062
87247
class ExtACTree;
40063
87248
class ExtACKeywords;
40064
 
class WinAsm;
40065
 
class WinDeclSpecs;
40066
 
class WinMemberExplSpec;
40067
 
class WinTypeKeywords;
 
87249
class ExtGnu;
40068
87250
class PragmaOnceUnitState;
40069
87251
class PragmaOnce;
40070
 
class CCExprResolve;
40071
 
class CExprResolve;
40072
 
namespace Puma {
40073
 
 
40074
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87252
class CMatchSyntax;
 
87253
namespace Puma {
 
87254
 
 
87255
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87256
 
 
87257
#line 87258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87258
} // closed Puma
 
87259
 
 
87260
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
87261
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
87262
#include "CCExprResolveH.ah"
 
87263
#endif
 
87264
namespace Puma {
 
87265
 
 
87266
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87267
 
 
87268
#line 87269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87269
} // closed Puma
 
87270
 
 
87271
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
87272
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
87273
#include "CExprResolveH.ah"
 
87274
#endif
 
87275
namespace Puma {
 
87276
 
 
87277
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40075
87278
class CT_SizeofExpr : public CT_Expression {
40076
 
#line 40077 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87279
#line 87280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87280
  friend class ::CCExprResolve;
 
87281
  friend class ::CExprResolve;
40077
87282
  friend class ::WinIfExists;
40078
87283
  friend class ::WinImportHandler;
40079
87284
  friend class ::WinMacros;
40080
 
  friend class ::CMatchSyntax;
40081
 
  friend class ::ExtGnu;
 
87285
  friend class ::WinAsm;
 
87286
  friend class ::WinDeclSpecs;
 
87287
  friend class ::WinMemberExplSpec;
 
87288
  friend class ::WinTypeKeywords;
 
87289
  friend class ::WinFriend;
40082
87290
  friend class ::ExtAC;
40083
87291
  friend class ::ExtACBuilderCoupling;
40084
87292
  friend class ::ExtACSyntaxCoupling;
40085
87293
  friend class ::ExtACTree;
40086
87294
  friend class ::ExtACKeywords;
40087
 
  friend class ::WinAsm;
40088
 
  friend class ::WinDeclSpecs;
40089
 
  friend class ::WinMemberExplSpec;
40090
 
  friend class ::WinTypeKeywords;
 
87295
  friend class ::ExtGnu;
40091
87296
  friend class ::PragmaOnceUnitState;
40092
87297
  friend class ::PragmaOnce;
40093
 
  friend class ::CCExprResolve;
40094
 
  friend class ::CExprResolve;
 
87298
  friend class ::CMatchSyntax;
40095
87299
 
40096
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87300
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40097
87301
 
40098
87302
  CTree *sons[5]; // key, open, type, close, expr
40099
87303
 
40100
87304
public:
 
87305
  /** Constructor.
 
87306
   *  \param k The 'sizeof' keyword.
 
87307
   *  \param o Left parenthesis around the type name.
 
87308
   *  \param t The type from which to get the size.
 
87309
   *  \param c Right parenthesis around the type name. */
40101
87310
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
40102
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
87311
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
87312
    AddSon (sons[3], c); AddSon (sons[4], 0);
40103
87313
  }
 
87314
  /** Constructor.
 
87315
   *  \param k The 'sizeof' keyword.
 
87316
   *  \param e The expression from which to get the size. */
40104
87317
  CT_SizeofExpr (CTree *k, CTree *e) {
40105
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
87318
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
87319
    AddSon (sons[3], 0); AddSon (sons[4], e);
40106
87320
  }
 
87321
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40107
87322
  static const char *NodeId ();
 
87323
  /** Get the name of the node. Can be compared with NodeId(). */
40108
87324
  const char *NodeName () const { return NodeId (); }
 
87325
  /** Get the number of sons. */
40109
87326
  int Sons () const { return CTree::Sons (sons, 5); }
 
87327
  /** Get the n-th son.
 
87328
   *  \param n The index of the son.
 
87329
   *  \return The n-th son or NULL. */
40110
87330
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
87331
  /** Replace a son.
 
87332
   *  \param old_son The son to replace.
 
87333
   *  \param new_son The new son. */
40111
87334
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40112
87335
    CTree::ReplaceSon (sons, 5, old_son, new_son);
40113
87336
  }
 
87337
  /** Get the expression. */
40114
87338
  CTree *Expr () const { return sons[4]; }
 
87339
  /** Get the type name. */
40115
87340
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
40116
87341
   private:
40117
87342
  typedef CT_SizeofExpr CCExprResolveExpr;
40118
87343
 
40119
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
87344
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40120
87345
 public :
40121
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
87346
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
40122
87347
  typedef CT_SizeofExpr CExprResolveExpr;
40123
87348
 
40124
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
87349
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40125
87350
 public :
40126
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40127
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87351
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
87352
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40128
87353
};
40129
87354
 
 
87355
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
87356
 *  Tree node representing an index designator, i.e. [1]. */
40130
87357
 
40131
 
#line 40132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87358
#line 87359 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
40132
87359
} // closed Puma
 
87360
class CCExprResolve;
 
87361
class CExprResolve;
40133
87362
class WinIfExists;
40134
87363
class WinImportHandler;
40135
87364
class WinMacros;
40136
 
class CMatchSyntax;
40137
 
class ExtGnu;
 
87365
class WinAsm;
 
87366
class WinDeclSpecs;
 
87367
class WinMemberExplSpec;
 
87368
class WinTypeKeywords;
 
87369
class WinFriend;
40138
87370
class ExtAC;
40139
87371
class ExtACBuilderCoupling;
40140
87372
class ExtACSyntaxCoupling;
40141
87373
class ExtACTree;
40142
87374
class ExtACKeywords;
40143
 
class WinAsm;
40144
 
class WinDeclSpecs;
40145
 
class WinMemberExplSpec;
40146
 
class WinTypeKeywords;
 
87375
class ExtGnu;
40147
87376
class PragmaOnceUnitState;
40148
87377
class PragmaOnce;
40149
 
class CCExprResolve;
40150
 
class CExprResolve;
40151
 
namespace Puma {
40152
 
 
40153
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87378
class CMatchSyntax;
 
87379
namespace Puma {
 
87380
 
 
87381
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87382
 
 
87383
#line 87384 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87384
} // closed Puma
 
87385
 
 
87386
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
87387
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
87388
#include "CCExprResolveH.ah"
 
87389
#endif
 
87390
namespace Puma {
 
87391
 
 
87392
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87393
 
 
87394
#line 87395 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87395
} // closed Puma
 
87396
 
 
87397
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
87398
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
87399
#include "CExprResolveH.ah"
 
87400
#endif
 
87401
namespace Puma {
 
87402
 
 
87403
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40154
87404
class CT_IndexDesignator : public CT_Expression {
40155
 
#line 40156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87405
#line 87406 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87406
  friend class ::CCExprResolve;
 
87407
  friend class ::CExprResolve;
40156
87408
  friend class ::WinIfExists;
40157
87409
  friend class ::WinImportHandler;
40158
87410
  friend class ::WinMacros;
40159
 
  friend class ::CMatchSyntax;
40160
 
  friend class ::ExtGnu;
 
87411
  friend class ::WinAsm;
 
87412
  friend class ::WinDeclSpecs;
 
87413
  friend class ::WinMemberExplSpec;
 
87414
  friend class ::WinTypeKeywords;
 
87415
  friend class ::WinFriend;
40161
87416
  friend class ::ExtAC;
40162
87417
  friend class ::ExtACBuilderCoupling;
40163
87418
  friend class ::ExtACSyntaxCoupling;
40164
87419
  friend class ::ExtACTree;
40165
87420
  friend class ::ExtACKeywords;
40166
 
  friend class ::WinAsm;
40167
 
  friend class ::WinDeclSpecs;
40168
 
  friend class ::WinMemberExplSpec;
40169
 
  friend class ::WinTypeKeywords;
 
87421
  friend class ::ExtGnu;
40170
87422
  friend class ::PragmaOnceUnitState;
40171
87423
  friend class ::PragmaOnce;
40172
 
  friend class ::CCExprResolve;
40173
 
  friend class ::CExprResolve;
 
87424
  friend class ::CMatchSyntax;
40174
87425
 
40175
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87426
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40176
87427
 
40177
87428
  CTree *sons[3]; // open, index, close
40178
87429
 
40179
87430
public:
 
87431
  /** Constructor.
 
87432
   *  \param o Left bracket of the index designator.
 
87433
   *  \param i The index expression.
 
87434
   *  \param c Right bracket of the index designator. */
40180
87435
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
40181
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
87436
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
40182
87437
  }
 
87438
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40183
87439
  static const char *NodeId ();
 
87440
  /** Get the name of the node. Can be compared with NodeId(). */
40184
87441
  const char *NodeName () const { return NodeId (); }
 
87442
  /** Get the number of sons. */
40185
87443
  int Sons () const { return 3; }
 
87444
  /** Get the n-th son.
 
87445
   *  \param n The index of the son.
 
87446
   *  \return The n-th son or NULL. */
40186
87447
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
87448
  /** Replace a son.
 
87449
   *  \param old_son The son to replace.
 
87450
   *  \param new_son The new son. */
40187
87451
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40188
87452
    CTree::ReplaceSon (sons, 3, old_son, new_son);
40189
87453
  }
40190
87454
   private:
40191
87455
  typedef CT_IndexDesignator CCExprResolveExpr;
40192
87456
 
40193
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
87457
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40194
87458
 public :
40195
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
87459
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
40196
87460
  typedef CT_IndexDesignator CExprResolveExpr;
40197
87461
 
40198
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
87462
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40199
87463
 public :
40200
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40201
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87464
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
87465
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40202
87466
};
40203
87467
 
 
87468
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
87469
 *  Tree node representing a member designator, e.g. .a. */
40204
87470
 
40205
 
#line 40206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87471
#line 87472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
40206
87472
} // closed Puma
 
87473
class CCExprResolve;
 
87474
class CExprResolve;
40207
87475
class WinIfExists;
40208
87476
class WinImportHandler;
40209
87477
class WinMacros;
40210
 
class CMatchSyntax;
40211
 
class ExtGnu;
 
87478
class WinAsm;
 
87479
class WinDeclSpecs;
 
87480
class WinMemberExplSpec;
 
87481
class WinTypeKeywords;
 
87482
class WinFriend;
40212
87483
class ExtAC;
40213
87484
class ExtACBuilderCoupling;
40214
87485
class ExtACSyntaxCoupling;
40215
87486
class ExtACTree;
40216
87487
class ExtACKeywords;
40217
 
class WinAsm;
40218
 
class WinDeclSpecs;
40219
 
class WinMemberExplSpec;
40220
 
class WinTypeKeywords;
 
87488
class ExtGnu;
40221
87489
class PragmaOnceUnitState;
40222
87490
class PragmaOnce;
40223
 
class CCExprResolve;
40224
 
class CExprResolve;
40225
 
namespace Puma {
40226
 
 
40227
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87491
class CMatchSyntax;
 
87492
namespace Puma {
 
87493
 
 
87494
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87495
 
 
87496
#line 87497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87497
} // closed Puma
 
87498
 
 
87499
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
87500
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
87501
#include "CCExprResolveH.ah"
 
87502
#endif
 
87503
namespace Puma {
 
87504
 
 
87505
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87506
 
 
87507
#line 87508 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87508
} // closed Puma
 
87509
 
 
87510
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
87511
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
87512
#include "CExprResolveH.ah"
 
87513
#endif
 
87514
namespace Puma {
 
87515
 
 
87516
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40228
87517
class CT_MembDesignator : public CT_Expression {
40229
 
#line 40230 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87518
#line 87519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87519
  friend class ::CCExprResolve;
 
87520
  friend class ::CExprResolve;
40230
87521
  friend class ::WinIfExists;
40231
87522
  friend class ::WinImportHandler;
40232
87523
  friend class ::WinMacros;
40233
 
  friend class ::CMatchSyntax;
40234
 
  friend class ::ExtGnu;
 
87524
  friend class ::WinAsm;
 
87525
  friend class ::WinDeclSpecs;
 
87526
  friend class ::WinMemberExplSpec;
 
87527
  friend class ::WinTypeKeywords;
 
87528
  friend class ::WinFriend;
40235
87529
  friend class ::ExtAC;
40236
87530
  friend class ::ExtACBuilderCoupling;
40237
87531
  friend class ::ExtACSyntaxCoupling;
40238
87532
  friend class ::ExtACTree;
40239
87533
  friend class ::ExtACKeywords;
40240
 
  friend class ::WinAsm;
40241
 
  friend class ::WinDeclSpecs;
40242
 
  friend class ::WinMemberExplSpec;
40243
 
  friend class ::WinTypeKeywords;
 
87534
  friend class ::ExtGnu;
40244
87535
  friend class ::PragmaOnceUnitState;
40245
87536
  friend class ::PragmaOnce;
40246
 
  friend class ::CCExprResolve;
40247
 
  friend class ::CExprResolve;
 
87537
  friend class ::CMatchSyntax;
40248
87538
 
40249
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87539
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40250
87540
 
40251
87541
  CTree *sons[2]; // dot, member
40252
87542
 
40253
87543
public:
40254
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
87544
  /** Constructor.
 
87545
   *  \param d The dot before the member name.
 
87546
   *  \param m The member name. */
 
87547
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
87548
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40255
87549
  static const char *NodeId ();
 
87550
  /** Get the name of the node. Can be compared with NodeId(). */
40256
87551
  const char *NodeName () const { return NodeId (); }
 
87552
  /** Get the number of sons. */
40257
87553
  int Sons () const { return 2; }
 
87554
  /** Get the n-th son.
 
87555
   *  \param n The index of the son.
 
87556
   *  \return The n-th son or NULL. */
40258
87557
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
87558
  /** Replace a son.
 
87559
   *  \param old_son The son to replace.
 
87560
   *  \param new_son The new son. */
40259
87561
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40260
87562
    CTree::ReplaceSon (sons, 2, old_son, new_son);
40261
87563
  }
40262
87564
   private:
40263
87565
  typedef CT_MembDesignator CCExprResolveExpr;
40264
87566
 
40265
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
87567
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40266
87568
 public :
40267
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
87569
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
40268
87570
  typedef CT_MembDesignator CExprResolveExpr;
40269
87571
 
40270
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
87572
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40271
87573
 public :
40272
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40273
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87574
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
87575
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40274
87576
};
40275
87577
 
 
87578
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
87579
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
40276
87580
 
40277
 
#line 40278 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87581
#line 87582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
40278
87582
} // closed Puma
 
87583
class CCExprResolve;
 
87584
class CExprResolve;
40279
87585
class WinIfExists;
40280
87586
class WinImportHandler;
40281
87587
class WinMacros;
40282
 
class CMatchSyntax;
40283
 
class ExtGnu;
 
87588
class WinAsm;
 
87589
class WinDeclSpecs;
 
87590
class WinMemberExplSpec;
 
87591
class WinTypeKeywords;
 
87592
class WinFriend;
40284
87593
class ExtAC;
40285
87594
class ExtACBuilderCoupling;
40286
87595
class ExtACSyntaxCoupling;
40287
87596
class ExtACTree;
40288
87597
class ExtACKeywords;
40289
 
class WinAsm;
40290
 
class WinDeclSpecs;
40291
 
class WinMemberExplSpec;
40292
 
class WinTypeKeywords;
 
87598
class ExtGnu;
40293
87599
class PragmaOnceUnitState;
40294
87600
class PragmaOnce;
40295
 
class CCExprResolve;
40296
 
class CExprResolve;
 
87601
class CMatchSyntax;
40297
87602
namespace Puma {
40298
87603
 
40299
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87604
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40300
87605
class CT_DesignatorSeq : public CT_List, public CSemValue {
40301
 
#line 40302 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87606
#line 87607 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87607
  friend class ::CCExprResolve;
 
87608
  friend class ::CExprResolve;
40302
87609
  friend class ::WinIfExists;
40303
87610
  friend class ::WinImportHandler;
40304
87611
  friend class ::WinMacros;
40305
 
  friend class ::CMatchSyntax;
40306
 
  friend class ::ExtGnu;
 
87612
  friend class ::WinAsm;
 
87613
  friend class ::WinDeclSpecs;
 
87614
  friend class ::WinMemberExplSpec;
 
87615
  friend class ::WinTypeKeywords;
 
87616
  friend class ::WinFriend;
40307
87617
  friend class ::ExtAC;
40308
87618
  friend class ::ExtACBuilderCoupling;
40309
87619
  friend class ::ExtACSyntaxCoupling;
40310
87620
  friend class ::ExtACTree;
40311
87621
  friend class ::ExtACKeywords;
40312
 
  friend class ::WinAsm;
40313
 
  friend class ::WinDeclSpecs;
40314
 
  friend class ::WinMemberExplSpec;
40315
 
  friend class ::WinTypeKeywords;
 
87622
  friend class ::ExtGnu;
40316
87623
  friend class ::PragmaOnceUnitState;
40317
87624
  friend class ::PragmaOnce;
40318
 
  friend class ::CCExprResolve;
40319
 
  friend class ::CExprResolve;
 
87625
  friend class ::CMatchSyntax;
40320
87626
 
40321
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87627
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40322
87628
 
40323
87629
public:
 
87630
  /** Constructor.
 
87631
   *  \param size Initial number of designators. */
40324
87632
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
87633
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40325
87634
  static const char *NodeId ();
 
87635
  /** Get the name of the node. Can be compared with NodeId(). */
40326
87636
  const char *NodeName () const { return NodeId (); }
40327
87637
 
 
87638
  /** Get the type of the entity to initialize. */
40328
87639
  CTypeInfo *Type () const { return type; }
 
87640
  /** Get the value of the entity to initialize. */
40329
87641
  CExprValue *Value () const { return value; }
 
87642
  /** Get the semantic value object. */
40330
87643
  CSemValue *SemValue () const { return (CSemValue*)this; }
40331
87644
};
40332
87645
 
40336
87649
/*                                                                           */
40337
87650
/*****************************************************************************/
40338
87651
 
 
87652
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
87653
 *  Base class for all tree nodes representing declaration specifiers. */
40339
87654
 
40340
 
#line 40341 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87655
#line 87656 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
40341
87656
} // closed Puma
 
87657
class CCExprResolve;
 
87658
class CExprResolve;
40342
87659
class WinIfExists;
40343
87660
class WinImportHandler;
40344
87661
class WinMacros;
40345
 
class CMatchSyntax;
40346
 
class ExtGnu;
 
87662
class WinAsm;
 
87663
class WinDeclSpecs;
 
87664
class WinMemberExplSpec;
 
87665
class WinTypeKeywords;
 
87666
class WinFriend;
40347
87667
class ExtAC;
40348
87668
class ExtACBuilderCoupling;
40349
87669
class ExtACSyntaxCoupling;
40350
87670
class ExtACTree;
40351
87671
class ExtACKeywords;
40352
 
class WinAsm;
40353
 
class WinDeclSpecs;
40354
 
class WinMemberExplSpec;
40355
 
class WinTypeKeywords;
 
87672
class ExtGnu;
40356
87673
class PragmaOnceUnitState;
40357
87674
class PragmaOnce;
40358
 
class CCExprResolve;
40359
 
class CExprResolve;
 
87675
class CMatchSyntax;
40360
87676
namespace Puma {
40361
87677
 
40362
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87678
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40363
87679
class CT_DeclSpec : public CTree {
40364
 
#line 40365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87680
#line 87681 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87681
  friend class ::CCExprResolve;
 
87682
  friend class ::CExprResolve;
40365
87683
  friend class ::WinIfExists;
40366
87684
  friend class ::WinImportHandler;
40367
87685
  friend class ::WinMacros;
40368
 
  friend class ::CMatchSyntax;
40369
 
  friend class ::ExtGnu;
 
87686
  friend class ::WinAsm;
 
87687
  friend class ::WinDeclSpecs;
 
87688
  friend class ::WinMemberExplSpec;
 
87689
  friend class ::WinTypeKeywords;
 
87690
  friend class ::WinFriend;
40370
87691
  friend class ::ExtAC;
40371
87692
  friend class ::ExtACBuilderCoupling;
40372
87693
  friend class ::ExtACSyntaxCoupling;
40373
87694
  friend class ::ExtACTree;
40374
87695
  friend class ::ExtACKeywords;
40375
 
  friend class ::WinAsm;
40376
 
  friend class ::WinDeclSpecs;
40377
 
  friend class ::WinMemberExplSpec;
40378
 
  friend class ::WinTypeKeywords;
 
87696
  friend class ::ExtGnu;
40379
87697
  friend class ::PragmaOnceUnitState;
40380
87698
  friend class ::PragmaOnce;
40381
 
  friend class ::CCExprResolve;
40382
 
  friend class ::CExprResolve;
 
87699
  friend class ::CMatchSyntax;
40383
87700
 
40384
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87701
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40385
87702
 
40386
87703
protected:
 
87704
  /** Constructor. */
40387
87705
  CT_DeclSpec () {}
40388
87706
};
40389
87707
 
 
87708
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
87709
 *  Tree node representing a primitive declaration specifier. */
40390
87710
 
40391
 
#line 40392 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87711
#line 87712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
40392
87712
} // closed Puma
 
87713
class CCExprResolve;
 
87714
class CExprResolve;
40393
87715
class WinIfExists;
40394
87716
class WinImportHandler;
40395
87717
class WinMacros;
40396
 
class CMatchSyntax;
40397
 
class ExtGnu;
 
87718
class WinAsm;
 
87719
class WinDeclSpecs;
 
87720
class WinMemberExplSpec;
 
87721
class WinTypeKeywords;
 
87722
class WinFriend;
40398
87723
class ExtAC;
40399
87724
class ExtACBuilderCoupling;
40400
87725
class ExtACSyntaxCoupling;
40401
87726
class ExtACTree;
40402
87727
class ExtACKeywords;
40403
 
class WinAsm;
40404
 
class WinDeclSpecs;
40405
 
class WinMemberExplSpec;
40406
 
class WinTypeKeywords;
 
87728
class ExtGnu;
40407
87729
class PragmaOnceUnitState;
40408
87730
class PragmaOnce;
40409
 
class CCExprResolve;
40410
 
class CExprResolve;
 
87731
class CMatchSyntax;
40411
87732
namespace Puma {
40412
87733
 
40413
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87734
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40414
87735
class CT_PrimDeclSpec : public CT_DeclSpec {
40415
 
#line 40416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87736
#line 87737 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87737
  friend class ::CCExprResolve;
 
87738
  friend class ::CExprResolve;
40416
87739
  friend class ::WinIfExists;
40417
87740
  friend class ::WinImportHandler;
40418
87741
  friend class ::WinMacros;
40419
 
  friend class ::CMatchSyntax;
40420
 
  friend class ::ExtGnu;
 
87742
  friend class ::WinAsm;
 
87743
  friend class ::WinDeclSpecs;
 
87744
  friend class ::WinMemberExplSpec;
 
87745
  friend class ::WinTypeKeywords;
 
87746
  friend class ::WinFriend;
40421
87747
  friend class ::ExtAC;
40422
87748
  friend class ::ExtACBuilderCoupling;
40423
87749
  friend class ::ExtACSyntaxCoupling;
40424
87750
  friend class ::ExtACTree;
40425
87751
  friend class ::ExtACKeywords;
40426
 
  friend class ::WinAsm;
40427
 
  friend class ::WinDeclSpecs;
40428
 
  friend class ::WinMemberExplSpec;
40429
 
  friend class ::WinTypeKeywords;
 
87752
  friend class ::ExtGnu;
40430
87753
  friend class ::PragmaOnceUnitState;
40431
87754
  friend class ::PragmaOnce;
40432
 
  friend class ::CCExprResolve;
40433
 
  friend class ::CExprResolve;
 
87755
  friend class ::CMatchSyntax;
40434
87756
 
40435
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87757
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40436
87758
 
40437
87759
public:
40438
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
40439
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
40440
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
40441
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
40442
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
40443
 
              // AspectC++ specific type specifier
40444
 
              PDS_UNKNOWN_T,
40445
 
              // Win specific declaration specifiers
40446
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
40447
 
              PDS_UNKNOWN, PDS_NUM };
 
87760
  /** Declaration specifier types. */
 
87761
  enum Type { 
 
87762
    PDS_FRIEND,    /** friend */
 
87763
    PDS_TYPEDEF,   /** typedef */
 
87764
    PDS_AUTO,      /** auto */
 
87765
    PDS_REGISTER,  /** register */
 
87766
    PDS_STATIC,    /** static */
 
87767
    PDS_EXTERN,    /** extern */
 
87768
    PDS_MUTABLE,   /** mutable */
 
87769
    PDS_INLINE,    /** inline */
 
87770
    PDS_VIRTUAL,   /** virtual */
 
87771
    PDS_EXPLICIT,  /** explicit */
 
87772
    PDS_CONST,     /** const */
 
87773
    PDS_VOLATILE,  /** volatile */
 
87774
    PDS_RESTRICT,  /** restrict */
 
87775
    PDS_CHAR,      /** char */
 
87776
    PDS_WCHAR_T,   /** wchar_t */
 
87777
    PDS_BOOL,      /** bool */
 
87778
    PDS_SHORT,     /** short */
 
87779
    PDS_INT,       /** int */
 
87780
    PDS_LONG,      /** long */
 
87781
    PDS_SIGNED,    /** signed */
 
87782
    PDS_UNSIGNED,  /** unsigned */
 
87783
    PDS_FLOAT,     /** float */
 
87784
    PDS_DOUBLE,    /** double */
 
87785
    PDS_VOID,      /** void */
 
87786
    // AspectC++ specific type specifier
 
87787
    PDS_UNKNOWN_T, /** unknown_t */
 
87788
    // Win specific declaration specifiers
 
87789
    PDS_CDECL,     /** __cdecl */
 
87790
    PDS_STDCALL,   /** __stdcall */
 
87791
    PDS_FASTCALL,  /** __fastcall */
 
87792
    PDS_INT64,     /** __int64 */
 
87793
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
87794
    PDS_NUM        /** Number of declaration specifier types. */
 
87795
  };
40448
87796
 
40449
87797
private:
40450
87798
  Type _type;
40451
 
  CT_Token *_token;
 
87799
  CTree *_token; // has to be a CT_Token
40452
87800
 
40453
87801
  void determine_type ();
40454
87802
 
40455
87803
public:
40456
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
87804
  /** Constructor.
 
87805
   *  \param t The token containing the declaration specifier. */
 
87806
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
87807
  /** Constructor.
 
87808
   *  \param t The declaration specifier type. */
40457
87809
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
87810
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40458
87811
  static const char *NodeId ();
 
87812
  /** Get the name of the node. Can be compared with NodeId(). */
40459
87813
  const char *NodeName () const { return NodeId (); }
 
87814
  /** Get the number of sons. */
40460
87815
  int Sons () const { return _token ? 1 : 0; }
 
87816
  /** Get the n-th son.
 
87817
   *  \param n The index of the son.
 
87818
   *  \return The n-th son or NULL. */
40461
87819
  CTree *Son (int n) const 
40462
87820
   { return (n == 0) ? _token : (CTree*)0; }
 
87821
  /** Get the textual representation of the declaration specifier.
 
87822
   *  \return The string representation or " ". */
40463
87823
  const char *SpecText () const 
40464
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
87824
   { return _token ? _token->token ()->text () : " "; }
 
87825
  /** Get the declaration specifier type. */
40465
87826
  Type SpecType () const { return _type; }
 
87827
  /** Number of declaration specifier types. */
40466
87828
  static const int NumTypes = PDS_NUM;
 
87829
  /** Replace a son.
 
87830
   *  \param old_son The son to replace.
 
87831
   *  \param new_son The new son. */
 
87832
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
87833
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
87834
    determine_type ();
 
87835
  }
40467
87836
};
40468
87837
 
 
87838
/** \class CT_NamedType CTree.h Puma/CTree.h
 
87839
 *  Tree node representing a named type, e.g. (int*)a. 
 
87840
 *  where int* is a type with a generated name. */
40469
87841
 
40470
 
#line 40471 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87842
#line 87843 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
40471
87843
} // closed Puma
 
87844
class CCExprResolve;
 
87845
class CExprResolve;
40472
87846
class WinIfExists;
40473
87847
class WinImportHandler;
40474
87848
class WinMacros;
40475
 
class CMatchSyntax;
40476
 
class ExtGnu;
 
87849
class WinAsm;
 
87850
class WinDeclSpecs;
 
87851
class WinMemberExplSpec;
 
87852
class WinTypeKeywords;
 
87853
class WinFriend;
40477
87854
class ExtAC;
40478
87855
class ExtACBuilderCoupling;
40479
87856
class ExtACSyntaxCoupling;
40480
87857
class ExtACTree;
40481
87858
class ExtACKeywords;
40482
 
class WinAsm;
40483
 
class WinDeclSpecs;
40484
 
class WinMemberExplSpec;
40485
 
class WinTypeKeywords;
 
87859
class ExtGnu;
40486
87860
class PragmaOnceUnitState;
40487
87861
class PragmaOnce;
40488
 
class CCExprResolve;
40489
 
class CExprResolve;
 
87862
class CMatchSyntax;
40490
87863
namespace Puma {
40491
87864
 
40492
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87865
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40493
87866
class CT_NamedType : public CT_DeclSpec, public CSemObject {
40494
 
#line 40495 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87867
#line 87868 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87868
  friend class ::CCExprResolve;
 
87869
  friend class ::CExprResolve;
40495
87870
  friend class ::WinIfExists;
40496
87871
  friend class ::WinImportHandler;
40497
87872
  friend class ::WinMacros;
40498
 
  friend class ::CMatchSyntax;
40499
 
  friend class ::ExtGnu;
 
87873
  friend class ::WinAsm;
 
87874
  friend class ::WinDeclSpecs;
 
87875
  friend class ::WinMemberExplSpec;
 
87876
  friend class ::WinTypeKeywords;
 
87877
  friend class ::WinFriend;
40500
87878
  friend class ::ExtAC;
40501
87879
  friend class ::ExtACBuilderCoupling;
40502
87880
  friend class ::ExtACSyntaxCoupling;
40503
87881
  friend class ::ExtACTree;
40504
87882
  friend class ::ExtACKeywords;
40505
 
  friend class ::WinAsm;
40506
 
  friend class ::WinDeclSpecs;
40507
 
  friend class ::WinMemberExplSpec;
40508
 
  friend class ::WinTypeKeywords;
 
87883
  friend class ::ExtGnu;
40509
87884
  friend class ::PragmaOnceUnitState;
40510
87885
  friend class ::PragmaOnce;
40511
 
  friend class ::CCExprResolve;
40512
 
  friend class ::CExprResolve;
 
87886
  friend class ::CMatchSyntax;
40513
87887
 
40514
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87888
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40515
87889
 
40516
87890
  CTree *sons[2]; // declspecs, declarator
40517
87891
 
40518
87892
public:
40519
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
87893
  /** Constructor.
 
87894
   *  \param dss The declaration specifier sequence of the type.
 
87895
   *  \param d The type declarator. */
 
87896
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
87897
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40520
87898
  static const char *NodeId ();
 
87899
  /** Get the name of the node. Can be compared with NodeId(). */
40521
87900
  const char *NodeName () const { return NodeId (); }
 
87901
  /** Get the number of sons. */
40522
87902
  int Sons () const { return CTree::Sons (sons, 2); }
 
87903
  /** Get the n-th son.
 
87904
   *  \param n The index of the son.
 
87905
   *  \return The n-th son or NULL. */
40523
87906
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
87907
  /** Get the declarator. */
40524
87908
  CTree *Declarator () const { return sons[1]; }
 
87909
  /** Replace a son.
 
87910
   *  \param old_son The son to replace.
 
87911
   *  \param new_son The new son. */
40525
87912
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40526
87913
    CTree::ReplaceSon (sons, 2, old_son, new_son);
40527
87914
  }
 
87915
  /** Get the semantic information object. */
40528
87916
  CSemObject *SemObject () const { return (CSemObject*)this; }
40529
87917
};
40530
87918
      
 
87919
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
87920
 *  Tree node representing a class specifier, e.g. class X. */
40531
87921
 
40532
 
#line 40533 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87922
#line 87923 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
40533
87923
} // closed Puma
 
87924
class CCExprResolve;
 
87925
class CExprResolve;
40534
87926
class WinIfExists;
40535
87927
class WinImportHandler;
40536
87928
class WinMacros;
40537
 
class CMatchSyntax;
40538
 
class ExtGnu;
 
87929
class WinAsm;
 
87930
class WinDeclSpecs;
 
87931
class WinMemberExplSpec;
 
87932
class WinTypeKeywords;
 
87933
class WinFriend;
40539
87934
class ExtAC;
40540
87935
class ExtACBuilderCoupling;
40541
87936
class ExtACSyntaxCoupling;
40542
87937
class ExtACTree;
40543
87938
class ExtACKeywords;
40544
 
class WinAsm;
40545
 
class WinDeclSpecs;
40546
 
class WinMemberExplSpec;
40547
 
class WinTypeKeywords;
 
87939
class ExtGnu;
40548
87940
class PragmaOnceUnitState;
40549
87941
class PragmaOnce;
40550
 
class CCExprResolve;
40551
 
class CExprResolve;
 
87942
class CMatchSyntax;
40552
87943
namespace Puma {
40553
87944
 
40554
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87945
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40555
87946
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
40556
 
#line 40557 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
87947
#line 87948 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
87948
  friend class ::CCExprResolve;
 
87949
  friend class ::CExprResolve;
40557
87950
  friend class ::WinIfExists;
40558
87951
  friend class ::WinImportHandler;
40559
87952
  friend class ::WinMacros;
40560
 
  friend class ::CMatchSyntax;
40561
 
  friend class ::ExtGnu;
 
87953
  friend class ::WinAsm;
 
87954
  friend class ::WinDeclSpecs;
 
87955
  friend class ::WinMemberExplSpec;
 
87956
  friend class ::WinTypeKeywords;
 
87957
  friend class ::WinFriend;
40562
87958
  friend class ::ExtAC;
40563
87959
  friend class ::ExtACBuilderCoupling;
40564
87960
  friend class ::ExtACSyntaxCoupling;
40565
87961
  friend class ::ExtACTree;
40566
87962
  friend class ::ExtACKeywords;
40567
 
  friend class ::WinAsm;
40568
 
  friend class ::WinDeclSpecs;
40569
 
  friend class ::WinMemberExplSpec;
40570
 
  friend class ::WinTypeKeywords;
 
87963
  friend class ::ExtGnu;
40571
87964
  friend class ::PragmaOnceUnitState;
40572
87965
  friend class ::PragmaOnce;
40573
 
  friend class ::CCExprResolve;
40574
 
  friend class ::CExprResolve;
 
87966
  friend class ::CMatchSyntax;
40575
87967
 
40576
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87968
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40577
87969
 
40578
87970
  CTree *sons[2]; // key, name
40579
87971
  
40580
87972
public:
40581
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
87973
  /** Constructor.
 
87974
   *  \param k The 'class' or 'struct' keyword.
 
87975
   *  \param n The class name. */
 
87976
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
87977
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40582
87978
  static const char *NodeId ();
 
87979
  /** Get the name of the node. Can be compared with NodeId(). */
40583
87980
  const char *NodeName () const { return NodeId (); }
 
87981
  /** Get the number of sons. */
40584
87982
  int Sons () const { return 2; }
 
87983
  /** Get the n-th son.
 
87984
   *  \param n The index of the son.
 
87985
   *  \return The n-th son or NULL. */
40585
87986
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
87987
  /** Get the class name. */
40586
87988
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
87989
  /** Get the semantic information object. */
40587
87990
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
87991
  /** Replace a son.
 
87992
   *  \param old_son The son to replace.
 
87993
   *  \param new_son The new son. */
40588
87994
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40589
87995
    CTree::ReplaceSon (sons, 2, old_son, new_son);
40590
87996
  }
40591
87997
};
40592
87998
 
 
87999
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
88000
 *  Tree node representing a union specifier, e.g. union X. */
40593
88001
 
40594
 
#line 40595 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88002
#line 88003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
40595
88003
} // closed Puma
 
88004
class CCExprResolve;
 
88005
class CExprResolve;
40596
88006
class WinIfExists;
40597
88007
class WinImportHandler;
40598
88008
class WinMacros;
40599
 
class CMatchSyntax;
40600
 
class ExtGnu;
 
88009
class WinAsm;
 
88010
class WinDeclSpecs;
 
88011
class WinMemberExplSpec;
 
88012
class WinTypeKeywords;
 
88013
class WinFriend;
40601
88014
class ExtAC;
40602
88015
class ExtACBuilderCoupling;
40603
88016
class ExtACSyntaxCoupling;
40604
88017
class ExtACTree;
40605
88018
class ExtACKeywords;
40606
 
class WinAsm;
40607
 
class WinDeclSpecs;
40608
 
class WinMemberExplSpec;
40609
 
class WinTypeKeywords;
 
88019
class ExtGnu;
40610
88020
class PragmaOnceUnitState;
40611
88021
class PragmaOnce;
40612
 
class CCExprResolve;
40613
 
class CExprResolve;
 
88022
class CMatchSyntax;
40614
88023
namespace Puma {
40615
88024
 
40616
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88025
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40617
88026
class CT_UnionSpec : public CT_ClassSpec {
40618
 
#line 40619 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88027
#line 88028 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
88028
  friend class ::CCExprResolve;
 
88029
  friend class ::CExprResolve;
40619
88030
  friend class ::WinIfExists;
40620
88031
  friend class ::WinImportHandler;
40621
88032
  friend class ::WinMacros;
40622
 
  friend class ::CMatchSyntax;
40623
 
  friend class ::ExtGnu;
 
88033
  friend class ::WinAsm;
 
88034
  friend class ::WinDeclSpecs;
 
88035
  friend class ::WinMemberExplSpec;
 
88036
  friend class ::WinTypeKeywords;
 
88037
  friend class ::WinFriend;
40624
88038
  friend class ::ExtAC;
40625
88039
  friend class ::ExtACBuilderCoupling;
40626
88040
  friend class ::ExtACSyntaxCoupling;
40627
88041
  friend class ::ExtACTree;
40628
88042
  friend class ::ExtACKeywords;
40629
 
  friend class ::WinAsm;
40630
 
  friend class ::WinDeclSpecs;
40631
 
  friend class ::WinMemberExplSpec;
40632
 
  friend class ::WinTypeKeywords;
 
88043
  friend class ::ExtGnu;
40633
88044
  friend class ::PragmaOnceUnitState;
40634
88045
  friend class ::PragmaOnce;
40635
 
  friend class ::CCExprResolve;
40636
 
  friend class ::CExprResolve;
 
88046
  friend class ::CMatchSyntax;
40637
88047
 
40638
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88048
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40639
88049
 
40640
88050
public:
 
88051
  /** Constructor.
 
88052
   *  \param k The 'union' keyword.
 
88053
   *  \param n The name of the union. */
40641
88054
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
88055
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40642
88056
  static const char *NodeId ();
 
88057
  /** Get the name of the node. Can be compared with NodeId(). */
40643
88058
  const char *NodeName () const { return NodeId (); }
40644
88059
};
40645
88060
 
 
88061
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
88062
 *  Tree node representing an enumeration specifier, e.g. enum X. */
40646
88063
 
40647
 
#line 40648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88064
#line 88065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
40648
88065
} // closed Puma
 
88066
class CCExprResolve;
 
88067
class CExprResolve;
40649
88068
class WinIfExists;
40650
88069
class WinImportHandler;
40651
88070
class WinMacros;
40652
 
class CMatchSyntax;
40653
 
class ExtGnu;
 
88071
class WinAsm;
 
88072
class WinDeclSpecs;
 
88073
class WinMemberExplSpec;
 
88074
class WinTypeKeywords;
 
88075
class WinFriend;
40654
88076
class ExtAC;
40655
88077
class ExtACBuilderCoupling;
40656
88078
class ExtACSyntaxCoupling;
40657
88079
class ExtACTree;
40658
88080
class ExtACKeywords;
40659
 
class WinAsm;
40660
 
class WinDeclSpecs;
40661
 
class WinMemberExplSpec;
40662
 
class WinTypeKeywords;
 
88081
class ExtGnu;
40663
88082
class PragmaOnceUnitState;
40664
88083
class PragmaOnce;
40665
 
class CCExprResolve;
40666
 
class CExprResolve;
 
88084
class CMatchSyntax;
40667
88085
namespace Puma {
40668
88086
 
40669
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88087
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40670
88088
class CT_EnumSpec : public CT_ClassSpec {
40671
 
#line 40672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88089
#line 88090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
88090
  friend class ::CCExprResolve;
 
88091
  friend class ::CExprResolve;
40672
88092
  friend class ::WinIfExists;
40673
88093
  friend class ::WinImportHandler;
40674
88094
  friend class ::WinMacros;
40675
 
  friend class ::CMatchSyntax;
40676
 
  friend class ::ExtGnu;
 
88095
  friend class ::WinAsm;
 
88096
  friend class ::WinDeclSpecs;
 
88097
  friend class ::WinMemberExplSpec;
 
88098
  friend class ::WinTypeKeywords;
 
88099
  friend class ::WinFriend;
40677
88100
  friend class ::ExtAC;
40678
88101
  friend class ::ExtACBuilderCoupling;
40679
88102
  friend class ::ExtACSyntaxCoupling;
40680
88103
  friend class ::ExtACTree;
40681
88104
  friend class ::ExtACKeywords;
40682
 
  friend class ::WinAsm;
40683
 
  friend class ::WinDeclSpecs;
40684
 
  friend class ::WinMemberExplSpec;
40685
 
  friend class ::WinTypeKeywords;
 
88105
  friend class ::ExtGnu;
40686
88106
  friend class ::PragmaOnceUnitState;
40687
88107
  friend class ::PragmaOnce;
40688
 
  friend class ::CCExprResolve;
40689
 
  friend class ::CExprResolve;
 
88108
  friend class ::CMatchSyntax;
40690
88109
 
40691
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88110
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40692
88111
 
40693
88112
public:
 
88113
  /** Constructor.
 
88114
   *  \param k The 'enum' keyword. 
 
88115
   *  \param n The name of the enumeration. */
40694
88116
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
88117
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40695
88118
  static const char *NodeId ();
 
88119
  /** Get the name of the node. Can be compared with NodeId(). */
40696
88120
  const char *NodeName () const { return NodeId (); }
40697
88121
};
40698
88122
 
 
88123
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
88124
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
40699
88125
 
40700
 
#line 40701 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88126
#line 88127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
40701
88127
} // closed Puma
 
88128
class CCExprResolve;
 
88129
class CExprResolve;
40702
88130
class WinIfExists;
40703
88131
class WinImportHandler;
40704
88132
class WinMacros;
40705
 
class CMatchSyntax;
40706
 
class ExtGnu;
 
88133
class WinAsm;
 
88134
class WinDeclSpecs;
 
88135
class WinMemberExplSpec;
 
88136
class WinTypeKeywords;
 
88137
class WinFriend;
40707
88138
class ExtAC;
40708
88139
class ExtACBuilderCoupling;
40709
88140
class ExtACSyntaxCoupling;
40710
88141
class ExtACTree;
40711
88142
class ExtACKeywords;
40712
 
class WinAsm;
40713
 
class WinDeclSpecs;
40714
 
class WinMemberExplSpec;
40715
 
class WinTypeKeywords;
 
88143
class ExtGnu;
40716
88144
class PragmaOnceUnitState;
40717
88145
class PragmaOnce;
40718
 
class CCExprResolve;
40719
 
class CExprResolve;
 
88146
class CMatchSyntax;
40720
88147
namespace Puma {
40721
88148
 
40722
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88149
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40723
88150
class CT_ExceptionSpec : public CT_DeclSpec {
40724
 
#line 40725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88151
#line 88152 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
88152
  friend class ::CCExprResolve;
 
88153
  friend class ::CExprResolve;
40725
88154
  friend class ::WinIfExists;
40726
88155
  friend class ::WinImportHandler;
40727
88156
  friend class ::WinMacros;
40728
 
  friend class ::CMatchSyntax;
40729
 
  friend class ::ExtGnu;
 
88157
  friend class ::WinAsm;
 
88158
  friend class ::WinDeclSpecs;
 
88159
  friend class ::WinMemberExplSpec;
 
88160
  friend class ::WinTypeKeywords;
 
88161
  friend class ::WinFriend;
40730
88162
  friend class ::ExtAC;
40731
88163
  friend class ::ExtACBuilderCoupling;
40732
88164
  friend class ::ExtACSyntaxCoupling;
40733
88165
  friend class ::ExtACTree;
40734
88166
  friend class ::ExtACKeywords;
40735
 
  friend class ::WinAsm;
40736
 
  friend class ::WinDeclSpecs;
40737
 
  friend class ::WinMemberExplSpec;
40738
 
  friend class ::WinTypeKeywords;
 
88167
  friend class ::ExtGnu;
40739
88168
  friend class ::PragmaOnceUnitState;
40740
88169
  friend class ::PragmaOnce;
40741
 
  friend class ::CCExprResolve;
40742
 
  friend class ::CExprResolve;
 
88170
  friend class ::CMatchSyntax;
40743
88171
 
40744
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88172
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40745
88173
 
40746
88174
  CTree *sons[2]; // throw, type_id_list
40747
88175
  
40748
88176
public:
40749
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
88177
  /** Constructor.
 
88178
   *  \param k The 'throw' keyword.
 
88179
   *  \param l The type list for the exception type to throw. */
 
88180
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
88181
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40750
88182
  static const char *NodeId ();
 
88183
  /** Get the name of the node. Can be compared with NodeId(). */
40751
88184
  const char *NodeName () const { return NodeId (); }
 
88185
  /** Get the number of sons. */
40752
88186
  int Sons () const { return 2; }
 
88187
  /** Get the n-th son.
 
88188
   *  \param n The index of the son.
 
88189
   *  \return The n-th son or NULL. */
40753
88190
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
88191
  /** Get the exception type list. */
40754
88192
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
88193
  /** Replace a son.
 
88194
   *  \param old_son The son to replace.
 
88195
   *  \param new_son The new son. */
40755
88196
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40756
88197
    CTree::ReplaceSon (sons, 2, old_son, new_son);
40757
88198
  }
40763
88204
/*                                                                           */
40764
88205
/*****************************************************************************/
40765
88206
 
 
88207
/** \class CT_Decl CTree.h Puma/CTree.h
 
88208
 *  Base class for all tree nodes representing declarations. */
40766
88209
 
40767
 
#line 40768 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88210
#line 88211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
40768
88211
} // closed Puma
 
88212
class CCExprResolve;
 
88213
class CExprResolve;
40769
88214
class WinIfExists;
40770
88215
class WinImportHandler;
40771
88216
class WinMacros;
40772
 
class CMatchSyntax;
40773
 
class ExtGnu;
 
88217
class WinAsm;
 
88218
class WinDeclSpecs;
 
88219
class WinMemberExplSpec;
 
88220
class WinTypeKeywords;
 
88221
class WinFriend;
40774
88222
class ExtAC;
40775
88223
class ExtACBuilderCoupling;
40776
88224
class ExtACSyntaxCoupling;
40777
88225
class ExtACTree;
40778
88226
class ExtACKeywords;
40779
 
class WinAsm;
40780
 
class WinDeclSpecs;
40781
 
class WinMemberExplSpec;
40782
 
class WinTypeKeywords;
 
88227
class ExtGnu;
40783
88228
class PragmaOnceUnitState;
40784
88229
class PragmaOnce;
40785
 
class CCExprResolve;
40786
 
class CExprResolve;
 
88230
class CMatchSyntax;
40787
88231
namespace Puma {
40788
88232
 
40789
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88233
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40790
88234
class CT_Decl : public CTree {
40791
 
#line 40792 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88235
#line 88236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
88236
  friend class ::CCExprResolve;
 
88237
  friend class ::CExprResolve;
40792
88238
  friend class ::WinIfExists;
40793
88239
  friend class ::WinImportHandler;
40794
88240
  friend class ::WinMacros;
40795
 
  friend class ::CMatchSyntax;
40796
 
  friend class ::ExtGnu;
 
88241
  friend class ::WinAsm;
 
88242
  friend class ::WinDeclSpecs;
 
88243
  friend class ::WinMemberExplSpec;
 
88244
  friend class ::WinTypeKeywords;
 
88245
  friend class ::WinFriend;
40797
88246
  friend class ::ExtAC;
40798
88247
  friend class ::ExtACBuilderCoupling;
40799
88248
  friend class ::ExtACSyntaxCoupling;
40800
88249
  friend class ::ExtACTree;
40801
88250
  friend class ::ExtACKeywords;
40802
 
  friend class ::WinAsm;
40803
 
  friend class ::WinDeclSpecs;
40804
 
  friend class ::WinMemberExplSpec;
40805
 
  friend class ::WinTypeKeywords;
 
88251
  friend class ::ExtGnu;
40806
88252
  friend class ::PragmaOnceUnitState;
40807
88253
  friend class ::PragmaOnce;
40808
 
  friend class ::CCExprResolve;
40809
 
  friend class ::CExprResolve;
 
88254
  friend class ::CMatchSyntax;
40810
88255
 
40811
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88256
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40812
88257
 
40813
88258
  CT_LinkageSpec *_linkage;
 
88259
  
40814
88260
protected:
 
88261
  /** Constructor. */
40815
88262
  CT_Decl () : _linkage (0) {}
 
88263
  
40816
88264
public:
 
88265
  /** Set the linkage of the declared entity.
 
88266
   *  \param l The linkage specifiers. */
40817
88267
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
88268
  /** Get the linkage specifiers. */
40818
88269
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
88270
  /** Get this. */
 
88271
  virtual CT_Decl *IsDeclaration () { return this; }
40819
88272
};
40820
88273
 
 
88274
/** \class CT_Program CTree.h Puma/CTree.h
 
88275
 *  Root node of C/C++ syntax tree. */
40821
88276
 
40822
 
#line 40823 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88277
#line 88278 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
40823
88278
} // closed Puma
 
88279
class CCExprResolve;
 
88280
class CExprResolve;
40824
88281
class WinIfExists;
40825
88282
class WinImportHandler;
40826
88283
class WinMacros;
40827
 
class CMatchSyntax;
40828
 
class ExtGnu;
 
88284
class WinAsm;
 
88285
class WinDeclSpecs;
 
88286
class WinMemberExplSpec;
 
88287
class WinTypeKeywords;
 
88288
class WinFriend;
40829
88289
class ExtAC;
40830
88290
class ExtACBuilderCoupling;
40831
88291
class ExtACSyntaxCoupling;
40832
88292
class ExtACTree;
40833
88293
class ExtACKeywords;
40834
 
class WinAsm;
40835
 
class WinDeclSpecs;
40836
 
class WinMemberExplSpec;
40837
 
class WinTypeKeywords;
 
88294
class ExtGnu;
40838
88295
class PragmaOnceUnitState;
40839
88296
class PragmaOnce;
40840
 
class CCExprResolve;
40841
 
class CExprResolve;
 
88297
class CMatchSyntax;
40842
88298
namespace Puma {
40843
88299
 
40844
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88300
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40845
88301
class CT_Program : public CT_DeclList, public CSemScope {
40846
 
#line 40847 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88302
#line 88303 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
88303
  friend class ::CCExprResolve;
 
88304
  friend class ::CExprResolve;
40847
88305
  friend class ::WinIfExists;
40848
88306
  friend class ::WinImportHandler;
40849
88307
  friend class ::WinMacros;
40850
 
  friend class ::CMatchSyntax;
40851
 
  friend class ::ExtGnu;
 
88308
  friend class ::WinAsm;
 
88309
  friend class ::WinDeclSpecs;
 
88310
  friend class ::WinMemberExplSpec;
 
88311
  friend class ::WinTypeKeywords;
 
88312
  friend class ::WinFriend;
40852
88313
  friend class ::ExtAC;
40853
88314
  friend class ::ExtACBuilderCoupling;
40854
88315
  friend class ::ExtACSyntaxCoupling;
40855
88316
  friend class ::ExtACTree;
40856
88317
  friend class ::ExtACKeywords;
40857
 
  friend class ::WinAsm;
40858
 
  friend class ::WinDeclSpecs;
40859
 
  friend class ::WinMemberExplSpec;
40860
 
  friend class ::WinTypeKeywords;
 
88318
  friend class ::ExtGnu;
40861
88319
  friend class ::PragmaOnceUnitState;
40862
88320
  friend class ::PragmaOnce;
40863
 
  friend class ::CCExprResolve;
40864
 
  friend class ::CExprResolve;
 
88321
  friend class ::CMatchSyntax;
40865
88322
 
40866
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88323
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40867
88324
 
40868
88325
public:
 
88326
  /** Constructor.
 
88327
   *  \param size The initial number of declarations in the program.
 
88328
   *  \param incr The initial increment count. */
40869
88329
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
88330
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40870
88331
  static const char *NodeId ();
 
88332
  /** Get the name of the node. Can be compared with NodeId(). */
40871
88333
  const char *NodeName () const { return NodeId (); }
 
88334
  /** Get the semantic scope object. */
 
88335
  CSemScope *SemScope () const { return (CSemScope*)this; }
40872
88336
};
40873
88337
   
 
88338
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
88339
 *  Tree node representing an object declaration, e.g. int *i. */
40874
88340
 
40875
 
#line 40876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88341
#line 88342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
40876
88342
} // closed Puma
 
88343
class CCExprResolve;
 
88344
class CExprResolve;
40877
88345
class WinIfExists;
40878
88346
class WinImportHandler;
40879
88347
class WinMacros;
40880
 
class CMatchSyntax;
40881
 
class ExtGnu;
 
88348
class WinAsm;
 
88349
class WinDeclSpecs;
 
88350
class WinMemberExplSpec;
 
88351
class WinTypeKeywords;
 
88352
class WinFriend;
40882
88353
class ExtAC;
40883
88354
class ExtACBuilderCoupling;
40884
88355
class ExtACSyntaxCoupling;
40885
88356
class ExtACTree;
40886
88357
class ExtACKeywords;
40887
 
class WinAsm;
40888
 
class WinDeclSpecs;
40889
 
class WinMemberExplSpec;
40890
 
class WinTypeKeywords;
 
88358
class ExtGnu;
40891
88359
class PragmaOnceUnitState;
40892
88360
class PragmaOnce;
40893
 
class CCExprResolve;
40894
 
class CExprResolve;
 
88361
class CMatchSyntax;
40895
88362
namespace Puma {
40896
88363
 
40897
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88364
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40898
88365
class CT_ObjDecl : public CT_Decl {
40899
 
#line 40900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88366
#line 88367 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
88367
  friend class ::CCExprResolve;
 
88368
  friend class ::CExprResolve;
40900
88369
  friend class ::WinIfExists;
40901
88370
  friend class ::WinImportHandler;
40902
88371
  friend class ::WinMacros;
40903
 
  friend class ::CMatchSyntax;
40904
 
  friend class ::ExtGnu;
 
88372
  friend class ::WinAsm;
 
88373
  friend class ::WinDeclSpecs;
 
88374
  friend class ::WinMemberExplSpec;
 
88375
  friend class ::WinTypeKeywords;
 
88376
  friend class ::WinFriend;
40905
88377
  friend class ::ExtAC;
40906
88378
  friend class ::ExtACBuilderCoupling;
40907
88379
  friend class ::ExtACSyntaxCoupling;
40908
88380
  friend class ::ExtACTree;
40909
88381
  friend class ::ExtACKeywords;
40910
 
  friend class ::WinAsm;
40911
 
  friend class ::WinDeclSpecs;
40912
 
  friend class ::WinMemberExplSpec;
40913
 
  friend class ::WinTypeKeywords;
 
88382
  friend class ::ExtGnu;
40914
88383
  friend class ::PragmaOnceUnitState;
40915
88384
  friend class ::PragmaOnce;
40916
 
  friend class ::CCExprResolve;
40917
 
  friend class ::CExprResolve;
 
88385
  friend class ::CMatchSyntax;
40918
88386
 
40919
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88387
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40920
88388
 
40921
88389
  CTree *sons[3]; // declspecs, declarators, colon
40922
88390
 
40923
88391
public:
 
88392
  /** Constructor.
 
88393
   *  \param dsl The declaration specifier sequence.
 
88394
   *  \param dl The declarator list.
 
88395
   *  \param c Optional colon. */
40924
88396
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
40925
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
88397
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
40926
88398
  }
 
88399
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40927
88400
  static const char *NodeId ();
 
88401
  /** Get the name of the node. Can be compared with NodeId(). */
40928
88402
  const char *NodeName () const { return NodeId (); }
 
88403
  /** Get the number of sons. */
40929
88404
  int Sons () const { return 3; }
 
88405
  /** Get the n-th son.
 
88406
   *  \param n The index of the son.
 
88407
   *  \return The n-th son or NULL. */
40930
88408
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
88409
  /** Get the declaration specifier sequence. */
40931
88410
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
88411
  /** Get the declarator list. */
40932
88412
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
88413
  /** Replace a son.
 
88414
   *  \param old_son The son to replace.
 
88415
   *  \param new_son The new son. */
40933
88416
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40934
88417
    CTree::ReplaceSon (sons, 3, old_son, new_son);
40935
88418
  }
40936
88419
};
40937
88420
 
 
88421
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
88422
 *  Tree node representing a template declaration. */
40938
88423
 
40939
 
#line 40940 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88424
#line 88425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
40940
88425
} // closed Puma
 
88426
class CCExprResolve;
 
88427
class CExprResolve;
40941
88428
class WinIfExists;
40942
88429
class WinImportHandler;
40943
88430
class WinMacros;
40944
 
class CMatchSyntax;
40945
 
class ExtGnu;
 
88431
class WinAsm;
 
88432
class WinDeclSpecs;
 
88433
class WinMemberExplSpec;
 
88434
class WinTypeKeywords;
 
88435
class WinFriend;
40946
88436
class ExtAC;
40947
88437
class ExtACBuilderCoupling;
40948
88438
class ExtACSyntaxCoupling;
40949
88439
class ExtACTree;
40950
88440
class ExtACKeywords;
40951
 
class WinAsm;
40952
 
class WinDeclSpecs;
40953
 
class WinMemberExplSpec;
40954
 
class WinTypeKeywords;
 
88441
class ExtGnu;
40955
88442
class PragmaOnceUnitState;
40956
88443
class PragmaOnce;
40957
 
class CCExprResolve;
40958
 
class CExprResolve;
 
88444
class CMatchSyntax;
40959
88445
namespace Puma {
40960
88446
 
40961
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88447
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40962
88448
class CT_TemplateDecl : public CT_Decl, public CSemScope {
40963
 
#line 40964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88449
#line 88450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
88450
  friend class ::CCExprResolve;
 
88451
  friend class ::CExprResolve;
40964
88452
  friend class ::WinIfExists;
40965
88453
  friend class ::WinImportHandler;
40966
88454
  friend class ::WinMacros;
40967
 
  friend class ::CMatchSyntax;
40968
 
  friend class ::ExtGnu;
 
88455
  friend class ::WinAsm;
 
88456
  friend class ::WinDeclSpecs;
 
88457
  friend class ::WinMemberExplSpec;
 
88458
  friend class ::WinTypeKeywords;
 
88459
  friend class ::WinFriend;
40969
88460
  friend class ::ExtAC;
40970
88461
  friend class ::ExtACBuilderCoupling;
40971
88462
  friend class ::ExtACSyntaxCoupling;
40972
88463
  friend class ::ExtACTree;
40973
88464
  friend class ::ExtACKeywords;
40974
 
  friend class ::WinAsm;
40975
 
  friend class ::WinDeclSpecs;
40976
 
  friend class ::WinMemberExplSpec;
40977
 
  friend class ::WinTypeKeywords;
 
88465
  friend class ::ExtGnu;
40978
88466
  friend class ::PragmaOnceUnitState;
40979
88467
  friend class ::PragmaOnce;
40980
 
  friend class ::CCExprResolve;
40981
 
  friend class ::CExprResolve;
 
88468
  friend class ::CMatchSyntax;
40982
88469
 
40983
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88470
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40984
88471
 
40985
88472
  CTree *sons[3]; // export, param_list, decl
40986
88473
 
40987
88474
public:
 
88475
  /** Constructor.
 
88476
   *  \param e Optional 'export' keyword. 
 
88477
   *  \param p The template parameter list.
 
88478
   *  \param d The class or function declaration. */
40988
88479
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
40989
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
88480
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
40990
88481
  }
 
88482
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40991
88483
  static const char *NodeId ();
 
88484
  /** Get the name of the node. Can be compared with NodeId(). */
40992
88485
  const char *NodeName () const { return NodeId (); }
 
88486
  /** Get the number of sons. */
40993
88487
  int Sons () const { return CTree::Sons (sons, 3); }
 
88488
  /** Get the n-th son.
 
88489
   *  \param n The index of the son.
 
88490
   *  \return The n-th son or NULL. */
40994
88491
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
88492
  /** Replace a son.
 
88493
   *  \param old_son The son to replace.
 
88494
   *  \param new_son The new son. */
40995
88495
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40996
88496
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
40997
88497
  }
 
88498
  /** Get the 'export' keyword. */
40998
88499
  CTree *Export () const { return sons[0]; }
 
88500
  /** Get the template parameter list. */
40999
88501
  CT_TemplateParamList *Parameters () const { 
41000
88502
    return (CT_TemplateParamList*)sons[1]; 
41001
88503
  }
 
88504
  /** Get the class or function declaration. */
41002
88505
  CTree *Declaration () const { return sons[2]; }
 
88506
  /** Get the semantic scope object. */
 
88507
  CSemScope *SemScope () const { return (CSemScope*)this; }
41003
88508
};
41004
88509
 
 
88510
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
88511
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
41005
88512
 
41006
 
#line 41007 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88513
#line 88514 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
41007
88514
} // closed Puma
 
88515
class CCExprResolve;
 
88516
class CExprResolve;
41008
88517
class WinIfExists;
41009
88518
class WinImportHandler;
41010
88519
class WinMacros;
41011
 
class CMatchSyntax;
41012
 
class ExtGnu;
 
88520
class WinAsm;
 
88521
class WinDeclSpecs;
 
88522
class WinMemberExplSpec;
 
88523
class WinTypeKeywords;
 
88524
class WinFriend;
41013
88525
class ExtAC;
41014
88526
class ExtACBuilderCoupling;
41015
88527
class ExtACSyntaxCoupling;
41016
88528
class ExtACTree;
41017
88529
class ExtACKeywords;
41018
 
class WinAsm;
41019
 
class WinDeclSpecs;
41020
 
class WinMemberExplSpec;
41021
 
class WinTypeKeywords;
 
88530
class ExtGnu;
41022
88531
class PragmaOnceUnitState;
41023
88532
class PragmaOnce;
41024
 
class CCExprResolve;
41025
 
class CExprResolve;
 
88533
class CMatchSyntax;
41026
88534
namespace Puma {
41027
88535
 
41028
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88536
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41029
88537
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
41030
 
#line 41031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88538
#line 88539 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
88539
  friend class ::CCExprResolve;
 
88540
  friend class ::CExprResolve;
41031
88541
  friend class ::WinIfExists;
41032
88542
  friend class ::WinImportHandler;
41033
88543
  friend class ::WinMacros;
41034
 
  friend class ::CMatchSyntax;
41035
 
  friend class ::ExtGnu;
 
88544
  friend class ::WinAsm;
 
88545
  friend class ::WinDeclSpecs;
 
88546
  friend class ::WinMemberExplSpec;
 
88547
  friend class ::WinTypeKeywords;
 
88548
  friend class ::WinFriend;
41036
88549
  friend class ::ExtAC;
41037
88550
  friend class ::ExtACBuilderCoupling;
41038
88551
  friend class ::ExtACSyntaxCoupling;
41039
88552
  friend class ::ExtACTree;
41040
88553
  friend class ::ExtACKeywords;
41041
 
  friend class ::WinAsm;
41042
 
  friend class ::WinDeclSpecs;
41043
 
  friend class ::WinMemberExplSpec;
41044
 
  friend class ::WinTypeKeywords;
 
88554
  friend class ::ExtGnu;
41045
88555
  friend class ::PragmaOnceUnitState;
41046
88556
  friend class ::PragmaOnce;
41047
 
  friend class ::CCExprResolve;
41048
 
  friend class ::CExprResolve;
 
88557
  friend class ::CMatchSyntax;
41049
88558
 
41050
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88559
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41051
88560
 
41052
88561
protected:
 
88562
  /** Constructor. */
41053
88563
  CT_TemplateParamDecl () {}
41054
88564
  
41055
88565
public:
 
88566
  /** Get the template default argument. */
41056
88567
  virtual CT_ExprList *DefaultArgument () const = 0;
 
88568
  /** Get the semantic information object. */
41057
88569
  CSemObject *SemObject () const { return (CSemObject*)this; }
41058
88570
};
41059
88571
 
41060
88572
 
41061
 
#line 41062 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88573
#line 88574 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
41062
88574
} // closed Puma
 
88575
class CCExprResolve;
 
88576
class CExprResolve;
41063
88577
class WinIfExists;
41064
88578
class WinImportHandler;
41065
88579
class WinMacros;
41066
 
class CMatchSyntax;
41067
 
class ExtGnu;
 
88580
class WinAsm;
 
88581
class WinDeclSpecs;
 
88582
class WinMemberExplSpec;
 
88583
class WinTypeKeywords;
 
88584
class WinFriend;
41068
88585
class ExtAC;
41069
88586
class ExtACBuilderCoupling;
41070
88587
class ExtACSyntaxCoupling;
41071
88588
class ExtACTree;
41072
88589
class ExtACKeywords;
41073
 
class WinAsm;
41074
 
class WinDeclSpecs;
41075
 
class WinMemberExplSpec;
41076
 
class WinTypeKeywords;
 
88590
class ExtGnu;
41077
88591
class PragmaOnceUnitState;
41078
88592
class PragmaOnce;
41079
 
class CCExprResolve;
41080
 
class CExprResolve;
 
88593
class CMatchSyntax;
41081
88594
namespace Puma {
41082
88595
 
41083
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88596
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41084
88597
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
41085
 
#line 41086 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88598
#line 88599 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
88599
  friend class ::CCExprResolve;
 
88600
  friend class ::CExprResolve;
41086
88601
  friend class ::WinIfExists;
41087
88602
  friend class ::WinImportHandler;
41088
88603
  friend class ::WinMacros;
41089
 
  friend class ::CMatchSyntax;
41090
 
  friend class ::ExtGnu;
 
88604
  friend class ::WinAsm;
 
88605
  friend class ::WinDeclSpecs;
 
88606
  friend class ::WinMemberExplSpec;
 
88607
  friend class ::WinTypeKeywords;
 
88608
  friend class ::WinFriend;
41091
88609
  friend class ::ExtAC;
41092
88610
  friend class ::ExtACBuilderCoupling;
41093
88611
  friend class ::ExtACSyntaxCoupling;
41094
88612
  friend class ::ExtACTree;
41095
88613
  friend class ::ExtACKeywords;
41096
 
  friend class ::WinAsm;
41097
 
  friend class ::WinDeclSpecs;
41098
 
  friend class ::WinMemberExplSpec;
41099
 
  friend class ::WinTypeKeywords;
 
88614
  friend class ::ExtGnu;
41100
88615
  friend class ::PragmaOnceUnitState;
41101
88616
  friend class ::PragmaOnce;
41102
 
  friend class ::CCExprResolve;
41103
 
  friend class ::CExprResolve;
 
88617
  friend class ::CMatchSyntax;
41104
88618
 
41105
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88619
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41106
88620
 
41107
88621
  CTree *sons[3]; // declspecs, declarator, init
41108
88622
 
41109
88623
public:
41110
88624
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
41111
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
88625
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
41112
88626
  }
 
88627
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41113
88628
  static const char *NodeId ();
 
88629
  /** Get the name of the node. Can be compared with NodeId(). */
41114
88630
  const char *NodeName () const { return NodeId (); }
 
88631
  /** Get the number of sons. */
41115
88632
  int Sons () const { return CTree::Sons (sons, 3); }
 
88633
  /** Get the n-th son.
 
88634
   *  \param n The index of the son.
 
88635
   *  \return The n-th son or NULL. */
41116
88636
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
41117
88637
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
41118
88638
  CTree *Declarator () const { return sons[1]; }
41119
88639
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
41120
88640
  CSemObject *SemObject () const { return (CSemObject*)this; }
41121
 
  void Initializer (CTree *i) { sons[2] = i; }
 
88641
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
88642
  /** Replace a son.
 
88643
   *  \param old_son The son to replace.
 
88644
   *  \param new_son The new son. */
41122
88645
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41123
88646
    CTree::ReplaceSon (sons, 3, old_son, new_son);
41124
88647
  }
41125
88648
};
41126
88649
 
41127
88650
 
41128
 
#line 41129 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88651
#line 88652 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
41129
88652
} // closed Puma
 
88653
class CCExprResolve;
 
88654
class CExprResolve;
41130
88655
class WinIfExists;
41131
88656
class WinImportHandler;
41132
88657
class WinMacros;
41133
 
class CMatchSyntax;
41134
 
class ExtGnu;
 
88658
class WinAsm;
 
88659
class WinDeclSpecs;
 
88660
class WinMemberExplSpec;
 
88661
class WinTypeKeywords;
 
88662
class WinFriend;
41135
88663
class ExtAC;
41136
88664
class ExtACBuilderCoupling;
41137
88665
class ExtACSyntaxCoupling;
41138
88666
class ExtACTree;
41139
88667
class ExtACKeywords;
41140
 
class WinAsm;
41141
 
class WinDeclSpecs;
41142
 
class WinMemberExplSpec;
41143
 
class WinTypeKeywords;
 
88668
class ExtGnu;
41144
88669
class PragmaOnceUnitState;
41145
88670
class PragmaOnce;
41146
 
class CCExprResolve;
41147
 
class CExprResolve;
 
88671
class CMatchSyntax;
41148
88672
namespace Puma {
41149
88673
 
41150
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88674
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41151
88675
class CT_TypeParamDecl : public CT_TemplateParamDecl {
41152
 
#line 41153 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88676
#line 88677 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
88677
  friend class ::CCExprResolve;
 
88678
  friend class ::CExprResolve;
41153
88679
  friend class ::WinIfExists;
41154
88680
  friend class ::WinImportHandler;
41155
88681
  friend class ::WinMacros;
41156
 
  friend class ::CMatchSyntax;
41157
 
  friend class ::ExtGnu;
 
88682
  friend class ::WinAsm;
 
88683
  friend class ::WinDeclSpecs;
 
88684
  friend class ::WinMemberExplSpec;
 
88685
  friend class ::WinTypeKeywords;
 
88686
  friend class ::WinFriend;
41158
88687
  friend class ::ExtAC;
41159
88688
  friend class ::ExtACBuilderCoupling;
41160
88689
  friend class ::ExtACSyntaxCoupling;
41161
88690
  friend class ::ExtACTree;
41162
88691
  friend class ::ExtACKeywords;
41163
 
  friend class ::WinAsm;
41164
 
  friend class ::WinDeclSpecs;
41165
 
  friend class ::WinMemberExplSpec;
41166
 
  friend class ::WinTypeKeywords;
 
88692
  friend class ::ExtGnu;
41167
88693
  friend class ::PragmaOnceUnitState;
41168
88694
  friend class ::PragmaOnce;
41169
 
  friend class ::CCExprResolve;
41170
 
  friend class ::CExprResolve;
 
88695
  friend class ::CMatchSyntax;
41171
88696
 
41172
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88697
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41173
88698
 
41174
88699
  CTree *sons[4]; // params, key, id, init
41175
88700
 
41176
88701
public:
41177
88702
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
41178
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
88703
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
88704
    AddSon (sons[2], id); AddSon (sons[3], i);
41179
88705
  }
 
88706
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41180
88707
  static const char *NodeId ();
 
88708
  /** Get the name of the node. Can be compared with NodeId(). */
41181
88709
  const char *NodeName () const { return NodeId (); }
 
88710
  /** Get the number of sons. */
41182
88711
  int Sons () const { return CTree::Sons (sons, 4); }
 
88712
  /** Get the n-th son.
 
88713
   *  \param n The index of the son.
 
88714
   *  \return The n-th son or NULL. */
41183
88715
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
41184
88716
  CT_TemplateParamList *Parameters () const { 
41185
88717
    return (CT_TemplateParamList*)sons[0]; 
41186
88718
  }
41187
88719
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
41188
88720
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
41189
 
  void Initializer (CTree *i) { sons[3] = i; }
 
88721
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
88722
  /** Replace a son.
 
88723
   *  \param old_son The son to replace.
 
88724
   *  \param new_son The new son. */
41190
88725
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41191
88726
    CTree::ReplaceSon (sons, 4, old_son, new_son);
41192
88727
  }
41193
88728
};
41194
88729
 
41195
88730
 
41196
 
#line 41197 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88731
#line 88732 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
41197
88732
} // closed Puma
 
88733
class CCExprResolve;
 
88734
class CExprResolve;
41198
88735
class WinIfExists;
41199
88736
class WinImportHandler;
41200
88737
class WinMacros;
41201
 
class CMatchSyntax;
41202
 
class ExtGnu;
 
88738
class WinAsm;
 
88739
class WinDeclSpecs;
 
88740
class WinMemberExplSpec;
 
88741
class WinTypeKeywords;
 
88742
class WinFriend;
41203
88743
class ExtAC;
41204
88744
class ExtACBuilderCoupling;
41205
88745
class ExtACSyntaxCoupling;
41206
88746
class ExtACTree;
41207
88747
class ExtACKeywords;
41208
 
class WinAsm;
41209
 
class WinDeclSpecs;
41210
 
class WinMemberExplSpec;
41211
 
class WinTypeKeywords;
 
88748
class ExtGnu;
41212
88749
class PragmaOnceUnitState;
41213
88750
class PragmaOnce;
41214
 
class CCExprResolve;
41215
 
class CExprResolve;
 
88751
class CMatchSyntax;
41216
88752
namespace Puma {
41217
88753
 
41218
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88754
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41219
88755
class CT_EnumDef : public CT_Decl, public CSemObject {
41220
 
#line 41221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88756
#line 88757 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
88757
  friend class ::CCExprResolve;
 
88758
  friend class ::CExprResolve;
41221
88759
  friend class ::WinIfExists;
41222
88760
  friend class ::WinImportHandler;
41223
88761
  friend class ::WinMacros;
41224
 
  friend class ::CMatchSyntax;
41225
 
  friend class ::ExtGnu;
 
88762
  friend class ::WinAsm;
 
88763
  friend class ::WinDeclSpecs;
 
88764
  friend class ::WinMemberExplSpec;
 
88765
  friend class ::WinTypeKeywords;
 
88766
  friend class ::WinFriend;
41226
88767
  friend class ::ExtAC;
41227
88768
  friend class ::ExtACBuilderCoupling;
41228
88769
  friend class ::ExtACSyntaxCoupling;
41229
88770
  friend class ::ExtACTree;
41230
88771
  friend class ::ExtACKeywords;
41231
 
  friend class ::WinAsm;
41232
 
  friend class ::WinDeclSpecs;
41233
 
  friend class ::WinMemberExplSpec;
41234
 
  friend class ::WinTypeKeywords;
 
88772
  friend class ::ExtGnu;
41235
88773
  friend class ::PragmaOnceUnitState;
41236
88774
  friend class ::PragmaOnce;
41237
 
  friend class ::CCExprResolve;
41238
 
  friend class ::CExprResolve;
 
88775
  friend class ::CMatchSyntax;
41239
88776
 
41240
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88777
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41241
88778
 
41242
88779
  CTree *sons[3]; // key, name, enumerators
41243
88780
 
41244
88781
public:
41245
88782
  CT_EnumDef (CTree *k, CTree *n) {
41246
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
88783
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
41247
88784
  }
 
88785
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41248
88786
  static const char *NodeId ();
 
88787
  /** Get the name of the node. Can be compared with NodeId(). */
41249
88788
  const char *NodeName () const { return NodeId (); }
 
88789
  /** Get the number of sons. */
41250
88790
  int Sons () const { return CTree::Sons (sons, 3); }
 
88791
  /** Get the n-th son.
 
88792
   *  \param n The index of the son.
 
88793
   *  \return The n-th son or NULL. */
41251
88794
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
41252
88795
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
41253
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
88796
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
41254
88797
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
88798
  /** Replace a son.
 
88799
   *  \param old_son The son to replace.
 
88800
   *  \param new_son The new son. */
41255
88801
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41256
88802
    CTree::ReplaceSon (sons, 3, old_son, new_son);
41257
88803
  }
41259
88805
};
41260
88806
 
41261
88807
 
41262
 
#line 41263 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88808
#line 88809 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
41263
88809
} // closed Puma
 
88810
class CCExprResolve;
 
88811
class CExprResolve;
41264
88812
class WinIfExists;
41265
88813
class WinImportHandler;
41266
88814
class WinMacros;
41267
 
class CMatchSyntax;
41268
 
class ExtGnu;
 
88815
class WinAsm;
 
88816
class WinDeclSpecs;
 
88817
class WinMemberExplSpec;
 
88818
class WinTypeKeywords;
 
88819
class WinFriend;
41269
88820
class ExtAC;
41270
88821
class ExtACBuilderCoupling;
41271
88822
class ExtACSyntaxCoupling;
41272
88823
class ExtACTree;
41273
88824
class ExtACKeywords;
41274
 
class WinAsm;
41275
 
class WinDeclSpecs;
41276
 
class WinMemberExplSpec;
41277
 
class WinTypeKeywords;
 
88825
class ExtGnu;
41278
88826
class PragmaOnceUnitState;
41279
88827
class PragmaOnce;
41280
 
class CCExprResolve;
41281
 
class CExprResolve;
 
88828
class CMatchSyntax;
41282
88829
namespace Puma {
41283
88830
 
41284
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88831
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41285
88832
class CT_Enumerator : public CT_Decl, public CSemObject {
41286
 
#line 41287 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88833
#line 88834 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
88834
  friend class ::CCExprResolve;
 
88835
  friend class ::CExprResolve;
41287
88836
  friend class ::WinIfExists;
41288
88837
  friend class ::WinImportHandler;
41289
88838
  friend class ::WinMacros;
41290
 
  friend class ::CMatchSyntax;
41291
 
  friend class ::ExtGnu;
 
88839
  friend class ::WinAsm;
 
88840
  friend class ::WinDeclSpecs;
 
88841
  friend class ::WinMemberExplSpec;
 
88842
  friend class ::WinTypeKeywords;
 
88843
  friend class ::WinFriend;
41292
88844
  friend class ::ExtAC;
41293
88845
  friend class ::ExtACBuilderCoupling;
41294
88846
  friend class ::ExtACSyntaxCoupling;
41295
88847
  friend class ::ExtACTree;
41296
88848
  friend class ::ExtACKeywords;
41297
 
  friend class ::WinAsm;
41298
 
  friend class ::WinDeclSpecs;
41299
 
  friend class ::WinMemberExplSpec;
41300
 
  friend class ::WinTypeKeywords;
 
88849
  friend class ::ExtGnu;
41301
88850
  friend class ::PragmaOnceUnitState;
41302
88851
  friend class ::PragmaOnce;
41303
 
  friend class ::CCExprResolve;
41304
 
  friend class ::CExprResolve;
 
88852
  friend class ::CMatchSyntax;
41305
88853
 
41306
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88854
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41307
88855
 
41308
88856
  CTree *sons[2]; // name, init
41309
88857
 
41310
88858
public:
41311
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
88859
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
88860
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41312
88861
  static const char *NodeId ();
 
88862
  /** Get the name of the node. Can be compared with NodeId(). */
41313
88863
  const char *NodeName () const { return NodeId (); }
 
88864
  /** Get the number of sons. */
41314
88865
  int Sons () const { return CTree::Sons (sons, 2); }
 
88866
  /** Get the n-th son.
 
88867
   *  \param n The index of the son.
 
88868
   *  \return The n-th son or NULL. */
41315
88869
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
41316
88870
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
41317
 
  void Initializer (CTree *i) { sons[1] = i; }
 
88871
  void Initializer (CTree *i) { AddSon (sons[1], i); }
41318
88872
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
88873
  /** Replace a son.
 
88874
   *  \param old_son The son to replace.
 
88875
   *  \param new_son The new son. */
41319
88876
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41320
88877
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
41321
88878
  }
41323
88880
};
41324
88881
 
41325
88882
 
41326
 
#line 41327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88883
#line 88884 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
41327
88884
} // closed Puma
 
88885
class CCExprResolve;
 
88886
class CExprResolve;
41328
88887
class WinIfExists;
41329
88888
class WinImportHandler;
41330
88889
class WinMacros;
41331
 
class CMatchSyntax;
41332
 
class ExtGnu;
 
88890
class WinAsm;
 
88891
class WinDeclSpecs;
 
88892
class WinMemberExplSpec;
 
88893
class WinTypeKeywords;
 
88894
class WinFriend;
41333
88895
class ExtAC;
41334
88896
class ExtACBuilderCoupling;
41335
88897
class ExtACSyntaxCoupling;
41336
88898
class ExtACTree;
41337
88899
class ExtACKeywords;
41338
 
class WinAsm;
41339
 
class WinDeclSpecs;
41340
 
class WinMemberExplSpec;
41341
 
class WinTypeKeywords;
 
88900
class ExtGnu;
41342
88901
class PragmaOnceUnitState;
41343
88902
class PragmaOnce;
41344
 
class CCExprResolve;
41345
 
class CExprResolve;
 
88903
class CMatchSyntax;
41346
88904
namespace Puma {
41347
88905
 
41348
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88906
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41349
88907
class CT_FctDef : public CT_Decl, public CSemObject {
41350
 
#line 41351 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88908
#line 88909 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
88909
  friend class ::CCExprResolve;
 
88910
  friend class ::CExprResolve;
41351
88911
  friend class ::WinIfExists;
41352
88912
  friend class ::WinImportHandler;
41353
88913
  friend class ::WinMacros;
41354
 
  friend class ::CMatchSyntax;
41355
 
  friend class ::ExtGnu;
 
88914
  friend class ::WinAsm;
 
88915
  friend class ::WinDeclSpecs;
 
88916
  friend class ::WinMemberExplSpec;
 
88917
  friend class ::WinTypeKeywords;
 
88918
  friend class ::WinFriend;
41356
88919
  friend class ::ExtAC;
41357
88920
  friend class ::ExtACBuilderCoupling;
41358
88921
  friend class ::ExtACSyntaxCoupling;
41359
88922
  friend class ::ExtACTree;
41360
88923
  friend class ::ExtACKeywords;
41361
 
  friend class ::WinAsm;
41362
 
  friend class ::WinDeclSpecs;
41363
 
  friend class ::WinMemberExplSpec;
41364
 
  friend class ::WinTypeKeywords;
 
88924
  friend class ::ExtGnu;
41365
88925
  friend class ::PragmaOnceUnitState;
41366
88926
  friend class ::PragmaOnce;
41367
 
  friend class ::CCExprResolve;
41368
 
  friend class ::CExprResolve;
 
88927
  friend class ::CMatchSyntax;
41369
88928
 
41370
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88929
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41371
88930
 
41372
88931
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
41373
88932
 
41374
88933
public:
41375
88934
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
41376
88935
             CTree *b, CTree *hs) {
41377
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
41378
 
    sons[5] = b; sons[6] = hs; 
 
88936
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
88937
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
88938
    AddSon (sons[6], hs); 
41379
88939
  }
 
88940
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41380
88941
  static const char *NodeId ();
 
88942
  /** Get the name of the node. Can be compared with NodeId(). */
41381
88943
  const char *NodeName () const { return NodeId (); }
 
88944
  /** Get the number of sons. */
41382
88945
  int Sons () const { return CTree::Sons (sons, 7); }
 
88946
  /** Get the n-th son.
 
88947
   *  \param n The index of the son.
 
88948
   *  \return The n-th son or NULL. */
41383
88949
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
41384
88950
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
41385
88951
  CTree *Declarator () const { return sons[1]; }
41389
88955
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
41390
88956
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
41391
88957
  CSemObject *SemObject () const { return (CSemObject*)this; }
41392
 
  void CtorInit (CTree *i) { sons[3] = i; }
41393
 
  void Body (CTree *b) { sons[5] = b; }
 
88958
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
88959
  void Body (CTree *b) { AddSon (sons[5], b); }
41394
88960
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
41395
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
88961
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
88962
    AddSon (sons[5], b); AddSon (sons[6], h);
41396
88963
  }
 
88964
  /** Replace a son.
 
88965
   *  \param old_son The son to replace.
 
88966
   *  \param new_son The new son. */
41397
88967
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41398
88968
    CTree::ReplaceSon (sons, 7, old_son, new_son);
41399
88969
  }
41400
88970
};
41401
88971
 
41402
88972
 
41403
 
#line 41404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88973
#line 88974 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
41404
88974
} // closed Puma
 
88975
class CCExprResolve;
 
88976
class CExprResolve;
41405
88977
class WinIfExists;
41406
88978
class WinImportHandler;
41407
88979
class WinMacros;
41408
 
class CMatchSyntax;
41409
 
class ExtGnu;
 
88980
class WinAsm;
 
88981
class WinDeclSpecs;
 
88982
class WinMemberExplSpec;
 
88983
class WinTypeKeywords;
 
88984
class WinFriend;
41410
88985
class ExtAC;
41411
88986
class ExtACBuilderCoupling;
41412
88987
class ExtACSyntaxCoupling;
41413
88988
class ExtACTree;
41414
88989
class ExtACKeywords;
41415
 
class WinAsm;
41416
 
class WinDeclSpecs;
41417
 
class WinMemberExplSpec;
41418
 
class WinTypeKeywords;
 
88990
class ExtGnu;
41419
88991
class PragmaOnceUnitState;
41420
88992
class PragmaOnce;
41421
 
class CCExprResolve;
41422
 
class CExprResolve;
 
88993
class CMatchSyntax;
41423
88994
namespace Puma {
41424
88995
 
41425
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88996
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41426
88997
class CT_AsmDef : public CT_Decl {
41427
 
#line 41428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
88998
#line 88999 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
88999
  friend class ::CCExprResolve;
 
89000
  friend class ::CExprResolve;
41428
89001
  friend class ::WinIfExists;
41429
89002
  friend class ::WinImportHandler;
41430
89003
  friend class ::WinMacros;
41431
 
  friend class ::CMatchSyntax;
41432
 
  friend class ::ExtGnu;
 
89004
  friend class ::WinAsm;
 
89005
  friend class ::WinDeclSpecs;
 
89006
  friend class ::WinMemberExplSpec;
 
89007
  friend class ::WinTypeKeywords;
 
89008
  friend class ::WinFriend;
41433
89009
  friend class ::ExtAC;
41434
89010
  friend class ::ExtACBuilderCoupling;
41435
89011
  friend class ::ExtACSyntaxCoupling;
41436
89012
  friend class ::ExtACTree;
41437
89013
  friend class ::ExtACKeywords;
41438
 
  friend class ::WinAsm;
41439
 
  friend class ::WinDeclSpecs;
41440
 
  friend class ::WinMemberExplSpec;
41441
 
  friend class ::WinTypeKeywords;
 
89014
  friend class ::ExtGnu;
41442
89015
  friend class ::PragmaOnceUnitState;
41443
89016
  friend class ::PragmaOnce;
41444
 
  friend class ::CCExprResolve;
41445
 
  friend class ::CExprResolve;
 
89017
  friend class ::CMatchSyntax;
41446
89018
 
41447
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89019
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41448
89020
 
41449
89021
  CTree *sons[5]; // asm, open, str, close, semi_colon
41450
89022
 
41451
89023
public:
41452
89024
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
41453
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
89025
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
89026
    AddSon (sons[3], c); AddSon (sons[4], sc); 
41454
89027
  }
 
89028
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41455
89029
  static const char *NodeId ();
 
89030
  /** Get the name of the node. Can be compared with NodeId(). */
41456
89031
  const char *NodeName () const { return NodeId (); }
 
89032
  /** Get the number of sons. */
41457
89033
  int Sons () const { return 5; }
 
89034
  /** Get the n-th son.
 
89035
   *  \param n The index of the son.
 
89036
   *  \return The n-th son or NULL. */
41458
89037
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
41459
89038
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
89039
  /** Replace a son.
 
89040
   *  \param old_son The son to replace.
 
89041
   *  \param new_son The new son. */
41460
89042
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41461
89043
    CTree::ReplaceSon (sons, 5, old_son, new_son);
41462
89044
  }
41463
89045
};
41464
89046
 
41465
89047
 
41466
 
#line 41467 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89048
#line 89049 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
41467
89049
} // closed Puma
 
89050
class CCExprResolve;
 
89051
class CExprResolve;
41468
89052
class WinIfExists;
41469
89053
class WinImportHandler;
41470
89054
class WinMacros;
41471
 
class CMatchSyntax;
41472
 
class ExtGnu;
 
89055
class WinAsm;
 
89056
class WinDeclSpecs;
 
89057
class WinMemberExplSpec;
 
89058
class WinTypeKeywords;
 
89059
class WinFriend;
41473
89060
class ExtAC;
41474
89061
class ExtACBuilderCoupling;
41475
89062
class ExtACSyntaxCoupling;
41476
89063
class ExtACTree;
41477
89064
class ExtACKeywords;
41478
 
class WinAsm;
41479
 
class WinDeclSpecs;
41480
 
class WinMemberExplSpec;
41481
 
class WinTypeKeywords;
 
89065
class ExtGnu;
41482
89066
class PragmaOnceUnitState;
41483
89067
class PragmaOnce;
41484
 
class CCExprResolve;
41485
 
class CExprResolve;
 
89068
class CMatchSyntax;
41486
89069
namespace Puma {
41487
89070
 
41488
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89071
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41489
89072
class CT_Handler : public CT_Decl, public CSemScope {
41490
 
#line 41491 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89073
#line 89074 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
89074
  friend class ::CCExprResolve;
 
89075
  friend class ::CExprResolve;
41491
89076
  friend class ::WinIfExists;
41492
89077
  friend class ::WinImportHandler;
41493
89078
  friend class ::WinMacros;
41494
 
  friend class ::CMatchSyntax;
41495
 
  friend class ::ExtGnu;
 
89079
  friend class ::WinAsm;
 
89080
  friend class ::WinDeclSpecs;
 
89081
  friend class ::WinMemberExplSpec;
 
89082
  friend class ::WinTypeKeywords;
 
89083
  friend class ::WinFriend;
41496
89084
  friend class ::ExtAC;
41497
89085
  friend class ::ExtACBuilderCoupling;
41498
89086
  friend class ::ExtACSyntaxCoupling;
41499
89087
  friend class ::ExtACTree;
41500
89088
  friend class ::ExtACKeywords;
41501
 
  friend class ::WinAsm;
41502
 
  friend class ::WinDeclSpecs;
41503
 
  friend class ::WinMemberExplSpec;
41504
 
  friend class ::WinTypeKeywords;
 
89089
  friend class ::ExtGnu;
41505
89090
  friend class ::PragmaOnceUnitState;
41506
89091
  friend class ::PragmaOnce;
41507
 
  friend class ::CCExprResolve;
41508
 
  friend class ::CExprResolve;
 
89092
  friend class ::CMatchSyntax;
41509
89093
 
41510
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89094
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41511
89095
 
41512
89096
  CTree *sons[3]; // catch, exception_decl, stmt
41513
89097
 
41514
89098
public:
41515
89099
  CT_Handler (CTree *c, CTree *e, CTree *s) {
41516
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
89100
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
41517
89101
  }
 
89102
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41518
89103
  static const char *NodeId ();
 
89104
  /** Get the name of the node. Can be compared with NodeId(). */
41519
89105
  const char *NodeName () const { return NodeId (); }
 
89106
  /** Get the number of sons. */
41520
89107
  int Sons () const { return 3; }
 
89108
  /** Get the n-th son.
 
89109
   *  \param n The index of the son.
 
89110
   *  \return The n-th son or NULL. */
41521
89111
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
41522
89112
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
41523
89113
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
89114
  /** Replace a son.
 
89115
   *  \param old_son The son to replace.
 
89116
   *  \param new_son The new son. */
41524
89117
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41525
89118
    CTree::ReplaceSon (sons, 3, old_son, new_son);
41526
89119
  }
 
89120
  CSemScope *SemScope () const { return (CSemScope*)this; }
41527
89121
};
41528
89122
 
41529
89123
 
41530
 
#line 41531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89124
#line 89125 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
41531
89125
} // closed Puma
 
89126
class CCExprResolve;
 
89127
class CExprResolve;
41532
89128
class WinIfExists;
41533
89129
class WinImportHandler;
41534
89130
class WinMacros;
41535
 
class CMatchSyntax;
41536
 
class ExtGnu;
 
89131
class WinAsm;
 
89132
class WinDeclSpecs;
 
89133
class WinMemberExplSpec;
 
89134
class WinTypeKeywords;
 
89135
class WinFriend;
41537
89136
class ExtAC;
41538
89137
class ExtACBuilderCoupling;
41539
89138
class ExtACSyntaxCoupling;
41540
89139
class ExtACTree;
41541
89140
class ExtACKeywords;
41542
 
class WinAsm;
41543
 
class WinDeclSpecs;
41544
 
class WinMemberExplSpec;
41545
 
class WinTypeKeywords;
 
89141
class ExtGnu;
41546
89142
class PragmaOnceUnitState;
41547
89143
class PragmaOnce;
41548
 
class CCExprResolve;
41549
 
class CExprResolve;
 
89144
class CMatchSyntax;
41550
89145
namespace Puma {
41551
89146
 
41552
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89147
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41553
89148
class CT_LinkageSpec : public CT_Decl {
41554
 
#line 41555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89149
#line 89150 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
89150
  friend class ::CCExprResolve;
 
89151
  friend class ::CExprResolve;
41555
89152
  friend class ::WinIfExists;
41556
89153
  friend class ::WinImportHandler;
41557
89154
  friend class ::WinMacros;
41558
 
  friend class ::CMatchSyntax;
41559
 
  friend class ::ExtGnu;
 
89155
  friend class ::WinAsm;
 
89156
  friend class ::WinDeclSpecs;
 
89157
  friend class ::WinMemberExplSpec;
 
89158
  friend class ::WinTypeKeywords;
 
89159
  friend class ::WinFriend;
41560
89160
  friend class ::ExtAC;
41561
89161
  friend class ::ExtACBuilderCoupling;
41562
89162
  friend class ::ExtACSyntaxCoupling;
41563
89163
  friend class ::ExtACTree;
41564
89164
  friend class ::ExtACKeywords;
41565
 
  friend class ::WinAsm;
41566
 
  friend class ::WinDeclSpecs;
41567
 
  friend class ::WinMemberExplSpec;
41568
 
  friend class ::WinTypeKeywords;
 
89165
  friend class ::ExtGnu;
41569
89166
  friend class ::PragmaOnceUnitState;
41570
89167
  friend class ::PragmaOnce;
41571
 
  friend class ::CCExprResolve;
41572
 
  friend class ::CExprResolve;
 
89168
  friend class ::CMatchSyntax;
41573
89169
 
41574
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89170
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41575
89171
 
41576
89172
  CTree *sons[5]; // extern, str, open, decls, close
41577
89173
 
41578
89174
public:
41579
89175
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
41580
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
89176
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
89177
    AddSon (sons[3], d); AddSon (sons[4], c);
41581
89178
    if (isList ())
41582
89179
      ((CT_DeclList*)Decls ())->Linkage (this);
41583
89180
    else
41584
89181
      ((CT_Decl*)Decls ())->Linkage (this);
41585
89182
  }
 
89183
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41586
89184
  static const char *NodeId ();
 
89185
  /** Get the name of the node. Can be compared with NodeId(). */
41587
89186
  const char *NodeName () const { return NodeId (); }
 
89187
  /** Get the number of sons. */
41588
89188
  int Sons () const { return CTree::Sons (sons, 5); }
 
89189
  /** Get the n-th son.
 
89190
   *  \param n The index of the son.
 
89191
   *  \return The n-th son or NULL. */
41589
89192
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
41590
89193
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
41591
89194
  CTree *Decls () const { return sons[3]; }
41592
89195
  bool isList () const {
41593
89196
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
41594
89197
  }
 
89198
  /** Replace a son.
 
89199
   *  \param old_son The son to replace.
 
89200
   *  \param new_son The new son. */
41595
89201
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41596
89202
    CTree::ReplaceSon (sons, 5, old_son, new_son);
41597
89203
  }
41598
89204
};
41599
89205
 
41600
89206
 
41601
 
#line 41602 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89207
#line 89208 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
41602
89208
} // closed Puma
 
89209
class CCExprResolve;
 
89210
class CExprResolve;
41603
89211
class WinIfExists;
41604
89212
class WinImportHandler;
41605
89213
class WinMacros;
41606
 
class CMatchSyntax;
41607
 
class ExtGnu;
 
89214
class WinAsm;
 
89215
class WinDeclSpecs;
 
89216
class WinMemberExplSpec;
 
89217
class WinTypeKeywords;
 
89218
class WinFriend;
41608
89219
class ExtAC;
41609
89220
class ExtACBuilderCoupling;
41610
89221
class ExtACSyntaxCoupling;
41611
89222
class ExtACTree;
41612
89223
class ExtACKeywords;
41613
 
class WinAsm;
41614
 
class WinDeclSpecs;
41615
 
class WinMemberExplSpec;
41616
 
class WinTypeKeywords;
 
89224
class ExtGnu;
41617
89225
class PragmaOnceUnitState;
41618
89226
class PragmaOnce;
41619
 
class CCExprResolve;
41620
 
class CExprResolve;
 
89227
class CMatchSyntax;
41621
89228
namespace Puma {
41622
89229
 
41623
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89230
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41624
89231
class CT_ArgDecl : public CT_Decl, public CSemObject {
41625
 
#line 41626 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89232
#line 89233 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
89233
  friend class ::CCExprResolve;
 
89234
  friend class ::CExprResolve;
41626
89235
  friend class ::WinIfExists;
41627
89236
  friend class ::WinImportHandler;
41628
89237
  friend class ::WinMacros;
41629
 
  friend class ::CMatchSyntax;
41630
 
  friend class ::ExtGnu;
 
89238
  friend class ::WinAsm;
 
89239
  friend class ::WinDeclSpecs;
 
89240
  friend class ::WinMemberExplSpec;
 
89241
  friend class ::WinTypeKeywords;
 
89242
  friend class ::WinFriend;
41631
89243
  friend class ::ExtAC;
41632
89244
  friend class ::ExtACBuilderCoupling;
41633
89245
  friend class ::ExtACSyntaxCoupling;
41634
89246
  friend class ::ExtACTree;
41635
89247
  friend class ::ExtACKeywords;
41636
 
  friend class ::WinAsm;
41637
 
  friend class ::WinDeclSpecs;
41638
 
  friend class ::WinMemberExplSpec;
41639
 
  friend class ::WinTypeKeywords;
 
89248
  friend class ::ExtGnu;
41640
89249
  friend class ::PragmaOnceUnitState;
41641
89250
  friend class ::PragmaOnce;
41642
 
  friend class ::CCExprResolve;
41643
 
  friend class ::CExprResolve;
 
89251
  friend class ::CMatchSyntax;
41644
89252
 
41645
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89253
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41646
89254
 
41647
89255
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
41648
89256
 
41649
89257
public:
41650
89258
  CT_ArgDecl (CTree *dsl, CTree *d) {
41651
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
89259
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
89260
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
41652
89261
  }
41653
89262
  CT_ArgDecl (CTree *ellipsis) {
41654
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
89263
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
89264
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
41655
89265
  }
 
89266
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41656
89267
  static const char *NodeId ();
 
89268
  /** Get the name of the node. Can be compared with NodeId(). */
41657
89269
  const char *NodeName () const { return NodeId (); }
 
89270
  /** Get the number of sons. */
41658
89271
  int Sons () const { return CTree::Sons (sons, 4); }
 
89272
  /** Get the n-th son.
 
89273
   *  \param n The index of the son.
 
89274
   *  \return The n-th son or NULL. */
41659
89275
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
41660
89276
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
41661
89277
  CTree *Declarator () const { return sons[1]; }
41662
89278
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
41663
89279
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
41664
89280
  CSemObject *SemObject () const { return (CSemObject*)this; }
41665
 
  void Initializer (CTree *i) { sons[2] = i; }
 
89281
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
89282
  /** Replace a son.
 
89283
   *  \param old_son The son to replace.
 
89284
   *  \param new_son The new son. */
41666
89285
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41667
89286
    CTree::ReplaceSon (sons, 4, old_son, new_son);
41668
89287
  }
41669
89288
};
41670
89289
 
41671
89290
 
41672
 
#line 41673 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89291
#line 89292 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
41673
89292
} // closed Puma
 
89293
class CCExprResolve;
 
89294
class CExprResolve;
41674
89295
class WinIfExists;
41675
89296
class WinImportHandler;
41676
89297
class WinMacros;
41677
 
class CMatchSyntax;
41678
 
class ExtGnu;
 
89298
class WinAsm;
 
89299
class WinDeclSpecs;
 
89300
class WinMemberExplSpec;
 
89301
class WinTypeKeywords;
 
89302
class WinFriend;
41679
89303
class ExtAC;
41680
89304
class ExtACBuilderCoupling;
41681
89305
class ExtACSyntaxCoupling;
41682
89306
class ExtACTree;
41683
89307
class ExtACKeywords;
41684
 
class WinAsm;
41685
 
class WinDeclSpecs;
41686
 
class WinMemberExplSpec;
41687
 
class WinTypeKeywords;
 
89308
class ExtGnu;
41688
89309
class PragmaOnceUnitState;
41689
89310
class PragmaOnce;
41690
 
class CCExprResolve;
41691
 
class CExprResolve;
 
89311
class CMatchSyntax;
41692
89312
namespace Puma {
41693
89313
 
41694
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89314
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41695
89315
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
41696
 
#line 41697 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89316
#line 89317 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
89317
  friend class ::CCExprResolve;
 
89318
  friend class ::CExprResolve;
41697
89319
  friend class ::WinIfExists;
41698
89320
  friend class ::WinImportHandler;
41699
89321
  friend class ::WinMacros;
41700
 
  friend class ::CMatchSyntax;
41701
 
  friend class ::ExtGnu;
 
89322
  friend class ::WinAsm;
 
89323
  friend class ::WinDeclSpecs;
 
89324
  friend class ::WinMemberExplSpec;
 
89325
  friend class ::WinTypeKeywords;
 
89326
  friend class ::WinFriend;
41702
89327
  friend class ::ExtAC;
41703
89328
  friend class ::ExtACBuilderCoupling;
41704
89329
  friend class ::ExtACSyntaxCoupling;
41705
89330
  friend class ::ExtACTree;
41706
89331
  friend class ::ExtACKeywords;
41707
 
  friend class ::WinAsm;
41708
 
  friend class ::WinDeclSpecs;
41709
 
  friend class ::WinMemberExplSpec;
41710
 
  friend class ::WinTypeKeywords;
 
89332
  friend class ::ExtGnu;
41711
89333
  friend class ::PragmaOnceUnitState;
41712
89334
  friend class ::PragmaOnce;
41713
 
  friend class ::CCExprResolve;
41714
 
  friend class ::CExprResolve;
 
89335
  friend class ::CMatchSyntax;
41715
89336
 
41716
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89337
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41717
89338
 
41718
89339
public:
41719
89340
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
41720
89341
   CT_DeclList (size, 2) { AddProperties (props); }
 
89342
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41721
89343
  static const char *NodeId ();
 
89344
  /** Get the name of the node. Can be compared with NodeId(). */
41722
89345
  const char *NodeName () const { return NodeId (); }
 
89346
  CSemScope *SemScope () const { return (CSemScope*)this; }
41723
89347
};
41724
89348
 
41725
89349
 
41726
 
#line 41727 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89350
#line 89351 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
41727
89351
} // closed Puma
 
89352
class CCExprResolve;
 
89353
class CExprResolve;
41728
89354
class WinIfExists;
41729
89355
class WinImportHandler;
41730
89356
class WinMacros;
41731
 
class CMatchSyntax;
41732
 
class ExtGnu;
 
89357
class WinAsm;
 
89358
class WinDeclSpecs;
 
89359
class WinMemberExplSpec;
 
89360
class WinTypeKeywords;
 
89361
class WinFriend;
41733
89362
class ExtAC;
41734
89363
class ExtACBuilderCoupling;
41735
89364
class ExtACSyntaxCoupling;
41736
89365
class ExtACTree;
41737
89366
class ExtACKeywords;
41738
 
class WinAsm;
41739
 
class WinDeclSpecs;
41740
 
class WinMemberExplSpec;
41741
 
class WinTypeKeywords;
 
89367
class ExtGnu;
41742
89368
class PragmaOnceUnitState;
41743
89369
class PragmaOnce;
41744
 
class CCExprResolve;
41745
 
class CExprResolve;
 
89370
class CMatchSyntax;
41746
89371
namespace Puma {
41747
89372
 
41748
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89373
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41749
89374
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
41750
 
#line 41751 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89375
#line 89376 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
89376
  friend class ::CCExprResolve;
 
89377
  friend class ::CExprResolve;
41751
89378
  friend class ::WinIfExists;
41752
89379
  friend class ::WinImportHandler;
41753
89380
  friend class ::WinMacros;
41754
 
  friend class ::CMatchSyntax;
41755
 
  friend class ::ExtGnu;
 
89381
  friend class ::WinAsm;
 
89382
  friend class ::WinDeclSpecs;
 
89383
  friend class ::WinMemberExplSpec;
 
89384
  friend class ::WinTypeKeywords;
 
89385
  friend class ::WinFriend;
41756
89386
  friend class ::ExtAC;
41757
89387
  friend class ::ExtACBuilderCoupling;
41758
89388
  friend class ::ExtACSyntaxCoupling;
41759
89389
  friend class ::ExtACTree;
41760
89390
  friend class ::ExtACKeywords;
41761
 
  friend class ::WinAsm;
41762
 
  friend class ::WinDeclSpecs;
41763
 
  friend class ::WinMemberExplSpec;
41764
 
  friend class ::WinTypeKeywords;
 
89391
  friend class ::ExtGnu;
41765
89392
  friend class ::PragmaOnceUnitState;
41766
89393
  friend class ::PragmaOnce;
41767
 
  friend class ::CCExprResolve;
41768
 
  friend class ::CExprResolve;
 
89394
  friend class ::CMatchSyntax;
41769
89395
 
41770
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89396
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41771
89397
 
41772
89398
public:
41773
89399
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
89400
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41774
89401
  static const char *NodeId ();
 
89402
  /** Get the name of the node. Can be compared with NodeId(). */
41775
89403
  const char *NodeName () const { return NodeId (); }
 
89404
  CSemScope *SemScope () const { return (CSemScope*)this; }
41776
89405
};
41777
89406
 
41778
89407
 
41779
 
#line 41780 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89408
#line 89409 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
41780
89409
} // closed Puma
 
89410
class CCExprResolve;
 
89411
class CExprResolve;
41781
89412
class WinIfExists;
41782
89413
class WinImportHandler;
41783
89414
class WinMacros;
41784
 
class CMatchSyntax;
41785
 
class ExtGnu;
 
89415
class WinAsm;
 
89416
class WinDeclSpecs;
 
89417
class WinMemberExplSpec;
 
89418
class WinTypeKeywords;
 
89419
class WinFriend;
41786
89420
class ExtAC;
41787
89421
class ExtACBuilderCoupling;
41788
89422
class ExtACSyntaxCoupling;
41789
89423
class ExtACTree;
41790
89424
class ExtACKeywords;
41791
 
class WinAsm;
41792
 
class WinDeclSpecs;
41793
 
class WinMemberExplSpec;
41794
 
class WinTypeKeywords;
 
89425
class ExtGnu;
41795
89426
class PragmaOnceUnitState;
41796
89427
class PragmaOnce;
41797
 
class CCExprResolve;
41798
 
class CExprResolve;
 
89428
class CMatchSyntax;
41799
89429
namespace Puma {
41800
89430
 
41801
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89431
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41802
89432
class CT_ArgNameList : public CT_ArgDeclList {
41803
 
#line 41804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89433
#line 89434 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
89434
  friend class ::CCExprResolve;
 
89435
  friend class ::CExprResolve;
41804
89436
  friend class ::WinIfExists;
41805
89437
  friend class ::WinImportHandler;
41806
89438
  friend class ::WinMacros;
41807
 
  friend class ::CMatchSyntax;
41808
 
  friend class ::ExtGnu;
 
89439
  friend class ::WinAsm;
 
89440
  friend class ::WinDeclSpecs;
 
89441
  friend class ::WinMemberExplSpec;
 
89442
  friend class ::WinTypeKeywords;
 
89443
  friend class ::WinFriend;
41809
89444
  friend class ::ExtAC;
41810
89445
  friend class ::ExtACBuilderCoupling;
41811
89446
  friend class ::ExtACSyntaxCoupling;
41812
89447
  friend class ::ExtACTree;
41813
89448
  friend class ::ExtACKeywords;
41814
 
  friend class ::WinAsm;
41815
 
  friend class ::WinDeclSpecs;
41816
 
  friend class ::WinMemberExplSpec;
41817
 
  friend class ::WinTypeKeywords;
 
89449
  friend class ::ExtGnu;
41818
89450
  friend class ::PragmaOnceUnitState;
41819
89451
  friend class ::PragmaOnce;
41820
 
  friend class ::CCExprResolve;
41821
 
  friend class ::CExprResolve;
 
89452
  friend class ::CMatchSyntax;
41822
89453
 
41823
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89454
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41824
89455
 
41825
89456
public:
41826
89457
  CT_ArgNameList () : CT_ArgDeclList () {}
 
89458
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41827
89459
  static const char *NodeId ();
 
89460
  /** Get the name of the node. Can be compared with NodeId(). */
41828
89461
  const char *NodeName () const { return NodeId (); }
41829
89462
};
41830
89463
 
41831
89464
 
41832
 
#line 41833 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89465
#line 89466 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
41833
89466
} // closed Puma
 
89467
class CCExprResolve;
 
89468
class CExprResolve;
41834
89469
class WinIfExists;
41835
89470
class WinImportHandler;
41836
89471
class WinMacros;
41837
 
class CMatchSyntax;
41838
 
class ExtGnu;
 
89472
class WinAsm;
 
89473
class WinDeclSpecs;
 
89474
class WinMemberExplSpec;
 
89475
class WinTypeKeywords;
 
89476
class WinFriend;
41839
89477
class ExtAC;
41840
89478
class ExtACBuilderCoupling;
41841
89479
class ExtACSyntaxCoupling;
41842
89480
class ExtACTree;
41843
89481
class ExtACKeywords;
41844
 
class WinAsm;
41845
 
class WinDeclSpecs;
41846
 
class WinMemberExplSpec;
41847
 
class WinTypeKeywords;
 
89482
class ExtGnu;
41848
89483
class PragmaOnceUnitState;
41849
89484
class PragmaOnce;
41850
 
class CCExprResolve;
41851
 
class CExprResolve;
 
89485
class CMatchSyntax;
41852
89486
namespace Puma {
41853
89487
 
41854
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89488
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41855
89489
class CT_NamespaceDef : public CT_Decl, public CSemObject {
41856
 
#line 41857 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89490
#line 89491 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
89491
  friend class ::CCExprResolve;
 
89492
  friend class ::CExprResolve;
41857
89493
  friend class ::WinIfExists;
41858
89494
  friend class ::WinImportHandler;
41859
89495
  friend class ::WinMacros;
41860
 
  friend class ::CMatchSyntax;
41861
 
  friend class ::ExtGnu;
 
89496
  friend class ::WinAsm;
 
89497
  friend class ::WinDeclSpecs;
 
89498
  friend class ::WinMemberExplSpec;
 
89499
  friend class ::WinTypeKeywords;
 
89500
  friend class ::WinFriend;
41862
89501
  friend class ::ExtAC;
41863
89502
  friend class ::ExtACBuilderCoupling;
41864
89503
  friend class ::ExtACSyntaxCoupling;
41865
89504
  friend class ::ExtACTree;
41866
89505
  friend class ::ExtACKeywords;
41867
 
  friend class ::WinAsm;
41868
 
  friend class ::WinDeclSpecs;
41869
 
  friend class ::WinMemberExplSpec;
41870
 
  friend class ::WinTypeKeywords;
 
89506
  friend class ::ExtGnu;
41871
89507
  friend class ::PragmaOnceUnitState;
41872
89508
  friend class ::PragmaOnce;
41873
 
  friend class ::CCExprResolve;
41874
 
  friend class ::CExprResolve;
 
89509
  friend class ::CMatchSyntax;
41875
89510
 
41876
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89511
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41877
89512
 
41878
89513
  CTree *sons[3]; // ns, name, members
41879
89514
 
41880
89515
public:
41881
89516
  CT_NamespaceDef (CTree *n, CTree *nm) {
41882
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
89517
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
41883
89518
  }
41884
89519
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
41885
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
89520
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
41886
89521
  }
 
89522
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41887
89523
  static const char *NodeId ();
 
89524
  /** Get the name of the node. Can be compared with NodeId(). */
41888
89525
  const char *NodeName () const { return NodeId (); }
 
89526
  /** Get the number of sons. */
41889
89527
  int Sons () const { return CTree::Sons (sons, 3); }
 
89528
  /** Get the n-th son.
 
89529
   *  \param n The index of the son.
 
89530
   *  \return The n-th son or NULL. */
41890
89531
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
41891
 
  void Members (CTree *m) { sons[2] = m; }
 
89532
  void Members (CTree *m) { AddSon (sons[2], m); }
41892
89533
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
41893
89534
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
41894
89535
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
89536
  /** Replace a son.
 
89537
   *  \param old_son The son to replace.
 
89538
   *  \param new_son The new son. */
41895
89539
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41896
89540
    CTree::ReplaceSon (sons, 3, old_son, new_son);
41897
89541
  }
41898
89542
};
41899
89543
 
41900
89544
 
41901
 
#line 41902 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89545
#line 89546 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
41902
89546
} // closed Puma
 
89547
class CCExprResolve;
 
89548
class CExprResolve;
41903
89549
class WinIfExists;
41904
89550
class WinImportHandler;
41905
89551
class WinMacros;
41906
 
class CMatchSyntax;
41907
 
class ExtGnu;
 
89552
class WinAsm;
 
89553
class WinDeclSpecs;
 
89554
class WinMemberExplSpec;
 
89555
class WinTypeKeywords;
 
89556
class WinFriend;
41908
89557
class ExtAC;
41909
89558
class ExtACBuilderCoupling;
41910
89559
class ExtACSyntaxCoupling;
41911
89560
class ExtACTree;
41912
89561
class ExtACKeywords;
41913
 
class WinAsm;
41914
 
class WinDeclSpecs;
41915
 
class WinMemberExplSpec;
41916
 
class WinTypeKeywords;
 
89562
class ExtGnu;
41917
89563
class PragmaOnceUnitState;
41918
89564
class PragmaOnce;
41919
 
class CCExprResolve;
41920
 
class CExprResolve;
 
89565
class CMatchSyntax;
41921
89566
namespace Puma {
41922
89567
 
41923
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89568
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41924
89569
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
41925
 
#line 41926 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89570
#line 89571 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
89571
  friend class ::CCExprResolve;
 
89572
  friend class ::CExprResolve;
41926
89573
  friend class ::WinIfExists;
41927
89574
  friend class ::WinImportHandler;
41928
89575
  friend class ::WinMacros;
41929
 
  friend class ::CMatchSyntax;
41930
 
  friend class ::ExtGnu;
 
89576
  friend class ::WinAsm;
 
89577
  friend class ::WinDeclSpecs;
 
89578
  friend class ::WinMemberExplSpec;
 
89579
  friend class ::WinTypeKeywords;
 
89580
  friend class ::WinFriend;
41931
89581
  friend class ::ExtAC;
41932
89582
  friend class ::ExtACBuilderCoupling;
41933
89583
  friend class ::ExtACSyntaxCoupling;
41934
89584
  friend class ::ExtACTree;
41935
89585
  friend class ::ExtACKeywords;
41936
 
  friend class ::WinAsm;
41937
 
  friend class ::WinDeclSpecs;
41938
 
  friend class ::WinMemberExplSpec;
41939
 
  friend class ::WinTypeKeywords;
 
89586
  friend class ::ExtGnu;
41940
89587
  friend class ::PragmaOnceUnitState;
41941
89588
  friend class ::PragmaOnce;
41942
 
  friend class ::CCExprResolve;
41943
 
  friend class ::CExprResolve;
 
89589
  friend class ::CMatchSyntax;
41944
89590
 
41945
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89591
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41946
89592
 
41947
89593
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
41948
89594
 
41949
89595
public:
41950
89596
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
41951
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
89597
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
89598
    AddSon (sons[3], nm); AddSon (sons[4], s); 
41952
89599
  }
 
89600
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41953
89601
  static const char *NodeId ();
 
89602
  /** Get the name of the node. Can be compared with NodeId(). */
41954
89603
  const char *NodeName () const { return NodeId (); }
 
89604
  /** Get the number of sons. */
41955
89605
  int Sons () const { return 5; }
 
89606
  /** Get the n-th son.
 
89607
   *  \param n The index of the son.
 
89608
   *  \return The n-th son or NULL. */
41956
89609
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
41957
89610
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
41958
89611
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
41959
89612
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
89613
  /** Replace a son.
 
89614
   *  \param old_son The son to replace.
 
89615
   *  \param new_son The new son. */
41960
89616
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41961
89617
    CTree::ReplaceSon (sons, 5, old_son, new_son);
41962
89618
  }
41963
89619
};
41964
89620
 
41965
89621
 
41966
 
#line 41967 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89622
#line 89623 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
41967
89623
} // closed Puma
 
89624
class CCExprResolve;
 
89625
class CExprResolve;
41968
89626
class WinIfExists;
41969
89627
class WinImportHandler;
41970
89628
class WinMacros;
41971
 
class CMatchSyntax;
41972
 
class ExtGnu;
 
89629
class WinAsm;
 
89630
class WinDeclSpecs;
 
89631
class WinMemberExplSpec;
 
89632
class WinTypeKeywords;
 
89633
class WinFriend;
41973
89634
class ExtAC;
41974
89635
class ExtACBuilderCoupling;
41975
89636
class ExtACSyntaxCoupling;
41976
89637
class ExtACTree;
41977
89638
class ExtACKeywords;
41978
 
class WinAsm;
41979
 
class WinDeclSpecs;
41980
 
class WinMemberExplSpec;
41981
 
class WinTypeKeywords;
 
89639
class ExtGnu;
41982
89640
class PragmaOnceUnitState;
41983
89641
class PragmaOnce;
41984
 
class CCExprResolve;
41985
 
class CExprResolve;
 
89642
class CMatchSyntax;
41986
89643
namespace Puma {
41987
89644
 
41988
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89645
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41989
89646
class CT_UsingDirective : public CT_Decl {
41990
 
#line 41991 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89647
#line 89648 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
89648
  friend class ::CCExprResolve;
 
89649
  friend class ::CExprResolve;
41991
89650
  friend class ::WinIfExists;
41992
89651
  friend class ::WinImportHandler;
41993
89652
  friend class ::WinMacros;
41994
 
  friend class ::CMatchSyntax;
41995
 
  friend class ::ExtGnu;
 
89653
  friend class ::WinAsm;
 
89654
  friend class ::WinDeclSpecs;
 
89655
  friend class ::WinMemberExplSpec;
 
89656
  friend class ::WinTypeKeywords;
 
89657
  friend class ::WinFriend;
41996
89658
  friend class ::ExtAC;
41997
89659
  friend class ::ExtACBuilderCoupling;
41998
89660
  friend class ::ExtACSyntaxCoupling;
41999
89661
  friend class ::ExtACTree;
42000
89662
  friend class ::ExtACKeywords;
42001
 
  friend class ::WinAsm;
42002
 
  friend class ::WinDeclSpecs;
42003
 
  friend class ::WinMemberExplSpec;
42004
 
  friend class ::WinTypeKeywords;
 
89663
  friend class ::ExtGnu;
42005
89664
  friend class ::PragmaOnceUnitState;
42006
89665
  friend class ::PragmaOnce;
42007
 
  friend class ::CCExprResolve;
42008
 
  friend class ::CExprResolve;
 
89666
  friend class ::CMatchSyntax;
42009
89667
 
42010
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89668
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42011
89669
 
42012
89670
  CTree *sons[4]; // using, ns, name, semi_colon
42013
89671
 
42014
89672
public:
42015
89673
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
42016
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
89674
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
89675
    AddSon (sons[3], s); 
42017
89676
  }
 
89677
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42018
89678
  static const char *NodeId ();
 
89679
  /** Get the name of the node. Can be compared with NodeId(). */
42019
89680
  const char *NodeName () const { return NodeId (); }
 
89681
  /** Get the number of sons. */
42020
89682
  int Sons () const { return 4; }
 
89683
  /** Get the n-th son.
 
89684
   *  \param n The index of the son.
 
89685
   *  \return The n-th son or NULL. */
42021
89686
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
42022
89687
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
89688
  /** Replace a son.
 
89689
   *  \param old_son The son to replace.
 
89690
   *  \param new_son The new son. */
42023
89691
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42024
89692
    CTree::ReplaceSon (sons, 4, old_son, new_son);
42025
89693
  }
42032
89700
/*****************************************************************************/
42033
89701
 
42034
89702
 
42035
 
#line 42036 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89703
#line 89704 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
42036
89704
} // closed Puma
 
89705
class CCExprResolve;
 
89706
class CExprResolve;
42037
89707
class WinIfExists;
42038
89708
class WinImportHandler;
42039
89709
class WinMacros;
42040
 
class CMatchSyntax;
42041
 
class ExtGnu;
 
89710
class WinAsm;
 
89711
class WinDeclSpecs;
 
89712
class WinMemberExplSpec;
 
89713
class WinTypeKeywords;
 
89714
class WinFriend;
42042
89715
class ExtAC;
42043
89716
class ExtACBuilderCoupling;
42044
89717
class ExtACSyntaxCoupling;
42045
89718
class ExtACTree;
42046
89719
class ExtACKeywords;
42047
 
class WinAsm;
42048
 
class WinDeclSpecs;
42049
 
class WinMemberExplSpec;
42050
 
class WinTypeKeywords;
 
89720
class ExtGnu;
42051
89721
class PragmaOnceUnitState;
42052
89722
class PragmaOnce;
42053
 
class CCExprResolve;
42054
 
class CExprResolve;
 
89723
class CMatchSyntax;
42055
89724
namespace Puma {
42056
89725
 
42057
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89726
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42058
89727
class CT_Declarator : public CTree {
42059
 
#line 42060 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89728
#line 89729 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
89729
  friend class ::CCExprResolve;
 
89730
  friend class ::CExprResolve;
42060
89731
  friend class ::WinIfExists;
42061
89732
  friend class ::WinImportHandler;
42062
89733
  friend class ::WinMacros;
42063
 
  friend class ::CMatchSyntax;
42064
 
  friend class ::ExtGnu;
 
89734
  friend class ::WinAsm;
 
89735
  friend class ::WinDeclSpecs;
 
89736
  friend class ::WinMemberExplSpec;
 
89737
  friend class ::WinTypeKeywords;
 
89738
  friend class ::WinFriend;
42065
89739
  friend class ::ExtAC;
42066
89740
  friend class ::ExtACBuilderCoupling;
42067
89741
  friend class ::ExtACSyntaxCoupling;
42068
89742
  friend class ::ExtACTree;
42069
89743
  friend class ::ExtACKeywords;
42070
 
  friend class ::WinAsm;
42071
 
  friend class ::WinDeclSpecs;
42072
 
  friend class ::WinMemberExplSpec;
42073
 
  friend class ::WinTypeKeywords;
 
89744
  friend class ::ExtGnu;
42074
89745
  friend class ::PragmaOnceUnitState;
42075
89746
  friend class ::PragmaOnce;
42076
 
  friend class ::CCExprResolve;
42077
 
  friend class ::CExprResolve;
 
89747
  friend class ::CMatchSyntax;
42078
89748
 
42079
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89749
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42080
89750
 
42081
89751
protected:
42082
89752
  CT_Declarator () {}
42091
89761
};
42092
89762
 
42093
89763
 
42094
 
#line 42095 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89764
#line 89765 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
42095
89765
} // closed Puma
 
89766
class CCExprResolve;
 
89767
class CExprResolve;
42096
89768
class WinIfExists;
42097
89769
class WinImportHandler;
42098
89770
class WinMacros;
42099
 
class CMatchSyntax;
42100
 
class ExtGnu;
 
89771
class WinAsm;
 
89772
class WinDeclSpecs;
 
89773
class WinMemberExplSpec;
 
89774
class WinTypeKeywords;
 
89775
class WinFriend;
42101
89776
class ExtAC;
42102
89777
class ExtACBuilderCoupling;
42103
89778
class ExtACSyntaxCoupling;
42104
89779
class ExtACTree;
42105
89780
class ExtACKeywords;
42106
 
class WinAsm;
42107
 
class WinDeclSpecs;
42108
 
class WinMemberExplSpec;
42109
 
class WinTypeKeywords;
 
89781
class ExtGnu;
42110
89782
class PragmaOnceUnitState;
42111
89783
class PragmaOnce;
42112
 
class CCExprResolve;
42113
 
class CExprResolve;
 
89784
class CMatchSyntax;
42114
89785
namespace Puma {
42115
89786
 
42116
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89787
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42117
89788
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
42118
 
#line 42119 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89789
#line 89790 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
89790
  friend class ::CCExprResolve;
 
89791
  friend class ::CExprResolve;
42119
89792
  friend class ::WinIfExists;
42120
89793
  friend class ::WinImportHandler;
42121
89794
  friend class ::WinMacros;
42122
 
  friend class ::CMatchSyntax;
42123
 
  friend class ::ExtGnu;
 
89795
  friend class ::WinAsm;
 
89796
  friend class ::WinDeclSpecs;
 
89797
  friend class ::WinMemberExplSpec;
 
89798
  friend class ::WinTypeKeywords;
 
89799
  friend class ::WinFriend;
42124
89800
  friend class ::ExtAC;
42125
89801
  friend class ::ExtACBuilderCoupling;
42126
89802
  friend class ::ExtACSyntaxCoupling;
42127
89803
  friend class ::ExtACTree;
42128
89804
  friend class ::ExtACKeywords;
42129
 
  friend class ::WinAsm;
42130
 
  friend class ::WinDeclSpecs;
42131
 
  friend class ::WinMemberExplSpec;
42132
 
  friend class ::WinTypeKeywords;
 
89805
  friend class ::ExtGnu;
42133
89806
  friend class ::PragmaOnceUnitState;
42134
89807
  friend class ::PragmaOnce;
42135
 
  friend class ::CCExprResolve;
42136
 
  friend class ::CExprResolve;
42137
 
 
42138
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42139
 
 
42140
 
  CTree *sons[2]; // declarator, init
 
89808
  friend class ::CMatchSyntax;
 
89809
 
 
89810
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89811
 
 
89812
  CTree *sons[3]; // declarator, ext, init
42141
89813
  CTree *obj_decl;
42142
89814
 
42143
89815
public:
42144
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
42145
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
89816
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
89817
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
89818
    AddSon (obj_decl, 0); 
42146
89819
  }
 
89820
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42147
89821
  static const char *NodeId ();
 
89822
  /** Get the name of the node. Can be compared with NodeId(). */
42148
89823
  const char *NodeName () const { return NodeId (); }
42149
 
  int Sons () const { return CTree::Sons (sons, 2); }
42150
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
89824
  /** Get the number of sons. */
 
89825
  int Sons () const { return CTree::Sons (sons, 3); }
 
89826
  /** Get the n-th son.
 
89827
   *  \param n The index of the son.
 
89828
   *  \return The n-th son or NULL. */
 
89829
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
42151
89830
  CTree *Declarator () const { return sons[0]; }
42152
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
89831
  CTree *Extension () const { return sons[1]; }
 
89832
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
42153
89833
  CSemObject *SemObject () const { return (CSemObject*)this; }
42154
89834
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
42155
 
  void Initializer (CTree* i) { sons[1] = i; }
42156
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
89835
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
89836
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
89837
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
89838
  /** Replace a son.
 
89839
   *  \param old_son The son to replace.
 
89840
   *  \param new_son The new son. */
42157
89841
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42158
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
89842
    CTree::ReplaceSon (sons, 3, old_son, new_son);
42159
89843
  }
42160
89844
};
42161
89845
 
42162
89846
 
42163
 
#line 42164 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89847
#line 89848 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
42164
89848
} // closed Puma
 
89849
class CCExprResolve;
 
89850
class CExprResolve;
42165
89851
class WinIfExists;
42166
89852
class WinImportHandler;
42167
89853
class WinMacros;
42168
 
class CMatchSyntax;
42169
 
class ExtGnu;
 
89854
class WinAsm;
 
89855
class WinDeclSpecs;
 
89856
class WinMemberExplSpec;
 
89857
class WinTypeKeywords;
 
89858
class WinFriend;
42170
89859
class ExtAC;
42171
89860
class ExtACBuilderCoupling;
42172
89861
class ExtACSyntaxCoupling;
42173
89862
class ExtACTree;
42174
89863
class ExtACKeywords;
42175
 
class WinAsm;
42176
 
class WinDeclSpecs;
42177
 
class WinMemberExplSpec;
42178
 
class WinTypeKeywords;
 
89864
class ExtGnu;
42179
89865
class PragmaOnceUnitState;
42180
89866
class PragmaOnce;
42181
 
class CCExprResolve;
42182
 
class CExprResolve;
 
89867
class CMatchSyntax;
42183
89868
namespace Puma {
42184
89869
 
42185
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89870
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42186
89871
class CT_BracedDeclarator : public CT_Declarator {
42187
 
#line 42188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89872
#line 89873 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
89873
  friend class ::CCExprResolve;
 
89874
  friend class ::CExprResolve;
42188
89875
  friend class ::WinIfExists;
42189
89876
  friend class ::WinImportHandler;
42190
89877
  friend class ::WinMacros;
42191
 
  friend class ::CMatchSyntax;
42192
 
  friend class ::ExtGnu;
 
89878
  friend class ::WinAsm;
 
89879
  friend class ::WinDeclSpecs;
 
89880
  friend class ::WinMemberExplSpec;
 
89881
  friend class ::WinTypeKeywords;
 
89882
  friend class ::WinFriend;
42193
89883
  friend class ::ExtAC;
42194
89884
  friend class ::ExtACBuilderCoupling;
42195
89885
  friend class ::ExtACSyntaxCoupling;
42196
89886
  friend class ::ExtACTree;
42197
89887
  friend class ::ExtACKeywords;
42198
 
  friend class ::WinAsm;
42199
 
  friend class ::WinDeclSpecs;
42200
 
  friend class ::WinMemberExplSpec;
42201
 
  friend class ::WinTypeKeywords;
 
89888
  friend class ::ExtGnu;
42202
89889
  friend class ::PragmaOnceUnitState;
42203
89890
  friend class ::PragmaOnce;
42204
 
  friend class ::CCExprResolve;
42205
 
  friend class ::CExprResolve;
 
89891
  friend class ::CMatchSyntax;
42206
89892
 
42207
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89893
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42208
89894
 
42209
89895
  CTree *sons[4]; // open, win_specs, declarator, close
42210
89896
 
42211
89897
public:
42212
89898
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
42213
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
89899
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
89900
    AddSon (sons[2], d); AddSon (sons[3], c); 
42214
89901
  }
42215
89902
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
42216
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
89903
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
89904
    AddSon (sons[2], d); AddSon (sons[3], c); 
42217
89905
  }
 
89906
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42218
89907
  static const char *NodeId ();
 
89908
  /** Get the name of the node. Can be compared with NodeId(). */
42219
89909
  const char *NodeName () const { return NodeId (); }
 
89910
  /** Get the number of sons. */
42220
89911
  int Sons () const { return CTree::Sons (sons, 4); }
 
89912
  /** Get the n-th son.
 
89913
   *  \param n The index of the son.
 
89914
   *  \return The n-th son or NULL. */
42221
89915
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
42222
89916
  CTree *Declarator () const { return sons[2]; }
 
89917
  /** Replace a son.
 
89918
   *  \param old_son The son to replace.
 
89919
   *  \param new_son The new son. */
42223
89920
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42224
89921
    CTree::ReplaceSon (sons, 4, old_son, new_son);
42225
89922
  }
42226
89923
};
42227
89924
 
42228
89925
 
42229
 
#line 42230 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89926
#line 89927 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
42230
89927
} // closed Puma
 
89928
class CCExprResolve;
 
89929
class CExprResolve;
42231
89930
class WinIfExists;
42232
89931
class WinImportHandler;
42233
89932
class WinMacros;
42234
 
class CMatchSyntax;
42235
 
class ExtGnu;
 
89933
class WinAsm;
 
89934
class WinDeclSpecs;
 
89935
class WinMemberExplSpec;
 
89936
class WinTypeKeywords;
 
89937
class WinFriend;
42236
89938
class ExtAC;
42237
89939
class ExtACBuilderCoupling;
42238
89940
class ExtACSyntaxCoupling;
42239
89941
class ExtACTree;
42240
89942
class ExtACKeywords;
42241
 
class WinAsm;
42242
 
class WinDeclSpecs;
42243
 
class WinMemberExplSpec;
42244
 
class WinTypeKeywords;
 
89943
class ExtGnu;
42245
89944
class PragmaOnceUnitState;
42246
89945
class PragmaOnce;
42247
 
class CCExprResolve;
42248
 
class CExprResolve;
 
89946
class CMatchSyntax;
42249
89947
namespace Puma {
42250
89948
 
42251
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89949
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42252
89950
class CT_ArrayDelimiter : public CTree {
42253
 
#line 42254 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
89951
#line 89952 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
89952
  friend class ::CCExprResolve;
 
89953
  friend class ::CExprResolve;
42254
89954
  friend class ::WinIfExists;
42255
89955
  friend class ::WinImportHandler;
42256
89956
  friend class ::WinMacros;
42257
 
  friend class ::CMatchSyntax;
42258
 
  friend class ::ExtGnu;
 
89957
  friend class ::WinAsm;
 
89958
  friend class ::WinDeclSpecs;
 
89959
  friend class ::WinMemberExplSpec;
 
89960
  friend class ::WinTypeKeywords;
 
89961
  friend class ::WinFriend;
42259
89962
  friend class ::ExtAC;
42260
89963
  friend class ::ExtACBuilderCoupling;
42261
89964
  friend class ::ExtACSyntaxCoupling;
42262
89965
  friend class ::ExtACTree;
42263
89966
  friend class ::ExtACKeywords;
42264
 
  friend class ::WinAsm;
42265
 
  friend class ::WinDeclSpecs;
42266
 
  friend class ::WinMemberExplSpec;
42267
 
  friend class ::WinTypeKeywords;
 
89967
  friend class ::ExtGnu;
42268
89968
  friend class ::PragmaOnceUnitState;
42269
89969
  friend class ::PragmaOnce;
42270
 
  friend class ::CCExprResolve;
42271
 
  friend class ::CExprResolve;
 
89970
  friend class ::CMatchSyntax;
42272
89971
 
42273
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89972
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42274
89973
 
42275
89974
  CTree *sons[4]; // star, static, quals, expr
42276
89975
  bool pos0;
42277
89976
 
42278
89977
public:
42279
89978
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
42280
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
89979
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
89980
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
42281
89981
  }
 
89982
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42282
89983
  static const char *NodeId ();
 
89984
  /** Get the name of the node. Can be compared with NodeId(). */
42283
89985
  const char *NodeName () const { return NodeId (); }
 
89986
  /** Get the number of sons. */
42284
89987
  int Sons () const { return CTree::Sons (sons, 4); }
 
89988
  /** Get the n-th son.
 
89989
   *  \param n The index of the son.
 
89990
   *  \return The n-th son or NULL. */
42285
89991
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
42286
89992
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
42287
89993
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
42288
89994
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
42289
89995
  CTree *Expr () const { return sons[3]; }
 
89996
  /** Replace a son.
 
89997
   *  \param old_son The son to replace.
 
89998
   *  \param new_son The new son. */
42290
89999
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42291
90000
    CTree::ReplaceSon (sons, 4, old_son, new_son);
42292
90001
  }
42293
90002
};
42294
90003
 
42295
90004
 
42296
 
#line 42297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90005
#line 90006 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
42297
90006
} // closed Puma
 
90007
class CCExprResolve;
 
90008
class CExprResolve;
42298
90009
class WinIfExists;
42299
90010
class WinImportHandler;
42300
90011
class WinMacros;
42301
 
class CMatchSyntax;
42302
 
class ExtGnu;
 
90012
class WinAsm;
 
90013
class WinDeclSpecs;
 
90014
class WinMemberExplSpec;
 
90015
class WinTypeKeywords;
 
90016
class WinFriend;
42303
90017
class ExtAC;
42304
90018
class ExtACBuilderCoupling;
42305
90019
class ExtACSyntaxCoupling;
42306
90020
class ExtACTree;
42307
90021
class ExtACKeywords;
42308
 
class WinAsm;
42309
 
class WinDeclSpecs;
42310
 
class WinMemberExplSpec;
42311
 
class WinTypeKeywords;
 
90022
class ExtGnu;
42312
90023
class PragmaOnceUnitState;
42313
90024
class PragmaOnce;
42314
 
class CCExprResolve;
42315
 
class CExprResolve;
 
90025
class CMatchSyntax;
42316
90026
namespace Puma {
42317
90027
 
42318
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90028
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42319
90029
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
42320
 
#line 42321 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90030
#line 90031 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
90031
  friend class ::CCExprResolve;
 
90032
  friend class ::CExprResolve;
42321
90033
  friend class ::WinIfExists;
42322
90034
  friend class ::WinImportHandler;
42323
90035
  friend class ::WinMacros;
42324
 
  friend class ::CMatchSyntax;
42325
 
  friend class ::ExtGnu;
 
90036
  friend class ::WinAsm;
 
90037
  friend class ::WinDeclSpecs;
 
90038
  friend class ::WinMemberExplSpec;
 
90039
  friend class ::WinTypeKeywords;
 
90040
  friend class ::WinFriend;
42326
90041
  friend class ::ExtAC;
42327
90042
  friend class ::ExtACBuilderCoupling;
42328
90043
  friend class ::ExtACSyntaxCoupling;
42329
90044
  friend class ::ExtACTree;
42330
90045
  friend class ::ExtACKeywords;
42331
 
  friend class ::WinAsm;
42332
 
  friend class ::WinDeclSpecs;
42333
 
  friend class ::WinMemberExplSpec;
42334
 
  friend class ::WinTypeKeywords;
 
90046
  friend class ::ExtGnu;
42335
90047
  friend class ::PragmaOnceUnitState;
42336
90048
  friend class ::PragmaOnce;
42337
 
  friend class ::CCExprResolve;
42338
 
  friend class ::CExprResolve;
 
90049
  friend class ::CMatchSyntax;
42339
90050
 
42340
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90051
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42341
90052
 
42342
90053
  CTree *sons[4]; // declarator, open, delim, close
42343
90054
 
42344
90055
public:
42345
90056
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
42346
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
90057
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
90058
    AddSon (sons[2], ad); AddSon (sons[3], c); 
42347
90059
  }
 
90060
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42348
90061
  static const char *NodeId ();
 
90062
  /** Get the name of the node. Can be compared with NodeId(). */
42349
90063
  const char *NodeName () const { return NodeId (); }
 
90064
  /** Get the number of sons. */
42350
90065
  int Sons () const { return 4; }
 
90066
  /** Get the n-th son.
 
90067
   *  \param n The index of the son.
 
90068
   *  \return The n-th son or NULL. */
42351
90069
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
42352
90070
  CTree *Declarator () const { return sons[0]; }
42353
90071
  CT_ArrayDelimiter *Delimiter () const 
42354
90072
   { return (CT_ArrayDelimiter*)sons[2]; }
 
90073
  /** Replace a son.
 
90074
   *  \param old_son The son to replace.
 
90075
   *  \param new_son The new son. */
42355
90076
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42356
90077
    CTree::ReplaceSon (sons, 4, old_son, new_son);
42357
90078
  }
42361
90082
};
42362
90083
 
42363
90084
 
42364
 
#line 42365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90085
#line 90086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
42365
90086
} // closed Puma
 
90087
class CCExprResolve;
 
90088
class CExprResolve;
42366
90089
class WinIfExists;
42367
90090
class WinImportHandler;
42368
90091
class WinMacros;
42369
 
class CMatchSyntax;
42370
 
class ExtGnu;
 
90092
class WinAsm;
 
90093
class WinDeclSpecs;
 
90094
class WinMemberExplSpec;
 
90095
class WinTypeKeywords;
 
90096
class WinFriend;
42371
90097
class ExtAC;
42372
90098
class ExtACBuilderCoupling;
42373
90099
class ExtACSyntaxCoupling;
42374
90100
class ExtACTree;
42375
90101
class ExtACKeywords;
42376
 
class WinAsm;
42377
 
class WinDeclSpecs;
42378
 
class WinMemberExplSpec;
42379
 
class WinTypeKeywords;
 
90102
class ExtGnu;
42380
90103
class PragmaOnceUnitState;
42381
90104
class PragmaOnce;
42382
 
class CCExprResolve;
42383
 
class CExprResolve;
 
90105
class CMatchSyntax;
42384
90106
namespace Puma {
42385
90107
 
42386
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90108
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42387
90109
class CT_FctDeclarator : public CT_Declarator {
42388
 
#line 42389 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90110
#line 90111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
90111
  friend class ::CCExprResolve;
 
90112
  friend class ::CExprResolve;
42389
90113
  friend class ::WinIfExists;
42390
90114
  friend class ::WinImportHandler;
42391
90115
  friend class ::WinMacros;
42392
 
  friend class ::CMatchSyntax;
42393
 
  friend class ::ExtGnu;
 
90116
  friend class ::WinAsm;
 
90117
  friend class ::WinDeclSpecs;
 
90118
  friend class ::WinMemberExplSpec;
 
90119
  friend class ::WinTypeKeywords;
 
90120
  friend class ::WinFriend;
42394
90121
  friend class ::ExtAC;
42395
90122
  friend class ::ExtACBuilderCoupling;
42396
90123
  friend class ::ExtACSyntaxCoupling;
42397
90124
  friend class ::ExtACTree;
42398
90125
  friend class ::ExtACKeywords;
42399
 
  friend class ::WinAsm;
42400
 
  friend class ::WinDeclSpecs;
42401
 
  friend class ::WinMemberExplSpec;
42402
 
  friend class ::WinTypeKeywords;
 
90126
  friend class ::ExtGnu;
42403
90127
  friend class ::PragmaOnceUnitState;
42404
90128
  friend class ::PragmaOnce;
42405
 
  friend class ::CCExprResolve;
42406
 
  friend class ::CExprResolve;
 
90129
  friend class ::CMatchSyntax;
42407
90130
 
42408
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90131
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42409
90132
 
42410
90133
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
42411
90134
 
42412
90135
public:
42413
90136
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
42414
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
90137
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
90138
    AddSon (sons[2], cv); AddSon (sons[3], es); 
42415
90139
  }
 
90140
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42416
90141
  static const char *NodeId ();
 
90142
  /** Get the name of the node. Can be compared with NodeId(). */
42417
90143
  const char *NodeName () const { return NodeId (); }
 
90144
  /** Get the number of sons. */
42418
90145
  int Sons () const { return CTree::Sons (sons, 4); }
 
90146
  /** Get the n-th son.
 
90147
   *  \param n The index of the son.
 
90148
   *  \return The n-th son or NULL. */
42419
90149
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
42420
90150
  CTree *Declarator () const { return sons[0]; }
42421
90151
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
42422
90152
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
42423
90153
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
90154
  /** Replace a son.
 
90155
   *  \param old_son The son to replace.
 
90156
   *  \param new_son The new son. */
42424
90157
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42425
90158
    CTree::ReplaceSon (sons, 4, old_son, new_son);
42426
90159
  }
42427
90160
};
42428
90161
 
42429
90162
 
42430
 
#line 42431 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90163
#line 90164 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
42431
90164
} // closed Puma
 
90165
class CCExprResolve;
 
90166
class CExprResolve;
42432
90167
class WinIfExists;
42433
90168
class WinImportHandler;
42434
90169
class WinMacros;
42435
 
class CMatchSyntax;
42436
 
class ExtGnu;
 
90170
class WinAsm;
 
90171
class WinDeclSpecs;
 
90172
class WinMemberExplSpec;
 
90173
class WinTypeKeywords;
 
90174
class WinFriend;
42437
90175
class ExtAC;
42438
90176
class ExtACBuilderCoupling;
42439
90177
class ExtACSyntaxCoupling;
42440
90178
class ExtACTree;
42441
90179
class ExtACKeywords;
42442
 
class WinAsm;
42443
 
class WinDeclSpecs;
42444
 
class WinMemberExplSpec;
42445
 
class WinTypeKeywords;
 
90180
class ExtGnu;
42446
90181
class PragmaOnceUnitState;
42447
90182
class PragmaOnce;
42448
 
class CCExprResolve;
42449
 
class CExprResolve;
 
90183
class CMatchSyntax;
42450
90184
namespace Puma {
42451
90185
 
42452
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90186
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42453
90187
class CT_RefDeclarator : public CT_Declarator {
42454
 
#line 42455 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90188
#line 90189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
90189
  friend class ::CCExprResolve;
 
90190
  friend class ::CExprResolve;
42455
90191
  friend class ::WinIfExists;
42456
90192
  friend class ::WinImportHandler;
42457
90193
  friend class ::WinMacros;
42458
 
  friend class ::CMatchSyntax;
42459
 
  friend class ::ExtGnu;
 
90194
  friend class ::WinAsm;
 
90195
  friend class ::WinDeclSpecs;
 
90196
  friend class ::WinMemberExplSpec;
 
90197
  friend class ::WinTypeKeywords;
 
90198
  friend class ::WinFriend;
42460
90199
  friend class ::ExtAC;
42461
90200
  friend class ::ExtACBuilderCoupling;
42462
90201
  friend class ::ExtACSyntaxCoupling;
42463
90202
  friend class ::ExtACTree;
42464
90203
  friend class ::ExtACKeywords;
42465
 
  friend class ::WinAsm;
42466
 
  friend class ::WinDeclSpecs;
42467
 
  friend class ::WinMemberExplSpec;
42468
 
  friend class ::WinTypeKeywords;
 
90204
  friend class ::ExtGnu;
42469
90205
  friend class ::PragmaOnceUnitState;
42470
90206
  friend class ::PragmaOnce;
42471
 
  friend class ::CCExprResolve;
42472
 
  friend class ::CExprResolve;
 
90207
  friend class ::CMatchSyntax;
42473
90208
 
42474
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90209
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42475
90210
 
42476
90211
  CTree *sons[2]; // ref, declarator
42477
90212
 
42478
90213
public:
42479
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
90214
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
90215
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42480
90216
  static const char *NodeId ();
 
90217
  /** Get the name of the node. Can be compared with NodeId(). */
42481
90218
  const char *NodeName () const { return NodeId (); }
 
90219
  /** Get the number of sons. */
42482
90220
  int Sons () const { return 2; }
 
90221
  /** Get the n-th son.
 
90222
   *  \param n The index of the son.
 
90223
   *  \return The n-th son or NULL. */
42483
90224
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
42484
90225
  CTree *Declarator () const { return sons[1]; }
 
90226
  /** Replace a son.
 
90227
   *  \param old_son The son to replace.
 
90228
   *  \param new_son The new son. */
42485
90229
  void ReplaceSon (CTree *old_son, CTree *new_son) {
42486
90230
    CTree::ReplaceSon (sons, 2, old_son, new_son);
42487
90231
  }
42488
90232
};
42489
90233
 
42490
90234
 
42491
 
#line 42492 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90235
#line 90236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
42492
90236
} // closed Puma
 
90237
class CCExprResolve;
 
90238
class CExprResolve;
42493
90239
class WinIfExists;
42494
90240
class WinImportHandler;
42495
90241
class WinMacros;
42496
 
class CMatchSyntax;
42497
 
class ExtGnu;
 
90242
class WinAsm;
 
90243
class WinDeclSpecs;
 
90244
class WinMemberExplSpec;
 
90245
class WinTypeKeywords;
 
90246
class WinFriend;
42498
90247
class ExtAC;
42499
90248
class ExtACBuilderCoupling;
42500
90249
class ExtACSyntaxCoupling;
42501
90250
class ExtACTree;
42502
90251
class ExtACKeywords;
42503
 
class WinAsm;
42504
 
class WinDeclSpecs;
42505
 
class WinMemberExplSpec;
42506
 
class WinTypeKeywords;
 
90252
class ExtGnu;
42507
90253
class PragmaOnceUnitState;
42508
90254
class PragmaOnce;
42509
 
class CCExprResolve;
42510
 
class CExprResolve;
 
90255
class CMatchSyntax;
42511
90256
namespace Puma {
42512
90257
 
42513
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90258
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42514
90259
class CT_PtrDeclarator : public CT_Declarator {
42515
 
#line 42516 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90260
#line 90261 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
90261
  friend class ::CCExprResolve;
 
90262
  friend class ::CExprResolve;
42516
90263
  friend class ::WinIfExists;
42517
90264
  friend class ::WinImportHandler;
42518
90265
  friend class ::WinMacros;
42519
 
  friend class ::CMatchSyntax;
42520
 
  friend class ::ExtGnu;
 
90266
  friend class ::WinAsm;
 
90267
  friend class ::WinDeclSpecs;
 
90268
  friend class ::WinMemberExplSpec;
 
90269
  friend class ::WinTypeKeywords;
 
90270
  friend class ::WinFriend;
42521
90271
  friend class ::ExtAC;
42522
90272
  friend class ::ExtACBuilderCoupling;
42523
90273
  friend class ::ExtACSyntaxCoupling;
42524
90274
  friend class ::ExtACTree;
42525
90275
  friend class ::ExtACKeywords;
42526
 
  friend class ::WinAsm;
42527
 
  friend class ::WinDeclSpecs;
42528
 
  friend class ::WinMemberExplSpec;
42529
 
  friend class ::WinTypeKeywords;
 
90276
  friend class ::ExtGnu;
42530
90277
  friend class ::PragmaOnceUnitState;
42531
90278
  friend class ::PragmaOnce;
42532
 
  friend class ::CCExprResolve;
42533
 
  friend class ::CExprResolve;
 
90279
  friend class ::CMatchSyntax;
42534
90280
 
42535
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90281
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42536
90282
 
42537
90283
  CTree *sons[3]; // ptr, cv_quals, declarator
42538
90284
 
42539
90285
public:
42540
90286
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
42541
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
90287
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
42542
90288
  }
 
90289
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42543
90290
  static const char *NodeId ();
 
90291
  /** Get the name of the node. Can be compared with NodeId(). */
42544
90292
  const char *NodeName () const { return NodeId (); }
 
90293
  /** Get the number of sons. */
42545
90294
  int Sons () const { return CTree::Sons (sons, 3); }
 
90295
  /** Get the n-th son.
 
90296
   *  \param n The index of the son.
 
90297
   *  \return The n-th son or NULL. */
42546
90298
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
42547
90299
  CTree *Declarator () const { return sons[2]; }
42548
90300
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
90301
  /** Replace a son.
 
90302
   *  \param old_son The son to replace.
 
90303
   *  \param new_son The new son. */
42549
90304
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42550
90305
    CTree::ReplaceSon (sons, 3, old_son, new_son);
42551
90306
  }
42552
90307
};
42553
90308
 
42554
90309
 
42555
 
#line 42556 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90310
#line 90311 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
42556
90311
} // closed Puma
 
90312
class CCExprResolve;
 
90313
class CExprResolve;
42557
90314
class WinIfExists;
42558
90315
class WinImportHandler;
42559
90316
class WinMacros;
42560
 
class CMatchSyntax;
42561
 
class ExtGnu;
 
90317
class WinAsm;
 
90318
class WinDeclSpecs;
 
90319
class WinMemberExplSpec;
 
90320
class WinTypeKeywords;
 
90321
class WinFriend;
42562
90322
class ExtAC;
42563
90323
class ExtACBuilderCoupling;
42564
90324
class ExtACSyntaxCoupling;
42565
90325
class ExtACTree;
42566
90326
class ExtACKeywords;
42567
 
class WinAsm;
42568
 
class WinDeclSpecs;
42569
 
class WinMemberExplSpec;
42570
 
class WinTypeKeywords;
 
90327
class ExtGnu;
42571
90328
class PragmaOnceUnitState;
42572
90329
class PragmaOnce;
42573
 
class CCExprResolve;
42574
 
class CExprResolve;
 
90330
class CMatchSyntax;
42575
90331
namespace Puma {
42576
90332
 
42577
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90333
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42578
90334
class CT_MembPtrDeclarator : public CT_Declarator {
42579
 
#line 42580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90335
#line 90336 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
90336
  friend class ::CCExprResolve;
 
90337
  friend class ::CExprResolve;
42580
90338
  friend class ::WinIfExists;
42581
90339
  friend class ::WinImportHandler;
42582
90340
  friend class ::WinMacros;
42583
 
  friend class ::CMatchSyntax;
42584
 
  friend class ::ExtGnu;
 
90341
  friend class ::WinAsm;
 
90342
  friend class ::WinDeclSpecs;
 
90343
  friend class ::WinMemberExplSpec;
 
90344
  friend class ::WinTypeKeywords;
 
90345
  friend class ::WinFriend;
42585
90346
  friend class ::ExtAC;
42586
90347
  friend class ::ExtACBuilderCoupling;
42587
90348
  friend class ::ExtACSyntaxCoupling;
42588
90349
  friend class ::ExtACTree;
42589
90350
  friend class ::ExtACKeywords;
42590
 
  friend class ::WinAsm;
42591
 
  friend class ::WinDeclSpecs;
42592
 
  friend class ::WinMemberExplSpec;
42593
 
  friend class ::WinTypeKeywords;
 
90351
  friend class ::ExtGnu;
42594
90352
  friend class ::PragmaOnceUnitState;
42595
90353
  friend class ::PragmaOnce;
42596
 
  friend class ::CCExprResolve;
42597
 
  friend class ::CExprResolve;
 
90354
  friend class ::CMatchSyntax;
42598
90355
 
42599
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90356
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42600
90357
 
42601
90358
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
42602
90359
 
42603
90360
public:
42604
90361
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
42605
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
90362
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
90363
    AddSon (sons[3], q); AddSon (sons[4], d); 
42606
90364
  }
 
90365
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42607
90366
  static const char *NodeId ();
 
90367
  /** Get the name of the node. Can be compared with NodeId(). */
42608
90368
  const char *NodeName () const { return NodeId (); }
 
90369
  /** Get the number of sons. */
42609
90370
  int Sons () const { return CTree::Sons (sons, 5); }
 
90371
  /** Get the n-th son.
 
90372
   *  \param n The index of the son.
 
90373
   *  \return The n-th son or NULL. */
42610
90374
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
42611
90375
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
42612
90376
  CTree *Declarator () const { return sons[4]; }
42613
90377
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
90378
  /** Replace a son.
 
90379
   *  \param old_son The son to replace.
 
90380
   *  \param new_son The new son. */
42614
90381
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42615
90382
    CTree::ReplaceSon (sons, 5, old_son, new_son);
42616
90383
  }
42617
90384
};
42618
90385
 
42619
90386
 
42620
 
#line 42621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90387
#line 90388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
42621
90388
} // closed Puma
 
90389
class CCExprResolve;
 
90390
class CExprResolve;
42622
90391
class WinIfExists;
42623
90392
class WinImportHandler;
42624
90393
class WinMacros;
42625
 
class CMatchSyntax;
42626
 
class ExtGnu;
 
90394
class WinAsm;
 
90395
class WinDeclSpecs;
 
90396
class WinMemberExplSpec;
 
90397
class WinTypeKeywords;
 
90398
class WinFriend;
42627
90399
class ExtAC;
42628
90400
class ExtACBuilderCoupling;
42629
90401
class ExtACSyntaxCoupling;
42630
90402
class ExtACTree;
42631
90403
class ExtACKeywords;
42632
 
class WinAsm;
42633
 
class WinDeclSpecs;
42634
 
class WinMemberExplSpec;
42635
 
class WinTypeKeywords;
 
90404
class ExtGnu;
42636
90405
class PragmaOnceUnitState;
42637
90406
class PragmaOnce;
42638
 
class CCExprResolve;
42639
 
class CExprResolve;
 
90407
class CMatchSyntax;
42640
90408
namespace Puma {
42641
90409
 
42642
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90410
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42643
90411
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
42644
 
#line 42645 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90412
#line 90413 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
90413
  friend class ::CCExprResolve;
 
90414
  friend class ::CExprResolve;
42645
90415
  friend class ::WinIfExists;
42646
90416
  friend class ::WinImportHandler;
42647
90417
  friend class ::WinMacros;
42648
 
  friend class ::CMatchSyntax;
42649
 
  friend class ::ExtGnu;
 
90418
  friend class ::WinAsm;
 
90419
  friend class ::WinDeclSpecs;
 
90420
  friend class ::WinMemberExplSpec;
 
90421
  friend class ::WinTypeKeywords;
 
90422
  friend class ::WinFriend;
42650
90423
  friend class ::ExtAC;
42651
90424
  friend class ::ExtACBuilderCoupling;
42652
90425
  friend class ::ExtACSyntaxCoupling;
42653
90426
  friend class ::ExtACTree;
42654
90427
  friend class ::ExtACKeywords;
42655
 
  friend class ::WinAsm;
42656
 
  friend class ::WinDeclSpecs;
42657
 
  friend class ::WinMemberExplSpec;
42658
 
  friend class ::WinTypeKeywords;
 
90428
  friend class ::ExtGnu;
42659
90429
  friend class ::PragmaOnceUnitState;
42660
90430
  friend class ::PragmaOnce;
42661
 
  friend class ::CCExprResolve;
42662
 
  friend class ::CExprResolve;
 
90431
  friend class ::CMatchSyntax;
42663
90432
 
42664
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90433
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42665
90434
 
42666
90435
  CTree *sons[3]; // declarator, colon, expr
42667
90436
 
42668
90437
public:
42669
90438
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
42670
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
90439
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
42671
90440
  }
 
90441
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42672
90442
  static const char *NodeId ();
 
90443
  /** Get the name of the node. Can be compared with NodeId(). */
42673
90444
  const char *NodeName () const { return NodeId (); }
 
90445
  /** Get the number of sons. */
42674
90446
  int Sons () const { return CTree::Sons (sons, 3); }
 
90447
  /** Get the n-th son.
 
90448
   *  \param n The index of the son.
 
90449
   *  \return The n-th son or NULL. */
42675
90450
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
42676
90451
  CTree *Declarator () const { return sons[0]; }
42677
90452
  CTree *Expr () const { return sons[2]; }
42678
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
90453
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
42679
90454
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
90455
  /** Replace a son.
 
90456
   *  \param old_son The son to replace.
 
90457
   *  \param new_son The new son. */
42680
90458
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42681
90459
    CTree::ReplaceSon (sons, 3, old_son, new_son);
42682
90460
  }
42689
90467
/*****************************************************************************/
42690
90468
 
42691
90469
 
42692
 
#line 42693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90470
#line 90471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
42693
90471
} // closed Puma
 
90472
class CCExprResolve;
 
90473
class CExprResolve;
42694
90474
class WinIfExists;
42695
90475
class WinImportHandler;
42696
90476
class WinMacros;
42697
 
class CMatchSyntax;
42698
 
class ExtGnu;
 
90477
class WinAsm;
 
90478
class WinDeclSpecs;
 
90479
class WinMemberExplSpec;
 
90480
class WinTypeKeywords;
 
90481
class WinFriend;
42699
90482
class ExtAC;
42700
90483
class ExtACBuilderCoupling;
42701
90484
class ExtACSyntaxCoupling;
42702
90485
class ExtACTree;
42703
90486
class ExtACKeywords;
42704
 
class WinAsm;
42705
 
class WinDeclSpecs;
42706
 
class WinMemberExplSpec;
42707
 
class WinTypeKeywords;
 
90487
class ExtGnu;
42708
90488
class PragmaOnceUnitState;
42709
90489
class PragmaOnce;
42710
 
class CCExprResolve;
42711
 
class CExprResolve;
 
90490
class CMatchSyntax;
42712
90491
namespace Puma {
42713
90492
 
42714
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90493
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42715
90494
class CT_Statement : public CTree {
42716
 
#line 42717 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90495
#line 90496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
90496
  friend class ::CCExprResolve;
 
90497
  friend class ::CExprResolve;
42717
90498
  friend class ::WinIfExists;
42718
90499
  friend class ::WinImportHandler;
42719
90500
  friend class ::WinMacros;
42720
 
  friend class ::CMatchSyntax;
42721
 
  friend class ::ExtGnu;
 
90501
  friend class ::WinAsm;
 
90502
  friend class ::WinDeclSpecs;
 
90503
  friend class ::WinMemberExplSpec;
 
90504
  friend class ::WinTypeKeywords;
 
90505
  friend class ::WinFriend;
42722
90506
  friend class ::ExtAC;
42723
90507
  friend class ::ExtACBuilderCoupling;
42724
90508
  friend class ::ExtACSyntaxCoupling;
42725
90509
  friend class ::ExtACTree;
42726
90510
  friend class ::ExtACKeywords;
42727
 
  friend class ::WinAsm;
42728
 
  friend class ::WinDeclSpecs;
42729
 
  friend class ::WinMemberExplSpec;
42730
 
  friend class ::WinTypeKeywords;
 
90511
  friend class ::ExtGnu;
42731
90512
  friend class ::PragmaOnceUnitState;
42732
90513
  friend class ::PragmaOnce;
42733
 
  friend class ::CCExprResolve;
42734
 
  friend class ::CExprResolve;
 
90514
  friend class ::CMatchSyntax;
42735
90515
 
42736
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90516
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42737
90517
 
42738
90518
protected:
42739
90519
  CT_Statement () {}
 
90520
  virtual CT_Statement *IsStatement () { return this; }
42740
90521
};
42741
90522
 
42742
90523
 
42743
 
#line 42744 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90524
#line 90525 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
42744
90525
} // closed Puma
 
90526
class CCExprResolve;
 
90527
class CExprResolve;
42745
90528
class WinIfExists;
42746
90529
class WinImportHandler;
42747
90530
class WinMacros;
42748
 
class CMatchSyntax;
42749
 
class ExtGnu;
 
90531
class WinAsm;
 
90532
class WinDeclSpecs;
 
90533
class WinMemberExplSpec;
 
90534
class WinTypeKeywords;
 
90535
class WinFriend;
42750
90536
class ExtAC;
42751
90537
class ExtACBuilderCoupling;
42752
90538
class ExtACSyntaxCoupling;
42753
90539
class ExtACTree;
42754
90540
class ExtACKeywords;
42755
 
class WinAsm;
42756
 
class WinDeclSpecs;
42757
 
class WinMemberExplSpec;
42758
 
class WinTypeKeywords;
 
90541
class ExtGnu;
42759
90542
class PragmaOnceUnitState;
42760
90543
class PragmaOnce;
42761
 
class CCExprResolve;
42762
 
class CExprResolve;
 
90544
class CMatchSyntax;
42763
90545
namespace Puma {
42764
90546
 
42765
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90547
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42766
90548
class CT_LabelStmt : public CT_Statement {
42767
 
#line 42768 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90549
#line 90550 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
90550
  friend class ::CCExprResolve;
 
90551
  friend class ::CExprResolve;
42768
90552
  friend class ::WinIfExists;
42769
90553
  friend class ::WinImportHandler;
42770
90554
  friend class ::WinMacros;
42771
 
  friend class ::CMatchSyntax;
42772
 
  friend class ::ExtGnu;
 
90555
  friend class ::WinAsm;
 
90556
  friend class ::WinDeclSpecs;
 
90557
  friend class ::WinMemberExplSpec;
 
90558
  friend class ::WinTypeKeywords;
 
90559
  friend class ::WinFriend;
42773
90560
  friend class ::ExtAC;
42774
90561
  friend class ::ExtACBuilderCoupling;
42775
90562
  friend class ::ExtACSyntaxCoupling;
42776
90563
  friend class ::ExtACTree;
42777
90564
  friend class ::ExtACKeywords;
42778
 
  friend class ::WinAsm;
42779
 
  friend class ::WinDeclSpecs;
42780
 
  friend class ::WinMemberExplSpec;
42781
 
  friend class ::WinTypeKeywords;
 
90565
  friend class ::ExtGnu;
42782
90566
  friend class ::PragmaOnceUnitState;
42783
90567
  friend class ::PragmaOnce;
42784
 
  friend class ::CCExprResolve;
42785
 
  friend class ::CExprResolve;
 
90568
  friend class ::CMatchSyntax;
42786
90569
 
42787
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90570
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42788
90571
 
42789
90572
  CTree *sons[3]; // id, colon, stmt
42790
90573
 
42791
90574
public:
42792
90575
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
42793
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
90576
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
42794
90577
  }
 
90578
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42795
90579
  static const char *NodeId ();
 
90580
  /** Get the name of the node. Can be compared with NodeId(). */
42796
90581
  const char *NodeName () const { return NodeId (); }
 
90582
  /** Get the number of sons. */
42797
90583
  int Sons () const { return 3; }
 
90584
  /** Get the n-th son.
 
90585
   *  \param n The index of the son.
 
90586
   *  \return The n-th son or NULL. */
42798
90587
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
42799
90588
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
42800
90589
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
90590
  /** Replace a son.
 
90591
   *  \param old_son The son to replace.
 
90592
   *  \param new_son The new son. */
42801
90593
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42802
90594
    CTree::ReplaceSon (sons, 3, old_son, new_son);
42803
90595
  }
42804
90596
};
42805
90597
 
42806
90598
 
42807
 
#line 42808 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90599
#line 90600 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
42808
90600
} // closed Puma
 
90601
class CCExprResolve;
 
90602
class CExprResolve;
42809
90603
class WinIfExists;
42810
90604
class WinImportHandler;
42811
90605
class WinMacros;
42812
 
class CMatchSyntax;
42813
 
class ExtGnu;
 
90606
class WinAsm;
 
90607
class WinDeclSpecs;
 
90608
class WinMemberExplSpec;
 
90609
class WinTypeKeywords;
 
90610
class WinFriend;
42814
90611
class ExtAC;
42815
90612
class ExtACBuilderCoupling;
42816
90613
class ExtACSyntaxCoupling;
42817
90614
class ExtACTree;
42818
90615
class ExtACKeywords;
42819
 
class WinAsm;
42820
 
class WinDeclSpecs;
42821
 
class WinMemberExplSpec;
42822
 
class WinTypeKeywords;
 
90616
class ExtGnu;
42823
90617
class PragmaOnceUnitState;
42824
90618
class PragmaOnce;
42825
 
class CCExprResolve;
42826
 
class CExprResolve;
 
90619
class CMatchSyntax;
42827
90620
namespace Puma {
42828
90621
 
42829
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90622
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42830
90623
class CT_DefaultStmt : public CT_Statement {
42831
 
#line 42832 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90624
#line 90625 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
90625
  friend class ::CCExprResolve;
 
90626
  friend class ::CExprResolve;
42832
90627
  friend class ::WinIfExists;
42833
90628
  friend class ::WinImportHandler;
42834
90629
  friend class ::WinMacros;
42835
 
  friend class ::CMatchSyntax;
42836
 
  friend class ::ExtGnu;
 
90630
  friend class ::WinAsm;
 
90631
  friend class ::WinDeclSpecs;
 
90632
  friend class ::WinMemberExplSpec;
 
90633
  friend class ::WinTypeKeywords;
 
90634
  friend class ::WinFriend;
42837
90635
  friend class ::ExtAC;
42838
90636
  friend class ::ExtACBuilderCoupling;
42839
90637
  friend class ::ExtACSyntaxCoupling;
42840
90638
  friend class ::ExtACTree;
42841
90639
  friend class ::ExtACKeywords;
42842
 
  friend class ::WinAsm;
42843
 
  friend class ::WinDeclSpecs;
42844
 
  friend class ::WinMemberExplSpec;
42845
 
  friend class ::WinTypeKeywords;
 
90640
  friend class ::ExtGnu;
42846
90641
  friend class ::PragmaOnceUnitState;
42847
90642
  friend class ::PragmaOnce;
42848
 
  friend class ::CCExprResolve;
42849
 
  friend class ::CExprResolve;
 
90643
  friend class ::CMatchSyntax;
42850
90644
 
42851
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90645
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42852
90646
 
42853
90647
  CTree *sons[3]; // keyword, colon, stmt
42854
90648
 
42855
90649
public:
42856
90650
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
42857
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
90651
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
42858
90652
  }
 
90653
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42859
90654
  static const char *NodeId ();
 
90655
  /** Get the name of the node. Can be compared with NodeId(). */
42860
90656
  const char *NodeName () const { return NodeId (); }
 
90657
  /** Get the number of sons. */
42861
90658
  int Sons () const { return 3; }
 
90659
  /** Get the n-th son.
 
90660
   *  \param n The index of the son.
 
90661
   *  \return The n-th son or NULL. */
42862
90662
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
42863
90663
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
90664
  /** Replace a son.
 
90665
   *  \param old_son The son to replace.
 
90666
   *  \param new_son The new son. */
42864
90667
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42865
90668
    CTree::ReplaceSon (sons, 3, old_son, new_son);
42866
90669
  }
42867
90670
};
42868
90671
 
42869
90672
 
42870
 
#line 42871 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90673
#line 90674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
42871
90674
} // closed Puma
 
90675
class CCExprResolve;
 
90676
class CExprResolve;
42872
90677
class WinIfExists;
42873
90678
class WinImportHandler;
42874
90679
class WinMacros;
42875
 
class CMatchSyntax;
42876
 
class ExtGnu;
 
90680
class WinAsm;
 
90681
class WinDeclSpecs;
 
90682
class WinMemberExplSpec;
 
90683
class WinTypeKeywords;
 
90684
class WinFriend;
42877
90685
class ExtAC;
42878
90686
class ExtACBuilderCoupling;
42879
90687
class ExtACSyntaxCoupling;
42880
90688
class ExtACTree;
42881
90689
class ExtACKeywords;
42882
 
class WinAsm;
42883
 
class WinDeclSpecs;
42884
 
class WinMemberExplSpec;
42885
 
class WinTypeKeywords;
 
90690
class ExtGnu;
42886
90691
class PragmaOnceUnitState;
42887
90692
class PragmaOnce;
42888
 
class CCExprResolve;
42889
 
class CExprResolve;
 
90693
class CMatchSyntax;
42890
90694
namespace Puma {
42891
90695
 
42892
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90696
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42893
90697
class CT_TryStmt : public CT_Statement {
42894
 
#line 42895 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90698
#line 90699 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
90699
  friend class ::CCExprResolve;
 
90700
  friend class ::CExprResolve;
42895
90701
  friend class ::WinIfExists;
42896
90702
  friend class ::WinImportHandler;
42897
90703
  friend class ::WinMacros;
42898
 
  friend class ::CMatchSyntax;
42899
 
  friend class ::ExtGnu;
 
90704
  friend class ::WinAsm;
 
90705
  friend class ::WinDeclSpecs;
 
90706
  friend class ::WinMemberExplSpec;
 
90707
  friend class ::WinTypeKeywords;
 
90708
  friend class ::WinFriend;
42900
90709
  friend class ::ExtAC;
42901
90710
  friend class ::ExtACBuilderCoupling;
42902
90711
  friend class ::ExtACSyntaxCoupling;
42903
90712
  friend class ::ExtACTree;
42904
90713
  friend class ::ExtACKeywords;
42905
 
  friend class ::WinAsm;
42906
 
  friend class ::WinDeclSpecs;
42907
 
  friend class ::WinMemberExplSpec;
42908
 
  friend class ::WinTypeKeywords;
 
90714
  friend class ::ExtGnu;
42909
90715
  friend class ::PragmaOnceUnitState;
42910
90716
  friend class ::PragmaOnce;
42911
 
  friend class ::CCExprResolve;
42912
 
  friend class ::CExprResolve;
 
90717
  friend class ::CMatchSyntax;
42913
90718
 
42914
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90719
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42915
90720
 
42916
90721
  CTree *sons[3]; // try, stmt, handlers
42917
90722
 
42918
90723
public:
42919
90724
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
42920
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
90725
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
42921
90726
  }
 
90727
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42922
90728
  static const char *NodeId ();
 
90729
  /** Get the name of the node. Can be compared with NodeId(). */
42923
90730
  const char *NodeName () const { return NodeId (); }
 
90731
  /** Get the number of sons. */
42924
90732
  int Sons () const { return 3; }
 
90733
  /** Get the n-th son.
 
90734
   *  \param n The index of the son.
 
90735
   *  \return The n-th son or NULL. */
42925
90736
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
42926
90737
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
42927
90738
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
90739
  /** Replace a son.
 
90740
   *  \param old_son The son to replace.
 
90741
   *  \param new_son The new son. */
42928
90742
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42929
90743
    CTree::ReplaceSon (sons, 3, old_son, new_son);
42930
90744
  }
42931
90745
};
42932
90746
 
42933
90747
 
42934
 
#line 42935 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90748
#line 90749 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
42935
90749
} // closed Puma
 
90750
class CCExprResolve;
 
90751
class CExprResolve;
42936
90752
class WinIfExists;
42937
90753
class WinImportHandler;
42938
90754
class WinMacros;
42939
 
class CMatchSyntax;
42940
 
class ExtGnu;
 
90755
class WinAsm;
 
90756
class WinDeclSpecs;
 
90757
class WinMemberExplSpec;
 
90758
class WinTypeKeywords;
 
90759
class WinFriend;
42941
90760
class ExtAC;
42942
90761
class ExtACBuilderCoupling;
42943
90762
class ExtACSyntaxCoupling;
42944
90763
class ExtACTree;
42945
90764
class ExtACKeywords;
42946
 
class WinAsm;
42947
 
class WinDeclSpecs;
42948
 
class WinMemberExplSpec;
42949
 
class WinTypeKeywords;
 
90765
class ExtGnu;
42950
90766
class PragmaOnceUnitState;
42951
90767
class PragmaOnce;
42952
 
class CCExprResolve;
42953
 
class CExprResolve;
 
90768
class CMatchSyntax;
42954
90769
namespace Puma {
42955
90770
 
42956
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90771
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42957
90772
class CT_CaseStmt : public CT_Statement {
42958
 
#line 42959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90773
#line 90774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
90774
  friend class ::CCExprResolve;
 
90775
  friend class ::CExprResolve;
42959
90776
  friend class ::WinIfExists;
42960
90777
  friend class ::WinImportHandler;
42961
90778
  friend class ::WinMacros;
42962
 
  friend class ::CMatchSyntax;
42963
 
  friend class ::ExtGnu;
 
90779
  friend class ::WinAsm;
 
90780
  friend class ::WinDeclSpecs;
 
90781
  friend class ::WinMemberExplSpec;
 
90782
  friend class ::WinTypeKeywords;
 
90783
  friend class ::WinFriend;
42964
90784
  friend class ::ExtAC;
42965
90785
  friend class ::ExtACBuilderCoupling;
42966
90786
  friend class ::ExtACSyntaxCoupling;
42967
90787
  friend class ::ExtACTree;
42968
90788
  friend class ::ExtACKeywords;
42969
 
  friend class ::WinAsm;
42970
 
  friend class ::WinDeclSpecs;
42971
 
  friend class ::WinMemberExplSpec;
42972
 
  friend class ::WinTypeKeywords;
 
90789
  friend class ::ExtGnu;
42973
90790
  friend class ::PragmaOnceUnitState;
42974
90791
  friend class ::PragmaOnce;
42975
 
  friend class ::CCExprResolve;
42976
 
  friend class ::CExprResolve;
 
90792
  friend class ::CMatchSyntax;
42977
90793
 
42978
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90794
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42979
90795
 
42980
90796
  CTree *sons[4]; // keyword, expr, colon, stmt
42981
90797
 
42982
90798
public:
42983
90799
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
42984
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
90800
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
90801
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
42985
90802
  }
 
90803
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42986
90804
  static const char *NodeId ();
 
90805
  /** Get the name of the node. Can be compared with NodeId(). */
42987
90806
  const char *NodeName () const { return NodeId (); }
 
90807
  /** Get the number of sons. */
42988
90808
  int Sons () const { return 4; }
 
90809
  /** Get the n-th son.
 
90810
   *  \param n The index of the son.
 
90811
   *  \return The n-th son or NULL. */
42989
90812
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
42990
90813
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
42991
90814
  CTree *Expr () const { return sons[1]; }
 
90815
  /** Replace a son.
 
90816
   *  \param old_son The son to replace.
 
90817
   *  \param new_son The new son. */
42992
90818
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42993
90819
    CTree::ReplaceSon (sons, 4, old_son, new_son);
42994
90820
  }
42995
90821
};
42996
90822
 
42997
90823
 
42998
 
#line 42999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90824
#line 90825 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
42999
90825
} // closed Puma
 
90826
class CCExprResolve;
 
90827
class CExprResolve;
43000
90828
class WinIfExists;
43001
90829
class WinImportHandler;
43002
90830
class WinMacros;
43003
 
class CMatchSyntax;
43004
 
class ExtGnu;
 
90831
class WinAsm;
 
90832
class WinDeclSpecs;
 
90833
class WinMemberExplSpec;
 
90834
class WinTypeKeywords;
 
90835
class WinFriend;
43005
90836
class ExtAC;
43006
90837
class ExtACBuilderCoupling;
43007
90838
class ExtACSyntaxCoupling;
43008
90839
class ExtACTree;
43009
90840
class ExtACKeywords;
43010
 
class WinAsm;
43011
 
class WinDeclSpecs;
43012
 
class WinMemberExplSpec;
43013
 
class WinTypeKeywords;
 
90841
class ExtGnu;
43014
90842
class PragmaOnceUnitState;
43015
90843
class PragmaOnce;
43016
 
class CCExprResolve;
43017
 
class CExprResolve;
 
90844
class CMatchSyntax;
43018
90845
namespace Puma {
43019
90846
 
43020
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90847
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43021
90848
class CT_ExprStmt : public CT_Statement {
43022
 
#line 43023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90849
#line 90850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
90850
  friend class ::CCExprResolve;
 
90851
  friend class ::CExprResolve;
43023
90852
  friend class ::WinIfExists;
43024
90853
  friend class ::WinImportHandler;
43025
90854
  friend class ::WinMacros;
43026
 
  friend class ::CMatchSyntax;
43027
 
  friend class ::ExtGnu;
 
90855
  friend class ::WinAsm;
 
90856
  friend class ::WinDeclSpecs;
 
90857
  friend class ::WinMemberExplSpec;
 
90858
  friend class ::WinTypeKeywords;
 
90859
  friend class ::WinFriend;
43028
90860
  friend class ::ExtAC;
43029
90861
  friend class ::ExtACBuilderCoupling;
43030
90862
  friend class ::ExtACSyntaxCoupling;
43031
90863
  friend class ::ExtACTree;
43032
90864
  friend class ::ExtACKeywords;
43033
 
  friend class ::WinAsm;
43034
 
  friend class ::WinDeclSpecs;
43035
 
  friend class ::WinMemberExplSpec;
43036
 
  friend class ::WinTypeKeywords;
 
90865
  friend class ::ExtGnu;
43037
90866
  friend class ::PragmaOnceUnitState;
43038
90867
  friend class ::PragmaOnce;
43039
 
  friend class ::CCExprResolve;
43040
 
  friend class ::CExprResolve;
 
90868
  friend class ::CMatchSyntax;
43041
90869
 
43042
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90870
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43043
90871
 
43044
90872
  CTree *sons[2]; // expr, semi_colon
43045
90873
 
43046
90874
public:
43047
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
90875
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
90876
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43048
90877
  static const char *NodeId ();
 
90878
  /** Get the name of the node. Can be compared with NodeId(). */
43049
90879
  const char *NodeName () const { return NodeId (); }
 
90880
  /** Get the number of sons. */
43050
90881
  int Sons () const { return CTree::Sons (sons, 2); }
 
90882
  /** Get the n-th son.
 
90883
   *  \param n The index of the son.
 
90884
   *  \return The n-th son or NULL. */
43051
90885
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
43052
90886
  CTree *Expr () const { return sons[0]; }
 
90887
  /** Replace a son.
 
90888
   *  \param old_son The son to replace.
 
90889
   *  \param new_son The new son. */
43053
90890
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43054
90891
    CTree::ReplaceSon (sons, 2, old_son, new_son);
43055
90892
  }
43056
90893
};
43057
90894
 
43058
90895
 
43059
 
#line 43060 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90896
#line 90897 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
43060
90897
} // closed Puma
 
90898
class CCExprResolve;
 
90899
class CExprResolve;
43061
90900
class WinIfExists;
43062
90901
class WinImportHandler;
43063
90902
class WinMacros;
43064
 
class CMatchSyntax;
43065
 
class ExtGnu;
 
90903
class WinAsm;
 
90904
class WinDeclSpecs;
 
90905
class WinMemberExplSpec;
 
90906
class WinTypeKeywords;
 
90907
class WinFriend;
43066
90908
class ExtAC;
43067
90909
class ExtACBuilderCoupling;
43068
90910
class ExtACSyntaxCoupling;
43069
90911
class ExtACTree;
43070
90912
class ExtACKeywords;
43071
 
class WinAsm;
43072
 
class WinDeclSpecs;
43073
 
class WinMemberExplSpec;
43074
 
class WinTypeKeywords;
 
90913
class ExtGnu;
43075
90914
class PragmaOnceUnitState;
43076
90915
class PragmaOnce;
43077
 
class CCExprResolve;
43078
 
class CExprResolve;
 
90916
class CMatchSyntax;
43079
90917
namespace Puma {
43080
90918
 
43081
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90919
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43082
90920
class CT_DeclStmt : public CT_Statement {
43083
 
#line 43084 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90921
#line 90922 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
90922
  friend class ::CCExprResolve;
 
90923
  friend class ::CExprResolve;
43084
90924
  friend class ::WinIfExists;
43085
90925
  friend class ::WinImportHandler;
43086
90926
  friend class ::WinMacros;
43087
 
  friend class ::CMatchSyntax;
43088
 
  friend class ::ExtGnu;
 
90927
  friend class ::WinAsm;
 
90928
  friend class ::WinDeclSpecs;
 
90929
  friend class ::WinMemberExplSpec;
 
90930
  friend class ::WinTypeKeywords;
 
90931
  friend class ::WinFriend;
43089
90932
  friend class ::ExtAC;
43090
90933
  friend class ::ExtACBuilderCoupling;
43091
90934
  friend class ::ExtACSyntaxCoupling;
43092
90935
  friend class ::ExtACTree;
43093
90936
  friend class ::ExtACKeywords;
43094
 
  friend class ::WinAsm;
43095
 
  friend class ::WinDeclSpecs;
43096
 
  friend class ::WinMemberExplSpec;
43097
 
  friend class ::WinTypeKeywords;
 
90937
  friend class ::ExtGnu;
43098
90938
  friend class ::PragmaOnceUnitState;
43099
90939
  friend class ::PragmaOnce;
43100
 
  friend class ::CCExprResolve;
43101
 
  friend class ::CExprResolve;
 
90940
  friend class ::CMatchSyntax;
43102
90941
 
43103
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90942
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43104
90943
 
43105
90944
  CTree *_decl;
43106
90945
 
43107
90946
public:
43108
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
90947
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
90948
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43109
90949
  static const char *NodeId ();
 
90950
  /** Get the name of the node. Can be compared with NodeId(). */
43110
90951
  const char *NodeName () const { return NodeId (); }
 
90952
  /** Get the number of sons. */
43111
90953
  int Sons () const { return 1; }
 
90954
  /** Get the n-th son.
 
90955
   *  \param n The index of the son.
 
90956
   *  \return The n-th son or NULL. */
43112
90957
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
90958
  /** Replace a son.
 
90959
   *  \param old_son The son to replace.
 
90960
   *  \param new_son The new son. */
43113
90961
  void ReplaceSon (CTree *old_son, CTree *new_son) 
43114
 
   { if (old_son == _decl) _decl = new_son; }
 
90962
   { CTree::ReplaceSon (_decl, old_son, new_son); }
43115
90963
};
43116
90964
 
43117
90965
 
43118
 
#line 43119 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90966
#line 90967 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
43119
90967
} // closed Puma
 
90968
class CCExprResolve;
 
90969
class CExprResolve;
43120
90970
class WinIfExists;
43121
90971
class WinImportHandler;
43122
90972
class WinMacros;
43123
 
class CMatchSyntax;
43124
 
class ExtGnu;
 
90973
class WinAsm;
 
90974
class WinDeclSpecs;
 
90975
class WinMemberExplSpec;
 
90976
class WinTypeKeywords;
 
90977
class WinFriend;
43125
90978
class ExtAC;
43126
90979
class ExtACBuilderCoupling;
43127
90980
class ExtACSyntaxCoupling;
43128
90981
class ExtACTree;
43129
90982
class ExtACKeywords;
43130
 
class WinAsm;
43131
 
class WinDeclSpecs;
43132
 
class WinMemberExplSpec;
43133
 
class WinTypeKeywords;
 
90983
class ExtGnu;
43134
90984
class PragmaOnceUnitState;
43135
90985
class PragmaOnce;
43136
 
class CCExprResolve;
43137
 
class CExprResolve;
 
90986
class CMatchSyntax;
43138
90987
namespace Puma {
43139
90988
 
43140
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90989
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43141
90990
class CT_SwitchStmt : public CT_Statement, public CSemScope {
43142
 
#line 43143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
90991
#line 90992 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
90992
  friend class ::CCExprResolve;
 
90993
  friend class ::CExprResolve;
43143
90994
  friend class ::WinIfExists;
43144
90995
  friend class ::WinImportHandler;
43145
90996
  friend class ::WinMacros;
43146
 
  friend class ::CMatchSyntax;
43147
 
  friend class ::ExtGnu;
 
90997
  friend class ::WinAsm;
 
90998
  friend class ::WinDeclSpecs;
 
90999
  friend class ::WinMemberExplSpec;
 
91000
  friend class ::WinTypeKeywords;
 
91001
  friend class ::WinFriend;
43148
91002
  friend class ::ExtAC;
43149
91003
  friend class ::ExtACBuilderCoupling;
43150
91004
  friend class ::ExtACSyntaxCoupling;
43151
91005
  friend class ::ExtACTree;
43152
91006
  friend class ::ExtACKeywords;
43153
 
  friend class ::WinAsm;
43154
 
  friend class ::WinDeclSpecs;
43155
 
  friend class ::WinMemberExplSpec;
43156
 
  friend class ::WinTypeKeywords;
 
91007
  friend class ::ExtGnu;
43157
91008
  friend class ::PragmaOnceUnitState;
43158
91009
  friend class ::PragmaOnce;
43159
 
  friend class ::CCExprResolve;
43160
 
  friend class ::CExprResolve;
 
91010
  friend class ::CMatchSyntax;
43161
91011
 
43162
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91012
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43163
91013
 
43164
91014
  CTree *sons[5]; // keyword, open, cond, close, stmt
43165
91015
 
43166
91016
public:
43167
91017
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
43168
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
91018
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
91019
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
43169
91020
  }
 
91021
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43170
91022
  static const char *NodeId ();
 
91023
  /** Get the name of the node. Can be compared with NodeId(). */
43171
91024
  const char *NodeName () const { return NodeId (); }
 
91025
  /** Get the number of sons. */
43172
91026
  int Sons () const { return 5; }
 
91027
  /** Get the n-th son.
 
91028
   *  \param n The index of the son.
 
91029
   *  \return The n-th son or NULL. */
43173
91030
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
43174
91031
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
43175
91032
  CTree *Condition () const { return sons[2]; }
 
91033
  /** Replace a son.
 
91034
   *  \param old_son The son to replace.
 
91035
   *  \param new_son The new son. */
43176
91036
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43177
91037
    CTree::ReplaceSon (sons, 5, old_son, new_son);
43178
91038
  }
 
91039
  CSemScope *SemScope () const { return (CSemScope*)this; }
43179
91040
};
43180
91041
 
43181
91042
 
43182
 
#line 43183 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91043
#line 91044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
43183
91044
} // closed Puma
 
91045
class CCExprResolve;
 
91046
class CExprResolve;
43184
91047
class WinIfExists;
43185
91048
class WinImportHandler;
43186
91049
class WinMacros;
43187
 
class CMatchSyntax;
43188
 
class ExtGnu;
 
91050
class WinAsm;
 
91051
class WinDeclSpecs;
 
91052
class WinMemberExplSpec;
 
91053
class WinTypeKeywords;
 
91054
class WinFriend;
43189
91055
class ExtAC;
43190
91056
class ExtACBuilderCoupling;
43191
91057
class ExtACSyntaxCoupling;
43192
91058
class ExtACTree;
43193
91059
class ExtACKeywords;
43194
 
class WinAsm;
43195
 
class WinDeclSpecs;
43196
 
class WinMemberExplSpec;
43197
 
class WinTypeKeywords;
 
91060
class ExtGnu;
43198
91061
class PragmaOnceUnitState;
43199
91062
class PragmaOnce;
43200
 
class CCExprResolve;
43201
 
class CExprResolve;
 
91063
class CMatchSyntax;
43202
91064
namespace Puma {
43203
91065
 
43204
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91066
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43205
91067
class CT_IfStmt : public CT_Statement, public CSemScope {
43206
 
#line 43207 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91068
#line 91069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
91069
  friend class ::CCExprResolve;
 
91070
  friend class ::CExprResolve;
43207
91071
  friend class ::WinIfExists;
43208
91072
  friend class ::WinImportHandler;
43209
91073
  friend class ::WinMacros;
43210
 
  friend class ::CMatchSyntax;
43211
 
  friend class ::ExtGnu;
 
91074
  friend class ::WinAsm;
 
91075
  friend class ::WinDeclSpecs;
 
91076
  friend class ::WinMemberExplSpec;
 
91077
  friend class ::WinTypeKeywords;
 
91078
  friend class ::WinFriend;
43212
91079
  friend class ::ExtAC;
43213
91080
  friend class ::ExtACBuilderCoupling;
43214
91081
  friend class ::ExtACSyntaxCoupling;
43215
91082
  friend class ::ExtACTree;
43216
91083
  friend class ::ExtACKeywords;
43217
 
  friend class ::WinAsm;
43218
 
  friend class ::WinDeclSpecs;
43219
 
  friend class ::WinMemberExplSpec;
43220
 
  friend class ::WinTypeKeywords;
 
91084
  friend class ::ExtGnu;
43221
91085
  friend class ::PragmaOnceUnitState;
43222
91086
  friend class ::PragmaOnce;
43223
 
  friend class ::CCExprResolve;
43224
 
  friend class ::CExprResolve;
 
91087
  friend class ::CMatchSyntax;
43225
91088
 
43226
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91089
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43227
91090
 
43228
91091
  CTree *sons[5]; // keyword, open, cond, close, stmt
43229
91092
 
43230
91093
public:
43231
91094
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
43232
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
91095
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
91096
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
43233
91097
  }
 
91098
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43234
91099
  static const char *NodeId ();
 
91100
  /** Get the name of the node. Can be compared with NodeId(). */
43235
91101
  const char *NodeName () const { return NodeId (); }
 
91102
  /** Get the number of sons. */
43236
91103
  int Sons () const { return 5; }
 
91104
  /** Get the n-th son.
 
91105
   *  \param n The index of the son.
 
91106
   *  \return The n-th son or NULL. */
43237
91107
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
43238
91108
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
43239
91109
  CTree *Condition () const { return sons[2]; }
 
91110
  /** Replace a son.
 
91111
   *  \param old_son The son to replace.
 
91112
   *  \param new_son The new son. */
43240
91113
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43241
91114
    CTree::ReplaceSon (sons, 5, old_son, new_son);
43242
91115
  }
 
91116
  CSemScope *SemScope () const { return (CSemScope*)this; }
43243
91117
};
43244
91118
 
43245
91119
 
43246
 
#line 43247 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91120
#line 91121 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
43247
91121
} // closed Puma
 
91122
class CCExprResolve;
 
91123
class CExprResolve;
43248
91124
class WinIfExists;
43249
91125
class WinImportHandler;
43250
91126
class WinMacros;
43251
 
class CMatchSyntax;
43252
 
class ExtGnu;
 
91127
class WinAsm;
 
91128
class WinDeclSpecs;
 
91129
class WinMemberExplSpec;
 
91130
class WinTypeKeywords;
 
91131
class WinFriend;
43253
91132
class ExtAC;
43254
91133
class ExtACBuilderCoupling;
43255
91134
class ExtACSyntaxCoupling;
43256
91135
class ExtACTree;
43257
91136
class ExtACKeywords;
43258
 
class WinAsm;
43259
 
class WinDeclSpecs;
43260
 
class WinMemberExplSpec;
43261
 
class WinTypeKeywords;
 
91137
class ExtGnu;
43262
91138
class PragmaOnceUnitState;
43263
91139
class PragmaOnce;
43264
 
class CCExprResolve;
43265
 
class CExprResolve;
 
91140
class CMatchSyntax;
43266
91141
namespace Puma {
43267
91142
 
43268
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91143
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43269
91144
class CT_IfElseStmt : public CT_Statement, public CSemScope {
43270
 
#line 43271 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91145
#line 91146 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
91146
  friend class ::CCExprResolve;
 
91147
  friend class ::CExprResolve;
43271
91148
  friend class ::WinIfExists;
43272
91149
  friend class ::WinImportHandler;
43273
91150
  friend class ::WinMacros;
43274
 
  friend class ::CMatchSyntax;
43275
 
  friend class ::ExtGnu;
 
91151
  friend class ::WinAsm;
 
91152
  friend class ::WinDeclSpecs;
 
91153
  friend class ::WinMemberExplSpec;
 
91154
  friend class ::WinTypeKeywords;
 
91155
  friend class ::WinFriend;
43276
91156
  friend class ::ExtAC;
43277
91157
  friend class ::ExtACBuilderCoupling;
43278
91158
  friend class ::ExtACSyntaxCoupling;
43279
91159
  friend class ::ExtACTree;
43280
91160
  friend class ::ExtACKeywords;
43281
 
  friend class ::WinAsm;
43282
 
  friend class ::WinDeclSpecs;
43283
 
  friend class ::WinMemberExplSpec;
43284
 
  friend class ::WinTypeKeywords;
 
91161
  friend class ::ExtGnu;
43285
91162
  friend class ::PragmaOnceUnitState;
43286
91163
  friend class ::PragmaOnce;
43287
 
  friend class ::CCExprResolve;
43288
 
  friend class ::CExprResolve;
 
91164
  friend class ::CMatchSyntax;
43289
91165
 
43290
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91166
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43291
91167
 
43292
91168
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
43293
91169
 
43294
91170
public:
43295
91171
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
43296
91172
                 CTree *is, CTree *e, CTree *es) {
43297
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
43298
 
    sons[5] = e; sons[6] = es; 
 
91173
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
91174
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
91175
    AddSon (sons[6], es); 
43299
91176
  }
 
91177
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43300
91178
  static const char *NodeId ();
 
91179
  /** Get the name of the node. Can be compared with NodeId(). */
43301
91180
  const char *NodeName () const { return NodeId (); }
 
91181
  /** Get the number of sons. */
43302
91182
  int Sons () const { return 7; }
 
91183
  /** Get the n-th son.
 
91184
   *  \param n The index of the son.
 
91185
   *  \return The n-th son or NULL. */
43303
91186
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
43304
91187
  CTree *Condition () const { return sons[2]; }
43305
91188
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
43306
91189
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
91190
  /** Replace a son.
 
91191
   *  \param old_son The son to replace.
 
91192
   *  \param new_son The new son. */
43307
91193
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43308
91194
    CTree::ReplaceSon (sons, 7, old_son, new_son);
43309
91195
  }
 
91196
  CSemScope *SemScope () const { return (CSemScope*)this; }
43310
91197
};
43311
91198
 
43312
91199
 
43313
 
#line 43314 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91200
#line 91201 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
43314
91201
} // closed Puma
 
91202
class CCExprResolve;
 
91203
class CExprResolve;
43315
91204
class WinIfExists;
43316
91205
class WinImportHandler;
43317
91206
class WinMacros;
43318
 
class CMatchSyntax;
43319
 
class ExtGnu;
 
91207
class WinAsm;
 
91208
class WinDeclSpecs;
 
91209
class WinMemberExplSpec;
 
91210
class WinTypeKeywords;
 
91211
class WinFriend;
43320
91212
class ExtAC;
43321
91213
class ExtACBuilderCoupling;
43322
91214
class ExtACSyntaxCoupling;
43323
91215
class ExtACTree;
43324
91216
class ExtACKeywords;
43325
 
class WinAsm;
43326
 
class WinDeclSpecs;
43327
 
class WinMemberExplSpec;
43328
 
class WinTypeKeywords;
 
91217
class ExtGnu;
43329
91218
class PragmaOnceUnitState;
43330
91219
class PragmaOnce;
43331
 
class CCExprResolve;
43332
 
class CExprResolve;
 
91220
class CMatchSyntax;
43333
91221
namespace Puma {
43334
91222
 
43335
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91223
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43336
91224
class CT_BreakStmt : public CT_Statement {
43337
 
#line 43338 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91225
#line 91226 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
91226
  friend class ::CCExprResolve;
 
91227
  friend class ::CExprResolve;
43338
91228
  friend class ::WinIfExists;
43339
91229
  friend class ::WinImportHandler;
43340
91230
  friend class ::WinMacros;
43341
 
  friend class ::CMatchSyntax;
43342
 
  friend class ::ExtGnu;
 
91231
  friend class ::WinAsm;
 
91232
  friend class ::WinDeclSpecs;
 
91233
  friend class ::WinMemberExplSpec;
 
91234
  friend class ::WinTypeKeywords;
 
91235
  friend class ::WinFriend;
43343
91236
  friend class ::ExtAC;
43344
91237
  friend class ::ExtACBuilderCoupling;
43345
91238
  friend class ::ExtACSyntaxCoupling;
43346
91239
  friend class ::ExtACTree;
43347
91240
  friend class ::ExtACKeywords;
43348
 
  friend class ::WinAsm;
43349
 
  friend class ::WinDeclSpecs;
43350
 
  friend class ::WinMemberExplSpec;
43351
 
  friend class ::WinTypeKeywords;
 
91241
  friend class ::ExtGnu;
43352
91242
  friend class ::PragmaOnceUnitState;
43353
91243
  friend class ::PragmaOnce;
43354
 
  friend class ::CCExprResolve;
43355
 
  friend class ::CExprResolve;
 
91244
  friend class ::CMatchSyntax;
43356
91245
 
43357
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91246
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43358
91247
 
43359
91248
  CTree *sons[2]; // key, semi_colon
43360
91249
 
43361
91250
public:
43362
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
91251
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
91252
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43363
91253
  static const char *NodeId ();
 
91254
  /** Get the name of the node. Can be compared with NodeId(). */
43364
91255
  const char *NodeName () const { return NodeId (); }
 
91256
  /** Get the number of sons. */
43365
91257
  int Sons () const { return 2; }
 
91258
  /** Get the n-th son.
 
91259
   *  \param n The index of the son.
 
91260
   *  \return The n-th son or NULL. */
43366
91261
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
91262
  /** Replace a son.
 
91263
   *  \param old_son The son to replace.
 
91264
   *  \param new_son The new son. */
43367
91265
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43368
91266
    CTree::ReplaceSon (sons, 2, old_son, new_son);
43369
91267
  }
43370
91268
};
43371
91269
 
43372
91270
 
43373
 
#line 43374 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91271
#line 91272 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
43374
91272
} // closed Puma
 
91273
class CCExprResolve;
 
91274
class CExprResolve;
43375
91275
class WinIfExists;
43376
91276
class WinImportHandler;
43377
91277
class WinMacros;
43378
 
class CMatchSyntax;
43379
 
class ExtGnu;
 
91278
class WinAsm;
 
91279
class WinDeclSpecs;
 
91280
class WinMemberExplSpec;
 
91281
class WinTypeKeywords;
 
91282
class WinFriend;
43380
91283
class ExtAC;
43381
91284
class ExtACBuilderCoupling;
43382
91285
class ExtACSyntaxCoupling;
43383
91286
class ExtACTree;
43384
91287
class ExtACKeywords;
43385
 
class WinAsm;
43386
 
class WinDeclSpecs;
43387
 
class WinMemberExplSpec;
43388
 
class WinTypeKeywords;
 
91288
class ExtGnu;
43389
91289
class PragmaOnceUnitState;
43390
91290
class PragmaOnce;
43391
 
class CCExprResolve;
43392
 
class CExprResolve;
 
91291
class CMatchSyntax;
43393
91292
namespace Puma {
43394
91293
 
43395
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91294
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43396
91295
class CT_ContinueStmt : public CT_Statement {
43397
 
#line 43398 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91296
#line 91297 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
91297
  friend class ::CCExprResolve;
 
91298
  friend class ::CExprResolve;
43398
91299
  friend class ::WinIfExists;
43399
91300
  friend class ::WinImportHandler;
43400
91301
  friend class ::WinMacros;
43401
 
  friend class ::CMatchSyntax;
43402
 
  friend class ::ExtGnu;
 
91302
  friend class ::WinAsm;
 
91303
  friend class ::WinDeclSpecs;
 
91304
  friend class ::WinMemberExplSpec;
 
91305
  friend class ::WinTypeKeywords;
 
91306
  friend class ::WinFriend;
43403
91307
  friend class ::ExtAC;
43404
91308
  friend class ::ExtACBuilderCoupling;
43405
91309
  friend class ::ExtACSyntaxCoupling;
43406
91310
  friend class ::ExtACTree;
43407
91311
  friend class ::ExtACKeywords;
43408
 
  friend class ::WinAsm;
43409
 
  friend class ::WinDeclSpecs;
43410
 
  friend class ::WinMemberExplSpec;
43411
 
  friend class ::WinTypeKeywords;
 
91312
  friend class ::ExtGnu;
43412
91313
  friend class ::PragmaOnceUnitState;
43413
91314
  friend class ::PragmaOnce;
43414
 
  friend class ::CCExprResolve;
43415
 
  friend class ::CExprResolve;
 
91315
  friend class ::CMatchSyntax;
43416
91316
 
43417
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91317
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43418
91318
 
43419
91319
  CTree *sons[2]; // key, semi_colon
43420
91320
 
43421
91321
public:
43422
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
91322
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
91323
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43423
91324
  static const char *NodeId ();
 
91325
  /** Get the name of the node. Can be compared with NodeId(). */
43424
91326
  const char *NodeName () const { return NodeId (); }
 
91327
  /** Get the number of sons. */
43425
91328
  int Sons () const { return 2; }
 
91329
  /** Get the n-th son.
 
91330
   *  \param n The index of the son.
 
91331
   *  \return The n-th son or NULL. */
43426
91332
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
91333
  /** Replace a son.
 
91334
   *  \param old_son The son to replace.
 
91335
   *  \param new_son The new son. */
43427
91336
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43428
91337
    CTree::ReplaceSon (sons, 2, old_son, new_son);
43429
91338
  }
43430
91339
};
43431
91340
 
43432
91341
 
43433
 
#line 43434 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91342
#line 91343 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
43434
91343
} // closed Puma
 
91344
class CCExprResolve;
 
91345
class CExprResolve;
43435
91346
class WinIfExists;
43436
91347
class WinImportHandler;
43437
91348
class WinMacros;
43438
 
class CMatchSyntax;
43439
 
class ExtGnu;
 
91349
class WinAsm;
 
91350
class WinDeclSpecs;
 
91351
class WinMemberExplSpec;
 
91352
class WinTypeKeywords;
 
91353
class WinFriend;
43440
91354
class ExtAC;
43441
91355
class ExtACBuilderCoupling;
43442
91356
class ExtACSyntaxCoupling;
43443
91357
class ExtACTree;
43444
91358
class ExtACKeywords;
43445
 
class WinAsm;
43446
 
class WinDeclSpecs;
43447
 
class WinMemberExplSpec;
43448
 
class WinTypeKeywords;
 
91359
class ExtGnu;
43449
91360
class PragmaOnceUnitState;
43450
91361
class PragmaOnce;
43451
 
class CCExprResolve;
43452
 
class CExprResolve;
 
91362
class CMatchSyntax;
43453
91363
namespace Puma {
43454
91364
 
43455
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91365
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43456
91366
class CT_GotoStmt : public CT_Statement {
43457
 
#line 43458 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91367
#line 91368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
91368
  friend class ::CCExprResolve;
 
91369
  friend class ::CExprResolve;
43458
91370
  friend class ::WinIfExists;
43459
91371
  friend class ::WinImportHandler;
43460
91372
  friend class ::WinMacros;
43461
 
  friend class ::CMatchSyntax;
43462
 
  friend class ::ExtGnu;
 
91373
  friend class ::WinAsm;
 
91374
  friend class ::WinDeclSpecs;
 
91375
  friend class ::WinMemberExplSpec;
 
91376
  friend class ::WinTypeKeywords;
 
91377
  friend class ::WinFriend;
43463
91378
  friend class ::ExtAC;
43464
91379
  friend class ::ExtACBuilderCoupling;
43465
91380
  friend class ::ExtACSyntaxCoupling;
43466
91381
  friend class ::ExtACTree;
43467
91382
  friend class ::ExtACKeywords;
43468
 
  friend class ::WinAsm;
43469
 
  friend class ::WinDeclSpecs;
43470
 
  friend class ::WinMemberExplSpec;
43471
 
  friend class ::WinTypeKeywords;
 
91383
  friend class ::ExtGnu;
43472
91384
  friend class ::PragmaOnceUnitState;
43473
91385
  friend class ::PragmaOnce;
43474
 
  friend class ::CCExprResolve;
43475
 
  friend class ::CExprResolve;
 
91386
  friend class ::CMatchSyntax;
43476
91387
 
43477
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91388
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43478
91389
 
43479
91390
  CTree *sons[3]; // key, label, semi_colon
43480
91391
 
43481
91392
public:
43482
91393
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
43483
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
91394
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
43484
91395
  }
 
91396
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43485
91397
  static const char *NodeId ();
 
91398
  /** Get the name of the node. Can be compared with NodeId(). */
43486
91399
  const char *NodeName () const { return NodeId (); }
 
91400
  /** Get the number of sons. */
43487
91401
  int Sons () const { return 3; }
 
91402
  /** Get the n-th son.
 
91403
   *  \param n The index of the son.
 
91404
   *  \return The n-th son or NULL. */
43488
91405
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
43489
91406
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
91407
  /** Replace a son.
 
91408
   *  \param old_son The son to replace.
 
91409
   *  \param new_son The new son. */
43490
91410
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43491
91411
    CTree::ReplaceSon (sons, 3, old_son, new_son);
43492
91412
  }
43493
91413
};
43494
91414
 
43495
91415
 
43496
 
#line 43497 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91416
#line 91417 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
43497
91417
} // closed Puma
 
91418
class CCExprResolve;
 
91419
class CExprResolve;
43498
91420
class WinIfExists;
43499
91421
class WinImportHandler;
43500
91422
class WinMacros;
43501
 
class CMatchSyntax;
43502
 
class ExtGnu;
 
91423
class WinAsm;
 
91424
class WinDeclSpecs;
 
91425
class WinMemberExplSpec;
 
91426
class WinTypeKeywords;
 
91427
class WinFriend;
43503
91428
class ExtAC;
43504
91429
class ExtACBuilderCoupling;
43505
91430
class ExtACSyntaxCoupling;
43506
91431
class ExtACTree;
43507
91432
class ExtACKeywords;
43508
 
class WinAsm;
43509
 
class WinDeclSpecs;
43510
 
class WinMemberExplSpec;
43511
 
class WinTypeKeywords;
 
91433
class ExtGnu;
43512
91434
class PragmaOnceUnitState;
43513
91435
class PragmaOnce;
43514
 
class CCExprResolve;
43515
 
class CExprResolve;
 
91436
class CMatchSyntax;
43516
91437
namespace Puma {
43517
91438
 
43518
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91439
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43519
91440
class CT_ReturnStmt : public CT_Statement {
43520
 
#line 43521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91441
#line 91442 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
91442
  friend class ::CCExprResolve;
 
91443
  friend class ::CExprResolve;
43521
91444
  friend class ::WinIfExists;
43522
91445
  friend class ::WinImportHandler;
43523
91446
  friend class ::WinMacros;
43524
 
  friend class ::CMatchSyntax;
43525
 
  friend class ::ExtGnu;
 
91447
  friend class ::WinAsm;
 
91448
  friend class ::WinDeclSpecs;
 
91449
  friend class ::WinMemberExplSpec;
 
91450
  friend class ::WinTypeKeywords;
 
91451
  friend class ::WinFriend;
43526
91452
  friend class ::ExtAC;
43527
91453
  friend class ::ExtACBuilderCoupling;
43528
91454
  friend class ::ExtACSyntaxCoupling;
43529
91455
  friend class ::ExtACTree;
43530
91456
  friend class ::ExtACKeywords;
43531
 
  friend class ::WinAsm;
43532
 
  friend class ::WinDeclSpecs;
43533
 
  friend class ::WinMemberExplSpec;
43534
 
  friend class ::WinTypeKeywords;
 
91457
  friend class ::ExtGnu;
43535
91458
  friend class ::PragmaOnceUnitState;
43536
91459
  friend class ::PragmaOnce;
43537
 
  friend class ::CCExprResolve;
43538
 
  friend class ::CExprResolve;
 
91460
  friend class ::CMatchSyntax;
43539
91461
 
43540
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91462
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43541
91463
 
43542
91464
  CTree *sons[3]; // key, expr, semi_colon
43543
91465
 
43544
91466
public:
43545
91467
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
43546
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
91468
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
43547
91469
  }
 
91470
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43548
91471
  static const char *NodeId ();
 
91472
  /** Get the name of the node. Can be compared with NodeId(). */
43549
91473
  const char *NodeName () const { return NodeId (); }
 
91474
  /** Get the number of sons. */
43550
91475
  int Sons () const { return CTree::Sons (sons, 3); }
 
91476
  /** Get the n-th son.
 
91477
   *  \param n The index of the son.
 
91478
   *  \return The n-th son or NULL. */
43551
91479
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
43552
91480
  CTree *Expr () const { return sons[1]; }
 
91481
  /** Replace a son.
 
91482
   *  \param old_son The son to replace.
 
91483
   *  \param new_son The new son. */
43553
91484
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43554
91485
    CTree::ReplaceSon (sons, 3, old_son, new_son);
43555
91486
  }
43556
91487
};
43557
91488
 
43558
91489
 
43559
 
#line 43560 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91490
#line 91491 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
43560
91491
} // closed Puma
 
91492
class CCExprResolve;
 
91493
class CExprResolve;
43561
91494
class WinIfExists;
43562
91495
class WinImportHandler;
43563
91496
class WinMacros;
43564
 
class CMatchSyntax;
43565
 
class ExtGnu;
 
91497
class WinAsm;
 
91498
class WinDeclSpecs;
 
91499
class WinMemberExplSpec;
 
91500
class WinTypeKeywords;
 
91501
class WinFriend;
43566
91502
class ExtAC;
43567
91503
class ExtACBuilderCoupling;
43568
91504
class ExtACSyntaxCoupling;
43569
91505
class ExtACTree;
43570
91506
class ExtACKeywords;
43571
 
class WinAsm;
43572
 
class WinDeclSpecs;
43573
 
class WinMemberExplSpec;
43574
 
class WinTypeKeywords;
 
91507
class ExtGnu;
43575
91508
class PragmaOnceUnitState;
43576
91509
class PragmaOnce;
43577
 
class CCExprResolve;
43578
 
class CExprResolve;
 
91510
class CMatchSyntax;
43579
91511
namespace Puma {
43580
91512
 
43581
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91513
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43582
91514
class CT_WhileStmt : public CT_Statement, public CSemScope {
43583
 
#line 43584 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91515
#line 91516 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
91516
  friend class ::CCExprResolve;
 
91517
  friend class ::CExprResolve;
43584
91518
  friend class ::WinIfExists;
43585
91519
  friend class ::WinImportHandler;
43586
91520
  friend class ::WinMacros;
43587
 
  friend class ::CMatchSyntax;
43588
 
  friend class ::ExtGnu;
 
91521
  friend class ::WinAsm;
 
91522
  friend class ::WinDeclSpecs;
 
91523
  friend class ::WinMemberExplSpec;
 
91524
  friend class ::WinTypeKeywords;
 
91525
  friend class ::WinFriend;
43589
91526
  friend class ::ExtAC;
43590
91527
  friend class ::ExtACBuilderCoupling;
43591
91528
  friend class ::ExtACSyntaxCoupling;
43592
91529
  friend class ::ExtACTree;
43593
91530
  friend class ::ExtACKeywords;
43594
 
  friend class ::WinAsm;
43595
 
  friend class ::WinDeclSpecs;
43596
 
  friend class ::WinMemberExplSpec;
43597
 
  friend class ::WinTypeKeywords;
 
91531
  friend class ::ExtGnu;
43598
91532
  friend class ::PragmaOnceUnitState;
43599
91533
  friend class ::PragmaOnce;
43600
 
  friend class ::CCExprResolve;
43601
 
  friend class ::CExprResolve;
 
91534
  friend class ::CMatchSyntax;
43602
91535
 
43603
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91536
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43604
91537
 
43605
91538
  CTree *sons[5]; // key, open, cond, close, stmt
43606
91539
 
43607
91540
public:
43608
91541
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
43609
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
91542
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
91543
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
43610
91544
  }
 
91545
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43611
91546
  static const char *NodeId ();
 
91547
  /** Get the name of the node. Can be compared with NodeId(). */
43612
91548
  const char *NodeName () const { return NodeId (); }
 
91549
  /** Get the number of sons. */
43613
91550
  int Sons () const { return 5; }
 
91551
  /** Get the n-th son.
 
91552
   *  \param n The index of the son.
 
91553
   *  \return The n-th son or NULL. */
43614
91554
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
43615
91555
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
43616
91556
  CTree *Condition () const { return sons[2]; }
 
91557
  /** Replace a son.
 
91558
   *  \param old_son The son to replace.
 
91559
   *  \param new_son The new son. */
43617
91560
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43618
91561
    CTree::ReplaceSon (sons, 5, old_son, new_son);
43619
91562
  }
 
91563
  CSemScope *SemScope () const { return (CSemScope*)this; }
43620
91564
};
43621
91565
 
43622
91566
 
43623
 
#line 43624 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91567
#line 91568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
43624
91568
} // closed Puma
 
91569
class CCExprResolve;
 
91570
class CExprResolve;
43625
91571
class WinIfExists;
43626
91572
class WinImportHandler;
43627
91573
class WinMacros;
43628
 
class CMatchSyntax;
43629
 
class ExtGnu;
 
91574
class WinAsm;
 
91575
class WinDeclSpecs;
 
91576
class WinMemberExplSpec;
 
91577
class WinTypeKeywords;
 
91578
class WinFriend;
43630
91579
class ExtAC;
43631
91580
class ExtACBuilderCoupling;
43632
91581
class ExtACSyntaxCoupling;
43633
91582
class ExtACTree;
43634
91583
class ExtACKeywords;
43635
 
class WinAsm;
43636
 
class WinDeclSpecs;
43637
 
class WinMemberExplSpec;
43638
 
class WinTypeKeywords;
 
91584
class ExtGnu;
43639
91585
class PragmaOnceUnitState;
43640
91586
class PragmaOnce;
43641
 
class CCExprResolve;
43642
 
class CExprResolve;
 
91587
class CMatchSyntax;
43643
91588
namespace Puma {
43644
91589
 
43645
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91590
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43646
91591
class CT_DoStmt : public CT_Statement {
43647
 
#line 43648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91592
#line 91593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
91593
  friend class ::CCExprResolve;
 
91594
  friend class ::CExprResolve;
43648
91595
  friend class ::WinIfExists;
43649
91596
  friend class ::WinImportHandler;
43650
91597
  friend class ::WinMacros;
43651
 
  friend class ::CMatchSyntax;
43652
 
  friend class ::ExtGnu;
 
91598
  friend class ::WinAsm;
 
91599
  friend class ::WinDeclSpecs;
 
91600
  friend class ::WinMemberExplSpec;
 
91601
  friend class ::WinTypeKeywords;
 
91602
  friend class ::WinFriend;
43653
91603
  friend class ::ExtAC;
43654
91604
  friend class ::ExtACBuilderCoupling;
43655
91605
  friend class ::ExtACSyntaxCoupling;
43656
91606
  friend class ::ExtACTree;
43657
91607
  friend class ::ExtACKeywords;
43658
 
  friend class ::WinAsm;
43659
 
  friend class ::WinDeclSpecs;
43660
 
  friend class ::WinMemberExplSpec;
43661
 
  friend class ::WinTypeKeywords;
 
91608
  friend class ::ExtGnu;
43662
91609
  friend class ::PragmaOnceUnitState;
43663
91610
  friend class ::PragmaOnce;
43664
 
  friend class ::CCExprResolve;
43665
 
  friend class ::CExprResolve;
 
91611
  friend class ::CMatchSyntax;
43666
91612
 
43667
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91613
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43668
91614
 
43669
91615
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
43670
91616
 
43671
91617
public:
43672
91618
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
43673
91619
             CTree *c, CTree *sc) {
43674
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
43675
 
    sons[5] = c; sons[6] = sc; 
 
91620
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
91621
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
91622
    AddSon (sons[6], sc); 
43676
91623
  }
 
91624
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43677
91625
  static const char *NodeId ();
 
91626
  /** Get the name of the node. Can be compared with NodeId(). */
43678
91627
  const char *NodeName () const { return NodeId (); }
 
91628
  /** Get the number of sons. */
43679
91629
  int Sons () const { return 7; }
 
91630
  /** Get the n-th son.
 
91631
   *  \param n The index of the son.
 
91632
   *  \return The n-th son or NULL. */
43680
91633
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
43681
91634
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
43682
91635
  CTree *Expr () const { return sons[4]; }
 
91636
  /** Replace a son.
 
91637
   *  \param old_son The son to replace.
 
91638
   *  \param new_son The new son. */
43683
91639
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43684
91640
    CTree::ReplaceSon (sons, 7, old_son, new_son);
43685
91641
  }
43686
91642
};
43687
91643
 
43688
91644
 
43689
 
#line 43690 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91645
#line 91646 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
43690
91646
} // closed Puma
 
91647
class CCExprResolve;
 
91648
class CExprResolve;
43691
91649
class WinIfExists;
43692
91650
class WinImportHandler;
43693
91651
class WinMacros;
43694
 
class CMatchSyntax;
43695
 
class ExtGnu;
 
91652
class WinAsm;
 
91653
class WinDeclSpecs;
 
91654
class WinMemberExplSpec;
 
91655
class WinTypeKeywords;
 
91656
class WinFriend;
43696
91657
class ExtAC;
43697
91658
class ExtACBuilderCoupling;
43698
91659
class ExtACSyntaxCoupling;
43699
91660
class ExtACTree;
43700
91661
class ExtACKeywords;
43701
 
class WinAsm;
43702
 
class WinDeclSpecs;
43703
 
class WinMemberExplSpec;
43704
 
class WinTypeKeywords;
 
91662
class ExtGnu;
43705
91663
class PragmaOnceUnitState;
43706
91664
class PragmaOnce;
43707
 
class CCExprResolve;
43708
 
class CExprResolve;
 
91665
class CMatchSyntax;
43709
91666
namespace Puma {
43710
91667
 
43711
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91668
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43712
91669
class CT_ForStmt : public CT_Statement, public CSemScope {
43713
 
#line 43714 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91670
#line 91671 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
91671
  friend class ::CCExprResolve;
 
91672
  friend class ::CExprResolve;
43714
91673
  friend class ::WinIfExists;
43715
91674
  friend class ::WinImportHandler;
43716
91675
  friend class ::WinMacros;
43717
 
  friend class ::CMatchSyntax;
43718
 
  friend class ::ExtGnu;
 
91676
  friend class ::WinAsm;
 
91677
  friend class ::WinDeclSpecs;
 
91678
  friend class ::WinMemberExplSpec;
 
91679
  friend class ::WinTypeKeywords;
 
91680
  friend class ::WinFriend;
43719
91681
  friend class ::ExtAC;
43720
91682
  friend class ::ExtACBuilderCoupling;
43721
91683
  friend class ::ExtACSyntaxCoupling;
43722
91684
  friend class ::ExtACTree;
43723
91685
  friend class ::ExtACKeywords;
43724
 
  friend class ::WinAsm;
43725
 
  friend class ::WinDeclSpecs;
43726
 
  friend class ::WinMemberExplSpec;
43727
 
  friend class ::WinTypeKeywords;
 
91686
  friend class ::ExtGnu;
43728
91687
  friend class ::PragmaOnceUnitState;
43729
91688
  friend class ::PragmaOnce;
43730
 
  friend class ::CCExprResolve;
43731
 
  friend class ::CExprResolve;
 
91689
  friend class ::CMatchSyntax;
43732
91690
 
43733
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91691
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43734
91692
 
43735
91693
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
43736
91694
 
43737
91695
public:
43738
91696
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
43739
91697
              CTree *e, CTree *c, CTree *stmt) {
43740
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
43741
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
91698
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
91699
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
91700
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
43742
91701
  }
 
91702
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43743
91703
  static const char *NodeId ();
 
91704
  /** Get the name of the node. Can be compared with NodeId(). */
43744
91705
  const char *NodeName () const { return NodeId (); }
 
91706
  /** Get the number of sons. */
43745
91707
  int Sons () const { return CTree::Sons (sons, 8); }
 
91708
  /** Get the n-th son.
 
91709
   *  \param n The index of the son.
 
91710
   *  \return The n-th son or NULL. */
43746
91711
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
43747
91712
  CTree *InitStmt () const { return sons[2]; }
43748
91713
  CTree *Condition () const { return sons[3]; }
43749
91714
  CTree *Expr () const { return sons[5]; }
43750
91715
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
91716
  /** Replace a son.
 
91717
   *  \param old_son The son to replace.
 
91718
   *  \param new_son The new son. */
43751
91719
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43752
91720
    CTree::ReplaceSon (sons, 8, old_son, new_son);
43753
91721
  }
 
91722
  CSemScope *SemScope () const { return (CSemScope*)this; }
43754
91723
};
43755
91724
 
43756
91725
 
43757
 
#line 43758 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91726
#line 91727 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
43758
91727
} // closed Puma
 
91728
class CCExprResolve;
 
91729
class CExprResolve;
43759
91730
class WinIfExists;
43760
91731
class WinImportHandler;
43761
91732
class WinMacros;
43762
 
class CMatchSyntax;
43763
 
class ExtGnu;
 
91733
class WinAsm;
 
91734
class WinDeclSpecs;
 
91735
class WinMemberExplSpec;
 
91736
class WinTypeKeywords;
 
91737
class WinFriend;
43764
91738
class ExtAC;
43765
91739
class ExtACBuilderCoupling;
43766
91740
class ExtACSyntaxCoupling;
43767
91741
class ExtACTree;
43768
91742
class ExtACKeywords;
43769
 
class WinAsm;
43770
 
class WinDeclSpecs;
43771
 
class WinMemberExplSpec;
43772
 
class WinTypeKeywords;
 
91743
class ExtGnu;
43773
91744
class PragmaOnceUnitState;
43774
91745
class PragmaOnce;
43775
 
class CCExprResolve;
43776
 
class CExprResolve;
 
91746
class CMatchSyntax;
43777
91747
namespace Puma {
43778
91748
 
43779
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91749
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43780
91750
class CT_Condition : public CT_Decl, public CSemObject {
43781
 
#line 43782 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91751
#line 91752 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
91752
  friend class ::CCExprResolve;
 
91753
  friend class ::CExprResolve;
43782
91754
  friend class ::WinIfExists;
43783
91755
  friend class ::WinImportHandler;
43784
91756
  friend class ::WinMacros;
43785
 
  friend class ::CMatchSyntax;
43786
 
  friend class ::ExtGnu;
 
91757
  friend class ::WinAsm;
 
91758
  friend class ::WinDeclSpecs;
 
91759
  friend class ::WinMemberExplSpec;
 
91760
  friend class ::WinTypeKeywords;
 
91761
  friend class ::WinFriend;
43787
91762
  friend class ::ExtAC;
43788
91763
  friend class ::ExtACBuilderCoupling;
43789
91764
  friend class ::ExtACSyntaxCoupling;
43790
91765
  friend class ::ExtACTree;
43791
91766
  friend class ::ExtACKeywords;
43792
 
  friend class ::WinAsm;
43793
 
  friend class ::WinDeclSpecs;
43794
 
  friend class ::WinMemberExplSpec;
43795
 
  friend class ::WinTypeKeywords;
 
91767
  friend class ::ExtGnu;
43796
91768
  friend class ::PragmaOnceUnitState;
43797
91769
  friend class ::PragmaOnce;
43798
 
  friend class ::CCExprResolve;
43799
 
  friend class ::CExprResolve;
 
91770
  friend class ::CMatchSyntax;
43800
91771
 
43801
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91772
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43802
91773
 
43803
91774
  CTree *sons[3]; // declspecs, declarator, init
43804
91775
 
43805
91776
public:
43806
91777
  CT_Condition (CTree *dsl, CTree *d) {
43807
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
91778
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
43808
91779
  }
 
91780
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43809
91781
  static const char *NodeId ();
 
91782
  /** Get the name of the node. Can be compared with NodeId(). */
43810
91783
  const char *NodeName () const { return NodeId (); }
 
91784
  /** Get the number of sons. */
43811
91785
  int Sons () const { return CTree::Sons (sons, 3); }
 
91786
  /** Get the n-th son.
 
91787
   *  \param n The index of the son.
 
91788
   *  \return The n-th son or NULL. */
43812
91789
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
43813
91790
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
43814
91791
  CTree *Declarator () const { return sons[1]; }
43815
91792
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
43816
91793
  CSemObject *SemObject () const { return (CSemObject*)this; }
43817
 
  void Initializer (CTree *i) { sons[2] = i; }
 
91794
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
91795
  /** Replace a son.
 
91796
   *  \param old_son The son to replace.
 
91797
   *  \param new_son The new son. */
43818
91798
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43819
91799
    CTree::ReplaceSon (sons, 3, old_son, new_son);
43820
91800
  }
43827
91807
/*****************************************************************************/
43828
91808
 
43829
91809
 
43830
 
#line 43831 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91810
#line 91811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
43831
91811
} // closed Puma
 
91812
class CCExprResolve;
 
91813
class CExprResolve;
43832
91814
class WinIfExists;
43833
91815
class WinImportHandler;
43834
91816
class WinMacros;
43835
 
class CMatchSyntax;
43836
 
class ExtGnu;
 
91817
class WinAsm;
 
91818
class WinDeclSpecs;
 
91819
class WinMemberExplSpec;
 
91820
class WinTypeKeywords;
 
91821
class WinFriend;
43837
91822
class ExtAC;
43838
91823
class ExtACBuilderCoupling;
43839
91824
class ExtACSyntaxCoupling;
43840
91825
class ExtACTree;
43841
91826
class ExtACKeywords;
43842
 
class WinAsm;
43843
 
class WinDeclSpecs;
43844
 
class WinMemberExplSpec;
43845
 
class WinTypeKeywords;
 
91827
class ExtGnu;
43846
91828
class PragmaOnceUnitState;
43847
91829
class PragmaOnce;
43848
 
class CCExprResolve;
43849
 
class CExprResolve;
43850
 
namespace Puma {
43851
 
 
43852
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91830
class CMatchSyntax;
 
91831
namespace Puma {
 
91832
 
 
91833
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91834
 
 
91835
#line 91836 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
91836
} // closed Puma
 
91837
 
 
91838
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
91839
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
91840
#include "ExtACTree.ah"
 
91841
#endif
 
91842
namespace Puma {
 
91843
 
 
91844
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43853
91845
class CT_ClassDef : public CT_Decl, public CSemObject {
43854
 
#line 43855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91846
#line 91847 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
91847
  friend class ::CCExprResolve;
 
91848
  friend class ::CExprResolve;
43855
91849
  friend class ::WinIfExists;
43856
91850
  friend class ::WinImportHandler;
43857
91851
  friend class ::WinMacros;
43858
 
  friend class ::CMatchSyntax;
43859
 
  friend class ::ExtGnu;
 
91852
  friend class ::WinAsm;
 
91853
  friend class ::WinDeclSpecs;
 
91854
  friend class ::WinMemberExplSpec;
 
91855
  friend class ::WinTypeKeywords;
 
91856
  friend class ::WinFriend;
43860
91857
  friend class ::ExtAC;
43861
91858
  friend class ::ExtACBuilderCoupling;
43862
91859
  friend class ::ExtACSyntaxCoupling;
43863
91860
  friend class ::ExtACTree;
43864
91861
  friend class ::ExtACKeywords;
43865
 
  friend class ::WinAsm;
43866
 
  friend class ::WinDeclSpecs;
43867
 
  friend class ::WinMemberExplSpec;
43868
 
  friend class ::WinTypeKeywords;
 
91862
  friend class ::ExtGnu;
43869
91863
  friend class ::PragmaOnceUnitState;
43870
91864
  friend class ::PragmaOnce;
43871
 
  friend class ::CCExprResolve;
43872
 
  friend class ::CExprResolve;
 
91865
  friend class ::CMatchSyntax;
43873
91866
 
43874
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91867
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43875
91868
 
43876
91869
   
43877
 
#line 43878 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91870
#line 91871 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
43878
91871
 
43879
91872
  struct __ac_wrapper_sons {
43880
91873
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
43889
91882
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
43890
91883
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
43891
91884
  } sons
43892
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91885
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43893
91886
 
43894
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91887
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43895
91888
; // key, name, bases, members
43896
91889
  CTree *obj_decl;
43897
91890
 
43898
91891
public:
43899
91892
  
43900
 
#line 43901 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
43901
 
 
43902
 
 
43903
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
43904
 
  typedef void Result;
43905
 
  typedef ::Puma::CT_ClassDef That;
43906
 
  typedef ::Puma::CT_ClassDef Target;
43907
 
  static const int JPID = 4;
 
91893
#line 91894 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
91894
 
 
91895
 
 
91896
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
91897
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
91898
  typedef TResult Result;
 
91899
  typedef TThat   That;
 
91900
  typedef TTarget Target;
 
91901
  enum { ARGS = TArgs::ARGS };
 
91902
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
91903
  static const int JPID = 55;
43908
91904
  static const AC::JPType JPTYPE = (AC::JPType)16;
43909
91905
  struct Res {
43910
91906
    typedef void Type;
43911
91907
    typedef void ReferredType;
43912
91908
  };
43913
 
  enum { ARGS = 3 };
43914
 
  template <int I, int DUMMY = 0> struct Arg {
43915
 
    typedef void Type;
43916
 
    typedef void ReferredType;
43917
 
  };
43918
 
  template <int DUMMY> struct Arg<0, DUMMY> {
43919
 
    typedef ::Puma::CTree * Type;
43920
 
    typedef ::Puma::CTree * ReferredType;
43921
 
  };
43922
 
  template <int DUMMY> struct Arg<1, DUMMY> {
43923
 
    typedef ::Puma::CTree * Type;
43924
 
    typedef ::Puma::CTree * ReferredType;
43925
 
  };
43926
 
  template <int DUMMY> struct Arg<2, DUMMY> {
43927
 
    typedef ::Puma::CTree * Type;
43928
 
    typedef ::Puma::CTree * ReferredType;
43929
 
  };
43930
91909
 
43931
91910
  That *_that;
43932
91911
 
43935
91914
};
43936
91915
 
43937
91916
 
43938
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91917
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43939
91918
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
43940
 
#line 43941 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91919
#line 91920 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
43941
91920
{
43942
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
43943
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
43944
 
this->__exec_old_C1(arg0, arg1, arg2);
43945
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
43946
 
 
 
91921
  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;
 
91922
    __TJP tjp;
 
91923
  tjp._that =  (__TJP::That*)this;
 
91924
    this->__exec_old_C1(arg0, arg1, arg2);
 
91925
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
91926
  
43947
91927
}
43948
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
43949
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91928
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
91929
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43950
91930
{
43951
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
91931
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
91932
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
43952
91933
  }
 
91934
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43953
91935
  static const char *NodeId ();
 
91936
  /** Get the name of the node. Can be compared with NodeId(). */
43954
91937
  const char *NodeName () const { return NodeId (); }
 
91938
  /** Get the number of sons. */
43955
91939
  int Sons () const { return CTree::Sons (sons, 4); }
 
91940
  /** Get the n-th son.
 
91941
   *  \param n The index of the son.
 
91942
   *  \return The n-th son or NULL. */
43956
91943
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
43957
91944
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
43958
91945
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
43959
91946
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
43960
91947
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
43961
91948
  CSemObject *SemObject () const { return (CSemObject*)this; }
43962
 
  void Members (CTree *m) { sons[3] = m; }
43963
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
43964
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
91949
  void Members (CTree *m) { AddSon (sons[3], m); }
 
91950
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
91951
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
91952
  /** Replace a son.
 
91953
   *  \param old_son The son to replace.
 
91954
   *  \param new_son The new son. */
43965
91955
  void ReplaceSon (CTree *old_son, CTree *new_son) {
43966
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
43967
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
91956
    CTree::ReplaceSon (sons, 4, old_son, new_son);
43968
91957
  }
43969
91958
   private:
43970
91959
 
43971
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
43972
 
 CTree * _intro_members ;
 
91960
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
91961
 Puma :: CTree * _intro_members ;
 
91962
Puma :: CTree * _base_intros ;
43973
91963
public :
43974
 
CTree * IntroMembers ( ) const { return _intro_members ; }
43975
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
43976
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43977
 
 
43978
 
#line 43979 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
43979
 
 
43980
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
43981
 
  typedef void Result;
43982
 
  typedef ::Puma::CT_ClassDef That;
43983
 
  typedef ::Puma::CT_ClassDef Target;
43984
 
  static const int JPID = 4;
 
91964
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
91965
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
91966
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
91967
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
91968
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91969
 
 
91970
#line 91971 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
91971
 
 
91972
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
91973
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
91974
  typedef TResult Result;
 
91975
  typedef TThat   That;
 
91976
  typedef TTarget Target;
 
91977
  enum { ARGS = TArgs::ARGS };
 
91978
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
91979
  static const int JPID = 6191;
43985
91980
  static const AC::JPType JPTYPE = (AC::JPType)16;
43986
91981
  struct Res {
43987
91982
    typedef void Type;
43988
91983
    typedef void ReferredType;
43989
91984
  };
43990
 
  enum { ARGS = 1 };
43991
 
  template <int I, int DUMMY = 0> struct Arg {
43992
 
    typedef void Type;
43993
 
    typedef void ReferredType;
43994
 
  };
43995
 
  template <int DUMMY> struct Arg<0, DUMMY> {
43996
 
    typedef const ::Puma::CT_ClassDef & Type;
43997
 
    typedef const ::Puma::CT_ClassDef ReferredType;
43998
 
  };
43999
91985
 
44000
91986
  That *_that;
44001
91987
 
44004
91990
};
44005
91991
 
44006
91992
 
44007
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91993
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44008
91994
 
44009
 
#line 44010 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
91995
#line 91996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
44010
91996
 
44011
91997
public:
44012
 
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) {
44013
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
44014
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
44015
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
91998
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) {
 
91999
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
92000
  __TJP tjp;
 
92001
  tjp._that =  (__TJP::That*)this;
 
92002
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
44016
92003
 
44017
92004
}
44018
92005
 
44019
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44020
 
 
44021
 
#line 44022 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
44022
 
 
44023
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
44024
 
  typedef void Result;
44025
 
  typedef ::Puma::CT_ClassDef That;
44026
 
  typedef ::Puma::CT_ClassDef Target;
44027
 
  static const int JPID = 4;
 
92006
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92007
 
 
92008
#line 92009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
92009
 
 
92010
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
92011
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
92012
  typedef TResult Result;
 
92013
  typedef TThat   That;
 
92014
  typedef TTarget Target;
 
92015
  enum { ARGS = TArgs::ARGS };
 
92016
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
92017
  static const int JPID = 6189;
44028
92018
  static const AC::JPType JPTYPE = (AC::JPType)32;
44029
92019
  struct Res {
44030
92020
    typedef void Type;
44031
92021
    typedef void ReferredType;
44032
92022
  };
44033
 
  enum { ARGS = 0 };
44034
 
  template <int I, int DUMMY = 0> struct Arg {
44035
 
    typedef void Type;
44036
 
    typedef void ReferredType;
44037
 
  };
44038
92023
 
44039
92024
  That *_that;
44040
92025
 
44043
92028
};
44044
92029
 
44045
92030
 
44046
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92031
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44047
92032
 
44048
 
#line 44049 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92033
#line 92034 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
44049
92034
 
44050
92035
public:
44051
92036
inline ~CT_ClassDef () {
44052
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
44053
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
44054
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
92037
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
92038
  __TJP tjp;
 
92039
  tjp._that =  (__TJP::That*)this;
 
92040
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
44055
92041
 
44056
92042
}
44057
92043
 
44058
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92044
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44059
92045
};
44060
92046
      
44061
92047
 
44062
 
#line 44063 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92048
#line 92049 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
44063
92049
} // closed Puma
 
92050
class CCExprResolve;
 
92051
class CExprResolve;
44064
92052
class WinIfExists;
44065
92053
class WinImportHandler;
44066
92054
class WinMacros;
44067
 
class CMatchSyntax;
44068
 
class ExtGnu;
 
92055
class WinAsm;
 
92056
class WinDeclSpecs;
 
92057
class WinMemberExplSpec;
 
92058
class WinTypeKeywords;
 
92059
class WinFriend;
44069
92060
class ExtAC;
44070
92061
class ExtACBuilderCoupling;
44071
92062
class ExtACSyntaxCoupling;
44072
92063
class ExtACTree;
44073
92064
class ExtACKeywords;
44074
 
class WinAsm;
44075
 
class WinDeclSpecs;
44076
 
class WinMemberExplSpec;
44077
 
class WinTypeKeywords;
 
92065
class ExtGnu;
44078
92066
class PragmaOnceUnitState;
44079
92067
class PragmaOnce;
44080
 
class CCExprResolve;
44081
 
class CExprResolve;
 
92068
class CMatchSyntax;
44082
92069
namespace Puma {
44083
92070
 
44084
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92071
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44085
92072
class CT_UnionDef : public CT_ClassDef {
44086
 
#line 44087 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92073
#line 92074 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
92074
  friend class ::CCExprResolve;
 
92075
  friend class ::CExprResolve;
44087
92076
  friend class ::WinIfExists;
44088
92077
  friend class ::WinImportHandler;
44089
92078
  friend class ::WinMacros;
44090
 
  friend class ::CMatchSyntax;
44091
 
  friend class ::ExtGnu;
 
92079
  friend class ::WinAsm;
 
92080
  friend class ::WinDeclSpecs;
 
92081
  friend class ::WinMemberExplSpec;
 
92082
  friend class ::WinTypeKeywords;
 
92083
  friend class ::WinFriend;
44092
92084
  friend class ::ExtAC;
44093
92085
  friend class ::ExtACBuilderCoupling;
44094
92086
  friend class ::ExtACSyntaxCoupling;
44095
92087
  friend class ::ExtACTree;
44096
92088
  friend class ::ExtACKeywords;
44097
 
  friend class ::WinAsm;
44098
 
  friend class ::WinDeclSpecs;
44099
 
  friend class ::WinMemberExplSpec;
44100
 
  friend class ::WinTypeKeywords;
 
92089
  friend class ::ExtGnu;
44101
92090
  friend class ::PragmaOnceUnitState;
44102
92091
  friend class ::PragmaOnce;
44103
 
  friend class ::CCExprResolve;
44104
 
  friend class ::CExprResolve;
 
92092
  friend class ::CMatchSyntax;
44105
92093
 
44106
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92094
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44107
92095
 
44108
92096
public:
44109
92097
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
44110
92098
  static const char *NodeId ();
 
92099
  /** Get the name of the node. Can be compared with NodeId(). */
44111
92100
  const char *NodeName () const { return NodeId (); }
44112
92101
};
44113
92102
      
44114
92103
 
44115
 
#line 44116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92104
#line 92105 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
44116
92105
} // closed Puma
 
92106
class CCExprResolve;
 
92107
class CExprResolve;
44117
92108
class WinIfExists;
44118
92109
class WinImportHandler;
44119
92110
class WinMacros;
44120
 
class CMatchSyntax;
44121
 
class ExtGnu;
 
92111
class WinAsm;
 
92112
class WinDeclSpecs;
 
92113
class WinMemberExplSpec;
 
92114
class WinTypeKeywords;
 
92115
class WinFriend;
44122
92116
class ExtAC;
44123
92117
class ExtACBuilderCoupling;
44124
92118
class ExtACSyntaxCoupling;
44125
92119
class ExtACTree;
44126
92120
class ExtACKeywords;
44127
 
class WinAsm;
44128
 
class WinDeclSpecs;
44129
 
class WinMemberExplSpec;
44130
 
class WinTypeKeywords;
 
92121
class ExtGnu;
44131
92122
class PragmaOnceUnitState;
44132
92123
class PragmaOnce;
44133
 
class CCExprResolve;
44134
 
class CExprResolve;
 
92124
class CMatchSyntax;
44135
92125
namespace Puma {
44136
92126
 
44137
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92127
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44138
92128
class CT_MembList : public CT_DeclList, public CSemScope {
44139
 
#line 44140 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92129
#line 92130 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
92130
  friend class ::CCExprResolve;
 
92131
  friend class ::CExprResolve;
44140
92132
  friend class ::WinIfExists;
44141
92133
  friend class ::WinImportHandler;
44142
92134
  friend class ::WinMacros;
44143
 
  friend class ::CMatchSyntax;
44144
 
  friend class ::ExtGnu;
 
92135
  friend class ::WinAsm;
 
92136
  friend class ::WinDeclSpecs;
 
92137
  friend class ::WinMemberExplSpec;
 
92138
  friend class ::WinTypeKeywords;
 
92139
  friend class ::WinFriend;
44145
92140
  friend class ::ExtAC;
44146
92141
  friend class ::ExtACBuilderCoupling;
44147
92142
  friend class ::ExtACSyntaxCoupling;
44148
92143
  friend class ::ExtACTree;
44149
92144
  friend class ::ExtACKeywords;
44150
 
  friend class ::WinAsm;
44151
 
  friend class ::WinDeclSpecs;
44152
 
  friend class ::WinMemberExplSpec;
44153
 
  friend class ::WinTypeKeywords;
 
92145
  friend class ::ExtGnu;
44154
92146
  friend class ::PragmaOnceUnitState;
44155
92147
  friend class ::PragmaOnce;
44156
 
  friend class ::CCExprResolve;
44157
 
  friend class ::CExprResolve;
 
92148
  friend class ::CMatchSyntax;
44158
92149
 
44159
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92150
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44160
92151
 
44161
92152
public:
44162
92153
  CT_MembList (int size = 10, int incr = 10) : 
44163
92154
    CT_DeclList (size, incr) {}
 
92155
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44164
92156
  static const char *NodeId ();
 
92157
  /** Get the name of the node. Can be compared with NodeId(). */
44165
92158
  const char *NodeName () const { return NodeId (); }
 
92159
  CSemScope *SemScope () const { return (CSemScope*)this; }
44166
92160
};
44167
92161
 
44168
92162
 
44169
 
#line 44170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92163
#line 92164 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
44170
92164
} // closed Puma
 
92165
class CCExprResolve;
 
92166
class CExprResolve;
44171
92167
class WinIfExists;
44172
92168
class WinImportHandler;
44173
92169
class WinMacros;
44174
 
class CMatchSyntax;
44175
 
class ExtGnu;
 
92170
class WinAsm;
 
92171
class WinDeclSpecs;
 
92172
class WinMemberExplSpec;
 
92173
class WinTypeKeywords;
 
92174
class WinFriend;
44176
92175
class ExtAC;
44177
92176
class ExtACBuilderCoupling;
44178
92177
class ExtACSyntaxCoupling;
44179
92178
class ExtACTree;
44180
92179
class ExtACKeywords;
44181
 
class WinAsm;
44182
 
class WinDeclSpecs;
44183
 
class WinMemberExplSpec;
44184
 
class WinTypeKeywords;
 
92180
class ExtGnu;
44185
92181
class PragmaOnceUnitState;
44186
92182
class PragmaOnce;
44187
 
class CCExprResolve;
44188
 
class CExprResolve;
 
92183
class CMatchSyntax;
44189
92184
namespace Puma {
44190
92185
 
44191
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92186
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44192
92187
class CT_MembInitList : public CT_List, public CSemScope {
44193
 
#line 44194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92188
#line 92189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
92189
  friend class ::CCExprResolve;
 
92190
  friend class ::CExprResolve;
44194
92191
  friend class ::WinIfExists;
44195
92192
  friend class ::WinImportHandler;
44196
92193
  friend class ::WinMacros;
44197
 
  friend class ::CMatchSyntax;
44198
 
  friend class ::ExtGnu;
 
92194
  friend class ::WinAsm;
 
92195
  friend class ::WinDeclSpecs;
 
92196
  friend class ::WinMemberExplSpec;
 
92197
  friend class ::WinTypeKeywords;
 
92198
  friend class ::WinFriend;
44199
92199
  friend class ::ExtAC;
44200
92200
  friend class ::ExtACBuilderCoupling;
44201
92201
  friend class ::ExtACSyntaxCoupling;
44202
92202
  friend class ::ExtACTree;
44203
92203
  friend class ::ExtACKeywords;
44204
 
  friend class ::WinAsm;
44205
 
  friend class ::WinDeclSpecs;
44206
 
  friend class ::WinMemberExplSpec;
44207
 
  friend class ::WinTypeKeywords;
 
92204
  friend class ::ExtGnu;
44208
92205
  friend class ::PragmaOnceUnitState;
44209
92206
  friend class ::PragmaOnce;
44210
 
  friend class ::CCExprResolve;
44211
 
  friend class ::CExprResolve;
 
92207
  friend class ::CMatchSyntax;
44212
92208
 
44213
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92209
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44214
92210
 
44215
92211
public:
44216
92212
  CT_MembInitList (int size = 2) : 
44217
92213
    CT_List (size, 2, CT_List::OPEN) {}
44218
92214
  static const char *NodeId ();
 
92215
  /** Get the name of the node. Can be compared with NodeId(). */
44219
92216
  const char *NodeName () const { return NodeId (); }
 
92217
  CSemScope *SemScope () const { return (CSemScope*)this; }
44220
92218
};
44221
92219
 
44222
92220
 
44223
 
#line 44224 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92221
#line 92222 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
44224
92222
} // closed Puma
 
92223
class CCExprResolve;
 
92224
class CExprResolve;
44225
92225
class WinIfExists;
44226
92226
class WinImportHandler;
44227
92227
class WinMacros;
44228
 
class CMatchSyntax;
44229
 
class ExtGnu;
 
92228
class WinAsm;
 
92229
class WinDeclSpecs;
 
92230
class WinMemberExplSpec;
 
92231
class WinTypeKeywords;
 
92232
class WinFriend;
44230
92233
class ExtAC;
44231
92234
class ExtACBuilderCoupling;
44232
92235
class ExtACSyntaxCoupling;
44233
92236
class ExtACTree;
44234
92237
class ExtACKeywords;
44235
 
class WinAsm;
44236
 
class WinDeclSpecs;
44237
 
class WinMemberExplSpec;
44238
 
class WinTypeKeywords;
 
92238
class ExtGnu;
44239
92239
class PragmaOnceUnitState;
44240
92240
class PragmaOnce;
44241
 
class CCExprResolve;
44242
 
class CExprResolve;
44243
 
namespace Puma {
44244
 
 
44245
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92241
class CMatchSyntax;
 
92242
namespace Puma {
 
92243
 
 
92244
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92245
 
 
92246
#line 92247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
92247
} // closed Puma
 
92248
 
 
92249
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92250
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92251
#include "CCExprResolveH.ah"
 
92252
#endif
 
92253
namespace Puma {
 
92254
 
 
92255
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92256
 
 
92257
#line 92258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
92258
} // closed Puma
 
92259
 
 
92260
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92261
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92262
#include "CExprResolveH.ah"
 
92263
#endif
 
92264
namespace Puma {
 
92265
 
 
92266
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44246
92267
class CT_MembInit : public CT_Expression, public CSemObject {
44247
 
#line 44248 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92268
#line 92269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
92269
  friend class ::CCExprResolve;
 
92270
  friend class ::CExprResolve;
44248
92271
  friend class ::WinIfExists;
44249
92272
  friend class ::WinImportHandler;
44250
92273
  friend class ::WinMacros;
44251
 
  friend class ::CMatchSyntax;
44252
 
  friend class ::ExtGnu;
 
92274
  friend class ::WinAsm;
 
92275
  friend class ::WinDeclSpecs;
 
92276
  friend class ::WinMemberExplSpec;
 
92277
  friend class ::WinTypeKeywords;
 
92278
  friend class ::WinFriend;
44253
92279
  friend class ::ExtAC;
44254
92280
  friend class ::ExtACBuilderCoupling;
44255
92281
  friend class ::ExtACSyntaxCoupling;
44256
92282
  friend class ::ExtACTree;
44257
92283
  friend class ::ExtACKeywords;
44258
 
  friend class ::WinAsm;
44259
 
  friend class ::WinDeclSpecs;
44260
 
  friend class ::WinMemberExplSpec;
44261
 
  friend class ::WinTypeKeywords;
 
92284
  friend class ::ExtGnu;
44262
92285
  friend class ::PragmaOnceUnitState;
44263
92286
  friend class ::PragmaOnce;
44264
 
  friend class ::CCExprResolve;
44265
 
  friend class ::CExprResolve;
 
92287
  friend class ::CMatchSyntax;
44266
92288
 
44267
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92289
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44268
92290
 
44269
92291
  CTree *sons[2]; // name, init
44270
92292
 
44271
92293
public:
44272
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
92294
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
92295
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44273
92296
  static const char *NodeId ();
 
92297
  /** Get the name of the node. Can be compared with NodeId(). */
44274
92298
  const char *NodeName () const { return NodeId (); }
 
92299
  /** Get the number of sons. */
44275
92300
  int Sons () const { return 2; }
 
92301
  /** Get the n-th son.
 
92302
   *  \param n The index of the son.
 
92303
   *  \return The n-th son or NULL. */
44276
92304
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
92305
  /** Replace a son.
 
92306
   *  \param old_son The son to replace.
 
92307
   *  \param new_son The new son. */
44277
92308
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44278
92309
    CTree::ReplaceSon (sons, 2, old_son, new_son);
44279
92310
  }
44283
92314
   private:
44284
92315
  typedef CT_MembInit CCExprResolveExpr;
44285
92316
 
44286
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
92317
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
44287
92318
 public :
44288
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
92319
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
44289
92320
  typedef CT_MembInit CExprResolveExpr;
44290
92321
 
44291
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
92322
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
44292
92323
 public :
44293
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
44294
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92324
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
92325
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44295
92326
};
44296
92327
 
44297
92328
 
44298
 
#line 44299 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92329
#line 92330 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
44299
92330
} // closed Puma
 
92331
class CCExprResolve;
 
92332
class CExprResolve;
44300
92333
class WinIfExists;
44301
92334
class WinImportHandler;
44302
92335
class WinMacros;
44303
 
class CMatchSyntax;
44304
 
class ExtGnu;
 
92336
class WinAsm;
 
92337
class WinDeclSpecs;
 
92338
class WinMemberExplSpec;
 
92339
class WinTypeKeywords;
 
92340
class WinFriend;
44305
92341
class ExtAC;
44306
92342
class ExtACBuilderCoupling;
44307
92343
class ExtACSyntaxCoupling;
44308
92344
class ExtACTree;
44309
92345
class ExtACKeywords;
44310
 
class WinAsm;
44311
 
class WinDeclSpecs;
44312
 
class WinMemberExplSpec;
44313
 
class WinTypeKeywords;
 
92346
class ExtGnu;
44314
92347
class PragmaOnceUnitState;
44315
92348
class PragmaOnce;
44316
 
class CCExprResolve;
44317
 
class CExprResolve;
 
92349
class CMatchSyntax;
44318
92350
namespace Puma {
44319
92351
 
44320
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92352
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44321
92353
class CT_BaseSpecList : public CT_List {
44322
 
#line 44323 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92354
#line 92355 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
92355
  friend class ::CCExprResolve;
 
92356
  friend class ::CExprResolve;
44323
92357
  friend class ::WinIfExists;
44324
92358
  friend class ::WinImportHandler;
44325
92359
  friend class ::WinMacros;
44326
 
  friend class ::CMatchSyntax;
44327
 
  friend class ::ExtGnu;
 
92360
  friend class ::WinAsm;
 
92361
  friend class ::WinDeclSpecs;
 
92362
  friend class ::WinMemberExplSpec;
 
92363
  friend class ::WinTypeKeywords;
 
92364
  friend class ::WinFriend;
44328
92365
  friend class ::ExtAC;
44329
92366
  friend class ::ExtACBuilderCoupling;
44330
92367
  friend class ::ExtACSyntaxCoupling;
44331
92368
  friend class ::ExtACTree;
44332
92369
  friend class ::ExtACKeywords;
44333
 
  friend class ::WinAsm;
44334
 
  friend class ::WinDeclSpecs;
44335
 
  friend class ::WinMemberExplSpec;
44336
 
  friend class ::WinTypeKeywords;
 
92370
  friend class ::ExtGnu;
44337
92371
  friend class ::PragmaOnceUnitState;
44338
92372
  friend class ::PragmaOnce;
44339
 
  friend class ::CCExprResolve;
44340
 
  friend class ::CExprResolve;
 
92373
  friend class ::CMatchSyntax;
44341
92374
 
44342
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92375
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44343
92376
 
44344
92377
public:
44345
92378
  CT_BaseSpecList (int size = 2) : 
44346
92379
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
92380
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44347
92381
  static const char *NodeId ();
 
92382
  /** Get the name of the node. Can be compared with NodeId(). */
44348
92383
  const char *NodeName () const { return NodeId (); }
44349
92384
};
44350
92385
 
44351
92386
 
44352
 
#line 44353 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92387
#line 92388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
44353
92388
} // closed Puma
 
92389
class CCExprResolve;
 
92390
class CExprResolve;
44354
92391
class WinIfExists;
44355
92392
class WinImportHandler;
44356
92393
class WinMacros;
44357
 
class CMatchSyntax;
44358
 
class ExtGnu;
 
92394
class WinAsm;
 
92395
class WinDeclSpecs;
 
92396
class WinMemberExplSpec;
 
92397
class WinTypeKeywords;
 
92398
class WinFriend;
44359
92399
class ExtAC;
44360
92400
class ExtACBuilderCoupling;
44361
92401
class ExtACSyntaxCoupling;
44362
92402
class ExtACTree;
44363
92403
class ExtACKeywords;
44364
 
class WinAsm;
44365
 
class WinDeclSpecs;
44366
 
class WinMemberExplSpec;
44367
 
class WinTypeKeywords;
 
92404
class ExtGnu;
44368
92405
class PragmaOnceUnitState;
44369
92406
class PragmaOnce;
44370
 
class CCExprResolve;
44371
 
class CExprResolve;
 
92407
class CMatchSyntax;
44372
92408
namespace Puma {
44373
92409
 
44374
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92410
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44375
92411
class CT_AccessSpec : public CTree {
44376
 
#line 44377 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92412
#line 92413 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
92413
  friend class ::CCExprResolve;
 
92414
  friend class ::CExprResolve;
44377
92415
  friend class ::WinIfExists;
44378
92416
  friend class ::WinImportHandler;
44379
92417
  friend class ::WinMacros;
44380
 
  friend class ::CMatchSyntax;
44381
 
  friend class ::ExtGnu;
 
92418
  friend class ::WinAsm;
 
92419
  friend class ::WinDeclSpecs;
 
92420
  friend class ::WinMemberExplSpec;
 
92421
  friend class ::WinTypeKeywords;
 
92422
  friend class ::WinFriend;
44382
92423
  friend class ::ExtAC;
44383
92424
  friend class ::ExtACBuilderCoupling;
44384
92425
  friend class ::ExtACSyntaxCoupling;
44385
92426
  friend class ::ExtACTree;
44386
92427
  friend class ::ExtACKeywords;
44387
 
  friend class ::WinAsm;
44388
 
  friend class ::WinDeclSpecs;
44389
 
  friend class ::WinMemberExplSpec;
44390
 
  friend class ::WinTypeKeywords;
 
92428
  friend class ::ExtGnu;
44391
92429
  friend class ::PragmaOnceUnitState;
44392
92430
  friend class ::PragmaOnce;
44393
 
  friend class ::CCExprResolve;
44394
 
  friend class ::CExprResolve;
 
92431
  friend class ::CMatchSyntax;
44395
92432
 
44396
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92433
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44397
92434
 
44398
92435
  CTree *sons[2]; // access, colon
44399
92436
 
44400
92437
public:
44401
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
92438
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
92439
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44402
92440
  static const char *NodeId ();
 
92441
  /** Get the name of the node. Can be compared with NodeId(). */
44403
92442
  const char *NodeName () const { return NodeId (); }
 
92443
  /** Get the number of sons. */
44404
92444
  int Sons () const { return 2; }
 
92445
  /** Get the n-th son.
 
92446
   *  \param n The index of the son.
 
92447
   *  \return The n-th son or NULL. */
44405
92448
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
44406
92449
  int Access () const { return sons[0]->token ()->type (); }
 
92450
  /** Replace a son.
 
92451
   *  \param old_son The son to replace.
 
92452
   *  \param new_son The new son. */
44407
92453
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44408
92454
    CTree::ReplaceSon (sons, 2, old_son, new_son);
44409
92455
  }
44410
92456
};
44411
92457
 
44412
92458
 
44413
 
#line 44414 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92459
#line 92460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
44414
92460
} // closed Puma
 
92461
class CCExprResolve;
 
92462
class CExprResolve;
44415
92463
class WinIfExists;
44416
92464
class WinImportHandler;
44417
92465
class WinMacros;
44418
 
class CMatchSyntax;
44419
 
class ExtGnu;
 
92466
class WinAsm;
 
92467
class WinDeclSpecs;
 
92468
class WinMemberExplSpec;
 
92469
class WinTypeKeywords;
 
92470
class WinFriend;
44420
92471
class ExtAC;
44421
92472
class ExtACBuilderCoupling;
44422
92473
class ExtACSyntaxCoupling;
44423
92474
class ExtACTree;
44424
92475
class ExtACKeywords;
44425
 
class WinAsm;
44426
 
class WinDeclSpecs;
44427
 
class WinMemberExplSpec;
44428
 
class WinTypeKeywords;
 
92476
class ExtGnu;
44429
92477
class PragmaOnceUnitState;
44430
92478
class PragmaOnce;
44431
 
class CCExprResolve;
44432
 
class CExprResolve;
 
92479
class CMatchSyntax;
44433
92480
namespace Puma {
44434
92481
 
44435
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92482
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44436
92483
class CT_BaseSpec : public CTree {
44437
 
#line 44438 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92484
#line 92485 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
92485
  friend class ::CCExprResolve;
 
92486
  friend class ::CExprResolve;
44438
92487
  friend class ::WinIfExists;
44439
92488
  friend class ::WinImportHandler;
44440
92489
  friend class ::WinMacros;
44441
 
  friend class ::CMatchSyntax;
44442
 
  friend class ::ExtGnu;
 
92490
  friend class ::WinAsm;
 
92491
  friend class ::WinDeclSpecs;
 
92492
  friend class ::WinMemberExplSpec;
 
92493
  friend class ::WinTypeKeywords;
 
92494
  friend class ::WinFriend;
44443
92495
  friend class ::ExtAC;
44444
92496
  friend class ::ExtACBuilderCoupling;
44445
92497
  friend class ::ExtACSyntaxCoupling;
44446
92498
  friend class ::ExtACTree;
44447
92499
  friend class ::ExtACKeywords;
44448
 
  friend class ::WinAsm;
44449
 
  friend class ::WinDeclSpecs;
44450
 
  friend class ::WinMemberExplSpec;
44451
 
  friend class ::WinTypeKeywords;
 
92500
  friend class ::ExtGnu;
44452
92501
  friend class ::PragmaOnceUnitState;
44453
92502
  friend class ::PragmaOnce;
44454
 
  friend class ::CCExprResolve;
44455
 
  friend class ::CExprResolve;
 
92503
  friend class ::CMatchSyntax;
44456
92504
 
44457
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92505
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44458
92506
 
44459
92507
  CTree *sons[3]; // virtual, access, name
44460
92508
 
44461
92509
public:
44462
92510
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
44463
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
92511
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
44464
92512
  }
 
92513
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44465
92514
  static const char *NodeId ();
 
92515
  /** Get the name of the node. Can be compared with NodeId(). */
44466
92516
  const char *NodeName () const { return NodeId (); }
 
92517
  /** Get the number of sons. */
44467
92518
  int Sons () const { return CTree::Sons (sons, 3); }
 
92519
  /** Get the n-th son.
 
92520
   *  \param n The index of the son.
 
92521
   *  \return The n-th son or NULL. */
44468
92522
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
44469
92523
  int Access () const { return sons[1]->token ()->type (); }
44470
92524
  CTree *AccessSpec () const { return sons[1]; }
44471
92525
  CTree *Virtual () const { return sons[0]; }
44472
92526
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
92527
  /** Replace a son.
 
92528
   *  \param old_son The son to replace.
 
92529
   *  \param new_son The new son. */
44473
92530
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44474
92531
    CTree::ReplaceSon (sons, 3, old_son, new_son);
44475
92532
  }
44476
92533
};
44477
92534
 
44478
92535
 
44479
 
#line 44480 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92536
#line 92537 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
44480
92537
} // closed Puma
 
92538
class CCExprResolve;
 
92539
class CExprResolve;
44481
92540
class WinIfExists;
44482
92541
class WinImportHandler;
44483
92542
class WinMacros;
44484
 
class CMatchSyntax;
44485
 
class ExtGnu;
 
92543
class WinAsm;
 
92544
class WinDeclSpecs;
 
92545
class WinMemberExplSpec;
 
92546
class WinTypeKeywords;
 
92547
class WinFriend;
44486
92548
class ExtAC;
44487
92549
class ExtACBuilderCoupling;
44488
92550
class ExtACSyntaxCoupling;
44489
92551
class ExtACTree;
44490
92552
class ExtACKeywords;
44491
 
class WinAsm;
44492
 
class WinDeclSpecs;
44493
 
class WinMemberExplSpec;
44494
 
class WinTypeKeywords;
 
92553
class ExtGnu;
44495
92554
class PragmaOnceUnitState;
44496
92555
class PragmaOnce;
44497
 
class CCExprResolve;
44498
 
class CExprResolve;
 
92556
class CMatchSyntax;
44499
92557
namespace Puma {
44500
92558
 
44501
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92559
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44502
92560
class CT_AccessDecl : public CT_Decl {
44503
 
#line 44504 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92561
#line 92562 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
92562
  friend class ::CCExprResolve;
 
92563
  friend class ::CExprResolve;
44504
92564
  friend class ::WinIfExists;
44505
92565
  friend class ::WinImportHandler;
44506
92566
  friend class ::WinMacros;
44507
 
  friend class ::CMatchSyntax;
44508
 
  friend class ::ExtGnu;
 
92567
  friend class ::WinAsm;
 
92568
  friend class ::WinDeclSpecs;
 
92569
  friend class ::WinMemberExplSpec;
 
92570
  friend class ::WinTypeKeywords;
 
92571
  friend class ::WinFriend;
44509
92572
  friend class ::ExtAC;
44510
92573
  friend class ::ExtACBuilderCoupling;
44511
92574
  friend class ::ExtACSyntaxCoupling;
44512
92575
  friend class ::ExtACTree;
44513
92576
  friend class ::ExtACKeywords;
44514
 
  friend class ::WinAsm;
44515
 
  friend class ::WinDeclSpecs;
44516
 
  friend class ::WinMemberExplSpec;
44517
 
  friend class ::WinTypeKeywords;
 
92577
  friend class ::ExtGnu;
44518
92578
  friend class ::PragmaOnceUnitState;
44519
92579
  friend class ::PragmaOnce;
44520
 
  friend class ::CCExprResolve;
44521
 
  friend class ::CExprResolve;
 
92580
  friend class ::CMatchSyntax;
44522
92581
 
44523
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92582
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44524
92583
 
44525
92584
  CTree *sons[2]; // name, semi_colon
44526
92585
 
44527
92586
public:
44528
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
92587
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
92588
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44529
92589
  static const char *NodeId ();
 
92590
  /** Get the name of the node. Can be compared with NodeId(). */
44530
92591
  const char *NodeName () const { return NodeId (); }
 
92592
  /** Get the number of sons. */
44531
92593
  int Sons () const { return 2; }
 
92594
  /** Get the n-th son.
 
92595
   *  \param n The index of the son.
 
92596
   *  \return The n-th son or NULL. */
44532
92597
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
44533
92598
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
92599
  /** Replace a son.
 
92600
   *  \param old_son The son to replace.
 
92601
   *  \param new_son The new son. */
44534
92602
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44535
92603
    CTree::ReplaceSon (sons, 2, old_son, new_son);
44536
92604
  }
44537
92605
};
44538
92606
 
44539
92607
 
44540
 
#line 44541 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92608
#line 92609 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
44541
92609
} // closed Puma
 
92610
class CCExprResolve;
 
92611
class CExprResolve;
44542
92612
class WinIfExists;
44543
92613
class WinImportHandler;
44544
92614
class WinMacros;
44545
 
class CMatchSyntax;
44546
 
class ExtGnu;
 
92615
class WinAsm;
 
92616
class WinDeclSpecs;
 
92617
class WinMemberExplSpec;
 
92618
class WinTypeKeywords;
 
92619
class WinFriend;
44547
92620
class ExtAC;
44548
92621
class ExtACBuilderCoupling;
44549
92622
class ExtACSyntaxCoupling;
44550
92623
class ExtACTree;
44551
92624
class ExtACKeywords;
44552
 
class WinAsm;
44553
 
class WinDeclSpecs;
44554
 
class WinMemberExplSpec;
44555
 
class WinTypeKeywords;
 
92625
class ExtGnu;
44556
92626
class PragmaOnceUnitState;
44557
92627
class PragmaOnce;
44558
 
class CCExprResolve;
44559
 
class CExprResolve;
 
92628
class CMatchSyntax;
44560
92629
namespace Puma {
44561
92630
 
44562
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92631
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44563
92632
class CT_UsingDecl : public CT_AccessDecl {
44564
 
#line 44565 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92633
#line 92634 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
92634
  friend class ::CCExprResolve;
 
92635
  friend class ::CExprResolve;
44565
92636
  friend class ::WinIfExists;
44566
92637
  friend class ::WinImportHandler;
44567
92638
  friend class ::WinMacros;
44568
 
  friend class ::CMatchSyntax;
44569
 
  friend class ::ExtGnu;
 
92639
  friend class ::WinAsm;
 
92640
  friend class ::WinDeclSpecs;
 
92641
  friend class ::WinMemberExplSpec;
 
92642
  friend class ::WinTypeKeywords;
 
92643
  friend class ::WinFriend;
44570
92644
  friend class ::ExtAC;
44571
92645
  friend class ::ExtACBuilderCoupling;
44572
92646
  friend class ::ExtACSyntaxCoupling;
44573
92647
  friend class ::ExtACTree;
44574
92648
  friend class ::ExtACKeywords;
44575
 
  friend class ::WinAsm;
44576
 
  friend class ::WinDeclSpecs;
44577
 
  friend class ::WinMemberExplSpec;
44578
 
  friend class ::WinTypeKeywords;
 
92649
  friend class ::ExtGnu;
44579
92650
  friend class ::PragmaOnceUnitState;
44580
92651
  friend class ::PragmaOnce;
44581
 
  friend class ::CCExprResolve;
44582
 
  friend class ::CExprResolve;
 
92652
  friend class ::CMatchSyntax;
44583
92653
 
44584
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92654
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44585
92655
 
44586
92656
  CTree *sons[2]; // using, typename
44587
92657
 
44588
92658
public:
44589
92659
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
44590
 
    sons[0] = u; sons[1] = 0; 
 
92660
    AddSon (sons[0], u); AddSon (sons[1], 0); 
44591
92661
  }
44592
92662
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
44593
 
    sons[0] = u; sons[1] = t; 
 
92663
    AddSon (sons[0], u); AddSon (sons[1], t); 
44594
92664
  }
 
92665
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44595
92666
  static const char *NodeId ();
 
92667
  /** Get the name of the node. Can be compared with NodeId(). */
44596
92668
  const char *NodeName () const { return NodeId (); }
 
92669
  /** Get the number of sons. */
44597
92670
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
92671
  /** Get the n-th son.
 
92672
   *  \param n The index of the son.
 
92673
   *  \return The n-th son or NULL. */
44598
92674
  CTree *Son (int n) const {
44599
92675
    int num = CTree::Sons (sons, 2);
44600
92676
    CTree *result = CTree::Son (sons, 2, n);
44601
92677
    return result ? result : CT_AccessDecl::Son (n-num);
44602
92678
  }
44603
92679
  CTree *Typename () const { return sons[1]; }
 
92680
  /** Replace a son.
 
92681
   *  \param old_son The son to replace.
 
92682
   *  \param new_son The new son. */
44604
92683
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44605
92684
    CTree::ReplaceSon (sons, 2, old_son, new_son);
44606
92685
    CT_AccessDecl::ReplaceSon (old_son, new_son);
44614
92693
/*****************************************************************************/
44615
92694
 
44616
92695
 
44617
 
#line 44618 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92696
#line 92697 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
44618
92697
} // closed Puma
 
92698
class CCExprResolve;
 
92699
class CExprResolve;
44619
92700
class WinIfExists;
44620
92701
class WinImportHandler;
44621
92702
class WinMacros;
44622
 
class CMatchSyntax;
44623
 
class ExtGnu;
 
92703
class WinAsm;
 
92704
class WinDeclSpecs;
 
92705
class WinMemberExplSpec;
 
92706
class WinTypeKeywords;
 
92707
class WinFriend;
44624
92708
class ExtAC;
44625
92709
class ExtACBuilderCoupling;
44626
92710
class ExtACSyntaxCoupling;
44627
92711
class ExtACTree;
44628
92712
class ExtACKeywords;
44629
 
class WinAsm;
44630
 
class WinDeclSpecs;
44631
 
class WinMemberExplSpec;
44632
 
class WinTypeKeywords;
 
92713
class ExtGnu;
44633
92714
class PragmaOnceUnitState;
44634
92715
class PragmaOnce;
44635
 
class CCExprResolve;
44636
 
class CExprResolve;
 
92716
class CMatchSyntax;
44637
92717
namespace Puma {
44638
92718
 
44639
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92719
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44640
92720
class CT_Any : public CTree {
44641
 
#line 44642 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92721
#line 92722 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
92722
  friend class ::CCExprResolve;
 
92723
  friend class ::CExprResolve;
44642
92724
  friend class ::WinIfExists;
44643
92725
  friend class ::WinImportHandler;
44644
92726
  friend class ::WinMacros;
44645
 
  friend class ::CMatchSyntax;
44646
 
  friend class ::ExtGnu;
 
92727
  friend class ::WinAsm;
 
92728
  friend class ::WinDeclSpecs;
 
92729
  friend class ::WinMemberExplSpec;
 
92730
  friend class ::WinTypeKeywords;
 
92731
  friend class ::WinFriend;
44647
92732
  friend class ::ExtAC;
44648
92733
  friend class ::ExtACBuilderCoupling;
44649
92734
  friend class ::ExtACSyntaxCoupling;
44650
92735
  friend class ::ExtACTree;
44651
92736
  friend class ::ExtACKeywords;
44652
 
  friend class ::WinAsm;
44653
 
  friend class ::WinDeclSpecs;
44654
 
  friend class ::WinMemberExplSpec;
44655
 
  friend class ::WinTypeKeywords;
 
92737
  friend class ::ExtGnu;
44656
92738
  friend class ::PragmaOnceUnitState;
44657
92739
  friend class ::PragmaOnce;
44658
 
  friend class ::CCExprResolve;
44659
 
  friend class ::CExprResolve;
 
92740
  friend class ::CMatchSyntax;
44660
92741
 
44661
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92742
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44662
92743
 
44663
92744
  CTree *sons[2]; // keyword, extension
44664
92745
 
44665
92746
public:
44666
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
92747
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
92748
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44667
92749
  static const char *NodeId ();
 
92750
  /** Get the name of the node. Can be compared with NodeId(). */
44668
92751
  const char *NodeName () const { return NodeId (); }
 
92752
  /** Get the number of sons. */
44669
92753
  int Sons () const { return CTree::Sons (sons, 2); }
 
92754
  /** Get the n-th son.
 
92755
   *  \param n The index of the son.
 
92756
   *  \return The n-th son or NULL. */
44670
92757
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
92758
  /** Replace a son.
 
92759
   *  \param old_son The son to replace.
 
92760
   *  \param new_son The new son. */
44671
92761
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44672
92762
    CTree::ReplaceSon (sons, 2, old_son, new_son);
44673
92763
  }
44676
92766
};
44677
92767
 
44678
92768
 
44679
 
#line 44680 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92769
#line 92770 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
44680
92770
} // closed Puma
 
92771
class CCExprResolve;
 
92772
class CExprResolve;
44681
92773
class WinIfExists;
44682
92774
class WinImportHandler;
44683
92775
class WinMacros;
44684
 
class CMatchSyntax;
44685
 
class ExtGnu;
 
92776
class WinAsm;
 
92777
class WinDeclSpecs;
 
92778
class WinMemberExplSpec;
 
92779
class WinTypeKeywords;
 
92780
class WinFriend;
44686
92781
class ExtAC;
44687
92782
class ExtACBuilderCoupling;
44688
92783
class ExtACSyntaxCoupling;
44689
92784
class ExtACTree;
44690
92785
class ExtACKeywords;
44691
 
class WinAsm;
44692
 
class WinDeclSpecs;
44693
 
class WinMemberExplSpec;
44694
 
class WinTypeKeywords;
 
92786
class ExtGnu;
44695
92787
class PragmaOnceUnitState;
44696
92788
class PragmaOnce;
44697
 
class CCExprResolve;
44698
 
class CExprResolve;
 
92789
class CMatchSyntax;
44699
92790
namespace Puma {
44700
92791
 
44701
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92792
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44702
92793
class CT_AnyList : public CT_Any {
44703
 
#line 44704 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92794
#line 92795 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
92795
  friend class ::CCExprResolve;
 
92796
  friend class ::CExprResolve;
44704
92797
  friend class ::WinIfExists;
44705
92798
  friend class ::WinImportHandler;
44706
92799
  friend class ::WinMacros;
44707
 
  friend class ::CMatchSyntax;
44708
 
  friend class ::ExtGnu;
 
92800
  friend class ::WinAsm;
 
92801
  friend class ::WinDeclSpecs;
 
92802
  friend class ::WinMemberExplSpec;
 
92803
  friend class ::WinTypeKeywords;
 
92804
  friend class ::WinFriend;
44709
92805
  friend class ::ExtAC;
44710
92806
  friend class ::ExtACBuilderCoupling;
44711
92807
  friend class ::ExtACSyntaxCoupling;
44712
92808
  friend class ::ExtACTree;
44713
92809
  friend class ::ExtACKeywords;
44714
 
  friend class ::WinAsm;
44715
 
  friend class ::WinDeclSpecs;
44716
 
  friend class ::WinMemberExplSpec;
44717
 
  friend class ::WinTypeKeywords;
 
92810
  friend class ::ExtGnu;
44718
92811
  friend class ::PragmaOnceUnitState;
44719
92812
  friend class ::PragmaOnce;
44720
 
  friend class ::CCExprResolve;
44721
 
  friend class ::CExprResolve;
 
92813
  friend class ::CMatchSyntax;
44722
92814
 
44723
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92815
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44724
92816
 
44725
92817
public:
44726
92818
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
92819
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44727
92820
  static const char *NodeId ();
 
92821
  /** Get the name of the node. Can be compared with NodeId(). */
44728
92822
  const char *NodeName () const { return NodeId (); }
44729
92823
};
44730
92824
 
44731
92825
 
44732
 
#line 44733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92826
#line 92827 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
44733
92827
} // closed Puma
 
92828
class CCExprResolve;
 
92829
class CExprResolve;
44734
92830
class WinIfExists;
44735
92831
class WinImportHandler;
44736
92832
class WinMacros;
44737
 
class CMatchSyntax;
44738
 
class ExtGnu;
 
92833
class WinAsm;
 
92834
class WinDeclSpecs;
 
92835
class WinMemberExplSpec;
 
92836
class WinTypeKeywords;
 
92837
class WinFriend;
44739
92838
class ExtAC;
44740
92839
class ExtACBuilderCoupling;
44741
92840
class ExtACSyntaxCoupling;
44742
92841
class ExtACTree;
44743
92842
class ExtACKeywords;
44744
 
class WinAsm;
44745
 
class WinDeclSpecs;
44746
 
class WinMemberExplSpec;
44747
 
class WinTypeKeywords;
 
92843
class ExtGnu;
44748
92844
class PragmaOnceUnitState;
44749
92845
class PragmaOnce;
44750
 
class CCExprResolve;
44751
 
class CExprResolve;
 
92846
class CMatchSyntax;
44752
92847
namespace Puma {
44753
92848
 
44754
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92849
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44755
92850
class CT_AnyExtension : public CTree, public CSemValue {
44756
 
#line 44757 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92851
#line 92852 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
92852
  friend class ::CCExprResolve;
 
92853
  friend class ::CExprResolve;
44757
92854
  friend class ::WinIfExists;
44758
92855
  friend class ::WinImportHandler;
44759
92856
  friend class ::WinMacros;
44760
 
  friend class ::CMatchSyntax;
44761
 
  friend class ::ExtGnu;
 
92857
  friend class ::WinAsm;
 
92858
  friend class ::WinDeclSpecs;
 
92859
  friend class ::WinMemberExplSpec;
 
92860
  friend class ::WinTypeKeywords;
 
92861
  friend class ::WinFriend;
44762
92862
  friend class ::ExtAC;
44763
92863
  friend class ::ExtACBuilderCoupling;
44764
92864
  friend class ::ExtACSyntaxCoupling;
44765
92865
  friend class ::ExtACTree;
44766
92866
  friend class ::ExtACKeywords;
44767
 
  friend class ::WinAsm;
44768
 
  friend class ::WinDeclSpecs;
44769
 
  friend class ::WinMemberExplSpec;
44770
 
  friend class ::WinTypeKeywords;
 
92867
  friend class ::ExtGnu;
44771
92868
  friend class ::PragmaOnceUnitState;
44772
92869
  friend class ::PragmaOnce;
44773
 
  friend class ::CCExprResolve;
44774
 
  friend class ::CExprResolve;
 
92870
  friend class ::CMatchSyntax;
44775
92871
 
44776
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92872
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44777
92873
 
44778
92874
  CTree *sons[5]; // open, string, comma, cond, close
44779
92875
 
44780
92876
public:
44781
92877
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
44782
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
92878
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
92879
    AddSon (sons[3], c); AddSon (sons[4], cr); 
44783
92880
  }
 
92881
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44784
92882
  static const char *NodeId ();
 
92883
  /** Get the name of the node. Can be compared with NodeId(). */
44785
92884
  const char *NodeName () const { return NodeId (); }
 
92885
  /** Get the number of sons. */
44786
92886
  int Sons () const { return CTree::Sons (sons, 5); }
 
92887
  /** Get the n-th son.
 
92888
   *  \param n The index of the son.
 
92889
   *  \return The n-th son or NULL. */
44787
92890
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
92891
  /** Replace a son.
 
92892
   *  \param old_son The son to replace.
 
92893
   *  \param new_son The new son. */
44788
92894
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44789
92895
    CTree::ReplaceSon (sons, 5, old_son, new_son);
44790
92896
  }
44798
92904
};
44799
92905
 
44800
92906
 
44801
 
#line 44802 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92907
#line 92908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
44802
92908
} // closed Puma
 
92909
class CCExprResolve;
 
92910
class CExprResolve;
44803
92911
class WinIfExists;
44804
92912
class WinImportHandler;
44805
92913
class WinMacros;
44806
 
class CMatchSyntax;
44807
 
class ExtGnu;
 
92914
class WinAsm;
 
92915
class WinDeclSpecs;
 
92916
class WinMemberExplSpec;
 
92917
class WinTypeKeywords;
 
92918
class WinFriend;
44808
92919
class ExtAC;
44809
92920
class ExtACBuilderCoupling;
44810
92921
class ExtACSyntaxCoupling;
44811
92922
class ExtACTree;
44812
92923
class ExtACKeywords;
44813
 
class WinAsm;
44814
 
class WinDeclSpecs;
44815
 
class WinMemberExplSpec;
44816
 
class WinTypeKeywords;
 
92924
class ExtGnu;
44817
92925
class PragmaOnceUnitState;
44818
92926
class PragmaOnce;
44819
 
class CCExprResolve;
44820
 
class CExprResolve;
 
92927
class CMatchSyntax;
44821
92928
namespace Puma {
44822
92929
 
44823
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92930
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44824
92931
class CT_AnyCondition : public CTree {
44825
 
#line 44826 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92932
#line 92933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
92933
  friend class ::CCExprResolve;
 
92934
  friend class ::CExprResolve;
44826
92935
  friend class ::WinIfExists;
44827
92936
  friend class ::WinImportHandler;
44828
92937
  friend class ::WinMacros;
44829
 
  friend class ::CMatchSyntax;
44830
 
  friend class ::ExtGnu;
 
92938
  friend class ::WinAsm;
 
92939
  friend class ::WinDeclSpecs;
 
92940
  friend class ::WinMemberExplSpec;
 
92941
  friend class ::WinTypeKeywords;
 
92942
  friend class ::WinFriend;
44831
92943
  friend class ::ExtAC;
44832
92944
  friend class ::ExtACBuilderCoupling;
44833
92945
  friend class ::ExtACSyntaxCoupling;
44834
92946
  friend class ::ExtACTree;
44835
92947
  friend class ::ExtACKeywords;
44836
 
  friend class ::WinAsm;
44837
 
  friend class ::WinDeclSpecs;
44838
 
  friend class ::WinMemberExplSpec;
44839
 
  friend class ::WinTypeKeywords;
 
92948
  friend class ::ExtGnu;
44840
92949
  friend class ::PragmaOnceUnitState;
44841
92950
  friend class ::PragmaOnce;
44842
 
  friend class ::CCExprResolve;
44843
 
  friend class ::CExprResolve;
 
92951
  friend class ::CMatchSyntax;
44844
92952
 
44845
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92953
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44846
92954
 
44847
92955
  CTree *sons[3]; // arg1, arg2, arg3
44848
92956
 
44849
92957
public:
44850
92958
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
44851
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
92959
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
44852
92960
  }
 
92961
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44853
92962
  static const char *NodeId ();
 
92963
  /** Get the name of the node. Can be compared with NodeId(). */
44854
92964
  const char *NodeName () const { return NodeId (); }
 
92965
  /** Get the number of sons. */
44855
92966
  int Sons () const { return CTree::Sons (sons, 3); }
 
92967
  /** Get the n-th son.
 
92968
   *  \param n The index of the son.
 
92969
   *  \return The n-th son or NULL. */
44856
92970
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
92971
  /** Replace a son.
 
92972
   *  \param old_son The son to replace.
 
92973
   *  \param new_son The new son. */
44857
92974
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44858
92975
    CTree::ReplaceSon (sons, 3, old_son, new_son);
44859
92976
  }
44864
92981
 
44865
92982
#endif /* __CTree_h__ */
44866
92983
 
44867
 
#line 44868 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
44868
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
44869
 
 
44870
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44871
 
 
44872
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCSemExpr.h"
 
92984
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCSemExpr.h"
44873
92985
namespace Puma {
44874
92986
 
44875
92987
class CStructure;
44882
92994
 
44883
92995
 
44884
92996
 
44885
 
#line 44886 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
92997
#line 92998 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
44886
92998
} // closed Puma
 
92999
class CCExprResolve;
 
93000
class CExprResolve;
44887
93001
class WinIfExists;
44888
93002
class WinImportHandler;
44889
93003
class WinMacros;
44890
 
class CMatchSyntax;
44891
 
class ExtGnu;
 
93004
class WinAsm;
 
93005
class WinDeclSpecs;
 
93006
class WinMemberExplSpec;
 
93007
class WinTypeKeywords;
 
93008
class WinFriend;
44892
93009
class ExtAC;
44893
93010
class ExtACBuilderCoupling;
44894
93011
class ExtACSyntaxCoupling;
44895
93012
class ExtACTree;
44896
93013
class ExtACKeywords;
44897
 
class WinAsm;
44898
 
class WinDeclSpecs;
44899
 
class WinMemberExplSpec;
44900
 
class WinTypeKeywords;
 
93014
class ExtGnu;
44901
93015
class PragmaOnceUnitState;
44902
93016
class PragmaOnce;
44903
 
class CCExprResolve;
44904
 
class CExprResolve;
44905
 
namespace Puma {
44906
 
 
44907
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCSemExpr.h"
 
93017
class CMatchSyntax;
 
93018
namespace Puma {
 
93019
 
 
93020
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCSemExpr.h"
 
93021
 
 
93022
#line 93023 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93023
} // closed Puma
 
93024
 
 
93025
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
93026
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
93027
#include "ExtGnu.ah"
 
93028
#endif
 
93029
namespace Puma {
 
93030
 
 
93031
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCSemExpr.h"
44908
93032
class CCSemExpr {
44909
 
#line 44910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
 
93033
#line 93034 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93034
  friend class ::CCExprResolve;
 
93035
  friend class ::CExprResolve;
44910
93036
  friend class ::WinIfExists;
44911
93037
  friend class ::WinImportHandler;
44912
93038
  friend class ::WinMacros;
44913
 
  friend class ::CMatchSyntax;
44914
 
  friend class ::ExtGnu;
 
93039
  friend class ::WinAsm;
 
93040
  friend class ::WinDeclSpecs;
 
93041
  friend class ::WinMemberExplSpec;
 
93042
  friend class ::WinTypeKeywords;
 
93043
  friend class ::WinFriend;
44915
93044
  friend class ::ExtAC;
44916
93045
  friend class ::ExtACBuilderCoupling;
44917
93046
  friend class ::ExtACSyntaxCoupling;
44918
93047
  friend class ::ExtACTree;
44919
93048
  friend class ::ExtACKeywords;
44920
 
  friend class ::WinAsm;
44921
 
  friend class ::WinDeclSpecs;
44922
 
  friend class ::WinMemberExplSpec;
44923
 
  friend class ::WinTypeKeywords;
 
93049
  friend class ::ExtGnu;
44924
93050
  friend class ::PragmaOnceUnitState;
44925
93051
  friend class ::PragmaOnce;
44926
 
  friend class ::CCExprResolve;
44927
 
  friend class ::CExprResolve;
 
93052
  friend class ::CMatchSyntax;
44928
93053
 
44929
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCSemExpr.h"
 
93054
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCSemExpr.h"
44930
93055
 
44931
93056
protected:
44932
93057
  ErrorSink &err;            // error stream
45039
93164
  bool checkDeclsFound (CTree *, CCNameLookup &) const;
45040
93165
  void passOnConstant (CTree *, CTree *, CTypeInfo *) const;
45041
93166
  bool validOvlFctSet (CTree *, const char *, const char *, CCOverloading &);
 
93167
  void builtinOpExpr (CTree *, CTree *, const char *, int, CTypeInfo *,
 
93168
    CTypeInfo *, CTypeInfo * = 0) const;
45042
93169
   private:
45043
93170
  typedef CCSemExpr ExtGnuStmtExprsCCSemExpr;
45044
93171
 
45045
 
#line 426 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
93172
#line 479 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
45046
93173
 public :
45047
 
CTypeInfo * resolve ( CT_GnuStatementExpr * , CTree * ) ;
45048
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCSemExpr.h"
 
93174
Puma :: CTypeInfo * resolve ( Puma :: CT_GnuStatementExpr * , Puma :: CTree * ) ;
 
93175
#line 152 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCSemExpr.h"
45049
93176
};
45050
93177
 
45051
93178
inline CCSemExpr::CCSemExpr (ErrorSink &e, CStructure *s) : 
45064
93191
 
45065
93192
#endif /* __CCSemExpr_h__ */
45066
93193
 
45067
 
#line 45068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45068
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CCSemExpr_h__
45069
 
 
45070
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCSemExpr.h"
45071
 
 
45072
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93194
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
45073
93195
namespace Puma {
45074
93196
  
45075
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
45076
 
 
45077
 
 
45078
 
  
45079
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93197
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
45080
93198
 
45081
93199
}
45082
93200
 
 
93201
 
 
93202
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93203
 
 
93204
 
45083
93205
#endif /* __CCExprResolveCC_ah__ */
45084
93206
 
45085
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
45086
 
// This file is part of PUMA.
45087
 
// Copyright (C) 1999-2003  The PUMA developer team.
45088
 
//                                                                
45089
 
// This program is free software;  you can redistribute it and/or 
45090
 
// modify it under the terms of the GNU General Public License as 
45091
 
// published by the Free Software Foundation; either version 2 of 
45092
 
// the License, or (at your option) any later version.            
45093
 
//                                                                
45094
 
// This program is distributed in the hope that it will be useful,
45095
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
45096
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
45097
 
// GNU General Public License for more details.                   
45098
 
//                                                                
45099
 
// You should have received a copy of the GNU General Public      
45100
 
// License along with this program; if not, write to the Free     
45101
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
45102
 
// MA  02111-1307  USA                                            
45103
 
 
45104
 
#ifndef __CExprResolveCC_ah__
45105
 
#define __CExprResolveCC_ah__
45106
 
 
45107
 
// This aspect inserts resolve member functions into all syntax tree classes
45108
 
// that represent expressions. As the function is virtual, an efficient
45109
 
// run-time switch over the node type is implemented.
45110
 
 
45111
 
 
45112
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemExpr.h"
45113
 
 
45114
 
#line 45115 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45115
 
 
45116
 
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemExpr.h"
45117
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemExpr_h__
45118
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemExpr_h__
45119
 
 
45120
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemExpr.h"
45121
 
// This file is part of PUMA.
45122
 
// Copyright (C) 1999-2003  The PUMA developer team.
45123
 
//                                                                
45124
 
// This program is free software;  you can redistribute it and/or 
45125
 
// modify it under the terms of the GNU General Public License as 
45126
 
// published by the Free Software Foundation; either version 2 of 
45127
 
// the License, or (at your option) any later version.            
45128
 
//                                                                
45129
 
// This program is distributed in the hope that it will be useful,
45130
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
45131
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
45132
 
// GNU General Public License for more details.                   
45133
 
//                                                                
45134
 
// You should have received a copy of the GNU General Public      
45135
 
// License along with this program; if not, write to the Free     
45136
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
45137
 
// MA  02111-1307  USA                                            
45138
 
 
45139
 
#ifndef __CSemExpr_h__
45140
 
#define __CSemExpr_h__
45141
 
 
45142
 
 
45143
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
45144
 
// This file is part of PUMA.
45145
 
// Copyright (C) 1999-2003  The PUMA developer team.
45146
 
//                                                                
45147
 
// This program is free software;  you can redistribute it and/or 
45148
 
// modify it under the terms of the GNU General Public License as 
45149
 
// published by the Free Software Foundation; either version 2 of 
45150
 
// the License, or (at your option) any later version.            
45151
 
//                                                                
45152
 
// This program is distributed in the hope that it will be useful,
45153
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
45154
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
45155
 
// GNU General Public License for more details.                   
45156
 
//                                                                
45157
 
// You should have received a copy of the GNU General Public      
45158
 
// License along with this program; if not, write to the Free     
45159
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
45160
 
// MA  02111-1307  USA                                            
45161
 
 
45162
 
#ifndef __stack_h__
45163
 
#define __stack_h__
45164
 
 
45165
 
 
45166
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
45167
 
namespace Puma {
45168
 
 
45169
 
 
45170
 
#line 45171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45171
 
} // closed Puma
45172
 
class WinIfExists;
45173
 
class WinImportHandler;
45174
 
class WinMacros;
45175
 
class CMatchSyntax;
45176
 
class ExtGnu;
45177
 
class ExtAC;
45178
 
class ExtACBuilderCoupling;
45179
 
class ExtACSyntaxCoupling;
45180
 
class ExtACTree;
45181
 
class ExtACKeywords;
45182
 
class WinAsm;
45183
 
class WinDeclSpecs;
45184
 
class WinMemberExplSpec;
45185
 
class WinTypeKeywords;
45186
 
class PragmaOnceUnitState;
45187
 
class PragmaOnce;
45188
 
class CCExprResolve;
45189
 
class CExprResolve;
45190
 
namespace Puma {
45191
 
 
45192
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
45193
 
template <class Item>
45194
 
class Stack : private Array<Item> {
45195
 
#line 45196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45196
 
  friend class ::WinIfExists;
45197
 
  friend class ::WinImportHandler;
45198
 
  friend class ::WinMacros;
45199
 
  friend class ::CMatchSyntax;
45200
 
  friend class ::ExtGnu;
45201
 
  friend class ::ExtAC;
45202
 
  friend class ::ExtACBuilderCoupling;
45203
 
  friend class ::ExtACSyntaxCoupling;
45204
 
  friend class ::ExtACTree;
45205
 
  friend class ::ExtACKeywords;
45206
 
  friend class ::WinAsm;
45207
 
  friend class ::WinDeclSpecs;
45208
 
  friend class ::WinMemberExplSpec;
45209
 
  friend class ::WinTypeKeywords;
45210
 
  friend class ::PragmaOnceUnitState;
45211
 
  friend class ::PragmaOnce;
45212
 
  friend class ::CCExprResolve;
45213
 
  friend class ::CExprResolve;
45214
 
 
45215
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
45216
 
 
45217
 
public:
45218
 
  Stack (long is = 8192, long incr = 8192) :
45219
 
    Array<Item> (is, incr) {}
45220
 
  void push (Item f) { Array<Item>::append (f); }
45221
 
  Item &top () const { long len = Array<Item>::length ()-1; 
45222
 
                       return Array<Item>::lookup (len >= 0 ? len : 0); }
45223
 
  void pop () { Array<Item>::remove (Array<Item>::length () - 1); }
45224
 
  long length () const { return Array<Item>::length (); }
45225
 
  void reset () { Array<Item>::reset (); }
45226
 
};
45227
 
 
45228
 
} // namespace Puma
45229
 
 
45230
 
#endif /* __stack_h__ */
45231
 
 
45232
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45233
 
 
45234
 
#line 45235 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45235
 
 
45236
 
#ifndef __ac_fwd_ExtACTree__
45237
 
#define __ac_fwd_ExtACTree__
45238
 
class ExtACTree;
45239
 
namespace AC {
45240
 
  template <class JoinPoint>
45241
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
45242
 
  template <class JoinPoint>
45243
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
45244
 
}
45245
 
#endif
45246
 
 
45247
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
45248
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
45249
 
#endif
45250
 
 
45251
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45252
 
 
45253
 
#line 45254 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45254
 
 
45255
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45256
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
45257
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
45258
 
 
45259
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45260
 
// This file is part of PUMA.
45261
 
// Copyright (C) 1999-2003  The PUMA developer team.
45262
 
//                                                                
45263
 
// This program is free software;  you can redistribute it and/or 
45264
 
// modify it under the terms of the GNU General Public License as 
45265
 
// published by the Free Software Foundation; either version 2 of 
45266
 
// the License, or (at your option) any later version.            
45267
 
//                                                                
45268
 
// This program is distributed in the hope that it will be useful,
45269
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
45270
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
45271
 
// GNU General Public License for more details.                   
45272
 
//                                                                
45273
 
// You should have received a copy of the GNU General Public      
45274
 
// License along with this program; if not, write to the Free     
45275
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
45276
 
// MA  02111-1307  USA                                            
45277
 
 
45278
 
#ifndef __CTree_h__
45279
 
#define __CTree_h__
45280
 
 
45281
 
namespace Puma {
45282
 
 
45283
 
 
45284
 
// Syntax tree node hierarchy:
45285
 
class CTree;
45286
 
class   CT_Statement;          
45287
 
class     CT_LabelStmt;
45288
 
class     CT_IfStmt;
45289
 
class     CT_IfElseStmt;
45290
 
class     CT_SwitchStmt;
45291
 
class     CT_BreakStmt;
45292
 
class     CT_ExprStmt;
45293
 
class     CT_WhileStmt;
45294
 
class     CT_DoStmt;
45295
 
class     CT_ForStmt;
45296
 
class     CT_ContinueStmt;
45297
 
class     CT_ReturnStmt;
45298
 
class     CT_GotoStmt;
45299
 
class     CT_DeclStmt;
45300
 
class     CT_CaseStmt;
45301
 
class     CT_DefaultStmt;
45302
 
class     CT_TryStmt;
45303
 
class   CT_Expression;
45304
 
class     CT_ThrowExpr;
45305
 
class     CT_NewExpr;
45306
 
class     CT_DeleteExpr;
45307
 
class     CT_ConstructExpr;
45308
 
class     CT_Integer;
45309
 
class     CT_Character;
45310
 
class       CT_WideCharacter;
45311
 
class     CT_Float;
45312
 
class     CT_Bool;
45313
 
class     CT_BracedExpr;
45314
 
class     CT_BinaryExpr;
45315
 
class       CT_MembPtrExpr;
45316
 
class         CT_MembRefExpr;
45317
 
class     CT_UnaryExpr;
45318
 
class       CT_PostfixExpr;
45319
 
class       CT_AddrExpr;
45320
 
class       CT_DerefExpr;
45321
 
class     CT_IfThenExpr;
45322
 
class     CT_CmpdLiteral;
45323
 
class     CT_IndexExpr;
45324
 
class     CT_CallExpr;
45325
 
class     CT_CastExpr;
45326
 
class     CT_StaticCast;
45327
 
class       CT_ConstCast;
45328
 
class       CT_ReintCast;
45329
 
class       CT_DynamicCast;
45330
 
class     CT_TypeidExpr;
45331
 
class     CT_SizeofExpr;
45332
 
class     CT_MembDesignator;
45333
 
class     CT_IndexDesignator;
45334
 
class     CT_ImplicitCast;
45335
 
class   CT_DeclSpec;
45336
 
class     CT_PrimDeclSpec;
45337
 
class     CT_NamedType;
45338
 
class     CT_ClassSpec;
45339
 
class       CT_UnionSpec;
45340
 
class       CT_EnumSpec;
45341
 
class     CT_ExceptionSpec;
45342
 
class   CT_Declarator;
45343
 
class     CT_InitDeclarator;
45344
 
class     CT_BracedDeclarator;
45345
 
class     CT_ArrayDeclarator;
45346
 
class     CT_FctDeclarator;
45347
 
class     CT_RefDeclarator;
45348
 
class     CT_PtrDeclarator;
45349
 
class     CT_MembPtrDeclarator;
45350
 
class     CT_BitFieldDeclarator;
45351
 
class   CT_Decl;
45352
 
class     CT_ObjDecl;
45353
 
class     CT_ArgDecl;
45354
 
class     CT_AccessDecl;
45355
 
class       CT_UsingDecl;
45356
 
class     CT_FctDef;
45357
 
class     CT_AsmDef;
45358
 
class     CT_EnumDef;
45359
 
class     CT_ClassDef;
45360
 
class       CT_UnionDef;
45361
 
class     CT_Enumerator;
45362
 
class     CT_LinkageSpec;
45363
 
class     CT_Handler;
45364
 
class     CT_TemplateDecl;
45365
 
class     CT_TemplateParamDecl;
45366
 
class       CT_TypeParamDecl;
45367
 
class       CT_NonTypeParamDecl;
45368
 
class     CT_NamespaceDef;
45369
 
class     CT_NamespaceAliasDef;
45370
 
class     CT_UsingDirective;
45371
 
class   CT_List;
45372
 
class     CT_CmpdStmt;
45373
 
class     CT_DeclSpecSeq;
45374
 
class     CT_HandlerSeq;
45375
 
class     CT_DesignatorSeq;
45376
 
class     CT_DeclList;
45377
 
class       CT_Program;
45378
 
class       CT_ArgDeclList;
45379
 
class         CT_ArgNameList;
45380
 
class       CT_ArgDeclSeq;
45381
 
class       CT_MembList;
45382
 
class     CT_ExprList;
45383
 
class     CT_DeclaratorList;
45384
 
class     CT_BaseSpecList;
45385
 
class     CT_MembInitList;
45386
 
class     CT_SimpleName;
45387
 
class       CT_SpecialName;
45388
 
class         CT_PrivateName;
45389
 
class         CT_OperatorName;
45390
 
class         CT_DestructorName;
45391
 
class         CT_ConversionName;
45392
 
class         CT_TemplateName;
45393
 
class       CT_QualName;
45394
 
class         CT_RootQualName;
45395
 
class     CT_String;
45396
 
class       CT_WideString;
45397
 
class     CT_TemplateParamList;
45398
 
class     CT_TemplateArgList;
45399
 
class   CT_Token;
45400
 
class   CT_Error;
45401
 
class   CT_Condition;
45402
 
class   CT_BaseSpec;
45403
 
class   CT_AccessSpec;
45404
 
class   CT_ArrayDelimiter;
45405
 
class   CT_Any;
45406
 
class   CT_AnyList;
45407
 
class   CT_AnyExtension;
45408
 
class   CT_AnyCondition;
45409
 
 
45410
 
 
45411
 
} // namespace Puma
45412
 
 
45413
 
#include "Puma/ErrorSeverity.h"
45414
 
#include "Puma/CSemObject.h"
45415
 
#include "Puma/CSemScope.h"
45416
 
#include "Puma/CSemValue.h"
45417
 
#include "Puma/CExprValue.h"
45418
 
#include "Puma/CStrLiteral.h"
45419
 
#include "Puma/CTypeInfo.h"
45420
 
#include "Puma/Printable.h"
45421
 
#include "Puma/CTokens.h"
45422
 
#include "Puma/Token.h"
45423
 
 
45424
 
#include <iostream>
45425
 
#include <string.h>
45426
 
using namespace std;
45427
 
 
45428
 
namespace Puma {
45429
 
 
45430
 
 
45431
 
class ErrorStream;
45432
 
class CObjectInfo;
45433
 
class CStructure;
45434
 
 
45435
 
/*****************************************************************************/
45436
 
/*                                                                           */
45437
 
/*                    S y n t a x  t r e e  n o d e s                        */
45438
 
/*                                                                           */
45439
 
/*****************************************************************************/
45440
 
 
45441
 
 
45442
 
#line 45443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45443
 
} // closed Puma
45444
 
class WinIfExists;
45445
 
class WinImportHandler;
45446
 
class WinMacros;
45447
 
class CMatchSyntax;
45448
 
class ExtGnu;
45449
 
class ExtAC;
45450
 
class ExtACBuilderCoupling;
45451
 
class ExtACSyntaxCoupling;
45452
 
class ExtACTree;
45453
 
class ExtACKeywords;
45454
 
class WinAsm;
45455
 
class WinDeclSpecs;
45456
 
class WinMemberExplSpec;
45457
 
class WinTypeKeywords;
45458
 
class PragmaOnceUnitState;
45459
 
class PragmaOnce;
45460
 
class CCExprResolve;
45461
 
class CExprResolve;
45462
 
namespace Puma {
45463
 
 
45464
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45465
 
class CTree {
45466
 
#line 45467 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45467
 
  friend class ::WinIfExists;
45468
 
  friend class ::WinImportHandler;
45469
 
  friend class ::WinMacros;
45470
 
  friend class ::CMatchSyntax;
45471
 
  friend class ::ExtGnu;
45472
 
  friend class ::ExtAC;
45473
 
  friend class ::ExtACBuilderCoupling;
45474
 
  friend class ::ExtACSyntaxCoupling;
45475
 
  friend class ::ExtACTree;
45476
 
  friend class ::ExtACKeywords;
45477
 
  friend class ::WinAsm;
45478
 
  friend class ::WinDeclSpecs;
45479
 
  friend class ::WinMemberExplSpec;
45480
 
  friend class ::WinTypeKeywords;
45481
 
  friend class ::PragmaOnceUnitState;
45482
 
  friend class ::PragmaOnce;
45483
 
  friend class ::CCExprResolve;
45484
 
  friend class ::CExprResolve;
45485
 
 
45486
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45487
 
 
45488
 
public:
45489
 
  /*DEBUG*/static int alloc;
45490
 
  /*DEBUG*/static int release;
45491
 
 
45492
 
protected:
45493
 
  CTree *Son (CTree * const *, int, int) const;
45494
 
  int Sons (CTree * const *, int) const;
45495
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
45496
 
  
45497
 
protected:
45498
 
  CTree () { /*DEBUG*/alloc++; }
45499
 
 
45500
 
public:
45501
 
  virtual ~CTree () { /*DEBUG*/release++; }
45502
 
  virtual int Sons () const = 0;
45503
 
  virtual CTree *Son (int n) const { return (CTree*)0; }
45504
 
  virtual const char *NodeName () const = 0;
45505
 
  virtual Token *token () const;
45506
 
  virtual Token *end_token () const;
45507
 
  virtual CT_Token *token_node () const;
45508
 
  virtual CT_Token *end_token_node () const;
45509
 
  virtual void ReplaceSon (CTree *, CTree *) {}
45510
 
 
45511
 
public: // semantic information
45512
 
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
45513
 
  virtual CExprValue *Value () const { return (CExprValue*)0; }
45514
 
  
45515
 
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
45516
 
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
45517
 
  
45518
 
public: // node classification function
45519
 
  virtual CT_SimpleName *IsSimpleName () { return 0; }
45520
 
  virtual CT_Declarator *IsDeclarator () { return 0; }
45521
 
   private:
45522
 
  typedef CTree CCExprResolveCTree;
45523
 
 
45524
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
45525
 
 public :
45526
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
45527
 
  typedef CTree CExprResolveCTree;
45528
 
 
45529
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
45530
 
 public :
45531
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
45532
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45533
 
};
45534
 
 
45535
 
 
45536
 
#line 45537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45537
 
} // closed Puma
45538
 
class WinIfExists;
45539
 
class WinImportHandler;
45540
 
class WinMacros;
45541
 
class CMatchSyntax;
45542
 
class ExtGnu;
45543
 
class ExtAC;
45544
 
class ExtACBuilderCoupling;
45545
 
class ExtACSyntaxCoupling;
45546
 
class ExtACTree;
45547
 
class ExtACKeywords;
45548
 
class WinAsm;
45549
 
class WinDeclSpecs;
45550
 
class WinMemberExplSpec;
45551
 
class WinTypeKeywords;
45552
 
class PragmaOnceUnitState;
45553
 
class PragmaOnce;
45554
 
class CCExprResolve;
45555
 
class CExprResolve;
45556
 
namespace Puma {
45557
 
 
45558
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45559
 
class CT_Error : public CTree {
45560
 
#line 45561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45561
 
  friend class ::WinIfExists;
45562
 
  friend class ::WinImportHandler;
45563
 
  friend class ::WinMacros;
45564
 
  friend class ::CMatchSyntax;
45565
 
  friend class ::ExtGnu;
45566
 
  friend class ::ExtAC;
45567
 
  friend class ::ExtACBuilderCoupling;
45568
 
  friend class ::ExtACSyntaxCoupling;
45569
 
  friend class ::ExtACTree;
45570
 
  friend class ::ExtACKeywords;
45571
 
  friend class ::WinAsm;
45572
 
  friend class ::WinDeclSpecs;
45573
 
  friend class ::WinMemberExplSpec;
45574
 
  friend class ::WinTypeKeywords;
45575
 
  friend class ::PragmaOnceUnitState;
45576
 
  friend class ::PragmaOnce;
45577
 
  friend class ::CCExprResolve;
45578
 
  friend class ::CExprResolve;
45579
 
 
45580
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45581
 
 
45582
 
public:
45583
 
  static const char *NodeId ();
45584
 
  const char *NodeName () const { return NodeId (); }
45585
 
  int Sons () const { return 0; }
45586
 
};
45587
 
 
45588
 
 
45589
 
#line 45590 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45590
 
} // closed Puma
45591
 
class WinIfExists;
45592
 
class WinImportHandler;
45593
 
class WinMacros;
45594
 
class CMatchSyntax;
45595
 
class ExtGnu;
45596
 
class ExtAC;
45597
 
class ExtACBuilderCoupling;
45598
 
class ExtACSyntaxCoupling;
45599
 
class ExtACTree;
45600
 
class ExtACKeywords;
45601
 
class WinAsm;
45602
 
class WinDeclSpecs;
45603
 
class WinMemberExplSpec;
45604
 
class WinTypeKeywords;
45605
 
class PragmaOnceUnitState;
45606
 
class PragmaOnce;
45607
 
class CCExprResolve;
45608
 
class CExprResolve;
45609
 
namespace Puma {
45610
 
 
45611
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45612
 
class CT_Token : public CTree {
45613
 
#line 45614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45614
 
  friend class ::WinIfExists;
45615
 
  friend class ::WinImportHandler;
45616
 
  friend class ::WinMacros;
45617
 
  friend class ::CMatchSyntax;
45618
 
  friend class ::ExtGnu;
45619
 
  friend class ::ExtAC;
45620
 
  friend class ::ExtACBuilderCoupling;
45621
 
  friend class ::ExtACSyntaxCoupling;
45622
 
  friend class ::ExtACTree;
45623
 
  friend class ::ExtACKeywords;
45624
 
  friend class ::WinAsm;
45625
 
  friend class ::WinDeclSpecs;
45626
 
  friend class ::WinMemberExplSpec;
45627
 
  friend class ::WinTypeKeywords;
45628
 
  friend class ::PragmaOnceUnitState;
45629
 
  friend class ::PragmaOnce;
45630
 
  friend class ::CCExprResolve;
45631
 
  friend class ::CExprResolve;
45632
 
 
45633
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45634
 
 
45635
 
  Token *_token;
45636
 
  unsigned long int _number;
45637
 
  
45638
 
public:
45639
 
  CT_Token (Token *t, unsigned long int n = 0) : 
45640
 
    _token (t), _number (n) {}
45641
 
  static const char *NodeId ();
45642
 
  const char *NodeName () const { return NodeId (); }
45643
 
  int Sons () const { return 0; }
45644
 
  Token *token () const { return _token; }
45645
 
  Token *end_token () const { return _token; }
45646
 
  CT_Token *token_node () const { return (CT_Token*)this; }
45647
 
  CT_Token *end_token_node () const { return (CT_Token*)this; }
45648
 
  void Number (unsigned long int n) { _number = n; }
45649
 
  unsigned long int Number () const { return _number; }
45650
 
  // special new / delete with reusing memory
45651
 
  void *operator new (size_t);
45652
 
  void  operator delete (void *);
45653
 
};
45654
 
 
45655
 
/*****************************************************************************/
45656
 
/*                                                                           */
45657
 
/*                              List nodes                                   */
45658
 
/*                                                                           */
45659
 
/*****************************************************************************/
45660
 
 
45661
 
 
45662
 
#line 45663 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45663
 
} // closed Puma
45664
 
class WinIfExists;
45665
 
class WinImportHandler;
45666
 
class WinMacros;
45667
 
class CMatchSyntax;
45668
 
class ExtGnu;
45669
 
class ExtAC;
45670
 
class ExtACBuilderCoupling;
45671
 
class ExtACSyntaxCoupling;
45672
 
class ExtACTree;
45673
 
class ExtACKeywords;
45674
 
class WinAsm;
45675
 
class WinDeclSpecs;
45676
 
class WinMemberExplSpec;
45677
 
class WinTypeKeywords;
45678
 
class PragmaOnceUnitState;
45679
 
class PragmaOnce;
45680
 
class CCExprResolve;
45681
 
class CExprResolve;
45682
 
namespace Puma {
45683
 
 
45684
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45685
 
class CT_List : public CTree {
45686
 
#line 45687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45687
 
  friend class ::WinIfExists;
45688
 
  friend class ::WinImportHandler;
45689
 
  friend class ::WinMacros;
45690
 
  friend class ::CMatchSyntax;
45691
 
  friend class ::ExtGnu;
45692
 
  friend class ::ExtAC;
45693
 
  friend class ::ExtACBuilderCoupling;
45694
 
  friend class ::ExtACSyntaxCoupling;
45695
 
  friend class ::ExtACTree;
45696
 
  friend class ::ExtACKeywords;
45697
 
  friend class ::WinAsm;
45698
 
  friend class ::WinDeclSpecs;
45699
 
  friend class ::WinMemberExplSpec;
45700
 
  friend class ::WinTypeKeywords;
45701
 
  friend class ::PragmaOnceUnitState;
45702
 
  friend class ::PragmaOnce;
45703
 
  friend class ::CCExprResolve;
45704
 
  friend class ::CExprResolve;
45705
 
 
45706
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45707
 
 
45708
 
  Array<CTree*> _sons;
45709
 
  int _properties;
45710
 
 
45711
 
protected:
45712
 
  CT_List(int size = 5, int incr = 5, int props = 0) : 
45713
 
    _sons (size, incr), _properties (props) {}
45714
 
 
45715
 
public:
45716
 
  enum {
45717
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
45718
 
    CLOSE = 2,
45719
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
45720
 
    SEPARATORS = 4,   // the list has separators like ','
45721
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
45722
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
45723
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
45724
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
45725
 
  };
45726
 
 
45727
 
  int Entries () const;
45728
 
  CTree *Entry (int no) const;
45729
 
  int Sons () const { return _sons.length (); }
45730
 
  CTree *Son (int n) const { return _sons.lookup (n); }
45731
 
  int GetProperties () const { return _properties; }
45732
 
  void AddProperties (int p) { _properties |= p; }
45733
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
45734
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
45735
 
  void InsertSon (CTree *, CTree *);  // before given son
45736
 
  void ReplaceSon (CTree *, CTree *);
45737
 
  void RemoveSon (CTree *);
45738
 
  void InsertSon (int idx, CTree *s)
45739
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
45740
 
  void ReplaceSon (int idx, CTree *s) 
45741
 
   { if (idx < Sons ()) _sons[idx] = s; }
45742
 
  void RemoveSon (int idx) 
45743
 
   { if (idx < Sons ()) _sons.remove (idx); }
45744
 
};
45745
 
 
45746
 
 
45747
 
#line 45748 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45748
 
} // closed Puma
45749
 
class WinIfExists;
45750
 
class WinImportHandler;
45751
 
class WinMacros;
45752
 
class CMatchSyntax;
45753
 
class ExtGnu;
45754
 
class ExtAC;
45755
 
class ExtACBuilderCoupling;
45756
 
class ExtACSyntaxCoupling;
45757
 
class ExtACTree;
45758
 
class ExtACKeywords;
45759
 
class WinAsm;
45760
 
class WinDeclSpecs;
45761
 
class WinMemberExplSpec;
45762
 
class WinTypeKeywords;
45763
 
class PragmaOnceUnitState;
45764
 
class PragmaOnce;
45765
 
class CCExprResolve;
45766
 
class CExprResolve;
45767
 
namespace Puma {
45768
 
 
45769
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45770
 
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
45771
 
#line 45772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45772
 
  friend class ::WinIfExists;
45773
 
  friend class ::WinImportHandler;
45774
 
  friend class ::WinMacros;
45775
 
  friend class ::CMatchSyntax;
45776
 
  friend class ::ExtGnu;
45777
 
  friend class ::ExtAC;
45778
 
  friend class ::ExtACBuilderCoupling;
45779
 
  friend class ::ExtACSyntaxCoupling;
45780
 
  friend class ::ExtACTree;
45781
 
  friend class ::ExtACKeywords;
45782
 
  friend class ::WinAsm;
45783
 
  friend class ::WinDeclSpecs;
45784
 
  friend class ::WinMemberExplSpec;
45785
 
  friend class ::WinTypeKeywords;
45786
 
  friend class ::PragmaOnceUnitState;
45787
 
  friend class ::PragmaOnce;
45788
 
  friend class ::CCExprResolve;
45789
 
  friend class ::CExprResolve;
45790
 
 
45791
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45792
 
 
45793
 
public:
45794
 
  CT_ExprList () { AddProperties (SEPARATORS); }
45795
 
  static const char *NodeId ();
45796
 
  const char *NodeName () const { return NodeId (); }
45797
 
 
45798
 
  CTypeInfo *Type () const { return type; }
45799
 
  CExprValue *Value () const { return value; }
45800
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
45801
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
45802
 
};
45803
 
 
45804
 
 
45805
 
#line 45806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45806
 
} // closed Puma
45807
 
class WinIfExists;
45808
 
class WinImportHandler;
45809
 
class WinMacros;
45810
 
class CMatchSyntax;
45811
 
class ExtGnu;
45812
 
class ExtAC;
45813
 
class ExtACBuilderCoupling;
45814
 
class ExtACSyntaxCoupling;
45815
 
class ExtACTree;
45816
 
class ExtACKeywords;
45817
 
class WinAsm;
45818
 
class WinDeclSpecs;
45819
 
class WinMemberExplSpec;
45820
 
class WinTypeKeywords;
45821
 
class PragmaOnceUnitState;
45822
 
class PragmaOnce;
45823
 
class CCExprResolve;
45824
 
class CExprResolve;
45825
 
namespace Puma {
45826
 
 
45827
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45828
 
class CT_DeclaratorList : public CT_List {
45829
 
#line 45830 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45830
 
  friend class ::WinIfExists;
45831
 
  friend class ::WinImportHandler;
45832
 
  friend class ::WinMacros;
45833
 
  friend class ::CMatchSyntax;
45834
 
  friend class ::ExtGnu;
45835
 
  friend class ::ExtAC;
45836
 
  friend class ::ExtACBuilderCoupling;
45837
 
  friend class ::ExtACSyntaxCoupling;
45838
 
  friend class ::ExtACTree;
45839
 
  friend class ::ExtACKeywords;
45840
 
  friend class ::WinAsm;
45841
 
  friend class ::WinDeclSpecs;
45842
 
  friend class ::WinMemberExplSpec;
45843
 
  friend class ::WinTypeKeywords;
45844
 
  friend class ::PragmaOnceUnitState;
45845
 
  friend class ::PragmaOnce;
45846
 
  friend class ::CCExprResolve;
45847
 
  friend class ::CExprResolve;
45848
 
 
45849
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45850
 
 
45851
 
public:
45852
 
  static const char *NodeId ();
45853
 
  const char *NodeName () const { return NodeId (); }
45854
 
};
45855
 
 
45856
 
 
45857
 
#line 45858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45858
 
} // closed Puma
45859
 
class WinIfExists;
45860
 
class WinImportHandler;
45861
 
class WinMacros;
45862
 
class CMatchSyntax;
45863
 
class ExtGnu;
45864
 
class ExtAC;
45865
 
class ExtACBuilderCoupling;
45866
 
class ExtACSyntaxCoupling;
45867
 
class ExtACTree;
45868
 
class ExtACKeywords;
45869
 
class WinAsm;
45870
 
class WinDeclSpecs;
45871
 
class WinMemberExplSpec;
45872
 
class WinTypeKeywords;
45873
 
class PragmaOnceUnitState;
45874
 
class PragmaOnce;
45875
 
class CCExprResolve;
45876
 
class CExprResolve;
45877
 
namespace Puma {
45878
 
 
45879
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45880
 
class CT_EnumeratorList : public CT_List {
45881
 
#line 45882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45882
 
  friend class ::WinIfExists;
45883
 
  friend class ::WinImportHandler;
45884
 
  friend class ::WinMacros;
45885
 
  friend class ::CMatchSyntax;
45886
 
  friend class ::ExtGnu;
45887
 
  friend class ::ExtAC;
45888
 
  friend class ::ExtACBuilderCoupling;
45889
 
  friend class ::ExtACSyntaxCoupling;
45890
 
  friend class ::ExtACTree;
45891
 
  friend class ::ExtACKeywords;
45892
 
  friend class ::WinAsm;
45893
 
  friend class ::WinDeclSpecs;
45894
 
  friend class ::WinMemberExplSpec;
45895
 
  friend class ::WinTypeKeywords;
45896
 
  friend class ::PragmaOnceUnitState;
45897
 
  friend class ::PragmaOnce;
45898
 
  friend class ::CCExprResolve;
45899
 
  friend class ::CExprResolve;
45900
 
 
45901
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45902
 
 
45903
 
public:
45904
 
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
45905
 
  static const char *NodeId ();
45906
 
  const char *NodeName () const { return NodeId (); }
45907
 
};
45908
 
   
45909
 
 
45910
 
#line 45911 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45911
 
} // closed Puma
45912
 
class WinIfExists;
45913
 
class WinImportHandler;
45914
 
class WinMacros;
45915
 
class CMatchSyntax;
45916
 
class ExtGnu;
45917
 
class ExtAC;
45918
 
class ExtACBuilderCoupling;
45919
 
class ExtACSyntaxCoupling;
45920
 
class ExtACTree;
45921
 
class ExtACKeywords;
45922
 
class WinAsm;
45923
 
class WinDeclSpecs;
45924
 
class WinMemberExplSpec;
45925
 
class WinTypeKeywords;
45926
 
class PragmaOnceUnitState;
45927
 
class PragmaOnce;
45928
 
class CCExprResolve;
45929
 
class CExprResolve;
45930
 
namespace Puma {
45931
 
 
45932
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45933
 
class CT_DeclList : public CT_List {
45934
 
#line 45935 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45935
 
  friend class ::WinIfExists;
45936
 
  friend class ::WinImportHandler;
45937
 
  friend class ::WinMacros;
45938
 
  friend class ::CMatchSyntax;
45939
 
  friend class ::ExtGnu;
45940
 
  friend class ::ExtAC;
45941
 
  friend class ::ExtACBuilderCoupling;
45942
 
  friend class ::ExtACSyntaxCoupling;
45943
 
  friend class ::ExtACTree;
45944
 
  friend class ::ExtACKeywords;
45945
 
  friend class ::WinAsm;
45946
 
  friend class ::WinDeclSpecs;
45947
 
  friend class ::WinMemberExplSpec;
45948
 
  friend class ::WinTypeKeywords;
45949
 
  friend class ::PragmaOnceUnitState;
45950
 
  friend class ::PragmaOnce;
45951
 
  friend class ::CCExprResolve;
45952
 
  friend class ::CExprResolve;
45953
 
 
45954
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45955
 
 
45956
 
public:
45957
 
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
45958
 
  static const char *NodeId ();
45959
 
  const char *NodeName () const { return NodeId (); }
45960
 
  void Linkage (CT_LinkageSpec *l);
45961
 
};
45962
 
 
45963
 
 
45964
 
#line 45965 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45965
 
} // closed Puma
45966
 
class WinIfExists;
45967
 
class WinImportHandler;
45968
 
class WinMacros;
45969
 
class CMatchSyntax;
45970
 
class ExtGnu;
45971
 
class ExtAC;
45972
 
class ExtACBuilderCoupling;
45973
 
class ExtACSyntaxCoupling;
45974
 
class ExtACTree;
45975
 
class ExtACKeywords;
45976
 
class WinAsm;
45977
 
class WinDeclSpecs;
45978
 
class WinMemberExplSpec;
45979
 
class WinTypeKeywords;
45980
 
class PragmaOnceUnitState;
45981
 
class PragmaOnce;
45982
 
class CCExprResolve;
45983
 
class CExprResolve;
45984
 
namespace Puma {
45985
 
 
45986
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45987
 
class CT_DeclSpecSeq : public CT_List {
45988
 
#line 45989 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
45989
 
  friend class ::WinIfExists;
45990
 
  friend class ::WinImportHandler;
45991
 
  friend class ::WinMacros;
45992
 
  friend class ::CMatchSyntax;
45993
 
  friend class ::ExtGnu;
45994
 
  friend class ::ExtAC;
45995
 
  friend class ::ExtACBuilderCoupling;
45996
 
  friend class ::ExtACSyntaxCoupling;
45997
 
  friend class ::ExtACTree;
45998
 
  friend class ::ExtACKeywords;
45999
 
  friend class ::WinAsm;
46000
 
  friend class ::WinDeclSpecs;
46001
 
  friend class ::WinMemberExplSpec;
46002
 
  friend class ::WinTypeKeywords;
46003
 
  friend class ::PragmaOnceUnitState;
46004
 
  friend class ::PragmaOnce;
46005
 
  friend class ::CCExprResolve;
46006
 
  friend class ::CExprResolve;
46007
 
 
46008
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46009
 
 
46010
 
public:
46011
 
  static const char *NodeId ();
46012
 
  const char *NodeName () const { return NodeId (); }
46013
 
};
46014
 
 
46015
 
 
46016
 
#line 46017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46017
 
} // closed Puma
46018
 
class WinIfExists;
46019
 
class WinImportHandler;
46020
 
class WinMacros;
46021
 
class CMatchSyntax;
46022
 
class ExtGnu;
46023
 
class ExtAC;
46024
 
class ExtACBuilderCoupling;
46025
 
class ExtACSyntaxCoupling;
46026
 
class ExtACTree;
46027
 
class ExtACKeywords;
46028
 
class WinAsm;
46029
 
class WinDeclSpecs;
46030
 
class WinMemberExplSpec;
46031
 
class WinTypeKeywords;
46032
 
class PragmaOnceUnitState;
46033
 
class PragmaOnce;
46034
 
class CCExprResolve;
46035
 
class CExprResolve;
46036
 
namespace Puma {
46037
 
 
46038
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46039
 
class CT_CmpdStmt : public CT_List, public CSemScope {
46040
 
#line 46041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46041
 
  friend class ::WinIfExists;
46042
 
  friend class ::WinImportHandler;
46043
 
  friend class ::WinMacros;
46044
 
  friend class ::CMatchSyntax;
46045
 
  friend class ::ExtGnu;
46046
 
  friend class ::ExtAC;
46047
 
  friend class ::ExtACBuilderCoupling;
46048
 
  friend class ::ExtACSyntaxCoupling;
46049
 
  friend class ::ExtACTree;
46050
 
  friend class ::ExtACKeywords;
46051
 
  friend class ::WinAsm;
46052
 
  friend class ::WinDeclSpecs;
46053
 
  friend class ::WinMemberExplSpec;
46054
 
  friend class ::WinTypeKeywords;
46055
 
  friend class ::PragmaOnceUnitState;
46056
 
  friend class ::PragmaOnce;
46057
 
  friend class ::CCExprResolve;
46058
 
  friend class ::CExprResolve;
46059
 
 
46060
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46061
 
 
46062
 
public:
46063
 
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
46064
 
  static const char *NodeId ();
46065
 
  const char *NodeName () const { return NodeId (); }
46066
 
};
46067
 
 
46068
 
 
46069
 
#line 46070 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46070
 
} // closed Puma
46071
 
class WinIfExists;
46072
 
class WinImportHandler;
46073
 
class WinMacros;
46074
 
class CMatchSyntax;
46075
 
class ExtGnu;
46076
 
class ExtAC;
46077
 
class ExtACBuilderCoupling;
46078
 
class ExtACSyntaxCoupling;
46079
 
class ExtACTree;
46080
 
class ExtACKeywords;
46081
 
class WinAsm;
46082
 
class WinDeclSpecs;
46083
 
class WinMemberExplSpec;
46084
 
class WinTypeKeywords;
46085
 
class PragmaOnceUnitState;
46086
 
class PragmaOnce;
46087
 
class CCExprResolve;
46088
 
class CExprResolve;
46089
 
namespace Puma {
46090
 
 
46091
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46092
 
class CT_HandlerSeq : public CT_List {
46093
 
#line 46094 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46094
 
  friend class ::WinIfExists;
46095
 
  friend class ::WinImportHandler;
46096
 
  friend class ::WinMacros;
46097
 
  friend class ::CMatchSyntax;
46098
 
  friend class ::ExtGnu;
46099
 
  friend class ::ExtAC;
46100
 
  friend class ::ExtACBuilderCoupling;
46101
 
  friend class ::ExtACSyntaxCoupling;
46102
 
  friend class ::ExtACTree;
46103
 
  friend class ::ExtACKeywords;
46104
 
  friend class ::WinAsm;
46105
 
  friend class ::WinDeclSpecs;
46106
 
  friend class ::WinMemberExplSpec;
46107
 
  friend class ::WinTypeKeywords;
46108
 
  friend class ::PragmaOnceUnitState;
46109
 
  friend class ::PragmaOnce;
46110
 
  friend class ::CCExprResolve;
46111
 
  friend class ::CExprResolve;
46112
 
 
46113
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46114
 
 
46115
 
public:
46116
 
  static const char *NodeId ();
46117
 
  const char *NodeName () const { return NodeId (); }
46118
 
};
46119
 
 
46120
 
 
46121
 
#line 46122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46122
 
} // closed Puma
46123
 
class WinIfExists;
46124
 
class WinImportHandler;
46125
 
class WinMacros;
46126
 
class CMatchSyntax;
46127
 
class ExtGnu;
46128
 
class ExtAC;
46129
 
class ExtACBuilderCoupling;
46130
 
class ExtACSyntaxCoupling;
46131
 
class ExtACTree;
46132
 
class ExtACKeywords;
46133
 
class WinAsm;
46134
 
class WinDeclSpecs;
46135
 
class WinMemberExplSpec;
46136
 
class WinTypeKeywords;
46137
 
class PragmaOnceUnitState;
46138
 
class PragmaOnce;
46139
 
class CCExprResolve;
46140
 
class CExprResolve;
46141
 
namespace Puma {
46142
 
 
46143
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46144
 
class CT_TemplateParamList : public CT_List, public CSemScope {
46145
 
#line 46146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46146
 
  friend class ::WinIfExists;
46147
 
  friend class ::WinImportHandler;
46148
 
  friend class ::WinMacros;
46149
 
  friend class ::CMatchSyntax;
46150
 
  friend class ::ExtGnu;
46151
 
  friend class ::ExtAC;
46152
 
  friend class ::ExtACBuilderCoupling;
46153
 
  friend class ::ExtACSyntaxCoupling;
46154
 
  friend class ::ExtACTree;
46155
 
  friend class ::ExtACKeywords;
46156
 
  friend class ::WinAsm;
46157
 
  friend class ::WinDeclSpecs;
46158
 
  friend class ::WinMemberExplSpec;
46159
 
  friend class ::WinTypeKeywords;
46160
 
  friend class ::PragmaOnceUnitState;
46161
 
  friend class ::PragmaOnce;
46162
 
  friend class ::CCExprResolve;
46163
 
  friend class ::CExprResolve;
46164
 
 
46165
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46166
 
 
46167
 
public:
46168
 
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
46169
 
  static const char *NodeId ();
46170
 
  const char *NodeName () const { return NodeId (); }
46171
 
};
46172
 
 
46173
 
 
46174
 
#line 46175 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46175
 
} // closed Puma
46176
 
class WinIfExists;
46177
 
class WinImportHandler;
46178
 
class WinMacros;
46179
 
class CMatchSyntax;
46180
 
class ExtGnu;
46181
 
class ExtAC;
46182
 
class ExtACBuilderCoupling;
46183
 
class ExtACSyntaxCoupling;
46184
 
class ExtACTree;
46185
 
class ExtACKeywords;
46186
 
class WinAsm;
46187
 
class WinDeclSpecs;
46188
 
class WinMemberExplSpec;
46189
 
class WinTypeKeywords;
46190
 
class PragmaOnceUnitState;
46191
 
class PragmaOnce;
46192
 
class CCExprResolve;
46193
 
class CExprResolve;
46194
 
namespace Puma {
46195
 
 
46196
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46197
 
class CT_TemplateArgList : public CT_List {
46198
 
#line 46199 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46199
 
  friend class ::WinIfExists;
46200
 
  friend class ::WinImportHandler;
46201
 
  friend class ::WinMacros;
46202
 
  friend class ::CMatchSyntax;
46203
 
  friend class ::ExtGnu;
46204
 
  friend class ::ExtAC;
46205
 
  friend class ::ExtACBuilderCoupling;
46206
 
  friend class ::ExtACSyntaxCoupling;
46207
 
  friend class ::ExtACTree;
46208
 
  friend class ::ExtACKeywords;
46209
 
  friend class ::WinAsm;
46210
 
  friend class ::WinDeclSpecs;
46211
 
  friend class ::WinMemberExplSpec;
46212
 
  friend class ::WinTypeKeywords;
46213
 
  friend class ::PragmaOnceUnitState;
46214
 
  friend class ::PragmaOnce;
46215
 
  friend class ::CCExprResolve;
46216
 
  friend class ::CExprResolve;
46217
 
 
46218
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46219
 
 
46220
 
public:
46221
 
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
46222
 
  static const char *NodeId ();
46223
 
  const char *NodeName () const { return NodeId (); }
46224
 
};
46225
 
 
46226
 
/*****************************************************************************/
46227
 
/*                                                                           */
46228
 
/*                              Expressions                                  */
46229
 
/*                                                                           */
46230
 
/*****************************************************************************/
46231
 
 
46232
 
 
46233
 
#line 46234 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46234
 
} // closed Puma
46235
 
class WinIfExists;
46236
 
class WinImportHandler;
46237
 
class WinMacros;
46238
 
class CMatchSyntax;
46239
 
class ExtGnu;
46240
 
class ExtAC;
46241
 
class ExtACBuilderCoupling;
46242
 
class ExtACSyntaxCoupling;
46243
 
class ExtACTree;
46244
 
class ExtACKeywords;
46245
 
class WinAsm;
46246
 
class WinDeclSpecs;
46247
 
class WinMemberExplSpec;
46248
 
class WinTypeKeywords;
46249
 
class PragmaOnceUnitState;
46250
 
class PragmaOnce;
46251
 
class CCExprResolve;
46252
 
class CExprResolve;
46253
 
namespace Puma {
46254
 
 
46255
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46256
 
class CT_Expression : public CTree, public CSemValue {
46257
 
#line 46258 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46258
 
  friend class ::WinIfExists;
46259
 
  friend class ::WinImportHandler;
46260
 
  friend class ::WinMacros;
46261
 
  friend class ::CMatchSyntax;
46262
 
  friend class ::ExtGnu;
46263
 
  friend class ::ExtAC;
46264
 
  friend class ::ExtACBuilderCoupling;
46265
 
  friend class ::ExtACSyntaxCoupling;
46266
 
  friend class ::ExtACTree;
46267
 
  friend class ::ExtACKeywords;
46268
 
  friend class ::WinAsm;
46269
 
  friend class ::WinDeclSpecs;
46270
 
  friend class ::WinMemberExplSpec;
46271
 
  friend class ::WinTypeKeywords;
46272
 
  friend class ::PragmaOnceUnitState;
46273
 
  friend class ::PragmaOnce;
46274
 
  friend class ::CCExprResolve;
46275
 
  friend class ::CExprResolve;
46276
 
 
46277
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46278
 
 
46279
 
protected:
46280
 
  CT_Expression () {}
46281
 
 
46282
 
public:
46283
 
  static const char *NodeId ();
46284
 
  const char *NodeName () const { return NodeId (); }
46285
 
  CTypeInfo *Type () const { return type; }
46286
 
  CExprValue *Value () const { return value; }
46287
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
46288
 
   private:
46289
 
  typedef CT_Expression CCExprResolveExpr;
46290
 
 
46291
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46292
 
 public :
46293
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
46294
 
  typedef CT_Expression CExprResolveExpr;
46295
 
 
46296
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46297
 
 public :
46298
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46299
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46300
 
};
46301
 
 
46302
 
 
46303
 
#line 46304 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46304
 
} // closed Puma
46305
 
class WinIfExists;
46306
 
class WinImportHandler;
46307
 
class WinMacros;
46308
 
class CMatchSyntax;
46309
 
class ExtGnu;
46310
 
class ExtAC;
46311
 
class ExtACBuilderCoupling;
46312
 
class ExtACSyntaxCoupling;
46313
 
class ExtACTree;
46314
 
class ExtACKeywords;
46315
 
class WinAsm;
46316
 
class WinDeclSpecs;
46317
 
class WinMemberExplSpec;
46318
 
class WinTypeKeywords;
46319
 
class PragmaOnceUnitState;
46320
 
class PragmaOnce;
46321
 
class CCExprResolve;
46322
 
class CExprResolve;
46323
 
namespace Puma {
46324
 
 
46325
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46326
 
class CT_String : public CT_List, public CSemValue {
46327
 
#line 46328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46328
 
  friend class ::WinIfExists;
46329
 
  friend class ::WinImportHandler;
46330
 
  friend class ::WinMacros;
46331
 
  friend class ::CMatchSyntax;
46332
 
  friend class ::ExtGnu;
46333
 
  friend class ::ExtAC;
46334
 
  friend class ::ExtACBuilderCoupling;
46335
 
  friend class ::ExtACSyntaxCoupling;
46336
 
  friend class ::ExtACTree;
46337
 
  friend class ::ExtACKeywords;
46338
 
  friend class ::WinAsm;
46339
 
  friend class ::WinDeclSpecs;
46340
 
  friend class ::WinMemberExplSpec;
46341
 
  friend class ::WinTypeKeywords;
46342
 
  friend class ::PragmaOnceUnitState;
46343
 
  friend class ::PragmaOnce;
46344
 
  friend class ::CCExprResolve;
46345
 
  friend class ::CExprResolve;
46346
 
 
46347
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46348
 
 
46349
 
public:
46350
 
  CT_String (int size) : CT_List (size, 1) {}
46351
 
  static const char *NodeId ();
46352
 
  const char *NodeName () const { return NodeId (); }
46353
 
 
46354
 
  CTypeInfo *Type () const { return type; }
46355
 
  CExprValue *Value () const { return value; }
46356
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
46357
 
   private:
46358
 
  typedef CT_String CCExprResolveExpr;
46359
 
 
46360
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46361
 
 public :
46362
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
46363
 
  typedef CT_String CExprResolveExpr;
46364
 
 
46365
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46366
 
 public :
46367
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46368
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46369
 
};
46370
 
 
46371
 
 
46372
 
#line 46373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46373
 
} // closed Puma
46374
 
class WinIfExists;
46375
 
class WinImportHandler;
46376
 
class WinMacros;
46377
 
class CMatchSyntax;
46378
 
class ExtGnu;
46379
 
class ExtAC;
46380
 
class ExtACBuilderCoupling;
46381
 
class ExtACSyntaxCoupling;
46382
 
class ExtACTree;
46383
 
class ExtACKeywords;
46384
 
class WinAsm;
46385
 
class WinDeclSpecs;
46386
 
class WinMemberExplSpec;
46387
 
class WinTypeKeywords;
46388
 
class PragmaOnceUnitState;
46389
 
class PragmaOnce;
46390
 
class CCExprResolve;
46391
 
class CExprResolve;
46392
 
namespace Puma {
46393
 
 
46394
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46395
 
class CT_WideString : public CT_String {
46396
 
#line 46397 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46397
 
  friend class ::WinIfExists;
46398
 
  friend class ::WinImportHandler;
46399
 
  friend class ::WinMacros;
46400
 
  friend class ::CMatchSyntax;
46401
 
  friend class ::ExtGnu;
46402
 
  friend class ::ExtAC;
46403
 
  friend class ::ExtACBuilderCoupling;
46404
 
  friend class ::ExtACSyntaxCoupling;
46405
 
  friend class ::ExtACTree;
46406
 
  friend class ::ExtACKeywords;
46407
 
  friend class ::WinAsm;
46408
 
  friend class ::WinDeclSpecs;
46409
 
  friend class ::WinMemberExplSpec;
46410
 
  friend class ::WinTypeKeywords;
46411
 
  friend class ::PragmaOnceUnitState;
46412
 
  friend class ::PragmaOnce;
46413
 
  friend class ::CCExprResolve;
46414
 
  friend class ::CExprResolve;
46415
 
 
46416
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46417
 
 
46418
 
public:
46419
 
  CT_WideString (int size) : CT_String (size) {}
46420
 
  static const char *NodeId ();
46421
 
  const char *NodeName () const { return NodeId (); }
46422
 
   private:
46423
 
  typedef CT_WideString CCExprResolveExpr;
46424
 
 
46425
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46426
 
 public :
46427
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
46428
 
  typedef CT_WideString CExprResolveExpr;
46429
 
 
46430
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46431
 
 public :
46432
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46433
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46434
 
};
46435
 
 
46436
 
 
46437
 
#line 46438 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46438
 
} // closed Puma
46439
 
class WinIfExists;
46440
 
class WinImportHandler;
46441
 
class WinMacros;
46442
 
class CMatchSyntax;
46443
 
class ExtGnu;
46444
 
class ExtAC;
46445
 
class ExtACBuilderCoupling;
46446
 
class ExtACSyntaxCoupling;
46447
 
class ExtACTree;
46448
 
class ExtACKeywords;
46449
 
class WinAsm;
46450
 
class WinDeclSpecs;
46451
 
class WinMemberExplSpec;
46452
 
class WinTypeKeywords;
46453
 
class PragmaOnceUnitState;
46454
 
class PragmaOnce;
46455
 
class CCExprResolve;
46456
 
class CExprResolve;
46457
 
namespace Puma {
46458
 
 
46459
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46460
 
class CT_Integer : public CT_Expression {
46461
 
#line 46462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46462
 
  friend class ::WinIfExists;
46463
 
  friend class ::WinImportHandler;
46464
 
  friend class ::WinMacros;
46465
 
  friend class ::CMatchSyntax;
46466
 
  friend class ::ExtGnu;
46467
 
  friend class ::ExtAC;
46468
 
  friend class ::ExtACBuilderCoupling;
46469
 
  friend class ::ExtACSyntaxCoupling;
46470
 
  friend class ::ExtACTree;
46471
 
  friend class ::ExtACKeywords;
46472
 
  friend class ::WinAsm;
46473
 
  friend class ::WinDeclSpecs;
46474
 
  friend class ::WinMemberExplSpec;
46475
 
  friend class ::WinTypeKeywords;
46476
 
  friend class ::PragmaOnceUnitState;
46477
 
  friend class ::PragmaOnce;
46478
 
  friend class ::CCExprResolve;
46479
 
  friend class ::CExprResolve;
46480
 
 
46481
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46482
 
 
46483
 
  CTree *_value;  // CT_Token
46484
 
 
46485
 
public:
46486
 
  CT_Integer (CTree *t) : _value (t) {}
46487
 
  static const char *NodeId ();
46488
 
  const char *NodeName () const { return NodeId (); }
46489
 
  int Sons () const { return _value ? 1 : 0; }
46490
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
46491
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
46492
 
   { if (old_son == _value) _value = new_son; }
46493
 
   private:
46494
 
  typedef CT_Integer CCExprResolveExpr;
46495
 
 
46496
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46497
 
 public :
46498
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
46499
 
  typedef CT_Integer CExprResolveExpr;
46500
 
 
46501
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46502
 
 public :
46503
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46504
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46505
 
};
46506
 
 
46507
 
 
46508
 
#line 46509 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46509
 
} // closed Puma
46510
 
class WinIfExists;
46511
 
class WinImportHandler;
46512
 
class WinMacros;
46513
 
class CMatchSyntax;
46514
 
class ExtGnu;
46515
 
class ExtAC;
46516
 
class ExtACBuilderCoupling;
46517
 
class ExtACSyntaxCoupling;
46518
 
class ExtACTree;
46519
 
class ExtACKeywords;
46520
 
class WinAsm;
46521
 
class WinDeclSpecs;
46522
 
class WinMemberExplSpec;
46523
 
class WinTypeKeywords;
46524
 
class PragmaOnceUnitState;
46525
 
class PragmaOnce;
46526
 
class CCExprResolve;
46527
 
class CExprResolve;
46528
 
namespace Puma {
46529
 
 
46530
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46531
 
class CT_Character : public CT_Expression {
46532
 
#line 46533 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46533
 
  friend class ::WinIfExists;
46534
 
  friend class ::WinImportHandler;
46535
 
  friend class ::WinMacros;
46536
 
  friend class ::CMatchSyntax;
46537
 
  friend class ::ExtGnu;
46538
 
  friend class ::ExtAC;
46539
 
  friend class ::ExtACBuilderCoupling;
46540
 
  friend class ::ExtACSyntaxCoupling;
46541
 
  friend class ::ExtACTree;
46542
 
  friend class ::ExtACKeywords;
46543
 
  friend class ::WinAsm;
46544
 
  friend class ::WinDeclSpecs;
46545
 
  friend class ::WinMemberExplSpec;
46546
 
  friend class ::WinTypeKeywords;
46547
 
  friend class ::PragmaOnceUnitState;
46548
 
  friend class ::PragmaOnce;
46549
 
  friend class ::CCExprResolve;
46550
 
  friend class ::CExprResolve;
46551
 
 
46552
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46553
 
 
46554
 
  CTree *_value;  // CT_Token
46555
 
 
46556
 
public:
46557
 
  CT_Character (CTree *t) : _value (t) {}
46558
 
  static const char *NodeId ();
46559
 
  const char *NodeName () const { return NodeId (); }
46560
 
  int Sons () const { return 1; }
46561
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
46562
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
46563
 
   { if (old_son == _value) _value = new_son; }
46564
 
   private:
46565
 
  typedef CT_Character CCExprResolveExpr;
46566
 
 
46567
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46568
 
 public :
46569
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
46570
 
  typedef CT_Character CExprResolveExpr;
46571
 
 
46572
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46573
 
 public :
46574
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46575
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46576
 
};
46577
 
 
46578
 
 
46579
 
#line 46580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46580
 
} // closed Puma
46581
 
class WinIfExists;
46582
 
class WinImportHandler;
46583
 
class WinMacros;
46584
 
class CMatchSyntax;
46585
 
class ExtGnu;
46586
 
class ExtAC;
46587
 
class ExtACBuilderCoupling;
46588
 
class ExtACSyntaxCoupling;
46589
 
class ExtACTree;
46590
 
class ExtACKeywords;
46591
 
class WinAsm;
46592
 
class WinDeclSpecs;
46593
 
class WinMemberExplSpec;
46594
 
class WinTypeKeywords;
46595
 
class PragmaOnceUnitState;
46596
 
class PragmaOnce;
46597
 
class CCExprResolve;
46598
 
class CExprResolve;
46599
 
namespace Puma {
46600
 
 
46601
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46602
 
class CT_WideCharacter : public CT_Character {
46603
 
#line 46604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46604
 
  friend class ::WinIfExists;
46605
 
  friend class ::WinImportHandler;
46606
 
  friend class ::WinMacros;
46607
 
  friend class ::CMatchSyntax;
46608
 
  friend class ::ExtGnu;
46609
 
  friend class ::ExtAC;
46610
 
  friend class ::ExtACBuilderCoupling;
46611
 
  friend class ::ExtACSyntaxCoupling;
46612
 
  friend class ::ExtACTree;
46613
 
  friend class ::ExtACKeywords;
46614
 
  friend class ::WinAsm;
46615
 
  friend class ::WinDeclSpecs;
46616
 
  friend class ::WinMemberExplSpec;
46617
 
  friend class ::WinTypeKeywords;
46618
 
  friend class ::PragmaOnceUnitState;
46619
 
  friend class ::PragmaOnce;
46620
 
  friend class ::CCExprResolve;
46621
 
  friend class ::CExprResolve;
46622
 
 
46623
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46624
 
 
46625
 
  CTree *_value;  // CT_Token
46626
 
 
46627
 
public:
46628
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
46629
 
  static const char *NodeId ();
46630
 
  const char *NodeName () const { return NodeId (); }
46631
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
46632
 
   { if (old_son == _value) _value = new_son; }
46633
 
   private:
46634
 
  typedef CT_WideCharacter CCExprResolveExpr;
46635
 
 
46636
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46637
 
 public :
46638
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
46639
 
  typedef CT_WideCharacter CExprResolveExpr;
46640
 
 
46641
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46642
 
 public :
46643
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46644
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46645
 
};
46646
 
 
46647
 
 
46648
 
#line 46649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46649
 
} // closed Puma
46650
 
class WinIfExists;
46651
 
class WinImportHandler;
46652
 
class WinMacros;
46653
 
class CMatchSyntax;
46654
 
class ExtGnu;
46655
 
class ExtAC;
46656
 
class ExtACBuilderCoupling;
46657
 
class ExtACSyntaxCoupling;
46658
 
class ExtACTree;
46659
 
class ExtACKeywords;
46660
 
class WinAsm;
46661
 
class WinDeclSpecs;
46662
 
class WinMemberExplSpec;
46663
 
class WinTypeKeywords;
46664
 
class PragmaOnceUnitState;
46665
 
class PragmaOnce;
46666
 
class CCExprResolve;
46667
 
class CExprResolve;
46668
 
namespace Puma {
46669
 
 
46670
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46671
 
class CT_Float : public CT_Expression {
46672
 
#line 46673 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46673
 
  friend class ::WinIfExists;
46674
 
  friend class ::WinImportHandler;
46675
 
  friend class ::WinMacros;
46676
 
  friend class ::CMatchSyntax;
46677
 
  friend class ::ExtGnu;
46678
 
  friend class ::ExtAC;
46679
 
  friend class ::ExtACBuilderCoupling;
46680
 
  friend class ::ExtACSyntaxCoupling;
46681
 
  friend class ::ExtACTree;
46682
 
  friend class ::ExtACKeywords;
46683
 
  friend class ::WinAsm;
46684
 
  friend class ::WinDeclSpecs;
46685
 
  friend class ::WinMemberExplSpec;
46686
 
  friend class ::WinTypeKeywords;
46687
 
  friend class ::PragmaOnceUnitState;
46688
 
  friend class ::PragmaOnce;
46689
 
  friend class ::CCExprResolve;
46690
 
  friend class ::CExprResolve;
46691
 
 
46692
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46693
 
 
46694
 
  CTree *_value;  // CT_Token
46695
 
 
46696
 
public:
46697
 
  CT_Float (CTree *t) : _value (t) {}
46698
 
  static const char *NodeId ();
46699
 
  const char *NodeName () const { return NodeId (); }
46700
 
  int Sons () const { return 1; }
46701
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
46702
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
46703
 
   { if (old_son == _value) _value = new_son; }
46704
 
   private:
46705
 
  typedef CT_Float CCExprResolveExpr;
46706
 
 
46707
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46708
 
 public :
46709
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
46710
 
  typedef CT_Float CExprResolveExpr;
46711
 
 
46712
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46713
 
 public :
46714
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46715
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46716
 
};
46717
 
 
46718
 
 
46719
 
#line 46720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46720
 
} // closed Puma
46721
 
class WinIfExists;
46722
 
class WinImportHandler;
46723
 
class WinMacros;
46724
 
class CMatchSyntax;
46725
 
class ExtGnu;
46726
 
class ExtAC;
46727
 
class ExtACBuilderCoupling;
46728
 
class ExtACSyntaxCoupling;
46729
 
class ExtACTree;
46730
 
class ExtACKeywords;
46731
 
class WinAsm;
46732
 
class WinDeclSpecs;
46733
 
class WinMemberExplSpec;
46734
 
class WinTypeKeywords;
46735
 
class PragmaOnceUnitState;
46736
 
class PragmaOnce;
46737
 
class CCExprResolve;
46738
 
class CExprResolve;
46739
 
namespace Puma {
46740
 
 
46741
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46742
 
class CT_Bool : public CT_Expression {
46743
 
#line 46744 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46744
 
  friend class ::WinIfExists;
46745
 
  friend class ::WinImportHandler;
46746
 
  friend class ::WinMacros;
46747
 
  friend class ::CMatchSyntax;
46748
 
  friend class ::ExtGnu;
46749
 
  friend class ::ExtAC;
46750
 
  friend class ::ExtACBuilderCoupling;
46751
 
  friend class ::ExtACSyntaxCoupling;
46752
 
  friend class ::ExtACTree;
46753
 
  friend class ::ExtACKeywords;
46754
 
  friend class ::WinAsm;
46755
 
  friend class ::WinDeclSpecs;
46756
 
  friend class ::WinMemberExplSpec;
46757
 
  friend class ::WinTypeKeywords;
46758
 
  friend class ::PragmaOnceUnitState;
46759
 
  friend class ::PragmaOnce;
46760
 
  friend class ::CCExprResolve;
46761
 
  friend class ::CExprResolve;
46762
 
 
46763
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46764
 
 
46765
 
  CTree *_value;  // CT_Token
46766
 
 
46767
 
public:
46768
 
  CT_Bool (CTree *t) : _value (t) {}
46769
 
  static const char *NodeId ();
46770
 
  const char *NodeName () const { return NodeId (); }
46771
 
  int Sons () const { return 1; }
46772
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
46773
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
46774
 
   { if (old_son == _value) _value = new_son; }
46775
 
   private:
46776
 
  typedef CT_Bool CCExprResolveExpr;
46777
 
 
46778
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46779
 
 public :
46780
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
46781
 
  typedef CT_Bool CExprResolveExpr;
46782
 
 
46783
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46784
 
 public :
46785
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46786
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46787
 
};
46788
 
 
46789
 
 
46790
 
#line 46791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46791
 
} // closed Puma
46792
 
class WinIfExists;
46793
 
class WinImportHandler;
46794
 
class WinMacros;
46795
 
class CMatchSyntax;
46796
 
class ExtGnu;
46797
 
class ExtAC;
46798
 
class ExtACBuilderCoupling;
46799
 
class ExtACSyntaxCoupling;
46800
 
class ExtACTree;
46801
 
class ExtACKeywords;
46802
 
class WinAsm;
46803
 
class WinDeclSpecs;
46804
 
class WinMemberExplSpec;
46805
 
class WinTypeKeywords;
46806
 
class PragmaOnceUnitState;
46807
 
class PragmaOnce;
46808
 
class CCExprResolve;
46809
 
class CExprResolve;
46810
 
namespace Puma {
46811
 
 
46812
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46813
 
class CT_BracedExpr : public CT_Expression {
46814
 
#line 46815 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46815
 
  friend class ::WinIfExists;
46816
 
  friend class ::WinImportHandler;
46817
 
  friend class ::WinMacros;
46818
 
  friend class ::CMatchSyntax;
46819
 
  friend class ::ExtGnu;
46820
 
  friend class ::ExtAC;
46821
 
  friend class ::ExtACBuilderCoupling;
46822
 
  friend class ::ExtACSyntaxCoupling;
46823
 
  friend class ::ExtACTree;
46824
 
  friend class ::ExtACKeywords;
46825
 
  friend class ::WinAsm;
46826
 
  friend class ::WinDeclSpecs;
46827
 
  friend class ::WinMemberExplSpec;
46828
 
  friend class ::WinTypeKeywords;
46829
 
  friend class ::PragmaOnceUnitState;
46830
 
  friend class ::PragmaOnce;
46831
 
  friend class ::CCExprResolve;
46832
 
  friend class ::CExprResolve;
46833
 
 
46834
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46835
 
 
46836
 
  CTree *sons[3]; // open, expr, close
46837
 
 
46838
 
public:
46839
 
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
46840
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
46841
 
  }
46842
 
  static const char *NodeId ();
46843
 
  const char *NodeName () const { return NodeId (); }
46844
 
  int Sons () const { return 3; }
46845
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
46846
 
  CTree *Expr () const { return sons[1]; }
46847
 
  CTypeInfo *Type () const { return Expr ()->Type (); }
46848
 
  CExprValue *Value () const { return Expr ()->Value (); }
46849
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
46850
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46851
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
46852
 
  }
46853
 
   private:
46854
 
  typedef CT_BracedExpr CCExprResolveExpr;
46855
 
 
46856
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46857
 
 public :
46858
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
46859
 
  typedef CT_BracedExpr CExprResolveExpr;
46860
 
 
46861
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46862
 
 public :
46863
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46864
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46865
 
};
46866
 
 
46867
 
 
46868
 
#line 46869 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46869
 
} // closed Puma
46870
 
class WinIfExists;
46871
 
class WinImportHandler;
46872
 
class WinMacros;
46873
 
class CMatchSyntax;
46874
 
class ExtGnu;
46875
 
class ExtAC;
46876
 
class ExtACBuilderCoupling;
46877
 
class ExtACSyntaxCoupling;
46878
 
class ExtACTree;
46879
 
class ExtACKeywords;
46880
 
class WinAsm;
46881
 
class WinDeclSpecs;
46882
 
class WinMemberExplSpec;
46883
 
class WinTypeKeywords;
46884
 
class PragmaOnceUnitState;
46885
 
class PragmaOnce;
46886
 
class CCExprResolve;
46887
 
class CExprResolve;
46888
 
namespace Puma {
46889
 
 
46890
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46891
 
class CT_SimpleName : public CT_List, public Printable, 
46892
 
                      public CSemValue, public CSemObject {
46893
 
#line 46894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46894
 
  friend class ::WinIfExists;
46895
 
  friend class ::WinImportHandler;
46896
 
  friend class ::WinMacros;
46897
 
  friend class ::CMatchSyntax;
46898
 
  friend class ::ExtGnu;
46899
 
  friend class ::ExtAC;
46900
 
  friend class ::ExtACBuilderCoupling;
46901
 
  friend class ::ExtACSyntaxCoupling;
46902
 
  friend class ::ExtACTree;
46903
 
  friend class ::ExtACKeywords;
46904
 
  friend class ::WinAsm;
46905
 
  friend class ::WinDeclSpecs;
46906
 
  friend class ::WinMemberExplSpec;
46907
 
  friend class ::WinTypeKeywords;
46908
 
  friend class ::PragmaOnceUnitState;
46909
 
  friend class ::PragmaOnce;
46910
 
  friend class ::CCExprResolve;
46911
 
  friend class ::CExprResolve;
46912
 
 
46913
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46914
 
 
46915
 
protected:
46916
 
  CT_SimpleName (int size) : CT_List (size, 1) {}
46917
 
  CT_SimpleName (int size, int properties) : 
46918
 
    CT_List (size, 2, properties) {}
46919
 
  
46920
 
public:
46921
 
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
46922
 
  static const char *NodeId ();
46923
 
  const char *NodeName () const { return NodeId (); }
46924
 
  virtual const char *Text () const 
46925
 
   { return Son (Sons ()-1)->token ()->text (); }
46926
 
  virtual void print (ostream &os) const { os << Text (); }
46927
 
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
46928
 
  CTypeInfo *Type () const { return type; }
46929
 
  CExprValue *Value () const { return value; }
46930
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
46931
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
46932
 
  // special new / delete with reusing memory
46933
 
  void *operator new (size_t);
46934
 
  void  operator delete (void *);
46935
 
  // classification function
46936
 
  virtual CT_SimpleName *IsSimpleName () { return this; }  
46937
 
   private:
46938
 
  typedef CT_SimpleName CCExprResolveExpr;
46939
 
 
46940
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46941
 
 public :
46942
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
46943
 
  typedef CT_SimpleName CExprResolveExpr;
46944
 
 
46945
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46946
 
 public :
46947
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46948
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46949
 
};
46950
 
 
46951
 
 
46952
 
#line 46953 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46953
 
} // closed Puma
46954
 
class WinIfExists;
46955
 
class WinImportHandler;
46956
 
class WinMacros;
46957
 
class CMatchSyntax;
46958
 
class ExtGnu;
46959
 
class ExtAC;
46960
 
class ExtACBuilderCoupling;
46961
 
class ExtACSyntaxCoupling;
46962
 
class ExtACTree;
46963
 
class ExtACKeywords;
46964
 
class WinAsm;
46965
 
class WinDeclSpecs;
46966
 
class WinMemberExplSpec;
46967
 
class WinTypeKeywords;
46968
 
class PragmaOnceUnitState;
46969
 
class PragmaOnce;
46970
 
class CCExprResolve;
46971
 
class CExprResolve;
46972
 
namespace Puma {
46973
 
 
46974
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46975
 
class CT_SpecialName : public CT_SimpleName {
46976
 
#line 46977 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
46977
 
  friend class ::WinIfExists;
46978
 
  friend class ::WinImportHandler;
46979
 
  friend class ::WinMacros;
46980
 
  friend class ::CMatchSyntax;
46981
 
  friend class ::ExtGnu;
46982
 
  friend class ::ExtAC;
46983
 
  friend class ::ExtACBuilderCoupling;
46984
 
  friend class ::ExtACSyntaxCoupling;
46985
 
  friend class ::ExtACTree;
46986
 
  friend class ::ExtACKeywords;
46987
 
  friend class ::WinAsm;
46988
 
  friend class ::WinDeclSpecs;
46989
 
  friend class ::WinMemberExplSpec;
46990
 
  friend class ::WinTypeKeywords;
46991
 
  friend class ::PragmaOnceUnitState;
46992
 
  friend class ::PragmaOnce;
46993
 
  friend class ::CCExprResolve;
46994
 
  friend class ::CExprResolve;
46995
 
 
46996
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46997
 
 
46998
 
  char *_name;
46999
 
  
47000
 
protected:
47001
 
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
47002
 
  
47003
 
public:
47004
 
  ~CT_SpecialName () { if (_name) delete[] _name; }
47005
 
  const char *Text () const { return _name; }
47006
 
  void Name (const char *n) { 
47007
 
    if (n) { 
47008
 
      _name = new char[strlen(n) + 1];
47009
 
      strcpy (_name,n);
47010
 
    }
47011
 
  }
47012
 
  // special new / delete with reusing memory
47013
 
  void *operator new (size_t);
47014
 
  void  operator delete (void *);
47015
 
   private:
47016
 
  typedef CT_SpecialName CCExprResolveExpr;
47017
 
 
47018
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47019
 
 public :
47020
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
47021
 
  typedef CT_SpecialName CExprResolveExpr;
47022
 
 
47023
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47024
 
 public :
47025
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47026
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47027
 
};
47028
 
 
47029
 
 
47030
 
#line 47031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47031
 
} // closed Puma
47032
 
class WinIfExists;
47033
 
class WinImportHandler;
47034
 
class WinMacros;
47035
 
class CMatchSyntax;
47036
 
class ExtGnu;
47037
 
class ExtAC;
47038
 
class ExtACBuilderCoupling;
47039
 
class ExtACSyntaxCoupling;
47040
 
class ExtACTree;
47041
 
class ExtACKeywords;
47042
 
class WinAsm;
47043
 
class WinDeclSpecs;
47044
 
class WinMemberExplSpec;
47045
 
class WinTypeKeywords;
47046
 
class PragmaOnceUnitState;
47047
 
class PragmaOnce;
47048
 
class CCExprResolve;
47049
 
class CExprResolve;
47050
 
namespace Puma {
47051
 
 
47052
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47053
 
class CT_PrivateName : public CT_SpecialName {
47054
 
#line 47055 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47055
 
  friend class ::WinIfExists;
47056
 
  friend class ::WinImportHandler;
47057
 
  friend class ::WinMacros;
47058
 
  friend class ::CMatchSyntax;
47059
 
  friend class ::ExtGnu;
47060
 
  friend class ::ExtAC;
47061
 
  friend class ::ExtACBuilderCoupling;
47062
 
  friend class ::ExtACSyntaxCoupling;
47063
 
  friend class ::ExtACTree;
47064
 
  friend class ::ExtACKeywords;
47065
 
  friend class ::WinAsm;
47066
 
  friend class ::WinDeclSpecs;
47067
 
  friend class ::WinMemberExplSpec;
47068
 
  friend class ::WinTypeKeywords;
47069
 
  friend class ::PragmaOnceUnitState;
47070
 
  friend class ::PragmaOnce;
47071
 
  friend class ::CCExprResolve;
47072
 
  friend class ::CExprResolve;
47073
 
 
47074
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47075
 
 
47076
 
public:
47077
 
  CT_PrivateName (const char *n) { Name (n); }
47078
 
  static const char *NodeId ();
47079
 
  const char *NodeName () const { return NodeId (); }
47080
 
  int Sons () const { return 0; }
47081
 
  CTree *Son (int n) const { return (CTree*)0; }
47082
 
  // special new / delete with reusing memory
47083
 
  void *operator new (size_t);
47084
 
  void  operator delete (void *);
47085
 
   private:
47086
 
  typedef CT_PrivateName CCExprResolveExpr;
47087
 
 
47088
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47089
 
 public :
47090
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
47091
 
  typedef CT_PrivateName CExprResolveExpr;
47092
 
 
47093
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47094
 
 public :
47095
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47096
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47097
 
};
47098
 
 
47099
 
 
47100
 
#line 47101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47101
 
} // closed Puma
47102
 
class WinIfExists;
47103
 
class WinImportHandler;
47104
 
class WinMacros;
47105
 
class CMatchSyntax;
47106
 
class ExtGnu;
47107
 
class ExtAC;
47108
 
class ExtACBuilderCoupling;
47109
 
class ExtACSyntaxCoupling;
47110
 
class ExtACTree;
47111
 
class ExtACKeywords;
47112
 
class WinAsm;
47113
 
class WinDeclSpecs;
47114
 
class WinMemberExplSpec;
47115
 
class WinTypeKeywords;
47116
 
class PragmaOnceUnitState;
47117
 
class PragmaOnce;
47118
 
class CCExprResolve;
47119
 
class CExprResolve;
47120
 
namespace Puma {
47121
 
 
47122
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47123
 
class CT_DestructorName : public CT_SpecialName {
47124
 
#line 47125 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47125
 
  friend class ::WinIfExists;
47126
 
  friend class ::WinImportHandler;
47127
 
  friend class ::WinMacros;
47128
 
  friend class ::CMatchSyntax;
47129
 
  friend class ::ExtGnu;
47130
 
  friend class ::ExtAC;
47131
 
  friend class ::ExtACBuilderCoupling;
47132
 
  friend class ::ExtACSyntaxCoupling;
47133
 
  friend class ::ExtACTree;
47134
 
  friend class ::ExtACKeywords;
47135
 
  friend class ::WinAsm;
47136
 
  friend class ::WinDeclSpecs;
47137
 
  friend class ::WinMemberExplSpec;
47138
 
  friend class ::WinTypeKeywords;
47139
 
  friend class ::PragmaOnceUnitState;
47140
 
  friend class ::PragmaOnce;
47141
 
  friend class ::CCExprResolve;
47142
 
  friend class ::CExprResolve;
47143
 
 
47144
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47145
 
 
47146
 
public:
47147
 
  CT_DestructorName (CTree *, CTree *);
47148
 
  static const char *NodeId ();
47149
 
  const char *NodeName () const { return NodeId (); }
47150
 
  // special new / delete with reusing memory
47151
 
  void *operator new (size_t);
47152
 
  void  operator delete (void *);
47153
 
   private:
47154
 
  typedef CT_DestructorName CCExprResolveExpr;
47155
 
 
47156
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47157
 
 public :
47158
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
47159
 
  typedef CT_DestructorName CExprResolveExpr;
47160
 
 
47161
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47162
 
 public :
47163
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47164
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47165
 
};
47166
 
 
47167
 
 
47168
 
#line 47169 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47169
 
} // closed Puma
47170
 
class WinIfExists;
47171
 
class WinImportHandler;
47172
 
class WinMacros;
47173
 
class CMatchSyntax;
47174
 
class ExtGnu;
47175
 
class ExtAC;
47176
 
class ExtACBuilderCoupling;
47177
 
class ExtACSyntaxCoupling;
47178
 
class ExtACTree;
47179
 
class ExtACKeywords;
47180
 
class WinAsm;
47181
 
class WinDeclSpecs;
47182
 
class WinMemberExplSpec;
47183
 
class WinTypeKeywords;
47184
 
class PragmaOnceUnitState;
47185
 
class PragmaOnce;
47186
 
class CCExprResolve;
47187
 
class CExprResolve;
47188
 
namespace Puma {
47189
 
 
47190
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47191
 
class CT_TemplateName : public CT_SpecialName {
47192
 
#line 47193 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47193
 
  friend class ::WinIfExists;
47194
 
  friend class ::WinImportHandler;
47195
 
  friend class ::WinMacros;
47196
 
  friend class ::CMatchSyntax;
47197
 
  friend class ::ExtGnu;
47198
 
  friend class ::ExtAC;
47199
 
  friend class ::ExtACBuilderCoupling;
47200
 
  friend class ::ExtACSyntaxCoupling;
47201
 
  friend class ::ExtACTree;
47202
 
  friend class ::ExtACKeywords;
47203
 
  friend class ::WinAsm;
47204
 
  friend class ::WinDeclSpecs;
47205
 
  friend class ::WinMemberExplSpec;
47206
 
  friend class ::WinTypeKeywords;
47207
 
  friend class ::PragmaOnceUnitState;
47208
 
  friend class ::PragmaOnce;
47209
 
  friend class ::CCExprResolve;
47210
 
  friend class ::CExprResolve;
47211
 
 
47212
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47213
 
 
47214
 
public:
47215
 
  CT_TemplateName (CTree *n, CTree *a) 
47216
 
   { AddSon (n); AddSon (a); }
47217
 
  static const char *NodeId ();
47218
 
  const char *NodeName () const { return NodeId (); }
47219
 
  CT_TemplateArgList *Arguments () const 
47220
 
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
47221
 
  CT_SimpleName *TemplateName () const 
47222
 
   { return (CT_SimpleName*)Son (Sons ()-2); }
47223
 
  // may change in the future
47224
 
  const char *Text () const { return TemplateName ()->Text (); }
47225
 
  // special new / delete with reusing memory
47226
 
  void *operator new (size_t);
47227
 
  void  operator delete (void *);
47228
 
   private:
47229
 
  typedef CT_TemplateName CCExprResolveExpr;
47230
 
 
47231
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47232
 
 public :
47233
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
47234
 
  typedef CT_TemplateName CExprResolveExpr;
47235
 
 
47236
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47237
 
 public :
47238
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47239
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47240
 
};
47241
 
 
47242
 
 
47243
 
#line 47244 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47244
 
} // closed Puma
47245
 
class WinIfExists;
47246
 
class WinImportHandler;
47247
 
class WinMacros;
47248
 
class CMatchSyntax;
47249
 
class ExtGnu;
47250
 
class ExtAC;
47251
 
class ExtACBuilderCoupling;
47252
 
class ExtACSyntaxCoupling;
47253
 
class ExtACTree;
47254
 
class ExtACKeywords;
47255
 
class WinAsm;
47256
 
class WinDeclSpecs;
47257
 
class WinMemberExplSpec;
47258
 
class WinTypeKeywords;
47259
 
class PragmaOnceUnitState;
47260
 
class PragmaOnce;
47261
 
class CCExprResolve;
47262
 
class CExprResolve;
47263
 
namespace Puma {
47264
 
 
47265
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47266
 
class CT_OperatorName : public CT_SpecialName {
47267
 
#line 47268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47268
 
  friend class ::WinIfExists;
47269
 
  friend class ::WinImportHandler;
47270
 
  friend class ::WinMacros;
47271
 
  friend class ::CMatchSyntax;
47272
 
  friend class ::ExtGnu;
47273
 
  friend class ::ExtAC;
47274
 
  friend class ::ExtACBuilderCoupling;
47275
 
  friend class ::ExtACSyntaxCoupling;
47276
 
  friend class ::ExtACTree;
47277
 
  friend class ::ExtACKeywords;
47278
 
  friend class ::WinAsm;
47279
 
  friend class ::WinDeclSpecs;
47280
 
  friend class ::WinMemberExplSpec;
47281
 
  friend class ::WinTypeKeywords;
47282
 
  friend class ::PragmaOnceUnitState;
47283
 
  friend class ::PragmaOnce;
47284
 
  friend class ::CCExprResolve;
47285
 
  friend class ::CExprResolve;
47286
 
 
47287
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47288
 
 
47289
 
  int _oper;
47290
 
 
47291
 
public:
47292
 
  enum { // complex operators
47293
 
    FCT_CALL = -100,
47294
 
    SUBSCRIPT,
47295
 
    NEW_ARRAY,
47296
 
    DEL_ARRAY
47297
 
  };
47298
 
 
47299
 
public:
47300
 
  CT_OperatorName (CTree *);
47301
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
47302
 
  static const char *NodeId ();
47303
 
  const char *NodeName () const { return NodeId (); }
47304
 
  int Operator () const { return _oper; }
47305
 
  // special new / delete with reusing memory
47306
 
  void *operator new (size_t);
47307
 
  void  operator delete (void *);
47308
 
   private:
47309
 
  typedef CT_OperatorName CCExprResolveExpr;
47310
 
 
47311
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47312
 
 public :
47313
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
47314
 
  typedef CT_OperatorName CExprResolveExpr;
47315
 
 
47316
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47317
 
 public :
47318
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47319
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47320
 
};
47321
 
 
47322
 
 
47323
 
#line 47324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47324
 
} // closed Puma
47325
 
class WinIfExists;
47326
 
class WinImportHandler;
47327
 
class WinMacros;
47328
 
class CMatchSyntax;
47329
 
class ExtGnu;
47330
 
class ExtAC;
47331
 
class ExtACBuilderCoupling;
47332
 
class ExtACSyntaxCoupling;
47333
 
class ExtACTree;
47334
 
class ExtACKeywords;
47335
 
class WinAsm;
47336
 
class WinDeclSpecs;
47337
 
class WinMemberExplSpec;
47338
 
class WinTypeKeywords;
47339
 
class PragmaOnceUnitState;
47340
 
class PragmaOnce;
47341
 
class CCExprResolve;
47342
 
class CExprResolve;
47343
 
namespace Puma {
47344
 
 
47345
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47346
 
class CT_ConversionName : public CT_SpecialName {
47347
 
#line 47348 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47348
 
  friend class ::WinIfExists;
47349
 
  friend class ::WinImportHandler;
47350
 
  friend class ::WinMacros;
47351
 
  friend class ::CMatchSyntax;
47352
 
  friend class ::ExtGnu;
47353
 
  friend class ::ExtAC;
47354
 
  friend class ::ExtACBuilderCoupling;
47355
 
  friend class ::ExtACSyntaxCoupling;
47356
 
  friend class ::ExtACTree;
47357
 
  friend class ::ExtACKeywords;
47358
 
  friend class ::WinAsm;
47359
 
  friend class ::WinDeclSpecs;
47360
 
  friend class ::WinMemberExplSpec;
47361
 
  friend class ::WinTypeKeywords;
47362
 
  friend class ::PragmaOnceUnitState;
47363
 
  friend class ::PragmaOnce;
47364
 
  friend class ::CCExprResolve;
47365
 
  friend class ::CExprResolve;
47366
 
 
47367
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47368
 
 
47369
 
public:
47370
 
  CT_ConversionName (CTree *, CTree *);
47371
 
  static const char *NodeId ();
47372
 
  const char *NodeName () const { return NodeId (); }
47373
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
47374
 
  // special new / delete with reusing memory
47375
 
  void *operator new (size_t);
47376
 
  void  operator delete (void *);
47377
 
   private:
47378
 
  typedef CT_ConversionName CCExprResolveExpr;
47379
 
 
47380
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47381
 
 public :
47382
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
47383
 
  typedef CT_ConversionName CExprResolveExpr;
47384
 
 
47385
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47386
 
 public :
47387
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47388
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47389
 
};
47390
 
 
47391
 
 
47392
 
#line 47393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47393
 
} // closed Puma
47394
 
class WinIfExists;
47395
 
class WinImportHandler;
47396
 
class WinMacros;
47397
 
class CMatchSyntax;
47398
 
class ExtGnu;
47399
 
class ExtAC;
47400
 
class ExtACBuilderCoupling;
47401
 
class ExtACSyntaxCoupling;
47402
 
class ExtACTree;
47403
 
class ExtACKeywords;
47404
 
class WinAsm;
47405
 
class WinDeclSpecs;
47406
 
class WinMemberExplSpec;
47407
 
class WinTypeKeywords;
47408
 
class PragmaOnceUnitState;
47409
 
class PragmaOnce;
47410
 
class CCExprResolve;
47411
 
class CExprResolve;
47412
 
namespace Puma {
47413
 
 
47414
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47415
 
class CT_QualName : public CT_SimpleName {
47416
 
#line 47417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47417
 
  friend class ::WinIfExists;
47418
 
  friend class ::WinImportHandler;
47419
 
  friend class ::WinMacros;
47420
 
  friend class ::CMatchSyntax;
47421
 
  friend class ::ExtGnu;
47422
 
  friend class ::ExtAC;
47423
 
  friend class ::ExtACBuilderCoupling;
47424
 
  friend class ::ExtACSyntaxCoupling;
47425
 
  friend class ::ExtACTree;
47426
 
  friend class ::ExtACKeywords;
47427
 
  friend class ::WinAsm;
47428
 
  friend class ::WinDeclSpecs;
47429
 
  friend class ::WinMemberExplSpec;
47430
 
  friend class ::WinTypeKeywords;
47431
 
  friend class ::PragmaOnceUnitState;
47432
 
  friend class ::PragmaOnce;
47433
 
  friend class ::CCExprResolve;
47434
 
  friend class ::CExprResolve;
47435
 
 
47436
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47437
 
 
47438
 
public:
47439
 
  CT_QualName (int size = 3) : 
47440
 
    CT_SimpleName (size, CT_List::SEPARATORS) {}
47441
 
  static const char *NodeId ();
47442
 
  const char *NodeName () const { return NodeId (); }
47443
 
  void print (ostream &) const;
47444
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
47445
 
  const char *Text () const { return Name ()->Text (); }
47446
 
  CTypeInfo *Type () const { return Name ()->Type (); }
47447
 
  CExprValue *Value () const { return Name ()->Value (); }
47448
 
  CSemValue *SemValue () const { return Name ()->SemValue (); }
47449
 
  CSemObject *SemObject () const { return Name ()->SemObject (); }
47450
 
  // special new / delete with reusing memory
47451
 
  void *operator new (size_t);
47452
 
  void  operator delete (void *);
47453
 
   private:
47454
 
  typedef CT_QualName CCExprResolveExpr;
47455
 
 
47456
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47457
 
 public :
47458
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
47459
 
  typedef CT_QualName CExprResolveExpr;
47460
 
 
47461
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47462
 
 public :
47463
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47464
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47465
 
};
47466
 
 
47467
 
 
47468
 
#line 47469 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47469
 
} // closed Puma
47470
 
class WinIfExists;
47471
 
class WinImportHandler;
47472
 
class WinMacros;
47473
 
class CMatchSyntax;
47474
 
class ExtGnu;
47475
 
class ExtAC;
47476
 
class ExtACBuilderCoupling;
47477
 
class ExtACSyntaxCoupling;
47478
 
class ExtACTree;
47479
 
class ExtACKeywords;
47480
 
class WinAsm;
47481
 
class WinDeclSpecs;
47482
 
class WinMemberExplSpec;
47483
 
class WinTypeKeywords;
47484
 
class PragmaOnceUnitState;
47485
 
class PragmaOnce;
47486
 
class CCExprResolve;
47487
 
class CExprResolve;
47488
 
namespace Puma {
47489
 
 
47490
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47491
 
class CT_RootQualName : public CT_QualName {
47492
 
#line 47493 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47493
 
  friend class ::WinIfExists;
47494
 
  friend class ::WinImportHandler;
47495
 
  friend class ::WinMacros;
47496
 
  friend class ::CMatchSyntax;
47497
 
  friend class ::ExtGnu;
47498
 
  friend class ::ExtAC;
47499
 
  friend class ::ExtACBuilderCoupling;
47500
 
  friend class ::ExtACSyntaxCoupling;
47501
 
  friend class ::ExtACTree;
47502
 
  friend class ::ExtACKeywords;
47503
 
  friend class ::WinAsm;
47504
 
  friend class ::WinDeclSpecs;
47505
 
  friend class ::WinMemberExplSpec;
47506
 
  friend class ::WinTypeKeywords;
47507
 
  friend class ::PragmaOnceUnitState;
47508
 
  friend class ::PragmaOnce;
47509
 
  friend class ::CCExprResolve;
47510
 
  friend class ::CExprResolve;
47511
 
 
47512
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47513
 
 
47514
 
public:
47515
 
  CT_RootQualName (int size = 2) : 
47516
 
    CT_QualName (size) { AddProperties (INTRO); }
47517
 
  static const char *NodeId ();
47518
 
  const char *NodeName () const { return NodeId (); }
47519
 
  // special new / delete with reusing memory
47520
 
  void *operator new (size_t);
47521
 
  void  operator delete (void *);
47522
 
   private:
47523
 
  typedef CT_RootQualName CCExprResolveExpr;
47524
 
 
47525
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47526
 
 public :
47527
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
47528
 
  typedef CT_RootQualName CExprResolveExpr;
47529
 
 
47530
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47531
 
 public :
47532
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47533
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47534
 
};
47535
 
 
47536
 
 
47537
 
#line 47538 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47538
 
} // closed Puma
47539
 
class WinIfExists;
47540
 
class WinImportHandler;
47541
 
class WinMacros;
47542
 
class CMatchSyntax;
47543
 
class ExtGnu;
47544
 
class ExtAC;
47545
 
class ExtACBuilderCoupling;
47546
 
class ExtACSyntaxCoupling;
47547
 
class ExtACTree;
47548
 
class ExtACKeywords;
47549
 
class WinAsm;
47550
 
class WinDeclSpecs;
47551
 
class WinMemberExplSpec;
47552
 
class WinTypeKeywords;
47553
 
class PragmaOnceUnitState;
47554
 
class PragmaOnce;
47555
 
class CCExprResolve;
47556
 
class CExprResolve;
47557
 
namespace Puma {
47558
 
 
47559
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47560
 
class CT_BinaryExpr : public CT_Expression {
47561
 
#line 47562 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47562
 
  friend class ::WinIfExists;
47563
 
  friend class ::WinImportHandler;
47564
 
  friend class ::WinMacros;
47565
 
  friend class ::CMatchSyntax;
47566
 
  friend class ::ExtGnu;
47567
 
  friend class ::ExtAC;
47568
 
  friend class ::ExtACBuilderCoupling;
47569
 
  friend class ::ExtACSyntaxCoupling;
47570
 
  friend class ::ExtACTree;
47571
 
  friend class ::ExtACKeywords;
47572
 
  friend class ::WinAsm;
47573
 
  friend class ::WinDeclSpecs;
47574
 
  friend class ::WinMemberExplSpec;
47575
 
  friend class ::WinTypeKeywords;
47576
 
  friend class ::PragmaOnceUnitState;
47577
 
  friend class ::PragmaOnce;
47578
 
  friend class ::CCExprResolve;
47579
 
  friend class ::CExprResolve;
47580
 
 
47581
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47582
 
 
47583
 
  CTree *sons[3]; // expr, oper, expr
47584
 
 
47585
 
public:
47586
 
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
47587
 
    sons[0] = l; sons[1] = o; sons[2] = r;
47588
 
  }
47589
 
  static const char *NodeId ();
47590
 
  const char *NodeName () const { return NodeId (); }
47591
 
  int Sons () const { return 3; }
47592
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
47593
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47594
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
47595
 
  }
47596
 
   private:
47597
 
  typedef CT_BinaryExpr CCExprResolveExpr;
47598
 
 
47599
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47600
 
 public :
47601
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
47602
 
  typedef CT_BinaryExpr CExprResolveExpr;
47603
 
 
47604
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47605
 
 public :
47606
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47607
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47608
 
};
47609
 
 
47610
 
 
47611
 
#line 47612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47612
 
} // closed Puma
47613
 
class WinIfExists;
47614
 
class WinImportHandler;
47615
 
class WinMacros;
47616
 
class CMatchSyntax;
47617
 
class ExtGnu;
47618
 
class ExtAC;
47619
 
class ExtACBuilderCoupling;
47620
 
class ExtACSyntaxCoupling;
47621
 
class ExtACTree;
47622
 
class ExtACKeywords;
47623
 
class WinAsm;
47624
 
class WinDeclSpecs;
47625
 
class WinMemberExplSpec;
47626
 
class WinTypeKeywords;
47627
 
class PragmaOnceUnitState;
47628
 
class PragmaOnce;
47629
 
class CCExprResolve;
47630
 
class CExprResolve;
47631
 
namespace Puma {
47632
 
 
47633
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47634
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
47635
 
#line 47636 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47636
 
  friend class ::WinIfExists;
47637
 
  friend class ::WinImportHandler;
47638
 
  friend class ::WinMacros;
47639
 
  friend class ::CMatchSyntax;
47640
 
  friend class ::ExtGnu;
47641
 
  friend class ::ExtAC;
47642
 
  friend class ::ExtACBuilderCoupling;
47643
 
  friend class ::ExtACSyntaxCoupling;
47644
 
  friend class ::ExtACTree;
47645
 
  friend class ::ExtACKeywords;
47646
 
  friend class ::WinAsm;
47647
 
  friend class ::WinDeclSpecs;
47648
 
  friend class ::WinMemberExplSpec;
47649
 
  friend class ::WinTypeKeywords;
47650
 
  friend class ::PragmaOnceUnitState;
47651
 
  friend class ::PragmaOnce;
47652
 
  friend class ::CCExprResolve;
47653
 
  friend class ::CExprResolve;
47654
 
 
47655
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47656
 
 
47657
 
public:
47658
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
47659
 
    CT_BinaryExpr (e, o, i) {}
47660
 
  static const char *NodeId ();
47661
 
  const char *NodeName () const { return NodeId (); }
47662
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
47663
 
   private:
47664
 
  typedef CT_MembPtrExpr CCExprResolveExpr;
47665
 
 
47666
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47667
 
 public :
47668
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
47669
 
  typedef CT_MembPtrExpr CExprResolveExpr;
47670
 
 
47671
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47672
 
 public :
47673
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47674
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47675
 
};
47676
 
 
47677
 
 
47678
 
#line 47679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47679
 
} // closed Puma
47680
 
class WinIfExists;
47681
 
class WinImportHandler;
47682
 
class WinMacros;
47683
 
class CMatchSyntax;
47684
 
class ExtGnu;
47685
 
class ExtAC;
47686
 
class ExtACBuilderCoupling;
47687
 
class ExtACSyntaxCoupling;
47688
 
class ExtACTree;
47689
 
class ExtACKeywords;
47690
 
class WinAsm;
47691
 
class WinDeclSpecs;
47692
 
class WinMemberExplSpec;
47693
 
class WinTypeKeywords;
47694
 
class PragmaOnceUnitState;
47695
 
class PragmaOnce;
47696
 
class CCExprResolve;
47697
 
class CExprResolve;
47698
 
namespace Puma {
47699
 
 
47700
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47701
 
class CT_MembRefExpr : public CT_MembPtrExpr {
47702
 
#line 47703 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47703
 
  friend class ::WinIfExists;
47704
 
  friend class ::WinImportHandler;
47705
 
  friend class ::WinMacros;
47706
 
  friend class ::CMatchSyntax;
47707
 
  friend class ::ExtGnu;
47708
 
  friend class ::ExtAC;
47709
 
  friend class ::ExtACBuilderCoupling;
47710
 
  friend class ::ExtACSyntaxCoupling;
47711
 
  friend class ::ExtACTree;
47712
 
  friend class ::ExtACKeywords;
47713
 
  friend class ::WinAsm;
47714
 
  friend class ::WinDeclSpecs;
47715
 
  friend class ::WinMemberExplSpec;
47716
 
  friend class ::WinTypeKeywords;
47717
 
  friend class ::PragmaOnceUnitState;
47718
 
  friend class ::PragmaOnce;
47719
 
  friend class ::CCExprResolve;
47720
 
  friend class ::CExprResolve;
47721
 
 
47722
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47723
 
 
47724
 
public:
47725
 
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
47726
 
    CT_MembPtrExpr (e, o, i) {}
47727
 
  static const char *NodeId ();
47728
 
  const char *NodeName () const { return NodeId (); }
47729
 
   private:
47730
 
  typedef CT_MembRefExpr CCExprResolveExpr;
47731
 
 
47732
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47733
 
 public :
47734
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
47735
 
  typedef CT_MembRefExpr CExprResolveExpr;
47736
 
 
47737
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47738
 
 public :
47739
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47740
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47741
 
};
47742
 
 
47743
 
 
47744
 
#line 47745 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47745
 
} // closed Puma
47746
 
class WinIfExists;
47747
 
class WinImportHandler;
47748
 
class WinMacros;
47749
 
class CMatchSyntax;
47750
 
class ExtGnu;
47751
 
class ExtAC;
47752
 
class ExtACBuilderCoupling;
47753
 
class ExtACSyntaxCoupling;
47754
 
class ExtACTree;
47755
 
class ExtACKeywords;
47756
 
class WinAsm;
47757
 
class WinDeclSpecs;
47758
 
class WinMemberExplSpec;
47759
 
class WinTypeKeywords;
47760
 
class PragmaOnceUnitState;
47761
 
class PragmaOnce;
47762
 
class CCExprResolve;
47763
 
class CExprResolve;
47764
 
namespace Puma {
47765
 
 
47766
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47767
 
class CT_UnaryExpr : public CT_Expression {
47768
 
#line 47769 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47769
 
  friend class ::WinIfExists;
47770
 
  friend class ::WinImportHandler;
47771
 
  friend class ::WinMacros;
47772
 
  friend class ::CMatchSyntax;
47773
 
  friend class ::ExtGnu;
47774
 
  friend class ::ExtAC;
47775
 
  friend class ::ExtACBuilderCoupling;
47776
 
  friend class ::ExtACSyntaxCoupling;
47777
 
  friend class ::ExtACTree;
47778
 
  friend class ::ExtACKeywords;
47779
 
  friend class ::WinAsm;
47780
 
  friend class ::WinDeclSpecs;
47781
 
  friend class ::WinMemberExplSpec;
47782
 
  friend class ::WinTypeKeywords;
47783
 
  friend class ::PragmaOnceUnitState;
47784
 
  friend class ::PragmaOnce;
47785
 
  friend class ::CCExprResolve;
47786
 
  friend class ::CExprResolve;
47787
 
 
47788
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47789
 
 
47790
 
  CTree *sons[2]; // oper, expr
47791
 
 
47792
 
public:
47793
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
47794
 
  static const char *NodeId ();
47795
 
  const char *NodeName () const { return NodeId (); }
47796
 
  int Sons () const { return 2; }
47797
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
47798
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47799
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
47800
 
  }
47801
 
  CTree *Expr () const { return sons[1]; }
47802
 
   private:
47803
 
  typedef CT_UnaryExpr CCExprResolveExpr;
47804
 
 
47805
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47806
 
 public :
47807
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
47808
 
  typedef CT_UnaryExpr CExprResolveExpr;
47809
 
 
47810
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47811
 
 public :
47812
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47813
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47814
 
};
47815
 
 
47816
 
 
47817
 
#line 47818 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47818
 
} // closed Puma
47819
 
class WinIfExists;
47820
 
class WinImportHandler;
47821
 
class WinMacros;
47822
 
class CMatchSyntax;
47823
 
class ExtGnu;
47824
 
class ExtAC;
47825
 
class ExtACBuilderCoupling;
47826
 
class ExtACSyntaxCoupling;
47827
 
class ExtACTree;
47828
 
class ExtACKeywords;
47829
 
class WinAsm;
47830
 
class WinDeclSpecs;
47831
 
class WinMemberExplSpec;
47832
 
class WinTypeKeywords;
47833
 
class PragmaOnceUnitState;
47834
 
class PragmaOnce;
47835
 
class CCExprResolve;
47836
 
class CExprResolve;
47837
 
namespace Puma {
47838
 
 
47839
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47840
 
class CT_PostfixExpr : public CT_UnaryExpr {
47841
 
#line 47842 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47842
 
  friend class ::WinIfExists;
47843
 
  friend class ::WinImportHandler;
47844
 
  friend class ::WinMacros;
47845
 
  friend class ::CMatchSyntax;
47846
 
  friend class ::ExtGnu;
47847
 
  friend class ::ExtAC;
47848
 
  friend class ::ExtACBuilderCoupling;
47849
 
  friend class ::ExtACSyntaxCoupling;
47850
 
  friend class ::ExtACTree;
47851
 
  friend class ::ExtACKeywords;
47852
 
  friend class ::WinAsm;
47853
 
  friend class ::WinDeclSpecs;
47854
 
  friend class ::WinMemberExplSpec;
47855
 
  friend class ::WinTypeKeywords;
47856
 
  friend class ::PragmaOnceUnitState;
47857
 
  friend class ::PragmaOnce;
47858
 
  friend class ::CCExprResolve;
47859
 
  friend class ::CExprResolve;
47860
 
 
47861
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47862
 
 
47863
 
public:
47864
 
  CT_PostfixExpr (CTree *e, CTree *o) :
47865
 
    CT_UnaryExpr (e, o) {}
47866
 
  static const char *NodeId ();
47867
 
  const char *NodeName () const { return NodeId (); }
47868
 
   private:
47869
 
  typedef CT_PostfixExpr CCExprResolveExpr;
47870
 
 
47871
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47872
 
 public :
47873
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
47874
 
  typedef CT_PostfixExpr CExprResolveExpr;
47875
 
 
47876
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47877
 
 public :
47878
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47879
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47880
 
};
47881
 
 
47882
 
 
47883
 
#line 47884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47884
 
} // closed Puma
47885
 
class WinIfExists;
47886
 
class WinImportHandler;
47887
 
class WinMacros;
47888
 
class CMatchSyntax;
47889
 
class ExtGnu;
47890
 
class ExtAC;
47891
 
class ExtACBuilderCoupling;
47892
 
class ExtACSyntaxCoupling;
47893
 
class ExtACTree;
47894
 
class ExtACKeywords;
47895
 
class WinAsm;
47896
 
class WinDeclSpecs;
47897
 
class WinMemberExplSpec;
47898
 
class WinTypeKeywords;
47899
 
class PragmaOnceUnitState;
47900
 
class PragmaOnce;
47901
 
class CCExprResolve;
47902
 
class CExprResolve;
47903
 
namespace Puma {
47904
 
 
47905
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47906
 
class CT_AddrExpr : public CT_UnaryExpr {
47907
 
#line 47908 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47908
 
  friend class ::WinIfExists;
47909
 
  friend class ::WinImportHandler;
47910
 
  friend class ::WinMacros;
47911
 
  friend class ::CMatchSyntax;
47912
 
  friend class ::ExtGnu;
47913
 
  friend class ::ExtAC;
47914
 
  friend class ::ExtACBuilderCoupling;
47915
 
  friend class ::ExtACSyntaxCoupling;
47916
 
  friend class ::ExtACTree;
47917
 
  friend class ::ExtACKeywords;
47918
 
  friend class ::WinAsm;
47919
 
  friend class ::WinDeclSpecs;
47920
 
  friend class ::WinMemberExplSpec;
47921
 
  friend class ::WinTypeKeywords;
47922
 
  friend class ::PragmaOnceUnitState;
47923
 
  friend class ::PragmaOnce;
47924
 
  friend class ::CCExprResolve;
47925
 
  friend class ::CExprResolve;
47926
 
 
47927
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47928
 
 
47929
 
public:
47930
 
  CT_AddrExpr (CTree *o, CTree *e) :
47931
 
    CT_UnaryExpr (o, e) {}
47932
 
  static const char *NodeId ();
47933
 
  const char *NodeName () const { return NodeId (); }
47934
 
   private:
47935
 
  typedef CT_AddrExpr CCExprResolveExpr;
47936
 
 
47937
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47938
 
 public :
47939
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
47940
 
  typedef CT_AddrExpr CExprResolveExpr;
47941
 
 
47942
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47943
 
 public :
47944
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47945
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47946
 
};
47947
 
 
47948
 
 
47949
 
#line 47950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47950
 
} // closed Puma
47951
 
class WinIfExists;
47952
 
class WinImportHandler;
47953
 
class WinMacros;
47954
 
class CMatchSyntax;
47955
 
class ExtGnu;
47956
 
class ExtAC;
47957
 
class ExtACBuilderCoupling;
47958
 
class ExtACSyntaxCoupling;
47959
 
class ExtACTree;
47960
 
class ExtACKeywords;
47961
 
class WinAsm;
47962
 
class WinDeclSpecs;
47963
 
class WinMemberExplSpec;
47964
 
class WinTypeKeywords;
47965
 
class PragmaOnceUnitState;
47966
 
class PragmaOnce;
47967
 
class CCExprResolve;
47968
 
class CExprResolve;
47969
 
namespace Puma {
47970
 
 
47971
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47972
 
class CT_DerefExpr : public CT_UnaryExpr {
47973
 
#line 47974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
47974
 
  friend class ::WinIfExists;
47975
 
  friend class ::WinImportHandler;
47976
 
  friend class ::WinMacros;
47977
 
  friend class ::CMatchSyntax;
47978
 
  friend class ::ExtGnu;
47979
 
  friend class ::ExtAC;
47980
 
  friend class ::ExtACBuilderCoupling;
47981
 
  friend class ::ExtACSyntaxCoupling;
47982
 
  friend class ::ExtACTree;
47983
 
  friend class ::ExtACKeywords;
47984
 
  friend class ::WinAsm;
47985
 
  friend class ::WinDeclSpecs;
47986
 
  friend class ::WinMemberExplSpec;
47987
 
  friend class ::WinTypeKeywords;
47988
 
  friend class ::PragmaOnceUnitState;
47989
 
  friend class ::PragmaOnce;
47990
 
  friend class ::CCExprResolve;
47991
 
  friend class ::CExprResolve;
47992
 
 
47993
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47994
 
 
47995
 
public:
47996
 
  CT_DerefExpr (CTree *o, CTree *e) :
47997
 
    CT_UnaryExpr (o, e) {}
47998
 
  static const char *NodeId ();
47999
 
  const char *NodeName () const { return NodeId (); }
48000
 
   private:
48001
 
  typedef CT_DerefExpr CCExprResolveExpr;
48002
 
 
48003
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48004
 
 public :
48005
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
48006
 
  typedef CT_DerefExpr CExprResolveExpr;
48007
 
 
48008
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48009
 
 public :
48010
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48011
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48012
 
};
48013
 
 
48014
 
 
48015
 
#line 48016 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48016
 
} // closed Puma
48017
 
class WinIfExists;
48018
 
class WinImportHandler;
48019
 
class WinMacros;
48020
 
class CMatchSyntax;
48021
 
class ExtGnu;
48022
 
class ExtAC;
48023
 
class ExtACBuilderCoupling;
48024
 
class ExtACSyntaxCoupling;
48025
 
class ExtACTree;
48026
 
class ExtACKeywords;
48027
 
class WinAsm;
48028
 
class WinDeclSpecs;
48029
 
class WinMemberExplSpec;
48030
 
class WinTypeKeywords;
48031
 
class PragmaOnceUnitState;
48032
 
class PragmaOnce;
48033
 
class CCExprResolve;
48034
 
class CExprResolve;
48035
 
namespace Puma {
48036
 
 
48037
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48038
 
class CT_DeleteExpr : public CT_Expression, public CSemObject {
48039
 
#line 48040 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48040
 
  friend class ::WinIfExists;
48041
 
  friend class ::WinImportHandler;
48042
 
  friend class ::WinMacros;
48043
 
  friend class ::CMatchSyntax;
48044
 
  friend class ::ExtGnu;
48045
 
  friend class ::ExtAC;
48046
 
  friend class ::ExtACBuilderCoupling;
48047
 
  friend class ::ExtACSyntaxCoupling;
48048
 
  friend class ::ExtACTree;
48049
 
  friend class ::ExtACKeywords;
48050
 
  friend class ::WinAsm;
48051
 
  friend class ::WinDeclSpecs;
48052
 
  friend class ::WinMemberExplSpec;
48053
 
  friend class ::WinTypeKeywords;
48054
 
  friend class ::PragmaOnceUnitState;
48055
 
  friend class ::PragmaOnce;
48056
 
  friend class ::CCExprResolve;
48057
 
  friend class ::CExprResolve;
48058
 
 
48059
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48060
 
 
48061
 
  CTree *sons[2]; // oper, expr
48062
 
 
48063
 
public:
48064
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
48065
 
  static const char *NodeId ();
48066
 
  const char *NodeName () const { return NodeId (); }
48067
 
  int Sons () const { return 2; }
48068
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
48069
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48070
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
48071
 
  }
48072
 
  CTree *Expr () const { return sons[1]; }
48073
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
48074
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
48075
 
   private:
48076
 
  typedef CT_DeleteExpr CCExprResolveExpr;
48077
 
 
48078
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48079
 
 public :
48080
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
48081
 
  typedef CT_DeleteExpr CExprResolveExpr;
48082
 
 
48083
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48084
 
 public :
48085
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48086
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48087
 
};
48088
 
 
48089
 
 
48090
 
#line 48091 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48091
 
} // closed Puma
48092
 
class WinIfExists;
48093
 
class WinImportHandler;
48094
 
class WinMacros;
48095
 
class CMatchSyntax;
48096
 
class ExtGnu;
48097
 
class ExtAC;
48098
 
class ExtACBuilderCoupling;
48099
 
class ExtACSyntaxCoupling;
48100
 
class ExtACTree;
48101
 
class ExtACKeywords;
48102
 
class WinAsm;
48103
 
class WinDeclSpecs;
48104
 
class WinMemberExplSpec;
48105
 
class WinTypeKeywords;
48106
 
class PragmaOnceUnitState;
48107
 
class PragmaOnce;
48108
 
class CCExprResolve;
48109
 
class CExprResolve;
48110
 
namespace Puma {
48111
 
 
48112
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48113
 
class CT_NewExpr : public CT_Expression, public CSemObject {
48114
 
#line 48115 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48115
 
  friend class ::WinIfExists;
48116
 
  friend class ::WinImportHandler;
48117
 
  friend class ::WinMacros;
48118
 
  friend class ::CMatchSyntax;
48119
 
  friend class ::ExtGnu;
48120
 
  friend class ::ExtAC;
48121
 
  friend class ::ExtACBuilderCoupling;
48122
 
  friend class ::ExtACSyntaxCoupling;
48123
 
  friend class ::ExtACTree;
48124
 
  friend class ::ExtACKeywords;
48125
 
  friend class ::WinAsm;
48126
 
  friend class ::WinDeclSpecs;
48127
 
  friend class ::WinMemberExplSpec;
48128
 
  friend class ::WinTypeKeywords;
48129
 
  friend class ::PragmaOnceUnitState;
48130
 
  friend class ::PragmaOnce;
48131
 
  friend class ::CCExprResolve;
48132
 
  friend class ::CExprResolve;
48133
 
 
48134
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48135
 
 
48136
 
  CTree *sons[6]; // oper, placement, open, type, close, init
48137
 
 
48138
 
public:
48139
 
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
48140
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
48141
 
  }
48142
 
  static const char *NodeId ();
48143
 
  const char *NodeName () const { return NodeId (); }
48144
 
  int Sons () const { return CTree::Sons (sons, 6); }
48145
 
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
48146
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48147
 
    CTree::ReplaceSon (sons, 6, old_son, new_son);
48148
 
  }
48149
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
48150
 
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
48151
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
48152
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
48153
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
48154
 
   private:
48155
 
  typedef CT_NewExpr CCExprResolveExpr;
48156
 
 
48157
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48158
 
 public :
48159
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
48160
 
  typedef CT_NewExpr CExprResolveExpr;
48161
 
 
48162
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48163
 
 public :
48164
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48165
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48166
 
};
48167
 
 
48168
 
 
48169
 
#line 48170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48170
 
} // closed Puma
48171
 
class WinIfExists;
48172
 
class WinImportHandler;
48173
 
class WinMacros;
48174
 
class CMatchSyntax;
48175
 
class ExtGnu;
48176
 
class ExtAC;
48177
 
class ExtACBuilderCoupling;
48178
 
class ExtACSyntaxCoupling;
48179
 
class ExtACTree;
48180
 
class ExtACKeywords;
48181
 
class WinAsm;
48182
 
class WinDeclSpecs;
48183
 
class WinMemberExplSpec;
48184
 
class WinTypeKeywords;
48185
 
class PragmaOnceUnitState;
48186
 
class PragmaOnce;
48187
 
class CCExprResolve;
48188
 
class CExprResolve;
48189
 
namespace Puma {
48190
 
 
48191
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48192
 
class CT_IfThenExpr : public CT_Expression {
48193
 
#line 48194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48194
 
  friend class ::WinIfExists;
48195
 
  friend class ::WinImportHandler;
48196
 
  friend class ::WinMacros;
48197
 
  friend class ::CMatchSyntax;
48198
 
  friend class ::ExtGnu;
48199
 
  friend class ::ExtAC;
48200
 
  friend class ::ExtACBuilderCoupling;
48201
 
  friend class ::ExtACSyntaxCoupling;
48202
 
  friend class ::ExtACTree;
48203
 
  friend class ::ExtACKeywords;
48204
 
  friend class ::WinAsm;
48205
 
  friend class ::WinDeclSpecs;
48206
 
  friend class ::WinMemberExplSpec;
48207
 
  friend class ::WinTypeKeywords;
48208
 
  friend class ::PragmaOnceUnitState;
48209
 
  friend class ::PragmaOnce;
48210
 
  friend class ::CCExprResolve;
48211
 
  friend class ::CExprResolve;
48212
 
 
48213
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48214
 
 
48215
 
  CTree *sons[5]; // cond, oper, left, colon, right
48216
 
 
48217
 
public:
48218
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
48219
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
48220
 
  }
48221
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
48222
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
48223
 
  }
48224
 
  static const char *NodeId ();
48225
 
  const char *NodeName () const { return NodeId (); }
48226
 
  int Sons () const { return CTree::Sons (sons, 5); }
48227
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
48228
 
  CTree *Condition () const { return sons[0]; }
48229
 
  CTree *LeftOperand () const { return sons[2]; }
48230
 
  CTree *RightOperand () const { return sons[4]; }
48231
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48232
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
48233
 
  }
48234
 
   private:
48235
 
  typedef CT_IfThenExpr CCExprResolveExpr;
48236
 
 
48237
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48238
 
 public :
48239
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
48240
 
  typedef CT_IfThenExpr CExprResolveExpr;
48241
 
 
48242
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48243
 
 public :
48244
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48245
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48246
 
};
48247
 
 
48248
 
 
48249
 
#line 48250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48250
 
} // closed Puma
48251
 
class WinIfExists;
48252
 
class WinImportHandler;
48253
 
class WinMacros;
48254
 
class CMatchSyntax;
48255
 
class ExtGnu;
48256
 
class ExtAC;
48257
 
class ExtACBuilderCoupling;
48258
 
class ExtACSyntaxCoupling;
48259
 
class ExtACTree;
48260
 
class ExtACKeywords;
48261
 
class WinAsm;
48262
 
class WinDeclSpecs;
48263
 
class WinMemberExplSpec;
48264
 
class WinTypeKeywords;
48265
 
class PragmaOnceUnitState;
48266
 
class PragmaOnce;
48267
 
class CCExprResolve;
48268
 
class CExprResolve;
48269
 
namespace Puma {
48270
 
 
48271
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48272
 
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
48273
 
#line 48274 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48274
 
  friend class ::WinIfExists;
48275
 
  friend class ::WinImportHandler;
48276
 
  friend class ::WinMacros;
48277
 
  friend class ::CMatchSyntax;
48278
 
  friend class ::ExtGnu;
48279
 
  friend class ::ExtAC;
48280
 
  friend class ::ExtACBuilderCoupling;
48281
 
  friend class ::ExtACSyntaxCoupling;
48282
 
  friend class ::ExtACTree;
48283
 
  friend class ::ExtACKeywords;
48284
 
  friend class ::WinAsm;
48285
 
  friend class ::WinDeclSpecs;
48286
 
  friend class ::WinMemberExplSpec;
48287
 
  friend class ::WinTypeKeywords;
48288
 
  friend class ::PragmaOnceUnitState;
48289
 
  friend class ::PragmaOnce;
48290
 
  friend class ::CCExprResolve;
48291
 
  friend class ::CExprResolve;
48292
 
 
48293
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48294
 
 
48295
 
  CTree *sons[4]; // open, type, close, init
48296
 
 
48297
 
public:
48298
 
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
48299
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
48300
 
  }
48301
 
  static const char *NodeId ();
48302
 
  const char *NodeName () const { return NodeId (); }
48303
 
  int Sons () const { return 4; }
48304
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
48305
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48306
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
48307
 
  }
48308
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
48309
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
48310
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
48311
 
   private:
48312
 
  typedef CT_CmpdLiteral CCExprResolveExpr;
48313
 
 
48314
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48315
 
 public :
48316
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
48317
 
  typedef CT_CmpdLiteral CExprResolveExpr;
48318
 
 
48319
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48320
 
 public :
48321
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48322
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48323
 
};
48324
 
 
48325
 
 
48326
 
#line 48327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48327
 
} // closed Puma
48328
 
class WinIfExists;
48329
 
class WinImportHandler;
48330
 
class WinMacros;
48331
 
class CMatchSyntax;
48332
 
class ExtGnu;
48333
 
class ExtAC;
48334
 
class ExtACBuilderCoupling;
48335
 
class ExtACSyntaxCoupling;
48336
 
class ExtACTree;
48337
 
class ExtACKeywords;
48338
 
class WinAsm;
48339
 
class WinDeclSpecs;
48340
 
class WinMemberExplSpec;
48341
 
class WinTypeKeywords;
48342
 
class PragmaOnceUnitState;
48343
 
class PragmaOnce;
48344
 
class CCExprResolve;
48345
 
class CExprResolve;
48346
 
namespace Puma {
48347
 
 
48348
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48349
 
class CT_ConstructExpr : public CT_Expression, public CSemObject {
48350
 
#line 48351 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48351
 
  friend class ::WinIfExists;
48352
 
  friend class ::WinImportHandler;
48353
 
  friend class ::WinMacros;
48354
 
  friend class ::CMatchSyntax;
48355
 
  friend class ::ExtGnu;
48356
 
  friend class ::ExtAC;
48357
 
  friend class ::ExtACBuilderCoupling;
48358
 
  friend class ::ExtACSyntaxCoupling;
48359
 
  friend class ::ExtACTree;
48360
 
  friend class ::ExtACKeywords;
48361
 
  friend class ::WinAsm;
48362
 
  friend class ::WinDeclSpecs;
48363
 
  friend class ::WinMemberExplSpec;
48364
 
  friend class ::WinTypeKeywords;
48365
 
  friend class ::PragmaOnceUnitState;
48366
 
  friend class ::PragmaOnce;
48367
 
  friend class ::CCExprResolve;
48368
 
  friend class ::CExprResolve;
48369
 
 
48370
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48371
 
 
48372
 
  CTree *sons[2]; // type, init
48373
 
 
48374
 
public:
48375
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
48376
 
  static const char *NodeId ();
48377
 
  const char *NodeName () const { return NodeId (); }
48378
 
  int Sons () const { return 2; }
48379
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
48380
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48381
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
48382
 
  }
48383
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
48384
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
48385
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
48386
 
   private:
48387
 
  typedef CT_ConstructExpr CCExprResolveExpr;
48388
 
 
48389
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48390
 
 public :
48391
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
48392
 
  typedef CT_ConstructExpr CExprResolveExpr;
48393
 
 
48394
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48395
 
 public :
48396
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48397
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48398
 
};
48399
 
 
48400
 
 
48401
 
#line 48402 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48402
 
} // closed Puma
48403
 
class WinIfExists;
48404
 
class WinImportHandler;
48405
 
class WinMacros;
48406
 
class CMatchSyntax;
48407
 
class ExtGnu;
48408
 
class ExtAC;
48409
 
class ExtACBuilderCoupling;
48410
 
class ExtACSyntaxCoupling;
48411
 
class ExtACTree;
48412
 
class ExtACKeywords;
48413
 
class WinAsm;
48414
 
class WinDeclSpecs;
48415
 
class WinMemberExplSpec;
48416
 
class WinTypeKeywords;
48417
 
class PragmaOnceUnitState;
48418
 
class PragmaOnce;
48419
 
class CCExprResolve;
48420
 
class CExprResolve;
48421
 
namespace Puma {
48422
 
 
48423
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48424
 
class CT_ThrowExpr : public CT_Expression {
48425
 
#line 48426 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48426
 
  friend class ::WinIfExists;
48427
 
  friend class ::WinImportHandler;
48428
 
  friend class ::WinMacros;
48429
 
  friend class ::CMatchSyntax;
48430
 
  friend class ::ExtGnu;
48431
 
  friend class ::ExtAC;
48432
 
  friend class ::ExtACBuilderCoupling;
48433
 
  friend class ::ExtACSyntaxCoupling;
48434
 
  friend class ::ExtACTree;
48435
 
  friend class ::ExtACKeywords;
48436
 
  friend class ::WinAsm;
48437
 
  friend class ::WinDeclSpecs;
48438
 
  friend class ::WinMemberExplSpec;
48439
 
  friend class ::WinTypeKeywords;
48440
 
  friend class ::PragmaOnceUnitState;
48441
 
  friend class ::PragmaOnce;
48442
 
  friend class ::CCExprResolve;
48443
 
  friend class ::CExprResolve;
48444
 
 
48445
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48446
 
 
48447
 
  CTree *sons[2]; // throw, expr
48448
 
 
48449
 
public:
48450
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
48451
 
  static const char *NodeId ();
48452
 
  const char *NodeName () const { return NodeId (); }
48453
 
  int Sons () const { return CTree::Sons (sons, 2); }
48454
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
48455
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48456
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
48457
 
  }
48458
 
  CTree *Expr () const { return sons[1]; }
48459
 
   private:
48460
 
  typedef CT_ThrowExpr CCExprResolveExpr;
48461
 
 
48462
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48463
 
 public :
48464
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
48465
 
  typedef CT_ThrowExpr CExprResolveExpr;
48466
 
 
48467
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48468
 
 public :
48469
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48470
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48471
 
};
48472
 
 
48473
 
 
48474
 
#line 48475 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48475
 
} // closed Puma
48476
 
class WinIfExists;
48477
 
class WinImportHandler;
48478
 
class WinMacros;
48479
 
class CMatchSyntax;
48480
 
class ExtGnu;
48481
 
class ExtAC;
48482
 
class ExtACBuilderCoupling;
48483
 
class ExtACSyntaxCoupling;
48484
 
class ExtACTree;
48485
 
class ExtACKeywords;
48486
 
class WinAsm;
48487
 
class WinDeclSpecs;
48488
 
class WinMemberExplSpec;
48489
 
class WinTypeKeywords;
48490
 
class PragmaOnceUnitState;
48491
 
class PragmaOnce;
48492
 
class CCExprResolve;
48493
 
class CExprResolve;
48494
 
namespace Puma {
48495
 
 
48496
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48497
 
class CT_IndexExpr : public CT_Expression {
48498
 
#line 48499 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48499
 
  friend class ::WinIfExists;
48500
 
  friend class ::WinImportHandler;
48501
 
  friend class ::WinMacros;
48502
 
  friend class ::CMatchSyntax;
48503
 
  friend class ::ExtGnu;
48504
 
  friend class ::ExtAC;
48505
 
  friend class ::ExtACBuilderCoupling;
48506
 
  friend class ::ExtACSyntaxCoupling;
48507
 
  friend class ::ExtACTree;
48508
 
  friend class ::ExtACKeywords;
48509
 
  friend class ::WinAsm;
48510
 
  friend class ::WinDeclSpecs;
48511
 
  friend class ::WinMemberExplSpec;
48512
 
  friend class ::WinTypeKeywords;
48513
 
  friend class ::PragmaOnceUnitState;
48514
 
  friend class ::PragmaOnce;
48515
 
  friend class ::CCExprResolve;
48516
 
  friend class ::CExprResolve;
48517
 
 
48518
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48519
 
 
48520
 
  CTree *sons[4]; // expr, open, index, close
48521
 
 
48522
 
public:
48523
 
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
48524
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
48525
 
  }
48526
 
  static const char *NodeId ();
48527
 
  const char *NodeName () const { return NodeId (); }
48528
 
  int Sons () const { return 4; }
48529
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
48530
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48531
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
48532
 
  }
48533
 
   private:
48534
 
  typedef CT_IndexExpr CCExprResolveExpr;
48535
 
 
48536
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48537
 
 public :
48538
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
48539
 
  typedef CT_IndexExpr CExprResolveExpr;
48540
 
 
48541
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48542
 
 public :
48543
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48544
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48545
 
};
48546
 
 
48547
 
 
48548
 
#line 48549 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48549
 
} // closed Puma
48550
 
class WinIfExists;
48551
 
class WinImportHandler;
48552
 
class WinMacros;
48553
 
class CMatchSyntax;
48554
 
class ExtGnu;
48555
 
class ExtAC;
48556
 
class ExtACBuilderCoupling;
48557
 
class ExtACSyntaxCoupling;
48558
 
class ExtACTree;
48559
 
class ExtACKeywords;
48560
 
class WinAsm;
48561
 
class WinDeclSpecs;
48562
 
class WinMemberExplSpec;
48563
 
class WinTypeKeywords;
48564
 
class PragmaOnceUnitState;
48565
 
class PragmaOnce;
48566
 
class CCExprResolve;
48567
 
class CExprResolve;
48568
 
namespace Puma {
48569
 
 
48570
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48571
 
class CT_CallExpr : public CT_Expression, public CSemObject {
48572
 
#line 48573 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48573
 
  friend class ::WinIfExists;
48574
 
  friend class ::WinImportHandler;
48575
 
  friend class ::WinMacros;
48576
 
  friend class ::CMatchSyntax;
48577
 
  friend class ::ExtGnu;
48578
 
  friend class ::ExtAC;
48579
 
  friend class ::ExtACBuilderCoupling;
48580
 
  friend class ::ExtACSyntaxCoupling;
48581
 
  friend class ::ExtACTree;
48582
 
  friend class ::ExtACKeywords;
48583
 
  friend class ::WinAsm;
48584
 
  friend class ::WinDeclSpecs;
48585
 
  friend class ::WinMemberExplSpec;
48586
 
  friend class ::WinTypeKeywords;
48587
 
  friend class ::PragmaOnceUnitState;
48588
 
  friend class ::PragmaOnce;
48589
 
  friend class ::CCExprResolve;
48590
 
  friend class ::CExprResolve;
48591
 
 
48592
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48593
 
 
48594
 
  CTree *sons[2]; // expr, args
48595
 
 
48596
 
public:
48597
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
48598
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
48599
 
  static const char *NodeId ();
48600
 
  const char *NodeName () const { return NodeId (); }
48601
 
  int Sons () const { return CTree::Sons (sons, 2); }
48602
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
48603
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48604
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
48605
 
  }
48606
 
  CTree *Expr () const { return sons[0]; }
48607
 
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
48608
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
48609
 
   private:
48610
 
  typedef CT_CallExpr CCExprResolveExpr;
48611
 
 
48612
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48613
 
 public :
48614
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
48615
 
  typedef CT_CallExpr CExprResolveExpr;
48616
 
 
48617
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48618
 
 public :
48619
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48620
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48621
 
};
48622
 
 
48623
 
 
48624
 
#line 48625 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48625
 
} // closed Puma
48626
 
class WinIfExists;
48627
 
class WinImportHandler;
48628
 
class WinMacros;
48629
 
class CMatchSyntax;
48630
 
class ExtGnu;
48631
 
class ExtAC;
48632
 
class ExtACBuilderCoupling;
48633
 
class ExtACSyntaxCoupling;
48634
 
class ExtACTree;
48635
 
class ExtACKeywords;
48636
 
class WinAsm;
48637
 
class WinDeclSpecs;
48638
 
class WinMemberExplSpec;
48639
 
class WinTypeKeywords;
48640
 
class PragmaOnceUnitState;
48641
 
class PragmaOnce;
48642
 
class CCExprResolve;
48643
 
class CExprResolve;
48644
 
namespace Puma {
48645
 
 
48646
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48647
 
class CT_CastExpr : public CT_Expression {
48648
 
#line 48649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48649
 
  friend class ::WinIfExists;
48650
 
  friend class ::WinImportHandler;
48651
 
  friend class ::WinMacros;
48652
 
  friend class ::CMatchSyntax;
48653
 
  friend class ::ExtGnu;
48654
 
  friend class ::ExtAC;
48655
 
  friend class ::ExtACBuilderCoupling;
48656
 
  friend class ::ExtACSyntaxCoupling;
48657
 
  friend class ::ExtACTree;
48658
 
  friend class ::ExtACKeywords;
48659
 
  friend class ::WinAsm;
48660
 
  friend class ::WinDeclSpecs;
48661
 
  friend class ::WinMemberExplSpec;
48662
 
  friend class ::WinTypeKeywords;
48663
 
  friend class ::PragmaOnceUnitState;
48664
 
  friend class ::PragmaOnce;
48665
 
  friend class ::CCExprResolve;
48666
 
  friend class ::CExprResolve;
48667
 
 
48668
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48669
 
 
48670
 
  CTree *sons[4]; // open, type, close, expr
48671
 
 
48672
 
public:
48673
 
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
48674
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
48675
 
  }
48676
 
  static const char *NodeId ();
48677
 
  const char *NodeName () const { return NodeId (); }
48678
 
  int Sons () const { return 4; }
48679
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
48680
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48681
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
48682
 
  }
48683
 
  CTree *Expr () const { return sons[3]; }
48684
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
48685
 
   private:
48686
 
  typedef CT_CastExpr CCExprResolveExpr;
48687
 
 
48688
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48689
 
 public :
48690
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
48691
 
  typedef CT_CastExpr CExprResolveExpr;
48692
 
 
48693
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48694
 
 public :
48695
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48696
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48697
 
};
48698
 
 
48699
 
 
48700
 
#line 48701 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48701
 
} // closed Puma
48702
 
class WinIfExists;
48703
 
class WinImportHandler;
48704
 
class WinMacros;
48705
 
class CMatchSyntax;
48706
 
class ExtGnu;
48707
 
class ExtAC;
48708
 
class ExtACBuilderCoupling;
48709
 
class ExtACSyntaxCoupling;
48710
 
class ExtACTree;
48711
 
class ExtACKeywords;
48712
 
class WinAsm;
48713
 
class WinDeclSpecs;
48714
 
class WinMemberExplSpec;
48715
 
class WinTypeKeywords;
48716
 
class PragmaOnceUnitState;
48717
 
class PragmaOnce;
48718
 
class CCExprResolve;
48719
 
class CExprResolve;
48720
 
namespace Puma {
48721
 
 
48722
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48723
 
class CT_StaticCast : public CT_Expression {
48724
 
#line 48725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48725
 
  friend class ::WinIfExists;
48726
 
  friend class ::WinImportHandler;
48727
 
  friend class ::WinMacros;
48728
 
  friend class ::CMatchSyntax;
48729
 
  friend class ::ExtGnu;
48730
 
  friend class ::ExtAC;
48731
 
  friend class ::ExtACBuilderCoupling;
48732
 
  friend class ::ExtACSyntaxCoupling;
48733
 
  friend class ::ExtACTree;
48734
 
  friend class ::ExtACKeywords;
48735
 
  friend class ::WinAsm;
48736
 
  friend class ::WinDeclSpecs;
48737
 
  friend class ::WinMemberExplSpec;
48738
 
  friend class ::WinTypeKeywords;
48739
 
  friend class ::PragmaOnceUnitState;
48740
 
  friend class ::PragmaOnce;
48741
 
  friend class ::CCExprResolve;
48742
 
  friend class ::CExprResolve;
48743
 
 
48744
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48745
 
 
48746
 
  CTree *sons[5]; // cast, open, type, close, expr
48747
 
 
48748
 
public:
48749
 
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
48750
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
48751
 
  }
48752
 
  static const char *NodeId ();
48753
 
  const char *NodeName () const { return NodeId (); }
48754
 
  int Sons () const { return 5; }
48755
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
48756
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48757
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
48758
 
  }
48759
 
  CTree *Expr () const { return sons[4]; }
48760
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
48761
 
   private:
48762
 
  typedef CT_StaticCast CCExprResolveExpr;
48763
 
 
48764
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48765
 
 public :
48766
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
48767
 
  typedef CT_StaticCast CExprResolveExpr;
48768
 
 
48769
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48770
 
 public :
48771
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48772
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48773
 
};
48774
 
 
48775
 
 
48776
 
#line 48777 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48777
 
} // closed Puma
48778
 
class WinIfExists;
48779
 
class WinImportHandler;
48780
 
class WinMacros;
48781
 
class CMatchSyntax;
48782
 
class ExtGnu;
48783
 
class ExtAC;
48784
 
class ExtACBuilderCoupling;
48785
 
class ExtACSyntaxCoupling;
48786
 
class ExtACTree;
48787
 
class ExtACKeywords;
48788
 
class WinAsm;
48789
 
class WinDeclSpecs;
48790
 
class WinMemberExplSpec;
48791
 
class WinTypeKeywords;
48792
 
class PragmaOnceUnitState;
48793
 
class PragmaOnce;
48794
 
class CCExprResolve;
48795
 
class CExprResolve;
48796
 
namespace Puma {
48797
 
 
48798
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48799
 
class CT_ConstCast : public CT_StaticCast {
48800
 
#line 48801 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48801
 
  friend class ::WinIfExists;
48802
 
  friend class ::WinImportHandler;
48803
 
  friend class ::WinMacros;
48804
 
  friend class ::CMatchSyntax;
48805
 
  friend class ::ExtGnu;
48806
 
  friend class ::ExtAC;
48807
 
  friend class ::ExtACBuilderCoupling;
48808
 
  friend class ::ExtACSyntaxCoupling;
48809
 
  friend class ::ExtACTree;
48810
 
  friend class ::ExtACKeywords;
48811
 
  friend class ::WinAsm;
48812
 
  friend class ::WinDeclSpecs;
48813
 
  friend class ::WinMemberExplSpec;
48814
 
  friend class ::WinTypeKeywords;
48815
 
  friend class ::PragmaOnceUnitState;
48816
 
  friend class ::PragmaOnce;
48817
 
  friend class ::CCExprResolve;
48818
 
  friend class ::CExprResolve;
48819
 
 
48820
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48821
 
 
48822
 
public:
48823
 
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
48824
 
    CT_StaticCast (cst, o, t, c, e) {}
48825
 
  static const char *NodeId ();
48826
 
  const char *NodeName () const { return NodeId (); }
48827
 
   private:
48828
 
  typedef CT_ConstCast CCExprResolveExpr;
48829
 
 
48830
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48831
 
 public :
48832
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
48833
 
  typedef CT_ConstCast CExprResolveExpr;
48834
 
 
48835
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48836
 
 public :
48837
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48838
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48839
 
};
48840
 
 
48841
 
 
48842
 
#line 48843 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48843
 
} // closed Puma
48844
 
class WinIfExists;
48845
 
class WinImportHandler;
48846
 
class WinMacros;
48847
 
class CMatchSyntax;
48848
 
class ExtGnu;
48849
 
class ExtAC;
48850
 
class ExtACBuilderCoupling;
48851
 
class ExtACSyntaxCoupling;
48852
 
class ExtACTree;
48853
 
class ExtACKeywords;
48854
 
class WinAsm;
48855
 
class WinDeclSpecs;
48856
 
class WinMemberExplSpec;
48857
 
class WinTypeKeywords;
48858
 
class PragmaOnceUnitState;
48859
 
class PragmaOnce;
48860
 
class CCExprResolve;
48861
 
class CExprResolve;
48862
 
namespace Puma {
48863
 
 
48864
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48865
 
class CT_ReintCast : public CT_StaticCast {
48866
 
#line 48867 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48867
 
  friend class ::WinIfExists;
48868
 
  friend class ::WinImportHandler;
48869
 
  friend class ::WinMacros;
48870
 
  friend class ::CMatchSyntax;
48871
 
  friend class ::ExtGnu;
48872
 
  friend class ::ExtAC;
48873
 
  friend class ::ExtACBuilderCoupling;
48874
 
  friend class ::ExtACSyntaxCoupling;
48875
 
  friend class ::ExtACTree;
48876
 
  friend class ::ExtACKeywords;
48877
 
  friend class ::WinAsm;
48878
 
  friend class ::WinDeclSpecs;
48879
 
  friend class ::WinMemberExplSpec;
48880
 
  friend class ::WinTypeKeywords;
48881
 
  friend class ::PragmaOnceUnitState;
48882
 
  friend class ::PragmaOnce;
48883
 
  friend class ::CCExprResolve;
48884
 
  friend class ::CExprResolve;
48885
 
 
48886
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48887
 
 
48888
 
public:
48889
 
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
48890
 
    CT_StaticCast (cst, o, t, c, e) {}
48891
 
  static const char *NodeId ();
48892
 
  const char *NodeName () const { return NodeId (); }
48893
 
   private:
48894
 
  typedef CT_ReintCast CCExprResolveExpr;
48895
 
 
48896
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48897
 
 public :
48898
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
48899
 
  typedef CT_ReintCast CExprResolveExpr;
48900
 
 
48901
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48902
 
 public :
48903
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48904
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48905
 
};
48906
 
 
48907
 
 
48908
 
#line 48909 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48909
 
} // closed Puma
48910
 
class WinIfExists;
48911
 
class WinImportHandler;
48912
 
class WinMacros;
48913
 
class CMatchSyntax;
48914
 
class ExtGnu;
48915
 
class ExtAC;
48916
 
class ExtACBuilderCoupling;
48917
 
class ExtACSyntaxCoupling;
48918
 
class ExtACTree;
48919
 
class ExtACKeywords;
48920
 
class WinAsm;
48921
 
class WinDeclSpecs;
48922
 
class WinMemberExplSpec;
48923
 
class WinTypeKeywords;
48924
 
class PragmaOnceUnitState;
48925
 
class PragmaOnce;
48926
 
class CCExprResolve;
48927
 
class CExprResolve;
48928
 
namespace Puma {
48929
 
 
48930
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48931
 
class CT_DynamicCast : public CT_StaticCast {
48932
 
#line 48933 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48933
 
  friend class ::WinIfExists;
48934
 
  friend class ::WinImportHandler;
48935
 
  friend class ::WinMacros;
48936
 
  friend class ::CMatchSyntax;
48937
 
  friend class ::ExtGnu;
48938
 
  friend class ::ExtAC;
48939
 
  friend class ::ExtACBuilderCoupling;
48940
 
  friend class ::ExtACSyntaxCoupling;
48941
 
  friend class ::ExtACTree;
48942
 
  friend class ::ExtACKeywords;
48943
 
  friend class ::WinAsm;
48944
 
  friend class ::WinDeclSpecs;
48945
 
  friend class ::WinMemberExplSpec;
48946
 
  friend class ::WinTypeKeywords;
48947
 
  friend class ::PragmaOnceUnitState;
48948
 
  friend class ::PragmaOnce;
48949
 
  friend class ::CCExprResolve;
48950
 
  friend class ::CExprResolve;
48951
 
 
48952
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48953
 
 
48954
 
public:
48955
 
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
48956
 
    CT_StaticCast (cst, o, t, c, e) {}
48957
 
  static const char *NodeId ();
48958
 
  const char *NodeName () const { return NodeId (); }
48959
 
   private:
48960
 
  typedef CT_DynamicCast CCExprResolveExpr;
48961
 
 
48962
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48963
 
 public :
48964
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
48965
 
  typedef CT_DynamicCast CExprResolveExpr;
48966
 
 
48967
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48968
 
 public :
48969
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48970
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48971
 
};
48972
 
 
48973
 
 
48974
 
#line 48975 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48975
 
} // closed Puma
48976
 
class WinIfExists;
48977
 
class WinImportHandler;
48978
 
class WinMacros;
48979
 
class CMatchSyntax;
48980
 
class ExtGnu;
48981
 
class ExtAC;
48982
 
class ExtACBuilderCoupling;
48983
 
class ExtACSyntaxCoupling;
48984
 
class ExtACTree;
48985
 
class ExtACKeywords;
48986
 
class WinAsm;
48987
 
class WinDeclSpecs;
48988
 
class WinMemberExplSpec;
48989
 
class WinTypeKeywords;
48990
 
class PragmaOnceUnitState;
48991
 
class PragmaOnce;
48992
 
class CCExprResolve;
48993
 
class CExprResolve;
48994
 
namespace Puma {
48995
 
 
48996
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48997
 
class CT_ImplicitCast : public CT_Expression {
48998
 
#line 48999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
48999
 
  friend class ::WinIfExists;
49000
 
  friend class ::WinImportHandler;
49001
 
  friend class ::WinMacros;
49002
 
  friend class ::CMatchSyntax;
49003
 
  friend class ::ExtGnu;
49004
 
  friend class ::ExtAC;
49005
 
  friend class ::ExtACBuilderCoupling;
49006
 
  friend class ::ExtACSyntaxCoupling;
49007
 
  friend class ::ExtACTree;
49008
 
  friend class ::ExtACKeywords;
49009
 
  friend class ::WinAsm;
49010
 
  friend class ::WinDeclSpecs;
49011
 
  friend class ::WinMemberExplSpec;
49012
 
  friend class ::WinTypeKeywords;
49013
 
  friend class ::PragmaOnceUnitState;
49014
 
  friend class ::PragmaOnce;
49015
 
  friend class ::CCExprResolve;
49016
 
  friend class ::CExprResolve;
49017
 
 
49018
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49019
 
 
49020
 
  CTree *_expr; // casted expression
49021
 
 
49022
 
public:
49023
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
49024
 
  static const char *NodeId ();
49025
 
  const char *NodeName () const { return NodeId (); }
49026
 
  int Sons () const { return 1; }
49027
 
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
49028
 
  CTree *Expr () const { return _expr; }
49029
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
49030
 
   { if (old_son == _expr) _expr = new_son; }
49031
 
   private:
49032
 
  typedef CT_ImplicitCast CCExprResolveExpr;
49033
 
 
49034
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
49035
 
 public :
49036
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
49037
 
  typedef CT_ImplicitCast CExprResolveExpr;
49038
 
 
49039
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
49040
 
 public :
49041
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
49042
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49043
 
};
49044
 
 
49045
 
 
49046
 
#line 49047 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49047
 
} // closed Puma
49048
 
class WinIfExists;
49049
 
class WinImportHandler;
49050
 
class WinMacros;
49051
 
class CMatchSyntax;
49052
 
class ExtGnu;
49053
 
class ExtAC;
49054
 
class ExtACBuilderCoupling;
49055
 
class ExtACSyntaxCoupling;
49056
 
class ExtACTree;
49057
 
class ExtACKeywords;
49058
 
class WinAsm;
49059
 
class WinDeclSpecs;
49060
 
class WinMemberExplSpec;
49061
 
class WinTypeKeywords;
49062
 
class PragmaOnceUnitState;
49063
 
class PragmaOnce;
49064
 
class CCExprResolve;
49065
 
class CExprResolve;
49066
 
namespace Puma {
49067
 
 
49068
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49069
 
class CT_TypeidExpr : public CT_Expression {
49070
 
#line 49071 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49071
 
  friend class ::WinIfExists;
49072
 
  friend class ::WinImportHandler;
49073
 
  friend class ::WinMacros;
49074
 
  friend class ::CMatchSyntax;
49075
 
  friend class ::ExtGnu;
49076
 
  friend class ::ExtAC;
49077
 
  friend class ::ExtACBuilderCoupling;
49078
 
  friend class ::ExtACSyntaxCoupling;
49079
 
  friend class ::ExtACTree;
49080
 
  friend class ::ExtACKeywords;
49081
 
  friend class ::WinAsm;
49082
 
  friend class ::WinDeclSpecs;
49083
 
  friend class ::WinMemberExplSpec;
49084
 
  friend class ::WinTypeKeywords;
49085
 
  friend class ::PragmaOnceUnitState;
49086
 
  friend class ::PragmaOnce;
49087
 
  friend class ::CCExprResolve;
49088
 
  friend class ::CExprResolve;
49089
 
 
49090
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49091
 
 
49092
 
  CTree *sons[4]; // typeid, open, type_id/expr, close
49093
 
 
49094
 
public:
49095
 
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
49096
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
49097
 
  }
49098
 
  static const char *NodeId ();
49099
 
  const char *NodeName () const { return NodeId (); }
49100
 
  int Sons () const { return 4; }
49101
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
49102
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49103
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
49104
 
  }
49105
 
  CTree *Arg () const { return sons[2]; }
49106
 
   private:
49107
 
  typedef CT_TypeidExpr CCExprResolveExpr;
49108
 
 
49109
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
49110
 
 public :
49111
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
49112
 
  typedef CT_TypeidExpr CExprResolveExpr;
49113
 
 
49114
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
49115
 
 public :
49116
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
49117
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49118
 
};
49119
 
 
49120
 
 
49121
 
#line 49122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49122
 
} // closed Puma
49123
 
class WinIfExists;
49124
 
class WinImportHandler;
49125
 
class WinMacros;
49126
 
class CMatchSyntax;
49127
 
class ExtGnu;
49128
 
class ExtAC;
49129
 
class ExtACBuilderCoupling;
49130
 
class ExtACSyntaxCoupling;
49131
 
class ExtACTree;
49132
 
class ExtACKeywords;
49133
 
class WinAsm;
49134
 
class WinDeclSpecs;
49135
 
class WinMemberExplSpec;
49136
 
class WinTypeKeywords;
49137
 
class PragmaOnceUnitState;
49138
 
class PragmaOnce;
49139
 
class CCExprResolve;
49140
 
class CExprResolve;
49141
 
namespace Puma {
49142
 
 
49143
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49144
 
class CT_SizeofExpr : public CT_Expression {
49145
 
#line 49146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49146
 
  friend class ::WinIfExists;
49147
 
  friend class ::WinImportHandler;
49148
 
  friend class ::WinMacros;
49149
 
  friend class ::CMatchSyntax;
49150
 
  friend class ::ExtGnu;
49151
 
  friend class ::ExtAC;
49152
 
  friend class ::ExtACBuilderCoupling;
49153
 
  friend class ::ExtACSyntaxCoupling;
49154
 
  friend class ::ExtACTree;
49155
 
  friend class ::ExtACKeywords;
49156
 
  friend class ::WinAsm;
49157
 
  friend class ::WinDeclSpecs;
49158
 
  friend class ::WinMemberExplSpec;
49159
 
  friend class ::WinTypeKeywords;
49160
 
  friend class ::PragmaOnceUnitState;
49161
 
  friend class ::PragmaOnce;
49162
 
  friend class ::CCExprResolve;
49163
 
  friend class ::CExprResolve;
49164
 
 
49165
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49166
 
 
49167
 
  CTree *sons[5]; // key, open, type, close, expr
49168
 
 
49169
 
public:
49170
 
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
49171
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
49172
 
  }
49173
 
  CT_SizeofExpr (CTree *k, CTree *e) {
49174
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
49175
 
  }
49176
 
  static const char *NodeId ();
49177
 
  const char *NodeName () const { return NodeId (); }
49178
 
  int Sons () const { return CTree::Sons (sons, 5); }
49179
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
49180
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49181
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
49182
 
  }
49183
 
  CTree *Expr () const { return sons[4]; }
49184
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
49185
 
   private:
49186
 
  typedef CT_SizeofExpr CCExprResolveExpr;
49187
 
 
49188
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
49189
 
 public :
49190
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
49191
 
  typedef CT_SizeofExpr CExprResolveExpr;
49192
 
 
49193
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
49194
 
 public :
49195
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
49196
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49197
 
};
49198
 
 
49199
 
 
49200
 
#line 49201 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49201
 
} // closed Puma
49202
 
class WinIfExists;
49203
 
class WinImportHandler;
49204
 
class WinMacros;
49205
 
class CMatchSyntax;
49206
 
class ExtGnu;
49207
 
class ExtAC;
49208
 
class ExtACBuilderCoupling;
49209
 
class ExtACSyntaxCoupling;
49210
 
class ExtACTree;
49211
 
class ExtACKeywords;
49212
 
class WinAsm;
49213
 
class WinDeclSpecs;
49214
 
class WinMemberExplSpec;
49215
 
class WinTypeKeywords;
49216
 
class PragmaOnceUnitState;
49217
 
class PragmaOnce;
49218
 
class CCExprResolve;
49219
 
class CExprResolve;
49220
 
namespace Puma {
49221
 
 
49222
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49223
 
class CT_IndexDesignator : public CT_Expression {
49224
 
#line 49225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49225
 
  friend class ::WinIfExists;
49226
 
  friend class ::WinImportHandler;
49227
 
  friend class ::WinMacros;
49228
 
  friend class ::CMatchSyntax;
49229
 
  friend class ::ExtGnu;
49230
 
  friend class ::ExtAC;
49231
 
  friend class ::ExtACBuilderCoupling;
49232
 
  friend class ::ExtACSyntaxCoupling;
49233
 
  friend class ::ExtACTree;
49234
 
  friend class ::ExtACKeywords;
49235
 
  friend class ::WinAsm;
49236
 
  friend class ::WinDeclSpecs;
49237
 
  friend class ::WinMemberExplSpec;
49238
 
  friend class ::WinTypeKeywords;
49239
 
  friend class ::PragmaOnceUnitState;
49240
 
  friend class ::PragmaOnce;
49241
 
  friend class ::CCExprResolve;
49242
 
  friend class ::CExprResolve;
49243
 
 
49244
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49245
 
 
49246
 
  CTree *sons[3]; // open, index, close
49247
 
 
49248
 
public:
49249
 
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
49250
 
    sons[0] = o; sons[1] = i; sons[2] = c;
49251
 
  }
49252
 
  static const char *NodeId ();
49253
 
  const char *NodeName () const { return NodeId (); }
49254
 
  int Sons () const { return 3; }
49255
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
49256
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49257
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
49258
 
  }
49259
 
   private:
49260
 
  typedef CT_IndexDesignator CCExprResolveExpr;
49261
 
 
49262
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
49263
 
 public :
49264
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
49265
 
  typedef CT_IndexDesignator CExprResolveExpr;
49266
 
 
49267
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
49268
 
 public :
49269
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
49270
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49271
 
};
49272
 
 
49273
 
 
49274
 
#line 49275 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49275
 
} // closed Puma
49276
 
class WinIfExists;
49277
 
class WinImportHandler;
49278
 
class WinMacros;
49279
 
class CMatchSyntax;
49280
 
class ExtGnu;
49281
 
class ExtAC;
49282
 
class ExtACBuilderCoupling;
49283
 
class ExtACSyntaxCoupling;
49284
 
class ExtACTree;
49285
 
class ExtACKeywords;
49286
 
class WinAsm;
49287
 
class WinDeclSpecs;
49288
 
class WinMemberExplSpec;
49289
 
class WinTypeKeywords;
49290
 
class PragmaOnceUnitState;
49291
 
class PragmaOnce;
49292
 
class CCExprResolve;
49293
 
class CExprResolve;
49294
 
namespace Puma {
49295
 
 
49296
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49297
 
class CT_MembDesignator : public CT_Expression {
49298
 
#line 49299 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49299
 
  friend class ::WinIfExists;
49300
 
  friend class ::WinImportHandler;
49301
 
  friend class ::WinMacros;
49302
 
  friend class ::CMatchSyntax;
49303
 
  friend class ::ExtGnu;
49304
 
  friend class ::ExtAC;
49305
 
  friend class ::ExtACBuilderCoupling;
49306
 
  friend class ::ExtACSyntaxCoupling;
49307
 
  friend class ::ExtACTree;
49308
 
  friend class ::ExtACKeywords;
49309
 
  friend class ::WinAsm;
49310
 
  friend class ::WinDeclSpecs;
49311
 
  friend class ::WinMemberExplSpec;
49312
 
  friend class ::WinTypeKeywords;
49313
 
  friend class ::PragmaOnceUnitState;
49314
 
  friend class ::PragmaOnce;
49315
 
  friend class ::CCExprResolve;
49316
 
  friend class ::CExprResolve;
49317
 
 
49318
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49319
 
 
49320
 
  CTree *sons[2]; // dot, member
49321
 
 
49322
 
public:
49323
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
49324
 
  static const char *NodeId ();
49325
 
  const char *NodeName () const { return NodeId (); }
49326
 
  int Sons () const { return 2; }
49327
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
49328
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49329
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
49330
 
  }
49331
 
   private:
49332
 
  typedef CT_MembDesignator CCExprResolveExpr;
49333
 
 
49334
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
49335
 
 public :
49336
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
49337
 
  typedef CT_MembDesignator CExprResolveExpr;
49338
 
 
49339
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
49340
 
 public :
49341
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
49342
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49343
 
};
49344
 
 
49345
 
 
49346
 
#line 49347 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49347
 
} // closed Puma
49348
 
class WinIfExists;
49349
 
class WinImportHandler;
49350
 
class WinMacros;
49351
 
class CMatchSyntax;
49352
 
class ExtGnu;
49353
 
class ExtAC;
49354
 
class ExtACBuilderCoupling;
49355
 
class ExtACSyntaxCoupling;
49356
 
class ExtACTree;
49357
 
class ExtACKeywords;
49358
 
class WinAsm;
49359
 
class WinDeclSpecs;
49360
 
class WinMemberExplSpec;
49361
 
class WinTypeKeywords;
49362
 
class PragmaOnceUnitState;
49363
 
class PragmaOnce;
49364
 
class CCExprResolve;
49365
 
class CExprResolve;
49366
 
namespace Puma {
49367
 
 
49368
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49369
 
class CT_DesignatorSeq : public CT_List, public CSemValue {
49370
 
#line 49371 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49371
 
  friend class ::WinIfExists;
49372
 
  friend class ::WinImportHandler;
49373
 
  friend class ::WinMacros;
49374
 
  friend class ::CMatchSyntax;
49375
 
  friend class ::ExtGnu;
49376
 
  friend class ::ExtAC;
49377
 
  friend class ::ExtACBuilderCoupling;
49378
 
  friend class ::ExtACSyntaxCoupling;
49379
 
  friend class ::ExtACTree;
49380
 
  friend class ::ExtACKeywords;
49381
 
  friend class ::WinAsm;
49382
 
  friend class ::WinDeclSpecs;
49383
 
  friend class ::WinMemberExplSpec;
49384
 
  friend class ::WinTypeKeywords;
49385
 
  friend class ::PragmaOnceUnitState;
49386
 
  friend class ::PragmaOnce;
49387
 
  friend class ::CCExprResolve;
49388
 
  friend class ::CExprResolve;
49389
 
 
49390
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49391
 
 
49392
 
public:
49393
 
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
49394
 
  static const char *NodeId ();
49395
 
  const char *NodeName () const { return NodeId (); }
49396
 
 
49397
 
  CTypeInfo *Type () const { return type; }
49398
 
  CExprValue *Value () const { return value; }
49399
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
49400
 
};
49401
 
 
49402
 
/*****************************************************************************/
49403
 
/*                                                                           */
49404
 
/*                         Declaration specifiers                            */
49405
 
/*                                                                           */
49406
 
/*****************************************************************************/
49407
 
 
49408
 
 
49409
 
#line 49410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49410
 
} // closed Puma
49411
 
class WinIfExists;
49412
 
class WinImportHandler;
49413
 
class WinMacros;
49414
 
class CMatchSyntax;
49415
 
class ExtGnu;
49416
 
class ExtAC;
49417
 
class ExtACBuilderCoupling;
49418
 
class ExtACSyntaxCoupling;
49419
 
class ExtACTree;
49420
 
class ExtACKeywords;
49421
 
class WinAsm;
49422
 
class WinDeclSpecs;
49423
 
class WinMemberExplSpec;
49424
 
class WinTypeKeywords;
49425
 
class PragmaOnceUnitState;
49426
 
class PragmaOnce;
49427
 
class CCExprResolve;
49428
 
class CExprResolve;
49429
 
namespace Puma {
49430
 
 
49431
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49432
 
class CT_DeclSpec : public CTree {
49433
 
#line 49434 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49434
 
  friend class ::WinIfExists;
49435
 
  friend class ::WinImportHandler;
49436
 
  friend class ::WinMacros;
49437
 
  friend class ::CMatchSyntax;
49438
 
  friend class ::ExtGnu;
49439
 
  friend class ::ExtAC;
49440
 
  friend class ::ExtACBuilderCoupling;
49441
 
  friend class ::ExtACSyntaxCoupling;
49442
 
  friend class ::ExtACTree;
49443
 
  friend class ::ExtACKeywords;
49444
 
  friend class ::WinAsm;
49445
 
  friend class ::WinDeclSpecs;
49446
 
  friend class ::WinMemberExplSpec;
49447
 
  friend class ::WinTypeKeywords;
49448
 
  friend class ::PragmaOnceUnitState;
49449
 
  friend class ::PragmaOnce;
49450
 
  friend class ::CCExprResolve;
49451
 
  friend class ::CExprResolve;
49452
 
 
49453
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49454
 
 
49455
 
protected:
49456
 
  CT_DeclSpec () {}
49457
 
};
49458
 
 
49459
 
 
49460
 
#line 49461 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49461
 
} // closed Puma
49462
 
class WinIfExists;
49463
 
class WinImportHandler;
49464
 
class WinMacros;
49465
 
class CMatchSyntax;
49466
 
class ExtGnu;
49467
 
class ExtAC;
49468
 
class ExtACBuilderCoupling;
49469
 
class ExtACSyntaxCoupling;
49470
 
class ExtACTree;
49471
 
class ExtACKeywords;
49472
 
class WinAsm;
49473
 
class WinDeclSpecs;
49474
 
class WinMemberExplSpec;
49475
 
class WinTypeKeywords;
49476
 
class PragmaOnceUnitState;
49477
 
class PragmaOnce;
49478
 
class CCExprResolve;
49479
 
class CExprResolve;
49480
 
namespace Puma {
49481
 
 
49482
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49483
 
class CT_PrimDeclSpec : public CT_DeclSpec {
49484
 
#line 49485 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49485
 
  friend class ::WinIfExists;
49486
 
  friend class ::WinImportHandler;
49487
 
  friend class ::WinMacros;
49488
 
  friend class ::CMatchSyntax;
49489
 
  friend class ::ExtGnu;
49490
 
  friend class ::ExtAC;
49491
 
  friend class ::ExtACBuilderCoupling;
49492
 
  friend class ::ExtACSyntaxCoupling;
49493
 
  friend class ::ExtACTree;
49494
 
  friend class ::ExtACKeywords;
49495
 
  friend class ::WinAsm;
49496
 
  friend class ::WinDeclSpecs;
49497
 
  friend class ::WinMemberExplSpec;
49498
 
  friend class ::WinTypeKeywords;
49499
 
  friend class ::PragmaOnceUnitState;
49500
 
  friend class ::PragmaOnce;
49501
 
  friend class ::CCExprResolve;
49502
 
  friend class ::CExprResolve;
49503
 
 
49504
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49505
 
 
49506
 
public:
49507
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
49508
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
49509
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
49510
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
49511
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
49512
 
              // AspectC++ specific type specifier
49513
 
              PDS_UNKNOWN_T,
49514
 
              // Win specific declaration specifiers
49515
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
49516
 
              PDS_UNKNOWN, PDS_NUM };
49517
 
 
49518
 
private:
49519
 
  Type _type;
49520
 
  CT_Token *_token;
49521
 
 
49522
 
  void determine_type ();
49523
 
 
49524
 
public:
49525
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
49526
 
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
49527
 
  static const char *NodeId ();
49528
 
  const char *NodeName () const { return NodeId (); }
49529
 
  int Sons () const { return _token ? 1 : 0; }
49530
 
  CTree *Son (int n) const 
49531
 
   { return (n == 0) ? _token : (CTree*)0; }
49532
 
  const char *SpecText () const 
49533
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
49534
 
  Type SpecType () const { return _type; }
49535
 
  static const int NumTypes = PDS_NUM;
49536
 
};
49537
 
 
49538
 
 
49539
 
#line 49540 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49540
 
} // closed Puma
49541
 
class WinIfExists;
49542
 
class WinImportHandler;
49543
 
class WinMacros;
49544
 
class CMatchSyntax;
49545
 
class ExtGnu;
49546
 
class ExtAC;
49547
 
class ExtACBuilderCoupling;
49548
 
class ExtACSyntaxCoupling;
49549
 
class ExtACTree;
49550
 
class ExtACKeywords;
49551
 
class WinAsm;
49552
 
class WinDeclSpecs;
49553
 
class WinMemberExplSpec;
49554
 
class WinTypeKeywords;
49555
 
class PragmaOnceUnitState;
49556
 
class PragmaOnce;
49557
 
class CCExprResolve;
49558
 
class CExprResolve;
49559
 
namespace Puma {
49560
 
 
49561
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49562
 
class CT_NamedType : public CT_DeclSpec, public CSemObject {
49563
 
#line 49564 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49564
 
  friend class ::WinIfExists;
49565
 
  friend class ::WinImportHandler;
49566
 
  friend class ::WinMacros;
49567
 
  friend class ::CMatchSyntax;
49568
 
  friend class ::ExtGnu;
49569
 
  friend class ::ExtAC;
49570
 
  friend class ::ExtACBuilderCoupling;
49571
 
  friend class ::ExtACSyntaxCoupling;
49572
 
  friend class ::ExtACTree;
49573
 
  friend class ::ExtACKeywords;
49574
 
  friend class ::WinAsm;
49575
 
  friend class ::WinDeclSpecs;
49576
 
  friend class ::WinMemberExplSpec;
49577
 
  friend class ::WinTypeKeywords;
49578
 
  friend class ::PragmaOnceUnitState;
49579
 
  friend class ::PragmaOnce;
49580
 
  friend class ::CCExprResolve;
49581
 
  friend class ::CExprResolve;
49582
 
 
49583
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49584
 
 
49585
 
  CTree *sons[2]; // declspecs, declarator
49586
 
 
49587
 
public:
49588
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
49589
 
  static const char *NodeId ();
49590
 
  const char *NodeName () const { return NodeId (); }
49591
 
  int Sons () const { return CTree::Sons (sons, 2); }
49592
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
49593
 
  CTree *Declarator () const { return sons[1]; }
49594
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49595
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
49596
 
  }
49597
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
49598
 
};
49599
 
      
49600
 
 
49601
 
#line 49602 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49602
 
} // closed Puma
49603
 
class WinIfExists;
49604
 
class WinImportHandler;
49605
 
class WinMacros;
49606
 
class CMatchSyntax;
49607
 
class ExtGnu;
49608
 
class ExtAC;
49609
 
class ExtACBuilderCoupling;
49610
 
class ExtACSyntaxCoupling;
49611
 
class ExtACTree;
49612
 
class ExtACKeywords;
49613
 
class WinAsm;
49614
 
class WinDeclSpecs;
49615
 
class WinMemberExplSpec;
49616
 
class WinTypeKeywords;
49617
 
class PragmaOnceUnitState;
49618
 
class PragmaOnce;
49619
 
class CCExprResolve;
49620
 
class CExprResolve;
49621
 
namespace Puma {
49622
 
 
49623
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49624
 
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
49625
 
#line 49626 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49626
 
  friend class ::WinIfExists;
49627
 
  friend class ::WinImportHandler;
49628
 
  friend class ::WinMacros;
49629
 
  friend class ::CMatchSyntax;
49630
 
  friend class ::ExtGnu;
49631
 
  friend class ::ExtAC;
49632
 
  friend class ::ExtACBuilderCoupling;
49633
 
  friend class ::ExtACSyntaxCoupling;
49634
 
  friend class ::ExtACTree;
49635
 
  friend class ::ExtACKeywords;
49636
 
  friend class ::WinAsm;
49637
 
  friend class ::WinDeclSpecs;
49638
 
  friend class ::WinMemberExplSpec;
49639
 
  friend class ::WinTypeKeywords;
49640
 
  friend class ::PragmaOnceUnitState;
49641
 
  friend class ::PragmaOnce;
49642
 
  friend class ::CCExprResolve;
49643
 
  friend class ::CExprResolve;
49644
 
 
49645
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49646
 
 
49647
 
  CTree *sons[2]; // key, name
49648
 
  
49649
 
public:
49650
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
49651
 
  static const char *NodeId ();
49652
 
  const char *NodeName () const { return NodeId (); }
49653
 
  int Sons () const { return 2; }
49654
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
49655
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
49656
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
49657
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49658
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
49659
 
  }
49660
 
};
49661
 
 
49662
 
 
49663
 
#line 49664 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49664
 
} // closed Puma
49665
 
class WinIfExists;
49666
 
class WinImportHandler;
49667
 
class WinMacros;
49668
 
class CMatchSyntax;
49669
 
class ExtGnu;
49670
 
class ExtAC;
49671
 
class ExtACBuilderCoupling;
49672
 
class ExtACSyntaxCoupling;
49673
 
class ExtACTree;
49674
 
class ExtACKeywords;
49675
 
class WinAsm;
49676
 
class WinDeclSpecs;
49677
 
class WinMemberExplSpec;
49678
 
class WinTypeKeywords;
49679
 
class PragmaOnceUnitState;
49680
 
class PragmaOnce;
49681
 
class CCExprResolve;
49682
 
class CExprResolve;
49683
 
namespace Puma {
49684
 
 
49685
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49686
 
class CT_UnionSpec : public CT_ClassSpec {
49687
 
#line 49688 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49688
 
  friend class ::WinIfExists;
49689
 
  friend class ::WinImportHandler;
49690
 
  friend class ::WinMacros;
49691
 
  friend class ::CMatchSyntax;
49692
 
  friend class ::ExtGnu;
49693
 
  friend class ::ExtAC;
49694
 
  friend class ::ExtACBuilderCoupling;
49695
 
  friend class ::ExtACSyntaxCoupling;
49696
 
  friend class ::ExtACTree;
49697
 
  friend class ::ExtACKeywords;
49698
 
  friend class ::WinAsm;
49699
 
  friend class ::WinDeclSpecs;
49700
 
  friend class ::WinMemberExplSpec;
49701
 
  friend class ::WinTypeKeywords;
49702
 
  friend class ::PragmaOnceUnitState;
49703
 
  friend class ::PragmaOnce;
49704
 
  friend class ::CCExprResolve;
49705
 
  friend class ::CExprResolve;
49706
 
 
49707
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49708
 
 
49709
 
public:
49710
 
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
49711
 
  static const char *NodeId ();
49712
 
  const char *NodeName () const { return NodeId (); }
49713
 
};
49714
 
 
49715
 
 
49716
 
#line 49717 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49717
 
} // closed Puma
49718
 
class WinIfExists;
49719
 
class WinImportHandler;
49720
 
class WinMacros;
49721
 
class CMatchSyntax;
49722
 
class ExtGnu;
49723
 
class ExtAC;
49724
 
class ExtACBuilderCoupling;
49725
 
class ExtACSyntaxCoupling;
49726
 
class ExtACTree;
49727
 
class ExtACKeywords;
49728
 
class WinAsm;
49729
 
class WinDeclSpecs;
49730
 
class WinMemberExplSpec;
49731
 
class WinTypeKeywords;
49732
 
class PragmaOnceUnitState;
49733
 
class PragmaOnce;
49734
 
class CCExprResolve;
49735
 
class CExprResolve;
49736
 
namespace Puma {
49737
 
 
49738
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49739
 
class CT_EnumSpec : public CT_ClassSpec {
49740
 
#line 49741 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49741
 
  friend class ::WinIfExists;
49742
 
  friend class ::WinImportHandler;
49743
 
  friend class ::WinMacros;
49744
 
  friend class ::CMatchSyntax;
49745
 
  friend class ::ExtGnu;
49746
 
  friend class ::ExtAC;
49747
 
  friend class ::ExtACBuilderCoupling;
49748
 
  friend class ::ExtACSyntaxCoupling;
49749
 
  friend class ::ExtACTree;
49750
 
  friend class ::ExtACKeywords;
49751
 
  friend class ::WinAsm;
49752
 
  friend class ::WinDeclSpecs;
49753
 
  friend class ::WinMemberExplSpec;
49754
 
  friend class ::WinTypeKeywords;
49755
 
  friend class ::PragmaOnceUnitState;
49756
 
  friend class ::PragmaOnce;
49757
 
  friend class ::CCExprResolve;
49758
 
  friend class ::CExprResolve;
49759
 
 
49760
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49761
 
 
49762
 
public:
49763
 
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
49764
 
  static const char *NodeId ();
49765
 
  const char *NodeName () const { return NodeId (); }
49766
 
};
49767
 
 
49768
 
 
49769
 
#line 49770 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49770
 
} // closed Puma
49771
 
class WinIfExists;
49772
 
class WinImportHandler;
49773
 
class WinMacros;
49774
 
class CMatchSyntax;
49775
 
class ExtGnu;
49776
 
class ExtAC;
49777
 
class ExtACBuilderCoupling;
49778
 
class ExtACSyntaxCoupling;
49779
 
class ExtACTree;
49780
 
class ExtACKeywords;
49781
 
class WinAsm;
49782
 
class WinDeclSpecs;
49783
 
class WinMemberExplSpec;
49784
 
class WinTypeKeywords;
49785
 
class PragmaOnceUnitState;
49786
 
class PragmaOnce;
49787
 
class CCExprResolve;
49788
 
class CExprResolve;
49789
 
namespace Puma {
49790
 
 
49791
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49792
 
class CT_ExceptionSpec : public CT_DeclSpec {
49793
 
#line 49794 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49794
 
  friend class ::WinIfExists;
49795
 
  friend class ::WinImportHandler;
49796
 
  friend class ::WinMacros;
49797
 
  friend class ::CMatchSyntax;
49798
 
  friend class ::ExtGnu;
49799
 
  friend class ::ExtAC;
49800
 
  friend class ::ExtACBuilderCoupling;
49801
 
  friend class ::ExtACSyntaxCoupling;
49802
 
  friend class ::ExtACTree;
49803
 
  friend class ::ExtACKeywords;
49804
 
  friend class ::WinAsm;
49805
 
  friend class ::WinDeclSpecs;
49806
 
  friend class ::WinMemberExplSpec;
49807
 
  friend class ::WinTypeKeywords;
49808
 
  friend class ::PragmaOnceUnitState;
49809
 
  friend class ::PragmaOnce;
49810
 
  friend class ::CCExprResolve;
49811
 
  friend class ::CExprResolve;
49812
 
 
49813
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49814
 
 
49815
 
  CTree *sons[2]; // throw, type_id_list
49816
 
  
49817
 
public:
49818
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
49819
 
  static const char *NodeId ();
49820
 
  const char *NodeName () const { return NodeId (); }
49821
 
  int Sons () const { return 2; }
49822
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
49823
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
49824
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49825
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
49826
 
  }
49827
 
};
49828
 
 
49829
 
/*****************************************************************************/
49830
 
/*                                                                           */
49831
 
/*                              Declarations                                 */
49832
 
/*                                                                           */
49833
 
/*****************************************************************************/
49834
 
 
49835
 
 
49836
 
#line 49837 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49837
 
} // closed Puma
49838
 
class WinIfExists;
49839
 
class WinImportHandler;
49840
 
class WinMacros;
49841
 
class CMatchSyntax;
49842
 
class ExtGnu;
49843
 
class ExtAC;
49844
 
class ExtACBuilderCoupling;
49845
 
class ExtACSyntaxCoupling;
49846
 
class ExtACTree;
49847
 
class ExtACKeywords;
49848
 
class WinAsm;
49849
 
class WinDeclSpecs;
49850
 
class WinMemberExplSpec;
49851
 
class WinTypeKeywords;
49852
 
class PragmaOnceUnitState;
49853
 
class PragmaOnce;
49854
 
class CCExprResolve;
49855
 
class CExprResolve;
49856
 
namespace Puma {
49857
 
 
49858
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49859
 
class CT_Decl : public CTree {
49860
 
#line 49861 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49861
 
  friend class ::WinIfExists;
49862
 
  friend class ::WinImportHandler;
49863
 
  friend class ::WinMacros;
49864
 
  friend class ::CMatchSyntax;
49865
 
  friend class ::ExtGnu;
49866
 
  friend class ::ExtAC;
49867
 
  friend class ::ExtACBuilderCoupling;
49868
 
  friend class ::ExtACSyntaxCoupling;
49869
 
  friend class ::ExtACTree;
49870
 
  friend class ::ExtACKeywords;
49871
 
  friend class ::WinAsm;
49872
 
  friend class ::WinDeclSpecs;
49873
 
  friend class ::WinMemberExplSpec;
49874
 
  friend class ::WinTypeKeywords;
49875
 
  friend class ::PragmaOnceUnitState;
49876
 
  friend class ::PragmaOnce;
49877
 
  friend class ::CCExprResolve;
49878
 
  friend class ::CExprResolve;
49879
 
 
49880
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49881
 
 
49882
 
  CT_LinkageSpec *_linkage;
49883
 
protected:
49884
 
  CT_Decl () : _linkage (0) {}
49885
 
public:
49886
 
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
49887
 
  CT_LinkageSpec *Linkage () const { return _linkage; }
49888
 
};
49889
 
 
49890
 
 
49891
 
#line 49892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49892
 
} // closed Puma
49893
 
class WinIfExists;
49894
 
class WinImportHandler;
49895
 
class WinMacros;
49896
 
class CMatchSyntax;
49897
 
class ExtGnu;
49898
 
class ExtAC;
49899
 
class ExtACBuilderCoupling;
49900
 
class ExtACSyntaxCoupling;
49901
 
class ExtACTree;
49902
 
class ExtACKeywords;
49903
 
class WinAsm;
49904
 
class WinDeclSpecs;
49905
 
class WinMemberExplSpec;
49906
 
class WinTypeKeywords;
49907
 
class PragmaOnceUnitState;
49908
 
class PragmaOnce;
49909
 
class CCExprResolve;
49910
 
class CExprResolve;
49911
 
namespace Puma {
49912
 
 
49913
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49914
 
class CT_Program : public CT_DeclList, public CSemScope {
49915
 
#line 49916 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49916
 
  friend class ::WinIfExists;
49917
 
  friend class ::WinImportHandler;
49918
 
  friend class ::WinMacros;
49919
 
  friend class ::CMatchSyntax;
49920
 
  friend class ::ExtGnu;
49921
 
  friend class ::ExtAC;
49922
 
  friend class ::ExtACBuilderCoupling;
49923
 
  friend class ::ExtACSyntaxCoupling;
49924
 
  friend class ::ExtACTree;
49925
 
  friend class ::ExtACKeywords;
49926
 
  friend class ::WinAsm;
49927
 
  friend class ::WinDeclSpecs;
49928
 
  friend class ::WinMemberExplSpec;
49929
 
  friend class ::WinTypeKeywords;
49930
 
  friend class ::PragmaOnceUnitState;
49931
 
  friend class ::PragmaOnce;
49932
 
  friend class ::CCExprResolve;
49933
 
  friend class ::CExprResolve;
49934
 
 
49935
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49936
 
 
49937
 
public:
49938
 
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
49939
 
  static const char *NodeId ();
49940
 
  const char *NodeName () const { return NodeId (); }
49941
 
};
49942
 
   
49943
 
 
49944
 
#line 49945 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49945
 
} // closed Puma
49946
 
class WinIfExists;
49947
 
class WinImportHandler;
49948
 
class WinMacros;
49949
 
class CMatchSyntax;
49950
 
class ExtGnu;
49951
 
class ExtAC;
49952
 
class ExtACBuilderCoupling;
49953
 
class ExtACSyntaxCoupling;
49954
 
class ExtACTree;
49955
 
class ExtACKeywords;
49956
 
class WinAsm;
49957
 
class WinDeclSpecs;
49958
 
class WinMemberExplSpec;
49959
 
class WinTypeKeywords;
49960
 
class PragmaOnceUnitState;
49961
 
class PragmaOnce;
49962
 
class CCExprResolve;
49963
 
class CExprResolve;
49964
 
namespace Puma {
49965
 
 
49966
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49967
 
class CT_ObjDecl : public CT_Decl {
49968
 
#line 49969 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
49969
 
  friend class ::WinIfExists;
49970
 
  friend class ::WinImportHandler;
49971
 
  friend class ::WinMacros;
49972
 
  friend class ::CMatchSyntax;
49973
 
  friend class ::ExtGnu;
49974
 
  friend class ::ExtAC;
49975
 
  friend class ::ExtACBuilderCoupling;
49976
 
  friend class ::ExtACSyntaxCoupling;
49977
 
  friend class ::ExtACTree;
49978
 
  friend class ::ExtACKeywords;
49979
 
  friend class ::WinAsm;
49980
 
  friend class ::WinDeclSpecs;
49981
 
  friend class ::WinMemberExplSpec;
49982
 
  friend class ::WinTypeKeywords;
49983
 
  friend class ::PragmaOnceUnitState;
49984
 
  friend class ::PragmaOnce;
49985
 
  friend class ::CCExprResolve;
49986
 
  friend class ::CExprResolve;
49987
 
 
49988
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49989
 
 
49990
 
  CTree *sons[3]; // declspecs, declarators, colon
49991
 
 
49992
 
public:
49993
 
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
49994
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
49995
 
  }
49996
 
  static const char *NodeId ();
49997
 
  const char *NodeName () const { return NodeId (); }
49998
 
  int Sons () const { return 3; }
49999
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
50000
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
50001
 
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
50002
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50003
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
50004
 
  }
50005
 
};
50006
 
 
50007
 
 
50008
 
#line 50009 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50009
 
} // closed Puma
50010
 
class WinIfExists;
50011
 
class WinImportHandler;
50012
 
class WinMacros;
50013
 
class CMatchSyntax;
50014
 
class ExtGnu;
50015
 
class ExtAC;
50016
 
class ExtACBuilderCoupling;
50017
 
class ExtACSyntaxCoupling;
50018
 
class ExtACTree;
50019
 
class ExtACKeywords;
50020
 
class WinAsm;
50021
 
class WinDeclSpecs;
50022
 
class WinMemberExplSpec;
50023
 
class WinTypeKeywords;
50024
 
class PragmaOnceUnitState;
50025
 
class PragmaOnce;
50026
 
class CCExprResolve;
50027
 
class CExprResolve;
50028
 
namespace Puma {
50029
 
 
50030
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50031
 
class CT_TemplateDecl : public CT_Decl, public CSemScope {
50032
 
#line 50033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50033
 
  friend class ::WinIfExists;
50034
 
  friend class ::WinImportHandler;
50035
 
  friend class ::WinMacros;
50036
 
  friend class ::CMatchSyntax;
50037
 
  friend class ::ExtGnu;
50038
 
  friend class ::ExtAC;
50039
 
  friend class ::ExtACBuilderCoupling;
50040
 
  friend class ::ExtACSyntaxCoupling;
50041
 
  friend class ::ExtACTree;
50042
 
  friend class ::ExtACKeywords;
50043
 
  friend class ::WinAsm;
50044
 
  friend class ::WinDeclSpecs;
50045
 
  friend class ::WinMemberExplSpec;
50046
 
  friend class ::WinTypeKeywords;
50047
 
  friend class ::PragmaOnceUnitState;
50048
 
  friend class ::PragmaOnce;
50049
 
  friend class ::CCExprResolve;
50050
 
  friend class ::CExprResolve;
50051
 
 
50052
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50053
 
 
50054
 
  CTree *sons[3]; // export, param_list, decl
50055
 
 
50056
 
public:
50057
 
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
50058
 
    sons[0] = e; sons[1] = p; sons[2] = d;
50059
 
  }
50060
 
  static const char *NodeId ();
50061
 
  const char *NodeName () const { return NodeId (); }
50062
 
  int Sons () const { return CTree::Sons (sons, 3); }
50063
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
50064
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50065
 
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
50066
 
  }
50067
 
  CTree *Export () const { return sons[0]; }
50068
 
  CT_TemplateParamList *Parameters () const { 
50069
 
    return (CT_TemplateParamList*)sons[1]; 
50070
 
  }
50071
 
  CTree *Declaration () const { return sons[2]; }
50072
 
};
50073
 
 
50074
 
 
50075
 
#line 50076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50076
 
} // closed Puma
50077
 
class WinIfExists;
50078
 
class WinImportHandler;
50079
 
class WinMacros;
50080
 
class CMatchSyntax;
50081
 
class ExtGnu;
50082
 
class ExtAC;
50083
 
class ExtACBuilderCoupling;
50084
 
class ExtACSyntaxCoupling;
50085
 
class ExtACTree;
50086
 
class ExtACKeywords;
50087
 
class WinAsm;
50088
 
class WinDeclSpecs;
50089
 
class WinMemberExplSpec;
50090
 
class WinTypeKeywords;
50091
 
class PragmaOnceUnitState;
50092
 
class PragmaOnce;
50093
 
class CCExprResolve;
50094
 
class CExprResolve;
50095
 
namespace Puma {
50096
 
 
50097
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50098
 
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
50099
 
#line 50100 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50100
 
  friend class ::WinIfExists;
50101
 
  friend class ::WinImportHandler;
50102
 
  friend class ::WinMacros;
50103
 
  friend class ::CMatchSyntax;
50104
 
  friend class ::ExtGnu;
50105
 
  friend class ::ExtAC;
50106
 
  friend class ::ExtACBuilderCoupling;
50107
 
  friend class ::ExtACSyntaxCoupling;
50108
 
  friend class ::ExtACTree;
50109
 
  friend class ::ExtACKeywords;
50110
 
  friend class ::WinAsm;
50111
 
  friend class ::WinDeclSpecs;
50112
 
  friend class ::WinMemberExplSpec;
50113
 
  friend class ::WinTypeKeywords;
50114
 
  friend class ::PragmaOnceUnitState;
50115
 
  friend class ::PragmaOnce;
50116
 
  friend class ::CCExprResolve;
50117
 
  friend class ::CExprResolve;
50118
 
 
50119
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50120
 
 
50121
 
protected:
50122
 
  CT_TemplateParamDecl () {}
50123
 
  
50124
 
public:
50125
 
  virtual CT_ExprList *DefaultArgument () const = 0;
50126
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
50127
 
};
50128
 
 
50129
 
 
50130
 
#line 50131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50131
 
} // closed Puma
50132
 
class WinIfExists;
50133
 
class WinImportHandler;
50134
 
class WinMacros;
50135
 
class CMatchSyntax;
50136
 
class ExtGnu;
50137
 
class ExtAC;
50138
 
class ExtACBuilderCoupling;
50139
 
class ExtACSyntaxCoupling;
50140
 
class ExtACTree;
50141
 
class ExtACKeywords;
50142
 
class WinAsm;
50143
 
class WinDeclSpecs;
50144
 
class WinMemberExplSpec;
50145
 
class WinTypeKeywords;
50146
 
class PragmaOnceUnitState;
50147
 
class PragmaOnce;
50148
 
class CCExprResolve;
50149
 
class CExprResolve;
50150
 
namespace Puma {
50151
 
 
50152
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50153
 
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
50154
 
#line 50155 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50155
 
  friend class ::WinIfExists;
50156
 
  friend class ::WinImportHandler;
50157
 
  friend class ::WinMacros;
50158
 
  friend class ::CMatchSyntax;
50159
 
  friend class ::ExtGnu;
50160
 
  friend class ::ExtAC;
50161
 
  friend class ::ExtACBuilderCoupling;
50162
 
  friend class ::ExtACSyntaxCoupling;
50163
 
  friend class ::ExtACTree;
50164
 
  friend class ::ExtACKeywords;
50165
 
  friend class ::WinAsm;
50166
 
  friend class ::WinDeclSpecs;
50167
 
  friend class ::WinMemberExplSpec;
50168
 
  friend class ::WinTypeKeywords;
50169
 
  friend class ::PragmaOnceUnitState;
50170
 
  friend class ::PragmaOnce;
50171
 
  friend class ::CCExprResolve;
50172
 
  friend class ::CExprResolve;
50173
 
 
50174
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50175
 
 
50176
 
  CTree *sons[3]; // declspecs, declarator, init
50177
 
 
50178
 
public:
50179
 
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
50180
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
50181
 
  }
50182
 
  static const char *NodeId ();
50183
 
  const char *NodeName () const { return NodeId (); }
50184
 
  int Sons () const { return CTree::Sons (sons, 3); }
50185
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
50186
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
50187
 
  CTree *Declarator () const { return sons[1]; }
50188
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
50189
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
50190
 
  void Initializer (CTree *i) { sons[2] = i; }
50191
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50192
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
50193
 
  }
50194
 
};
50195
 
 
50196
 
 
50197
 
#line 50198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50198
 
} // closed Puma
50199
 
class WinIfExists;
50200
 
class WinImportHandler;
50201
 
class WinMacros;
50202
 
class CMatchSyntax;
50203
 
class ExtGnu;
50204
 
class ExtAC;
50205
 
class ExtACBuilderCoupling;
50206
 
class ExtACSyntaxCoupling;
50207
 
class ExtACTree;
50208
 
class ExtACKeywords;
50209
 
class WinAsm;
50210
 
class WinDeclSpecs;
50211
 
class WinMemberExplSpec;
50212
 
class WinTypeKeywords;
50213
 
class PragmaOnceUnitState;
50214
 
class PragmaOnce;
50215
 
class CCExprResolve;
50216
 
class CExprResolve;
50217
 
namespace Puma {
50218
 
 
50219
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50220
 
class CT_TypeParamDecl : public CT_TemplateParamDecl {
50221
 
#line 50222 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50222
 
  friend class ::WinIfExists;
50223
 
  friend class ::WinImportHandler;
50224
 
  friend class ::WinMacros;
50225
 
  friend class ::CMatchSyntax;
50226
 
  friend class ::ExtGnu;
50227
 
  friend class ::ExtAC;
50228
 
  friend class ::ExtACBuilderCoupling;
50229
 
  friend class ::ExtACSyntaxCoupling;
50230
 
  friend class ::ExtACTree;
50231
 
  friend class ::ExtACKeywords;
50232
 
  friend class ::WinAsm;
50233
 
  friend class ::WinDeclSpecs;
50234
 
  friend class ::WinMemberExplSpec;
50235
 
  friend class ::WinTypeKeywords;
50236
 
  friend class ::PragmaOnceUnitState;
50237
 
  friend class ::PragmaOnce;
50238
 
  friend class ::CCExprResolve;
50239
 
  friend class ::CExprResolve;
50240
 
 
50241
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50242
 
 
50243
 
  CTree *sons[4]; // params, key, id, init
50244
 
 
50245
 
public:
50246
 
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
50247
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
50248
 
  }
50249
 
  static const char *NodeId ();
50250
 
  const char *NodeName () const { return NodeId (); }
50251
 
  int Sons () const { return CTree::Sons (sons, 4); }
50252
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
50253
 
  CT_TemplateParamList *Parameters () const { 
50254
 
    return (CT_TemplateParamList*)sons[0]; 
50255
 
  }
50256
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
50257
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
50258
 
  void Initializer (CTree *i) { sons[3] = i; }
50259
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50260
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
50261
 
  }
50262
 
};
50263
 
 
50264
 
 
50265
 
#line 50266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50266
 
} // closed Puma
50267
 
class WinIfExists;
50268
 
class WinImportHandler;
50269
 
class WinMacros;
50270
 
class CMatchSyntax;
50271
 
class ExtGnu;
50272
 
class ExtAC;
50273
 
class ExtACBuilderCoupling;
50274
 
class ExtACSyntaxCoupling;
50275
 
class ExtACTree;
50276
 
class ExtACKeywords;
50277
 
class WinAsm;
50278
 
class WinDeclSpecs;
50279
 
class WinMemberExplSpec;
50280
 
class WinTypeKeywords;
50281
 
class PragmaOnceUnitState;
50282
 
class PragmaOnce;
50283
 
class CCExprResolve;
50284
 
class CExprResolve;
50285
 
namespace Puma {
50286
 
 
50287
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50288
 
class CT_EnumDef : public CT_Decl, public CSemObject {
50289
 
#line 50290 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50290
 
  friend class ::WinIfExists;
50291
 
  friend class ::WinImportHandler;
50292
 
  friend class ::WinMacros;
50293
 
  friend class ::CMatchSyntax;
50294
 
  friend class ::ExtGnu;
50295
 
  friend class ::ExtAC;
50296
 
  friend class ::ExtACBuilderCoupling;
50297
 
  friend class ::ExtACSyntaxCoupling;
50298
 
  friend class ::ExtACTree;
50299
 
  friend class ::ExtACKeywords;
50300
 
  friend class ::WinAsm;
50301
 
  friend class ::WinDeclSpecs;
50302
 
  friend class ::WinMemberExplSpec;
50303
 
  friend class ::WinTypeKeywords;
50304
 
  friend class ::PragmaOnceUnitState;
50305
 
  friend class ::PragmaOnce;
50306
 
  friend class ::CCExprResolve;
50307
 
  friend class ::CExprResolve;
50308
 
 
50309
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50310
 
 
50311
 
  CTree *sons[3]; // key, name, enumerators
50312
 
 
50313
 
public:
50314
 
  CT_EnumDef (CTree *k, CTree *n) {
50315
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
50316
 
  }
50317
 
  static const char *NodeId ();
50318
 
  const char *NodeName () const { return NodeId (); }
50319
 
  int Sons () const { return CTree::Sons (sons, 3); }
50320
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
50321
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
50322
 
  void Enumerators (CTree *el) { sons[2] = el; }
50323
 
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
50324
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50325
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
50326
 
  }
50327
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
50328
 
};
50329
 
 
50330
 
 
50331
 
#line 50332 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50332
 
} // closed Puma
50333
 
class WinIfExists;
50334
 
class WinImportHandler;
50335
 
class WinMacros;
50336
 
class CMatchSyntax;
50337
 
class ExtGnu;
50338
 
class ExtAC;
50339
 
class ExtACBuilderCoupling;
50340
 
class ExtACSyntaxCoupling;
50341
 
class ExtACTree;
50342
 
class ExtACKeywords;
50343
 
class WinAsm;
50344
 
class WinDeclSpecs;
50345
 
class WinMemberExplSpec;
50346
 
class WinTypeKeywords;
50347
 
class PragmaOnceUnitState;
50348
 
class PragmaOnce;
50349
 
class CCExprResolve;
50350
 
class CExprResolve;
50351
 
namespace Puma {
50352
 
 
50353
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50354
 
class CT_Enumerator : public CT_Decl, public CSemObject {
50355
 
#line 50356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50356
 
  friend class ::WinIfExists;
50357
 
  friend class ::WinImportHandler;
50358
 
  friend class ::WinMacros;
50359
 
  friend class ::CMatchSyntax;
50360
 
  friend class ::ExtGnu;
50361
 
  friend class ::ExtAC;
50362
 
  friend class ::ExtACBuilderCoupling;
50363
 
  friend class ::ExtACSyntaxCoupling;
50364
 
  friend class ::ExtACTree;
50365
 
  friend class ::ExtACKeywords;
50366
 
  friend class ::WinAsm;
50367
 
  friend class ::WinDeclSpecs;
50368
 
  friend class ::WinMemberExplSpec;
50369
 
  friend class ::WinTypeKeywords;
50370
 
  friend class ::PragmaOnceUnitState;
50371
 
  friend class ::PragmaOnce;
50372
 
  friend class ::CCExprResolve;
50373
 
  friend class ::CExprResolve;
50374
 
 
50375
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50376
 
 
50377
 
  CTree *sons[2]; // name, init
50378
 
 
50379
 
public:
50380
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
50381
 
  static const char *NodeId ();
50382
 
  const char *NodeName () const { return NodeId (); }
50383
 
  int Sons () const { return CTree::Sons (sons, 2); }
50384
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
50385
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
50386
 
  void Initializer (CTree *i) { sons[1] = i; }
50387
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
50388
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50389
 
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
50390
 
  }
50391
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
50392
 
};
50393
 
 
50394
 
 
50395
 
#line 50396 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50396
 
} // closed Puma
50397
 
class WinIfExists;
50398
 
class WinImportHandler;
50399
 
class WinMacros;
50400
 
class CMatchSyntax;
50401
 
class ExtGnu;
50402
 
class ExtAC;
50403
 
class ExtACBuilderCoupling;
50404
 
class ExtACSyntaxCoupling;
50405
 
class ExtACTree;
50406
 
class ExtACKeywords;
50407
 
class WinAsm;
50408
 
class WinDeclSpecs;
50409
 
class WinMemberExplSpec;
50410
 
class WinTypeKeywords;
50411
 
class PragmaOnceUnitState;
50412
 
class PragmaOnce;
50413
 
class CCExprResolve;
50414
 
class CExprResolve;
50415
 
namespace Puma {
50416
 
 
50417
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50418
 
class CT_FctDef : public CT_Decl, public CSemObject {
50419
 
#line 50420 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50420
 
  friend class ::WinIfExists;
50421
 
  friend class ::WinImportHandler;
50422
 
  friend class ::WinMacros;
50423
 
  friend class ::CMatchSyntax;
50424
 
  friend class ::ExtGnu;
50425
 
  friend class ::ExtAC;
50426
 
  friend class ::ExtACBuilderCoupling;
50427
 
  friend class ::ExtACSyntaxCoupling;
50428
 
  friend class ::ExtACTree;
50429
 
  friend class ::ExtACKeywords;
50430
 
  friend class ::WinAsm;
50431
 
  friend class ::WinDeclSpecs;
50432
 
  friend class ::WinMemberExplSpec;
50433
 
  friend class ::WinTypeKeywords;
50434
 
  friend class ::PragmaOnceUnitState;
50435
 
  friend class ::PragmaOnce;
50436
 
  friend class ::CCExprResolve;
50437
 
  friend class ::CExprResolve;
50438
 
 
50439
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50440
 
 
50441
 
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
50442
 
 
50443
 
public:
50444
 
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
50445
 
             CTree *b, CTree *hs) {
50446
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
50447
 
    sons[5] = b; sons[6] = hs; 
50448
 
  }
50449
 
  static const char *NodeId ();
50450
 
  const char *NodeName () const { return NodeId (); }
50451
 
  int Sons () const { return CTree::Sons (sons, 7); }
50452
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
50453
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
50454
 
  CTree *Declarator () const { return sons[1]; }
50455
 
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
50456
 
  CTree *CtorInit () const { return sons[3]; }
50457
 
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
50458
 
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
50459
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
50460
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
50461
 
  void CtorInit (CTree *i) { sons[3] = i; }
50462
 
  void Body (CTree *b) { sons[5] = b; }
50463
 
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
50464
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
50465
 
  }
50466
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50467
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
50468
 
  }
50469
 
};
50470
 
 
50471
 
 
50472
 
#line 50473 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50473
 
} // closed Puma
50474
 
class WinIfExists;
50475
 
class WinImportHandler;
50476
 
class WinMacros;
50477
 
class CMatchSyntax;
50478
 
class ExtGnu;
50479
 
class ExtAC;
50480
 
class ExtACBuilderCoupling;
50481
 
class ExtACSyntaxCoupling;
50482
 
class ExtACTree;
50483
 
class ExtACKeywords;
50484
 
class WinAsm;
50485
 
class WinDeclSpecs;
50486
 
class WinMemberExplSpec;
50487
 
class WinTypeKeywords;
50488
 
class PragmaOnceUnitState;
50489
 
class PragmaOnce;
50490
 
class CCExprResolve;
50491
 
class CExprResolve;
50492
 
namespace Puma {
50493
 
 
50494
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50495
 
class CT_AsmDef : public CT_Decl {
50496
 
#line 50497 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50497
 
  friend class ::WinIfExists;
50498
 
  friend class ::WinImportHandler;
50499
 
  friend class ::WinMacros;
50500
 
  friend class ::CMatchSyntax;
50501
 
  friend class ::ExtGnu;
50502
 
  friend class ::ExtAC;
50503
 
  friend class ::ExtACBuilderCoupling;
50504
 
  friend class ::ExtACSyntaxCoupling;
50505
 
  friend class ::ExtACTree;
50506
 
  friend class ::ExtACKeywords;
50507
 
  friend class ::WinAsm;
50508
 
  friend class ::WinDeclSpecs;
50509
 
  friend class ::WinMemberExplSpec;
50510
 
  friend class ::WinTypeKeywords;
50511
 
  friend class ::PragmaOnceUnitState;
50512
 
  friend class ::PragmaOnce;
50513
 
  friend class ::CCExprResolve;
50514
 
  friend class ::CExprResolve;
50515
 
 
50516
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50517
 
 
50518
 
  CTree *sons[5]; // asm, open, str, close, semi_colon
50519
 
 
50520
 
public:
50521
 
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
50522
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
50523
 
  }
50524
 
  static const char *NodeId ();
50525
 
  const char *NodeName () const { return NodeId (); }
50526
 
  int Sons () const { return 5; }
50527
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
50528
 
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
50529
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50530
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
50531
 
  }
50532
 
};
50533
 
 
50534
 
 
50535
 
#line 50536 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50536
 
} // closed Puma
50537
 
class WinIfExists;
50538
 
class WinImportHandler;
50539
 
class WinMacros;
50540
 
class CMatchSyntax;
50541
 
class ExtGnu;
50542
 
class ExtAC;
50543
 
class ExtACBuilderCoupling;
50544
 
class ExtACSyntaxCoupling;
50545
 
class ExtACTree;
50546
 
class ExtACKeywords;
50547
 
class WinAsm;
50548
 
class WinDeclSpecs;
50549
 
class WinMemberExplSpec;
50550
 
class WinTypeKeywords;
50551
 
class PragmaOnceUnitState;
50552
 
class PragmaOnce;
50553
 
class CCExprResolve;
50554
 
class CExprResolve;
50555
 
namespace Puma {
50556
 
 
50557
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50558
 
class CT_Handler : public CT_Decl, public CSemScope {
50559
 
#line 50560 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50560
 
  friend class ::WinIfExists;
50561
 
  friend class ::WinImportHandler;
50562
 
  friend class ::WinMacros;
50563
 
  friend class ::CMatchSyntax;
50564
 
  friend class ::ExtGnu;
50565
 
  friend class ::ExtAC;
50566
 
  friend class ::ExtACBuilderCoupling;
50567
 
  friend class ::ExtACSyntaxCoupling;
50568
 
  friend class ::ExtACTree;
50569
 
  friend class ::ExtACKeywords;
50570
 
  friend class ::WinAsm;
50571
 
  friend class ::WinDeclSpecs;
50572
 
  friend class ::WinMemberExplSpec;
50573
 
  friend class ::WinTypeKeywords;
50574
 
  friend class ::PragmaOnceUnitState;
50575
 
  friend class ::PragmaOnce;
50576
 
  friend class ::CCExprResolve;
50577
 
  friend class ::CExprResolve;
50578
 
 
50579
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50580
 
 
50581
 
  CTree *sons[3]; // catch, exception_decl, stmt
50582
 
 
50583
 
public:
50584
 
  CT_Handler (CTree *c, CTree *e, CTree *s) {
50585
 
    sons[0] = c; sons[1] = e; sons[2] = s;
50586
 
  }
50587
 
  static const char *NodeId ();
50588
 
  const char *NodeName () const { return NodeId (); }
50589
 
  int Sons () const { return 3; }
50590
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
50591
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
50592
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
50593
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50594
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
50595
 
  }
50596
 
};
50597
 
 
50598
 
 
50599
 
#line 50600 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50600
 
} // closed Puma
50601
 
class WinIfExists;
50602
 
class WinImportHandler;
50603
 
class WinMacros;
50604
 
class CMatchSyntax;
50605
 
class ExtGnu;
50606
 
class ExtAC;
50607
 
class ExtACBuilderCoupling;
50608
 
class ExtACSyntaxCoupling;
50609
 
class ExtACTree;
50610
 
class ExtACKeywords;
50611
 
class WinAsm;
50612
 
class WinDeclSpecs;
50613
 
class WinMemberExplSpec;
50614
 
class WinTypeKeywords;
50615
 
class PragmaOnceUnitState;
50616
 
class PragmaOnce;
50617
 
class CCExprResolve;
50618
 
class CExprResolve;
50619
 
namespace Puma {
50620
 
 
50621
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50622
 
class CT_LinkageSpec : public CT_Decl {
50623
 
#line 50624 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50624
 
  friend class ::WinIfExists;
50625
 
  friend class ::WinImportHandler;
50626
 
  friend class ::WinMacros;
50627
 
  friend class ::CMatchSyntax;
50628
 
  friend class ::ExtGnu;
50629
 
  friend class ::ExtAC;
50630
 
  friend class ::ExtACBuilderCoupling;
50631
 
  friend class ::ExtACSyntaxCoupling;
50632
 
  friend class ::ExtACTree;
50633
 
  friend class ::ExtACKeywords;
50634
 
  friend class ::WinAsm;
50635
 
  friend class ::WinDeclSpecs;
50636
 
  friend class ::WinMemberExplSpec;
50637
 
  friend class ::WinTypeKeywords;
50638
 
  friend class ::PragmaOnceUnitState;
50639
 
  friend class ::PragmaOnce;
50640
 
  friend class ::CCExprResolve;
50641
 
  friend class ::CExprResolve;
50642
 
 
50643
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50644
 
 
50645
 
  CTree *sons[5]; // extern, str, open, decls, close
50646
 
 
50647
 
public:
50648
 
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
50649
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
50650
 
    if (isList ())
50651
 
      ((CT_DeclList*)Decls ())->Linkage (this);
50652
 
    else
50653
 
      ((CT_Decl*)Decls ())->Linkage (this);
50654
 
  }
50655
 
  static const char *NodeId ();
50656
 
  const char *NodeName () const { return NodeId (); }
50657
 
  int Sons () const { return CTree::Sons (sons, 5); }
50658
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
50659
 
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
50660
 
  CTree *Decls () const { return sons[3]; }
50661
 
  bool isList () const {
50662
 
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
50663
 
  }
50664
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50665
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
50666
 
  }
50667
 
};
50668
 
 
50669
 
 
50670
 
#line 50671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50671
 
} // closed Puma
50672
 
class WinIfExists;
50673
 
class WinImportHandler;
50674
 
class WinMacros;
50675
 
class CMatchSyntax;
50676
 
class ExtGnu;
50677
 
class ExtAC;
50678
 
class ExtACBuilderCoupling;
50679
 
class ExtACSyntaxCoupling;
50680
 
class ExtACTree;
50681
 
class ExtACKeywords;
50682
 
class WinAsm;
50683
 
class WinDeclSpecs;
50684
 
class WinMemberExplSpec;
50685
 
class WinTypeKeywords;
50686
 
class PragmaOnceUnitState;
50687
 
class PragmaOnce;
50688
 
class CCExprResolve;
50689
 
class CExprResolve;
50690
 
namespace Puma {
50691
 
 
50692
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50693
 
class CT_ArgDecl : public CT_Decl, public CSemObject {
50694
 
#line 50695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50695
 
  friend class ::WinIfExists;
50696
 
  friend class ::WinImportHandler;
50697
 
  friend class ::WinMacros;
50698
 
  friend class ::CMatchSyntax;
50699
 
  friend class ::ExtGnu;
50700
 
  friend class ::ExtAC;
50701
 
  friend class ::ExtACBuilderCoupling;
50702
 
  friend class ::ExtACSyntaxCoupling;
50703
 
  friend class ::ExtACTree;
50704
 
  friend class ::ExtACKeywords;
50705
 
  friend class ::WinAsm;
50706
 
  friend class ::WinDeclSpecs;
50707
 
  friend class ::WinMemberExplSpec;
50708
 
  friend class ::WinTypeKeywords;
50709
 
  friend class ::PragmaOnceUnitState;
50710
 
  friend class ::PragmaOnce;
50711
 
  friend class ::CCExprResolve;
50712
 
  friend class ::CExprResolve;
50713
 
 
50714
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50715
 
 
50716
 
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
50717
 
 
50718
 
public:
50719
 
  CT_ArgDecl (CTree *dsl, CTree *d) {
50720
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
50721
 
  }
50722
 
  CT_ArgDecl (CTree *ellipsis) {
50723
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
50724
 
  }
50725
 
  static const char *NodeId ();
50726
 
  const char *NodeName () const { return NodeId (); }
50727
 
  int Sons () const { return CTree::Sons (sons, 4); }
50728
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
50729
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
50730
 
  CTree *Declarator () const { return sons[1]; }
50731
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
50732
 
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
50733
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
50734
 
  void Initializer (CTree *i) { sons[2] = i; }
50735
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50736
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
50737
 
  }
50738
 
};
50739
 
 
50740
 
 
50741
 
#line 50742 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50742
 
} // closed Puma
50743
 
class WinIfExists;
50744
 
class WinImportHandler;
50745
 
class WinMacros;
50746
 
class CMatchSyntax;
50747
 
class ExtGnu;
50748
 
class ExtAC;
50749
 
class ExtACBuilderCoupling;
50750
 
class ExtACSyntaxCoupling;
50751
 
class ExtACTree;
50752
 
class ExtACKeywords;
50753
 
class WinAsm;
50754
 
class WinDeclSpecs;
50755
 
class WinMemberExplSpec;
50756
 
class WinTypeKeywords;
50757
 
class PragmaOnceUnitState;
50758
 
class PragmaOnce;
50759
 
class CCExprResolve;
50760
 
class CExprResolve;
50761
 
namespace Puma {
50762
 
 
50763
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50764
 
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
50765
 
#line 50766 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50766
 
  friend class ::WinIfExists;
50767
 
  friend class ::WinImportHandler;
50768
 
  friend class ::WinMacros;
50769
 
  friend class ::CMatchSyntax;
50770
 
  friend class ::ExtGnu;
50771
 
  friend class ::ExtAC;
50772
 
  friend class ::ExtACBuilderCoupling;
50773
 
  friend class ::ExtACSyntaxCoupling;
50774
 
  friend class ::ExtACTree;
50775
 
  friend class ::ExtACKeywords;
50776
 
  friend class ::WinAsm;
50777
 
  friend class ::WinDeclSpecs;
50778
 
  friend class ::WinMemberExplSpec;
50779
 
  friend class ::WinTypeKeywords;
50780
 
  friend class ::PragmaOnceUnitState;
50781
 
  friend class ::PragmaOnce;
50782
 
  friend class ::CCExprResolve;
50783
 
  friend class ::CExprResolve;
50784
 
 
50785
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50786
 
 
50787
 
public:
50788
 
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
50789
 
   CT_DeclList (size, 2) { AddProperties (props); }
50790
 
  static const char *NodeId ();
50791
 
  const char *NodeName () const { return NodeId (); }
50792
 
};
50793
 
 
50794
 
 
50795
 
#line 50796 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50796
 
} // closed Puma
50797
 
class WinIfExists;
50798
 
class WinImportHandler;
50799
 
class WinMacros;
50800
 
class CMatchSyntax;
50801
 
class ExtGnu;
50802
 
class ExtAC;
50803
 
class ExtACBuilderCoupling;
50804
 
class ExtACSyntaxCoupling;
50805
 
class ExtACTree;
50806
 
class ExtACKeywords;
50807
 
class WinAsm;
50808
 
class WinDeclSpecs;
50809
 
class WinMemberExplSpec;
50810
 
class WinTypeKeywords;
50811
 
class PragmaOnceUnitState;
50812
 
class PragmaOnce;
50813
 
class CCExprResolve;
50814
 
class CExprResolve;
50815
 
namespace Puma {
50816
 
 
50817
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50818
 
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
50819
 
#line 50820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50820
 
  friend class ::WinIfExists;
50821
 
  friend class ::WinImportHandler;
50822
 
  friend class ::WinMacros;
50823
 
  friend class ::CMatchSyntax;
50824
 
  friend class ::ExtGnu;
50825
 
  friend class ::ExtAC;
50826
 
  friend class ::ExtACBuilderCoupling;
50827
 
  friend class ::ExtACSyntaxCoupling;
50828
 
  friend class ::ExtACTree;
50829
 
  friend class ::ExtACKeywords;
50830
 
  friend class ::WinAsm;
50831
 
  friend class ::WinDeclSpecs;
50832
 
  friend class ::WinMemberExplSpec;
50833
 
  friend class ::WinTypeKeywords;
50834
 
  friend class ::PragmaOnceUnitState;
50835
 
  friend class ::PragmaOnce;
50836
 
  friend class ::CCExprResolve;
50837
 
  friend class ::CExprResolve;
50838
 
 
50839
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50840
 
 
50841
 
public:
50842
 
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
50843
 
  static const char *NodeId ();
50844
 
  const char *NodeName () const { return NodeId (); }
50845
 
};
50846
 
 
50847
 
 
50848
 
#line 50849 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50849
 
} // closed Puma
50850
 
class WinIfExists;
50851
 
class WinImportHandler;
50852
 
class WinMacros;
50853
 
class CMatchSyntax;
50854
 
class ExtGnu;
50855
 
class ExtAC;
50856
 
class ExtACBuilderCoupling;
50857
 
class ExtACSyntaxCoupling;
50858
 
class ExtACTree;
50859
 
class ExtACKeywords;
50860
 
class WinAsm;
50861
 
class WinDeclSpecs;
50862
 
class WinMemberExplSpec;
50863
 
class WinTypeKeywords;
50864
 
class PragmaOnceUnitState;
50865
 
class PragmaOnce;
50866
 
class CCExprResolve;
50867
 
class CExprResolve;
50868
 
namespace Puma {
50869
 
 
50870
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50871
 
class CT_ArgNameList : public CT_ArgDeclList {
50872
 
#line 50873 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50873
 
  friend class ::WinIfExists;
50874
 
  friend class ::WinImportHandler;
50875
 
  friend class ::WinMacros;
50876
 
  friend class ::CMatchSyntax;
50877
 
  friend class ::ExtGnu;
50878
 
  friend class ::ExtAC;
50879
 
  friend class ::ExtACBuilderCoupling;
50880
 
  friend class ::ExtACSyntaxCoupling;
50881
 
  friend class ::ExtACTree;
50882
 
  friend class ::ExtACKeywords;
50883
 
  friend class ::WinAsm;
50884
 
  friend class ::WinDeclSpecs;
50885
 
  friend class ::WinMemberExplSpec;
50886
 
  friend class ::WinTypeKeywords;
50887
 
  friend class ::PragmaOnceUnitState;
50888
 
  friend class ::PragmaOnce;
50889
 
  friend class ::CCExprResolve;
50890
 
  friend class ::CExprResolve;
50891
 
 
50892
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50893
 
 
50894
 
public:
50895
 
  CT_ArgNameList () : CT_ArgDeclList () {}
50896
 
  static const char *NodeId ();
50897
 
  const char *NodeName () const { return NodeId (); }
50898
 
};
50899
 
 
50900
 
 
50901
 
#line 50902 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50902
 
} // closed Puma
50903
 
class WinIfExists;
50904
 
class WinImportHandler;
50905
 
class WinMacros;
50906
 
class CMatchSyntax;
50907
 
class ExtGnu;
50908
 
class ExtAC;
50909
 
class ExtACBuilderCoupling;
50910
 
class ExtACSyntaxCoupling;
50911
 
class ExtACTree;
50912
 
class ExtACKeywords;
50913
 
class WinAsm;
50914
 
class WinDeclSpecs;
50915
 
class WinMemberExplSpec;
50916
 
class WinTypeKeywords;
50917
 
class PragmaOnceUnitState;
50918
 
class PragmaOnce;
50919
 
class CCExprResolve;
50920
 
class CExprResolve;
50921
 
namespace Puma {
50922
 
 
50923
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50924
 
class CT_NamespaceDef : public CT_Decl, public CSemObject {
50925
 
#line 50926 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50926
 
  friend class ::WinIfExists;
50927
 
  friend class ::WinImportHandler;
50928
 
  friend class ::WinMacros;
50929
 
  friend class ::CMatchSyntax;
50930
 
  friend class ::ExtGnu;
50931
 
  friend class ::ExtAC;
50932
 
  friend class ::ExtACBuilderCoupling;
50933
 
  friend class ::ExtACSyntaxCoupling;
50934
 
  friend class ::ExtACTree;
50935
 
  friend class ::ExtACKeywords;
50936
 
  friend class ::WinAsm;
50937
 
  friend class ::WinDeclSpecs;
50938
 
  friend class ::WinMemberExplSpec;
50939
 
  friend class ::WinTypeKeywords;
50940
 
  friend class ::PragmaOnceUnitState;
50941
 
  friend class ::PragmaOnce;
50942
 
  friend class ::CCExprResolve;
50943
 
  friend class ::CExprResolve;
50944
 
 
50945
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50946
 
 
50947
 
  CTree *sons[3]; // ns, name, members
50948
 
 
50949
 
public:
50950
 
  CT_NamespaceDef (CTree *n, CTree *nm) {
50951
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
50952
 
  }
50953
 
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
50954
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
50955
 
  }
50956
 
  static const char *NodeId ();
50957
 
  const char *NodeName () const { return NodeId (); }
50958
 
  int Sons () const { return CTree::Sons (sons, 3); }
50959
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
50960
 
  void Members (CTree *m) { sons[2] = m; }
50961
 
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
50962
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
50963
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
50964
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50965
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
50966
 
  }
50967
 
};
50968
 
 
50969
 
 
50970
 
#line 50971 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50971
 
} // closed Puma
50972
 
class WinIfExists;
50973
 
class WinImportHandler;
50974
 
class WinMacros;
50975
 
class CMatchSyntax;
50976
 
class ExtGnu;
50977
 
class ExtAC;
50978
 
class ExtACBuilderCoupling;
50979
 
class ExtACSyntaxCoupling;
50980
 
class ExtACTree;
50981
 
class ExtACKeywords;
50982
 
class WinAsm;
50983
 
class WinDeclSpecs;
50984
 
class WinMemberExplSpec;
50985
 
class WinTypeKeywords;
50986
 
class PragmaOnceUnitState;
50987
 
class PragmaOnce;
50988
 
class CCExprResolve;
50989
 
class CExprResolve;
50990
 
namespace Puma {
50991
 
 
50992
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50993
 
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
50994
 
#line 50995 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
50995
 
  friend class ::WinIfExists;
50996
 
  friend class ::WinImportHandler;
50997
 
  friend class ::WinMacros;
50998
 
  friend class ::CMatchSyntax;
50999
 
  friend class ::ExtGnu;
51000
 
  friend class ::ExtAC;
51001
 
  friend class ::ExtACBuilderCoupling;
51002
 
  friend class ::ExtACSyntaxCoupling;
51003
 
  friend class ::ExtACTree;
51004
 
  friend class ::ExtACKeywords;
51005
 
  friend class ::WinAsm;
51006
 
  friend class ::WinDeclSpecs;
51007
 
  friend class ::WinMemberExplSpec;
51008
 
  friend class ::WinTypeKeywords;
51009
 
  friend class ::PragmaOnceUnitState;
51010
 
  friend class ::PragmaOnce;
51011
 
  friend class ::CCExprResolve;
51012
 
  friend class ::CExprResolve;
51013
 
 
51014
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51015
 
 
51016
 
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
51017
 
 
51018
 
public:
51019
 
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
51020
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
51021
 
  }
51022
 
  static const char *NodeId ();
51023
 
  const char *NodeName () const { return NodeId (); }
51024
 
  int Sons () const { return 5; }
51025
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
51026
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
51027
 
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
51028
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
51029
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51030
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
51031
 
  }
51032
 
};
51033
 
 
51034
 
 
51035
 
#line 51036 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51036
 
} // closed Puma
51037
 
class WinIfExists;
51038
 
class WinImportHandler;
51039
 
class WinMacros;
51040
 
class CMatchSyntax;
51041
 
class ExtGnu;
51042
 
class ExtAC;
51043
 
class ExtACBuilderCoupling;
51044
 
class ExtACSyntaxCoupling;
51045
 
class ExtACTree;
51046
 
class ExtACKeywords;
51047
 
class WinAsm;
51048
 
class WinDeclSpecs;
51049
 
class WinMemberExplSpec;
51050
 
class WinTypeKeywords;
51051
 
class PragmaOnceUnitState;
51052
 
class PragmaOnce;
51053
 
class CCExprResolve;
51054
 
class CExprResolve;
51055
 
namespace Puma {
51056
 
 
51057
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51058
 
class CT_UsingDirective : public CT_Decl {
51059
 
#line 51060 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51060
 
  friend class ::WinIfExists;
51061
 
  friend class ::WinImportHandler;
51062
 
  friend class ::WinMacros;
51063
 
  friend class ::CMatchSyntax;
51064
 
  friend class ::ExtGnu;
51065
 
  friend class ::ExtAC;
51066
 
  friend class ::ExtACBuilderCoupling;
51067
 
  friend class ::ExtACSyntaxCoupling;
51068
 
  friend class ::ExtACTree;
51069
 
  friend class ::ExtACKeywords;
51070
 
  friend class ::WinAsm;
51071
 
  friend class ::WinDeclSpecs;
51072
 
  friend class ::WinMemberExplSpec;
51073
 
  friend class ::WinTypeKeywords;
51074
 
  friend class ::PragmaOnceUnitState;
51075
 
  friend class ::PragmaOnce;
51076
 
  friend class ::CCExprResolve;
51077
 
  friend class ::CExprResolve;
51078
 
 
51079
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51080
 
 
51081
 
  CTree *sons[4]; // using, ns, name, semi_colon
51082
 
 
51083
 
public:
51084
 
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
51085
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
51086
 
  }
51087
 
  static const char *NodeId ();
51088
 
  const char *NodeName () const { return NodeId (); }
51089
 
  int Sons () const { return 4; }
51090
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
51091
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
51092
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51093
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
51094
 
  }
51095
 
};
51096
 
 
51097
 
/*****************************************************************************/
51098
 
/*                                                                           */
51099
 
/*                              Declarators                                  */
51100
 
/*                                                                           */
51101
 
/*****************************************************************************/
51102
 
 
51103
 
 
51104
 
#line 51105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51105
 
} // closed Puma
51106
 
class WinIfExists;
51107
 
class WinImportHandler;
51108
 
class WinMacros;
51109
 
class CMatchSyntax;
51110
 
class ExtGnu;
51111
 
class ExtAC;
51112
 
class ExtACBuilderCoupling;
51113
 
class ExtACSyntaxCoupling;
51114
 
class ExtACTree;
51115
 
class ExtACKeywords;
51116
 
class WinAsm;
51117
 
class WinDeclSpecs;
51118
 
class WinMemberExplSpec;
51119
 
class WinTypeKeywords;
51120
 
class PragmaOnceUnitState;
51121
 
class PragmaOnce;
51122
 
class CCExprResolve;
51123
 
class CExprResolve;
51124
 
namespace Puma {
51125
 
 
51126
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51127
 
class CT_Declarator : public CTree {
51128
 
#line 51129 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51129
 
  friend class ::WinIfExists;
51130
 
  friend class ::WinImportHandler;
51131
 
  friend class ::WinMacros;
51132
 
  friend class ::CMatchSyntax;
51133
 
  friend class ::ExtGnu;
51134
 
  friend class ::ExtAC;
51135
 
  friend class ::ExtACBuilderCoupling;
51136
 
  friend class ::ExtACSyntaxCoupling;
51137
 
  friend class ::ExtACTree;
51138
 
  friend class ::ExtACKeywords;
51139
 
  friend class ::WinAsm;
51140
 
  friend class ::WinDeclSpecs;
51141
 
  friend class ::WinMemberExplSpec;
51142
 
  friend class ::WinTypeKeywords;
51143
 
  friend class ::PragmaOnceUnitState;
51144
 
  friend class ::PragmaOnce;
51145
 
  friend class ::CCExprResolve;
51146
 
  friend class ::CExprResolve;
51147
 
 
51148
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51149
 
 
51150
 
protected:
51151
 
  CT_Declarator () {}
51152
 
 
51153
 
public:
51154
 
  virtual CTree *Declarator () const = 0;
51155
 
  //classification function
51156
 
  virtual CT_Declarator *IsDeclarator () { return this; }
51157
 
  // locate the name node
51158
 
  CT_SimpleName *Name ();
51159
 
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
51160
 
};
51161
 
 
51162
 
 
51163
 
#line 51164 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51164
 
} // closed Puma
51165
 
class WinIfExists;
51166
 
class WinImportHandler;
51167
 
class WinMacros;
51168
 
class CMatchSyntax;
51169
 
class ExtGnu;
51170
 
class ExtAC;
51171
 
class ExtACBuilderCoupling;
51172
 
class ExtACSyntaxCoupling;
51173
 
class ExtACTree;
51174
 
class ExtACKeywords;
51175
 
class WinAsm;
51176
 
class WinDeclSpecs;
51177
 
class WinMemberExplSpec;
51178
 
class WinTypeKeywords;
51179
 
class PragmaOnceUnitState;
51180
 
class PragmaOnce;
51181
 
class CCExprResolve;
51182
 
class CExprResolve;
51183
 
namespace Puma {
51184
 
 
51185
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51186
 
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
51187
 
#line 51188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51188
 
  friend class ::WinIfExists;
51189
 
  friend class ::WinImportHandler;
51190
 
  friend class ::WinMacros;
51191
 
  friend class ::CMatchSyntax;
51192
 
  friend class ::ExtGnu;
51193
 
  friend class ::ExtAC;
51194
 
  friend class ::ExtACBuilderCoupling;
51195
 
  friend class ::ExtACSyntaxCoupling;
51196
 
  friend class ::ExtACTree;
51197
 
  friend class ::ExtACKeywords;
51198
 
  friend class ::WinAsm;
51199
 
  friend class ::WinDeclSpecs;
51200
 
  friend class ::WinMemberExplSpec;
51201
 
  friend class ::WinTypeKeywords;
51202
 
  friend class ::PragmaOnceUnitState;
51203
 
  friend class ::PragmaOnce;
51204
 
  friend class ::CCExprResolve;
51205
 
  friend class ::CExprResolve;
51206
 
 
51207
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51208
 
 
51209
 
  CTree *sons[2]; // declarator, init
51210
 
  CTree *obj_decl;
51211
 
 
51212
 
public:
51213
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
51214
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
51215
 
  }
51216
 
  static const char *NodeId ();
51217
 
  const char *NodeName () const { return NodeId (); }
51218
 
  int Sons () const { return CTree::Sons (sons, 2); }
51219
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
51220
 
  CTree *Declarator () const { return sons[0]; }
51221
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
51222
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
51223
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
51224
 
  void Initializer (CTree* i) { sons[1] = i; }
51225
 
  void ObjDecl (CTree *od) { obj_decl = od; }
51226
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51227
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
51228
 
  }
51229
 
};
51230
 
 
51231
 
 
51232
 
#line 51233 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51233
 
} // closed Puma
51234
 
class WinIfExists;
51235
 
class WinImportHandler;
51236
 
class WinMacros;
51237
 
class CMatchSyntax;
51238
 
class ExtGnu;
51239
 
class ExtAC;
51240
 
class ExtACBuilderCoupling;
51241
 
class ExtACSyntaxCoupling;
51242
 
class ExtACTree;
51243
 
class ExtACKeywords;
51244
 
class WinAsm;
51245
 
class WinDeclSpecs;
51246
 
class WinMemberExplSpec;
51247
 
class WinTypeKeywords;
51248
 
class PragmaOnceUnitState;
51249
 
class PragmaOnce;
51250
 
class CCExprResolve;
51251
 
class CExprResolve;
51252
 
namespace Puma {
51253
 
 
51254
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51255
 
class CT_BracedDeclarator : public CT_Declarator {
51256
 
#line 51257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51257
 
  friend class ::WinIfExists;
51258
 
  friend class ::WinImportHandler;
51259
 
  friend class ::WinMacros;
51260
 
  friend class ::CMatchSyntax;
51261
 
  friend class ::ExtGnu;
51262
 
  friend class ::ExtAC;
51263
 
  friend class ::ExtACBuilderCoupling;
51264
 
  friend class ::ExtACSyntaxCoupling;
51265
 
  friend class ::ExtACTree;
51266
 
  friend class ::ExtACKeywords;
51267
 
  friend class ::WinAsm;
51268
 
  friend class ::WinDeclSpecs;
51269
 
  friend class ::WinMemberExplSpec;
51270
 
  friend class ::WinTypeKeywords;
51271
 
  friend class ::PragmaOnceUnitState;
51272
 
  friend class ::PragmaOnce;
51273
 
  friend class ::CCExprResolve;
51274
 
  friend class ::CExprResolve;
51275
 
 
51276
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51277
 
 
51278
 
  CTree *sons[4]; // open, win_specs, declarator, close
51279
 
 
51280
 
public:
51281
 
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
51282
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
51283
 
  }
51284
 
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
51285
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
51286
 
  }
51287
 
  static const char *NodeId ();
51288
 
  const char *NodeName () const { return NodeId (); }
51289
 
  int Sons () const { return CTree::Sons (sons, 4); }
51290
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
51291
 
  CTree *Declarator () const { return sons[2]; }
51292
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51293
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
51294
 
  }
51295
 
};
51296
 
 
51297
 
 
51298
 
#line 51299 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51299
 
} // closed Puma
51300
 
class WinIfExists;
51301
 
class WinImportHandler;
51302
 
class WinMacros;
51303
 
class CMatchSyntax;
51304
 
class ExtGnu;
51305
 
class ExtAC;
51306
 
class ExtACBuilderCoupling;
51307
 
class ExtACSyntaxCoupling;
51308
 
class ExtACTree;
51309
 
class ExtACKeywords;
51310
 
class WinAsm;
51311
 
class WinDeclSpecs;
51312
 
class WinMemberExplSpec;
51313
 
class WinTypeKeywords;
51314
 
class PragmaOnceUnitState;
51315
 
class PragmaOnce;
51316
 
class CCExprResolve;
51317
 
class CExprResolve;
51318
 
namespace Puma {
51319
 
 
51320
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51321
 
class CT_ArrayDelimiter : public CTree {
51322
 
#line 51323 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51323
 
  friend class ::WinIfExists;
51324
 
  friend class ::WinImportHandler;
51325
 
  friend class ::WinMacros;
51326
 
  friend class ::CMatchSyntax;
51327
 
  friend class ::ExtGnu;
51328
 
  friend class ::ExtAC;
51329
 
  friend class ::ExtACBuilderCoupling;
51330
 
  friend class ::ExtACSyntaxCoupling;
51331
 
  friend class ::ExtACTree;
51332
 
  friend class ::ExtACKeywords;
51333
 
  friend class ::WinAsm;
51334
 
  friend class ::WinDeclSpecs;
51335
 
  friend class ::WinMemberExplSpec;
51336
 
  friend class ::WinTypeKeywords;
51337
 
  friend class ::PragmaOnceUnitState;
51338
 
  friend class ::PragmaOnce;
51339
 
  friend class ::CCExprResolve;
51340
 
  friend class ::CExprResolve;
51341
 
 
51342
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51343
 
 
51344
 
  CTree *sons[4]; // star, static, quals, expr
51345
 
  bool pos0;
51346
 
 
51347
 
public:
51348
 
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
51349
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
51350
 
  }
51351
 
  static const char *NodeId ();
51352
 
  const char *NodeName () const { return NodeId (); }
51353
 
  int Sons () const { return CTree::Sons (sons, 4); }
51354
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
51355
 
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
51356
 
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
51357
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
51358
 
  CTree *Expr () const { return sons[3]; }
51359
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51360
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
51361
 
  }
51362
 
};
51363
 
 
51364
 
 
51365
 
#line 51366 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51366
 
} // closed Puma
51367
 
class WinIfExists;
51368
 
class WinImportHandler;
51369
 
class WinMacros;
51370
 
class CMatchSyntax;
51371
 
class ExtGnu;
51372
 
class ExtAC;
51373
 
class ExtACBuilderCoupling;
51374
 
class ExtACSyntaxCoupling;
51375
 
class ExtACTree;
51376
 
class ExtACKeywords;
51377
 
class WinAsm;
51378
 
class WinDeclSpecs;
51379
 
class WinMemberExplSpec;
51380
 
class WinTypeKeywords;
51381
 
class PragmaOnceUnitState;
51382
 
class PragmaOnce;
51383
 
class CCExprResolve;
51384
 
class CExprResolve;
51385
 
namespace Puma {
51386
 
 
51387
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51388
 
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
51389
 
#line 51390 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51390
 
  friend class ::WinIfExists;
51391
 
  friend class ::WinImportHandler;
51392
 
  friend class ::WinMacros;
51393
 
  friend class ::CMatchSyntax;
51394
 
  friend class ::ExtGnu;
51395
 
  friend class ::ExtAC;
51396
 
  friend class ::ExtACBuilderCoupling;
51397
 
  friend class ::ExtACSyntaxCoupling;
51398
 
  friend class ::ExtACTree;
51399
 
  friend class ::ExtACKeywords;
51400
 
  friend class ::WinAsm;
51401
 
  friend class ::WinDeclSpecs;
51402
 
  friend class ::WinMemberExplSpec;
51403
 
  friend class ::WinTypeKeywords;
51404
 
  friend class ::PragmaOnceUnitState;
51405
 
  friend class ::PragmaOnce;
51406
 
  friend class ::CCExprResolve;
51407
 
  friend class ::CExprResolve;
51408
 
 
51409
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51410
 
 
51411
 
  CTree *sons[4]; // declarator, open, delim, close
51412
 
 
51413
 
public:
51414
 
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
51415
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
51416
 
  }
51417
 
  static const char *NodeId ();
51418
 
  const char *NodeName () const { return NodeId (); }
51419
 
  int Sons () const { return 4; }
51420
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
51421
 
  CTree *Declarator () const { return sons[0]; }
51422
 
  CT_ArrayDelimiter *Delimiter () const 
51423
 
   { return (CT_ArrayDelimiter*)sons[2]; }
51424
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51425
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
51426
 
  }
51427
 
  CTypeInfo *Type () const { return type; }
51428
 
  CExprValue *Value () const { return value; }
51429
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
51430
 
};
51431
 
 
51432
 
 
51433
 
#line 51434 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51434
 
} // closed Puma
51435
 
class WinIfExists;
51436
 
class WinImportHandler;
51437
 
class WinMacros;
51438
 
class CMatchSyntax;
51439
 
class ExtGnu;
51440
 
class ExtAC;
51441
 
class ExtACBuilderCoupling;
51442
 
class ExtACSyntaxCoupling;
51443
 
class ExtACTree;
51444
 
class ExtACKeywords;
51445
 
class WinAsm;
51446
 
class WinDeclSpecs;
51447
 
class WinMemberExplSpec;
51448
 
class WinTypeKeywords;
51449
 
class PragmaOnceUnitState;
51450
 
class PragmaOnce;
51451
 
class CCExprResolve;
51452
 
class CExprResolve;
51453
 
namespace Puma {
51454
 
 
51455
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51456
 
class CT_FctDeclarator : public CT_Declarator {
51457
 
#line 51458 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51458
 
  friend class ::WinIfExists;
51459
 
  friend class ::WinImportHandler;
51460
 
  friend class ::WinMacros;
51461
 
  friend class ::CMatchSyntax;
51462
 
  friend class ::ExtGnu;
51463
 
  friend class ::ExtAC;
51464
 
  friend class ::ExtACBuilderCoupling;
51465
 
  friend class ::ExtACSyntaxCoupling;
51466
 
  friend class ::ExtACTree;
51467
 
  friend class ::ExtACKeywords;
51468
 
  friend class ::WinAsm;
51469
 
  friend class ::WinDeclSpecs;
51470
 
  friend class ::WinMemberExplSpec;
51471
 
  friend class ::WinTypeKeywords;
51472
 
  friend class ::PragmaOnceUnitState;
51473
 
  friend class ::PragmaOnce;
51474
 
  friend class ::CCExprResolve;
51475
 
  friend class ::CExprResolve;
51476
 
 
51477
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51478
 
 
51479
 
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
51480
 
 
51481
 
public:
51482
 
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
51483
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
51484
 
  }
51485
 
  static const char *NodeId ();
51486
 
  const char *NodeName () const { return NodeId (); }
51487
 
  int Sons () const { return CTree::Sons (sons, 4); }
51488
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
51489
 
  CTree *Declarator () const { return sons[0]; }
51490
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
51491
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
51492
 
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
51493
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51494
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
51495
 
  }
51496
 
};
51497
 
 
51498
 
 
51499
 
#line 51500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51500
 
} // closed Puma
51501
 
class WinIfExists;
51502
 
class WinImportHandler;
51503
 
class WinMacros;
51504
 
class CMatchSyntax;
51505
 
class ExtGnu;
51506
 
class ExtAC;
51507
 
class ExtACBuilderCoupling;
51508
 
class ExtACSyntaxCoupling;
51509
 
class ExtACTree;
51510
 
class ExtACKeywords;
51511
 
class WinAsm;
51512
 
class WinDeclSpecs;
51513
 
class WinMemberExplSpec;
51514
 
class WinTypeKeywords;
51515
 
class PragmaOnceUnitState;
51516
 
class PragmaOnce;
51517
 
class CCExprResolve;
51518
 
class CExprResolve;
51519
 
namespace Puma {
51520
 
 
51521
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51522
 
class CT_RefDeclarator : public CT_Declarator {
51523
 
#line 51524 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51524
 
  friend class ::WinIfExists;
51525
 
  friend class ::WinImportHandler;
51526
 
  friend class ::WinMacros;
51527
 
  friend class ::CMatchSyntax;
51528
 
  friend class ::ExtGnu;
51529
 
  friend class ::ExtAC;
51530
 
  friend class ::ExtACBuilderCoupling;
51531
 
  friend class ::ExtACSyntaxCoupling;
51532
 
  friend class ::ExtACTree;
51533
 
  friend class ::ExtACKeywords;
51534
 
  friend class ::WinAsm;
51535
 
  friend class ::WinDeclSpecs;
51536
 
  friend class ::WinMemberExplSpec;
51537
 
  friend class ::WinTypeKeywords;
51538
 
  friend class ::PragmaOnceUnitState;
51539
 
  friend class ::PragmaOnce;
51540
 
  friend class ::CCExprResolve;
51541
 
  friend class ::CExprResolve;
51542
 
 
51543
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51544
 
 
51545
 
  CTree *sons[2]; // ref, declarator
51546
 
 
51547
 
public:
51548
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
51549
 
  static const char *NodeId ();
51550
 
  const char *NodeName () const { return NodeId (); }
51551
 
  int Sons () const { return 2; }
51552
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
51553
 
  CTree *Declarator () const { return sons[1]; }
51554
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
51555
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
51556
 
  }
51557
 
};
51558
 
 
51559
 
 
51560
 
#line 51561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51561
 
} // closed Puma
51562
 
class WinIfExists;
51563
 
class WinImportHandler;
51564
 
class WinMacros;
51565
 
class CMatchSyntax;
51566
 
class ExtGnu;
51567
 
class ExtAC;
51568
 
class ExtACBuilderCoupling;
51569
 
class ExtACSyntaxCoupling;
51570
 
class ExtACTree;
51571
 
class ExtACKeywords;
51572
 
class WinAsm;
51573
 
class WinDeclSpecs;
51574
 
class WinMemberExplSpec;
51575
 
class WinTypeKeywords;
51576
 
class PragmaOnceUnitState;
51577
 
class PragmaOnce;
51578
 
class CCExprResolve;
51579
 
class CExprResolve;
51580
 
namespace Puma {
51581
 
 
51582
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51583
 
class CT_PtrDeclarator : public CT_Declarator {
51584
 
#line 51585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51585
 
  friend class ::WinIfExists;
51586
 
  friend class ::WinImportHandler;
51587
 
  friend class ::WinMacros;
51588
 
  friend class ::CMatchSyntax;
51589
 
  friend class ::ExtGnu;
51590
 
  friend class ::ExtAC;
51591
 
  friend class ::ExtACBuilderCoupling;
51592
 
  friend class ::ExtACSyntaxCoupling;
51593
 
  friend class ::ExtACTree;
51594
 
  friend class ::ExtACKeywords;
51595
 
  friend class ::WinAsm;
51596
 
  friend class ::WinDeclSpecs;
51597
 
  friend class ::WinMemberExplSpec;
51598
 
  friend class ::WinTypeKeywords;
51599
 
  friend class ::PragmaOnceUnitState;
51600
 
  friend class ::PragmaOnce;
51601
 
  friend class ::CCExprResolve;
51602
 
  friend class ::CExprResolve;
51603
 
 
51604
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51605
 
 
51606
 
  CTree *sons[3]; // ptr, cv_quals, declarator
51607
 
 
51608
 
public:
51609
 
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
51610
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
51611
 
  }
51612
 
  static const char *NodeId ();
51613
 
  const char *NodeName () const { return NodeId (); }
51614
 
  int Sons () const { return CTree::Sons (sons, 3); }
51615
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
51616
 
  CTree *Declarator () const { return sons[2]; }
51617
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
51618
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51619
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
51620
 
  }
51621
 
};
51622
 
 
51623
 
 
51624
 
#line 51625 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51625
 
} // closed Puma
51626
 
class WinIfExists;
51627
 
class WinImportHandler;
51628
 
class WinMacros;
51629
 
class CMatchSyntax;
51630
 
class ExtGnu;
51631
 
class ExtAC;
51632
 
class ExtACBuilderCoupling;
51633
 
class ExtACSyntaxCoupling;
51634
 
class ExtACTree;
51635
 
class ExtACKeywords;
51636
 
class WinAsm;
51637
 
class WinDeclSpecs;
51638
 
class WinMemberExplSpec;
51639
 
class WinTypeKeywords;
51640
 
class PragmaOnceUnitState;
51641
 
class PragmaOnce;
51642
 
class CCExprResolve;
51643
 
class CExprResolve;
51644
 
namespace Puma {
51645
 
 
51646
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51647
 
class CT_MembPtrDeclarator : public CT_Declarator {
51648
 
#line 51649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51649
 
  friend class ::WinIfExists;
51650
 
  friend class ::WinImportHandler;
51651
 
  friend class ::WinMacros;
51652
 
  friend class ::CMatchSyntax;
51653
 
  friend class ::ExtGnu;
51654
 
  friend class ::ExtAC;
51655
 
  friend class ::ExtACBuilderCoupling;
51656
 
  friend class ::ExtACSyntaxCoupling;
51657
 
  friend class ::ExtACTree;
51658
 
  friend class ::ExtACKeywords;
51659
 
  friend class ::WinAsm;
51660
 
  friend class ::WinDeclSpecs;
51661
 
  friend class ::WinMemberExplSpec;
51662
 
  friend class ::WinTypeKeywords;
51663
 
  friend class ::PragmaOnceUnitState;
51664
 
  friend class ::PragmaOnce;
51665
 
  friend class ::CCExprResolve;
51666
 
  friend class ::CExprResolve;
51667
 
 
51668
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51669
 
 
51670
 
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
51671
 
 
51672
 
public:
51673
 
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
51674
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
51675
 
  }
51676
 
  static const char *NodeId ();
51677
 
  const char *NodeName () const { return NodeId (); }
51678
 
  int Sons () const { return CTree::Sons (sons, 5); }
51679
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
51680
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
51681
 
  CTree *Declarator () const { return sons[4]; }
51682
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
51683
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51684
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
51685
 
  }
51686
 
};
51687
 
 
51688
 
 
51689
 
#line 51690 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51690
 
} // closed Puma
51691
 
class WinIfExists;
51692
 
class WinImportHandler;
51693
 
class WinMacros;
51694
 
class CMatchSyntax;
51695
 
class ExtGnu;
51696
 
class ExtAC;
51697
 
class ExtACBuilderCoupling;
51698
 
class ExtACSyntaxCoupling;
51699
 
class ExtACTree;
51700
 
class ExtACKeywords;
51701
 
class WinAsm;
51702
 
class WinDeclSpecs;
51703
 
class WinMemberExplSpec;
51704
 
class WinTypeKeywords;
51705
 
class PragmaOnceUnitState;
51706
 
class PragmaOnce;
51707
 
class CCExprResolve;
51708
 
class CExprResolve;
51709
 
namespace Puma {
51710
 
 
51711
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51712
 
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
51713
 
#line 51714 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51714
 
  friend class ::WinIfExists;
51715
 
  friend class ::WinImportHandler;
51716
 
  friend class ::WinMacros;
51717
 
  friend class ::CMatchSyntax;
51718
 
  friend class ::ExtGnu;
51719
 
  friend class ::ExtAC;
51720
 
  friend class ::ExtACBuilderCoupling;
51721
 
  friend class ::ExtACSyntaxCoupling;
51722
 
  friend class ::ExtACTree;
51723
 
  friend class ::ExtACKeywords;
51724
 
  friend class ::WinAsm;
51725
 
  friend class ::WinDeclSpecs;
51726
 
  friend class ::WinMemberExplSpec;
51727
 
  friend class ::WinTypeKeywords;
51728
 
  friend class ::PragmaOnceUnitState;
51729
 
  friend class ::PragmaOnce;
51730
 
  friend class ::CCExprResolve;
51731
 
  friend class ::CExprResolve;
51732
 
 
51733
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51734
 
 
51735
 
  CTree *sons[3]; // declarator, colon, expr
51736
 
 
51737
 
public:
51738
 
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
51739
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
51740
 
  }
51741
 
  static const char *NodeId ();
51742
 
  const char *NodeName () const { return NodeId (); }
51743
 
  int Sons () const { return CTree::Sons (sons, 3); }
51744
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
51745
 
  CTree *Declarator () const { return sons[0]; }
51746
 
  CTree *Expr () const { return sons[2]; }
51747
 
  void FieldSize (CTree *s) { sons[2] = s; }
51748
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
51749
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51750
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
51751
 
  }
51752
 
};
51753
 
 
51754
 
/*****************************************************************************/
51755
 
/*                                                                           */
51756
 
/*                              Statements                                   */
51757
 
/*                                                                           */
51758
 
/*****************************************************************************/
51759
 
 
51760
 
 
51761
 
#line 51762 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51762
 
} // closed Puma
51763
 
class WinIfExists;
51764
 
class WinImportHandler;
51765
 
class WinMacros;
51766
 
class CMatchSyntax;
51767
 
class ExtGnu;
51768
 
class ExtAC;
51769
 
class ExtACBuilderCoupling;
51770
 
class ExtACSyntaxCoupling;
51771
 
class ExtACTree;
51772
 
class ExtACKeywords;
51773
 
class WinAsm;
51774
 
class WinDeclSpecs;
51775
 
class WinMemberExplSpec;
51776
 
class WinTypeKeywords;
51777
 
class PragmaOnceUnitState;
51778
 
class PragmaOnce;
51779
 
class CCExprResolve;
51780
 
class CExprResolve;
51781
 
namespace Puma {
51782
 
 
51783
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51784
 
class CT_Statement : public CTree {
51785
 
#line 51786 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51786
 
  friend class ::WinIfExists;
51787
 
  friend class ::WinImportHandler;
51788
 
  friend class ::WinMacros;
51789
 
  friend class ::CMatchSyntax;
51790
 
  friend class ::ExtGnu;
51791
 
  friend class ::ExtAC;
51792
 
  friend class ::ExtACBuilderCoupling;
51793
 
  friend class ::ExtACSyntaxCoupling;
51794
 
  friend class ::ExtACTree;
51795
 
  friend class ::ExtACKeywords;
51796
 
  friend class ::WinAsm;
51797
 
  friend class ::WinDeclSpecs;
51798
 
  friend class ::WinMemberExplSpec;
51799
 
  friend class ::WinTypeKeywords;
51800
 
  friend class ::PragmaOnceUnitState;
51801
 
  friend class ::PragmaOnce;
51802
 
  friend class ::CCExprResolve;
51803
 
  friend class ::CExprResolve;
51804
 
 
51805
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51806
 
 
51807
 
protected:
51808
 
  CT_Statement () {}
51809
 
};
51810
 
 
51811
 
 
51812
 
#line 51813 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51813
 
} // closed Puma
51814
 
class WinIfExists;
51815
 
class WinImportHandler;
51816
 
class WinMacros;
51817
 
class CMatchSyntax;
51818
 
class ExtGnu;
51819
 
class ExtAC;
51820
 
class ExtACBuilderCoupling;
51821
 
class ExtACSyntaxCoupling;
51822
 
class ExtACTree;
51823
 
class ExtACKeywords;
51824
 
class WinAsm;
51825
 
class WinDeclSpecs;
51826
 
class WinMemberExplSpec;
51827
 
class WinTypeKeywords;
51828
 
class PragmaOnceUnitState;
51829
 
class PragmaOnce;
51830
 
class CCExprResolve;
51831
 
class CExprResolve;
51832
 
namespace Puma {
51833
 
 
51834
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51835
 
class CT_LabelStmt : public CT_Statement {
51836
 
#line 51837 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51837
 
  friend class ::WinIfExists;
51838
 
  friend class ::WinImportHandler;
51839
 
  friend class ::WinMacros;
51840
 
  friend class ::CMatchSyntax;
51841
 
  friend class ::ExtGnu;
51842
 
  friend class ::ExtAC;
51843
 
  friend class ::ExtACBuilderCoupling;
51844
 
  friend class ::ExtACSyntaxCoupling;
51845
 
  friend class ::ExtACTree;
51846
 
  friend class ::ExtACKeywords;
51847
 
  friend class ::WinAsm;
51848
 
  friend class ::WinDeclSpecs;
51849
 
  friend class ::WinMemberExplSpec;
51850
 
  friend class ::WinTypeKeywords;
51851
 
  friend class ::PragmaOnceUnitState;
51852
 
  friend class ::PragmaOnce;
51853
 
  friend class ::CCExprResolve;
51854
 
  friend class ::CExprResolve;
51855
 
 
51856
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51857
 
 
51858
 
  CTree *sons[3]; // id, colon, stmt
51859
 
 
51860
 
public:
51861
 
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
51862
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
51863
 
  }
51864
 
  static const char *NodeId ();
51865
 
  const char *NodeName () const { return NodeId (); }
51866
 
  int Sons () const { return 3; }
51867
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
51868
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
51869
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
51870
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51871
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
51872
 
  }
51873
 
};
51874
 
 
51875
 
 
51876
 
#line 51877 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51877
 
} // closed Puma
51878
 
class WinIfExists;
51879
 
class WinImportHandler;
51880
 
class WinMacros;
51881
 
class CMatchSyntax;
51882
 
class ExtGnu;
51883
 
class ExtAC;
51884
 
class ExtACBuilderCoupling;
51885
 
class ExtACSyntaxCoupling;
51886
 
class ExtACTree;
51887
 
class ExtACKeywords;
51888
 
class WinAsm;
51889
 
class WinDeclSpecs;
51890
 
class WinMemberExplSpec;
51891
 
class WinTypeKeywords;
51892
 
class PragmaOnceUnitState;
51893
 
class PragmaOnce;
51894
 
class CCExprResolve;
51895
 
class CExprResolve;
51896
 
namespace Puma {
51897
 
 
51898
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51899
 
class CT_DefaultStmt : public CT_Statement {
51900
 
#line 51901 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51901
 
  friend class ::WinIfExists;
51902
 
  friend class ::WinImportHandler;
51903
 
  friend class ::WinMacros;
51904
 
  friend class ::CMatchSyntax;
51905
 
  friend class ::ExtGnu;
51906
 
  friend class ::ExtAC;
51907
 
  friend class ::ExtACBuilderCoupling;
51908
 
  friend class ::ExtACSyntaxCoupling;
51909
 
  friend class ::ExtACTree;
51910
 
  friend class ::ExtACKeywords;
51911
 
  friend class ::WinAsm;
51912
 
  friend class ::WinDeclSpecs;
51913
 
  friend class ::WinMemberExplSpec;
51914
 
  friend class ::WinTypeKeywords;
51915
 
  friend class ::PragmaOnceUnitState;
51916
 
  friend class ::PragmaOnce;
51917
 
  friend class ::CCExprResolve;
51918
 
  friend class ::CExprResolve;
51919
 
 
51920
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51921
 
 
51922
 
  CTree *sons[3]; // keyword, colon, stmt
51923
 
 
51924
 
public:
51925
 
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
51926
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
51927
 
  }
51928
 
  static const char *NodeId ();
51929
 
  const char *NodeName () const { return NodeId (); }
51930
 
  int Sons () const { return 3; }
51931
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
51932
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
51933
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51934
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
51935
 
  }
51936
 
};
51937
 
 
51938
 
 
51939
 
#line 51940 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51940
 
} // closed Puma
51941
 
class WinIfExists;
51942
 
class WinImportHandler;
51943
 
class WinMacros;
51944
 
class CMatchSyntax;
51945
 
class ExtGnu;
51946
 
class ExtAC;
51947
 
class ExtACBuilderCoupling;
51948
 
class ExtACSyntaxCoupling;
51949
 
class ExtACTree;
51950
 
class ExtACKeywords;
51951
 
class WinAsm;
51952
 
class WinDeclSpecs;
51953
 
class WinMemberExplSpec;
51954
 
class WinTypeKeywords;
51955
 
class PragmaOnceUnitState;
51956
 
class PragmaOnce;
51957
 
class CCExprResolve;
51958
 
class CExprResolve;
51959
 
namespace Puma {
51960
 
 
51961
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51962
 
class CT_TryStmt : public CT_Statement {
51963
 
#line 51964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
51964
 
  friend class ::WinIfExists;
51965
 
  friend class ::WinImportHandler;
51966
 
  friend class ::WinMacros;
51967
 
  friend class ::CMatchSyntax;
51968
 
  friend class ::ExtGnu;
51969
 
  friend class ::ExtAC;
51970
 
  friend class ::ExtACBuilderCoupling;
51971
 
  friend class ::ExtACSyntaxCoupling;
51972
 
  friend class ::ExtACTree;
51973
 
  friend class ::ExtACKeywords;
51974
 
  friend class ::WinAsm;
51975
 
  friend class ::WinDeclSpecs;
51976
 
  friend class ::WinMemberExplSpec;
51977
 
  friend class ::WinTypeKeywords;
51978
 
  friend class ::PragmaOnceUnitState;
51979
 
  friend class ::PragmaOnce;
51980
 
  friend class ::CCExprResolve;
51981
 
  friend class ::CExprResolve;
51982
 
 
51983
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51984
 
 
51985
 
  CTree *sons[3]; // try, stmt, handlers
51986
 
 
51987
 
public:
51988
 
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
51989
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
51990
 
  }
51991
 
  static const char *NodeId ();
51992
 
  const char *NodeName () const { return NodeId (); }
51993
 
  int Sons () const { return 3; }
51994
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
51995
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
51996
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
51997
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51998
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
51999
 
  }
52000
 
};
52001
 
 
52002
 
 
52003
 
#line 52004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52004
 
} // closed Puma
52005
 
class WinIfExists;
52006
 
class WinImportHandler;
52007
 
class WinMacros;
52008
 
class CMatchSyntax;
52009
 
class ExtGnu;
52010
 
class ExtAC;
52011
 
class ExtACBuilderCoupling;
52012
 
class ExtACSyntaxCoupling;
52013
 
class ExtACTree;
52014
 
class ExtACKeywords;
52015
 
class WinAsm;
52016
 
class WinDeclSpecs;
52017
 
class WinMemberExplSpec;
52018
 
class WinTypeKeywords;
52019
 
class PragmaOnceUnitState;
52020
 
class PragmaOnce;
52021
 
class CCExprResolve;
52022
 
class CExprResolve;
52023
 
namespace Puma {
52024
 
 
52025
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52026
 
class CT_CaseStmt : public CT_Statement {
52027
 
#line 52028 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52028
 
  friend class ::WinIfExists;
52029
 
  friend class ::WinImportHandler;
52030
 
  friend class ::WinMacros;
52031
 
  friend class ::CMatchSyntax;
52032
 
  friend class ::ExtGnu;
52033
 
  friend class ::ExtAC;
52034
 
  friend class ::ExtACBuilderCoupling;
52035
 
  friend class ::ExtACSyntaxCoupling;
52036
 
  friend class ::ExtACTree;
52037
 
  friend class ::ExtACKeywords;
52038
 
  friend class ::WinAsm;
52039
 
  friend class ::WinDeclSpecs;
52040
 
  friend class ::WinMemberExplSpec;
52041
 
  friend class ::WinTypeKeywords;
52042
 
  friend class ::PragmaOnceUnitState;
52043
 
  friend class ::PragmaOnce;
52044
 
  friend class ::CCExprResolve;
52045
 
  friend class ::CExprResolve;
52046
 
 
52047
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52048
 
 
52049
 
  CTree *sons[4]; // keyword, expr, colon, stmt
52050
 
 
52051
 
public:
52052
 
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
52053
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
52054
 
  }
52055
 
  static const char *NodeId ();
52056
 
  const char *NodeName () const { return NodeId (); }
52057
 
  int Sons () const { return 4; }
52058
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
52059
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
52060
 
  CTree *Expr () const { return sons[1]; }
52061
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52062
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
52063
 
  }
52064
 
};
52065
 
 
52066
 
 
52067
 
#line 52068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52068
 
} // closed Puma
52069
 
class WinIfExists;
52070
 
class WinImportHandler;
52071
 
class WinMacros;
52072
 
class CMatchSyntax;
52073
 
class ExtGnu;
52074
 
class ExtAC;
52075
 
class ExtACBuilderCoupling;
52076
 
class ExtACSyntaxCoupling;
52077
 
class ExtACTree;
52078
 
class ExtACKeywords;
52079
 
class WinAsm;
52080
 
class WinDeclSpecs;
52081
 
class WinMemberExplSpec;
52082
 
class WinTypeKeywords;
52083
 
class PragmaOnceUnitState;
52084
 
class PragmaOnce;
52085
 
class CCExprResolve;
52086
 
class CExprResolve;
52087
 
namespace Puma {
52088
 
 
52089
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52090
 
class CT_ExprStmt : public CT_Statement {
52091
 
#line 52092 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52092
 
  friend class ::WinIfExists;
52093
 
  friend class ::WinImportHandler;
52094
 
  friend class ::WinMacros;
52095
 
  friend class ::CMatchSyntax;
52096
 
  friend class ::ExtGnu;
52097
 
  friend class ::ExtAC;
52098
 
  friend class ::ExtACBuilderCoupling;
52099
 
  friend class ::ExtACSyntaxCoupling;
52100
 
  friend class ::ExtACTree;
52101
 
  friend class ::ExtACKeywords;
52102
 
  friend class ::WinAsm;
52103
 
  friend class ::WinDeclSpecs;
52104
 
  friend class ::WinMemberExplSpec;
52105
 
  friend class ::WinTypeKeywords;
52106
 
  friend class ::PragmaOnceUnitState;
52107
 
  friend class ::PragmaOnce;
52108
 
  friend class ::CCExprResolve;
52109
 
  friend class ::CExprResolve;
52110
 
 
52111
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52112
 
 
52113
 
  CTree *sons[2]; // expr, semi_colon
52114
 
 
52115
 
public:
52116
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
52117
 
  static const char *NodeId ();
52118
 
  const char *NodeName () const { return NodeId (); }
52119
 
  int Sons () const { return CTree::Sons (sons, 2); }
52120
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
52121
 
  CTree *Expr () const { return sons[0]; }
52122
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52123
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
52124
 
  }
52125
 
};
52126
 
 
52127
 
 
52128
 
#line 52129 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52129
 
} // closed Puma
52130
 
class WinIfExists;
52131
 
class WinImportHandler;
52132
 
class WinMacros;
52133
 
class CMatchSyntax;
52134
 
class ExtGnu;
52135
 
class ExtAC;
52136
 
class ExtACBuilderCoupling;
52137
 
class ExtACSyntaxCoupling;
52138
 
class ExtACTree;
52139
 
class ExtACKeywords;
52140
 
class WinAsm;
52141
 
class WinDeclSpecs;
52142
 
class WinMemberExplSpec;
52143
 
class WinTypeKeywords;
52144
 
class PragmaOnceUnitState;
52145
 
class PragmaOnce;
52146
 
class CCExprResolve;
52147
 
class CExprResolve;
52148
 
namespace Puma {
52149
 
 
52150
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52151
 
class CT_DeclStmt : public CT_Statement {
52152
 
#line 52153 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52153
 
  friend class ::WinIfExists;
52154
 
  friend class ::WinImportHandler;
52155
 
  friend class ::WinMacros;
52156
 
  friend class ::CMatchSyntax;
52157
 
  friend class ::ExtGnu;
52158
 
  friend class ::ExtAC;
52159
 
  friend class ::ExtACBuilderCoupling;
52160
 
  friend class ::ExtACSyntaxCoupling;
52161
 
  friend class ::ExtACTree;
52162
 
  friend class ::ExtACKeywords;
52163
 
  friend class ::WinAsm;
52164
 
  friend class ::WinDeclSpecs;
52165
 
  friend class ::WinMemberExplSpec;
52166
 
  friend class ::WinTypeKeywords;
52167
 
  friend class ::PragmaOnceUnitState;
52168
 
  friend class ::PragmaOnce;
52169
 
  friend class ::CCExprResolve;
52170
 
  friend class ::CExprResolve;
52171
 
 
52172
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52173
 
 
52174
 
  CTree *_decl;
52175
 
 
52176
 
public:
52177
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
52178
 
  static const char *NodeId ();
52179
 
  const char *NodeName () const { return NodeId (); }
52180
 
  int Sons () const { return 1; }
52181
 
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
52182
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
52183
 
   { if (old_son == _decl) _decl = new_son; }
52184
 
};
52185
 
 
52186
 
 
52187
 
#line 52188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52188
 
} // closed Puma
52189
 
class WinIfExists;
52190
 
class WinImportHandler;
52191
 
class WinMacros;
52192
 
class CMatchSyntax;
52193
 
class ExtGnu;
52194
 
class ExtAC;
52195
 
class ExtACBuilderCoupling;
52196
 
class ExtACSyntaxCoupling;
52197
 
class ExtACTree;
52198
 
class ExtACKeywords;
52199
 
class WinAsm;
52200
 
class WinDeclSpecs;
52201
 
class WinMemberExplSpec;
52202
 
class WinTypeKeywords;
52203
 
class PragmaOnceUnitState;
52204
 
class PragmaOnce;
52205
 
class CCExprResolve;
52206
 
class CExprResolve;
52207
 
namespace Puma {
52208
 
 
52209
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52210
 
class CT_SwitchStmt : public CT_Statement, public CSemScope {
52211
 
#line 52212 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52212
 
  friend class ::WinIfExists;
52213
 
  friend class ::WinImportHandler;
52214
 
  friend class ::WinMacros;
52215
 
  friend class ::CMatchSyntax;
52216
 
  friend class ::ExtGnu;
52217
 
  friend class ::ExtAC;
52218
 
  friend class ::ExtACBuilderCoupling;
52219
 
  friend class ::ExtACSyntaxCoupling;
52220
 
  friend class ::ExtACTree;
52221
 
  friend class ::ExtACKeywords;
52222
 
  friend class ::WinAsm;
52223
 
  friend class ::WinDeclSpecs;
52224
 
  friend class ::WinMemberExplSpec;
52225
 
  friend class ::WinTypeKeywords;
52226
 
  friend class ::PragmaOnceUnitState;
52227
 
  friend class ::PragmaOnce;
52228
 
  friend class ::CCExprResolve;
52229
 
  friend class ::CExprResolve;
52230
 
 
52231
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52232
 
 
52233
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
52234
 
 
52235
 
public:
52236
 
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
52237
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
52238
 
  }
52239
 
  static const char *NodeId ();
52240
 
  const char *NodeName () const { return NodeId (); }
52241
 
  int Sons () const { return 5; }
52242
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
52243
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
52244
 
  CTree *Condition () const { return sons[2]; }
52245
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52246
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
52247
 
  }
52248
 
};
52249
 
 
52250
 
 
52251
 
#line 52252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52252
 
} // closed Puma
52253
 
class WinIfExists;
52254
 
class WinImportHandler;
52255
 
class WinMacros;
52256
 
class CMatchSyntax;
52257
 
class ExtGnu;
52258
 
class ExtAC;
52259
 
class ExtACBuilderCoupling;
52260
 
class ExtACSyntaxCoupling;
52261
 
class ExtACTree;
52262
 
class ExtACKeywords;
52263
 
class WinAsm;
52264
 
class WinDeclSpecs;
52265
 
class WinMemberExplSpec;
52266
 
class WinTypeKeywords;
52267
 
class PragmaOnceUnitState;
52268
 
class PragmaOnce;
52269
 
class CCExprResolve;
52270
 
class CExprResolve;
52271
 
namespace Puma {
52272
 
 
52273
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52274
 
class CT_IfStmt : public CT_Statement, public CSemScope {
52275
 
#line 52276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52276
 
  friend class ::WinIfExists;
52277
 
  friend class ::WinImportHandler;
52278
 
  friend class ::WinMacros;
52279
 
  friend class ::CMatchSyntax;
52280
 
  friend class ::ExtGnu;
52281
 
  friend class ::ExtAC;
52282
 
  friend class ::ExtACBuilderCoupling;
52283
 
  friend class ::ExtACSyntaxCoupling;
52284
 
  friend class ::ExtACTree;
52285
 
  friend class ::ExtACKeywords;
52286
 
  friend class ::WinAsm;
52287
 
  friend class ::WinDeclSpecs;
52288
 
  friend class ::WinMemberExplSpec;
52289
 
  friend class ::WinTypeKeywords;
52290
 
  friend class ::PragmaOnceUnitState;
52291
 
  friend class ::PragmaOnce;
52292
 
  friend class ::CCExprResolve;
52293
 
  friend class ::CExprResolve;
52294
 
 
52295
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52296
 
 
52297
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
52298
 
 
52299
 
public:
52300
 
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
52301
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
52302
 
  }
52303
 
  static const char *NodeId ();
52304
 
  const char *NodeName () const { return NodeId (); }
52305
 
  int Sons () const { return 5; }
52306
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
52307
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
52308
 
  CTree *Condition () const { return sons[2]; }
52309
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52310
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
52311
 
  }
52312
 
};
52313
 
 
52314
 
 
52315
 
#line 52316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52316
 
} // closed Puma
52317
 
class WinIfExists;
52318
 
class WinImportHandler;
52319
 
class WinMacros;
52320
 
class CMatchSyntax;
52321
 
class ExtGnu;
52322
 
class ExtAC;
52323
 
class ExtACBuilderCoupling;
52324
 
class ExtACSyntaxCoupling;
52325
 
class ExtACTree;
52326
 
class ExtACKeywords;
52327
 
class WinAsm;
52328
 
class WinDeclSpecs;
52329
 
class WinMemberExplSpec;
52330
 
class WinTypeKeywords;
52331
 
class PragmaOnceUnitState;
52332
 
class PragmaOnce;
52333
 
class CCExprResolve;
52334
 
class CExprResolve;
52335
 
namespace Puma {
52336
 
 
52337
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52338
 
class CT_IfElseStmt : public CT_Statement, public CSemScope {
52339
 
#line 52340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52340
 
  friend class ::WinIfExists;
52341
 
  friend class ::WinImportHandler;
52342
 
  friend class ::WinMacros;
52343
 
  friend class ::CMatchSyntax;
52344
 
  friend class ::ExtGnu;
52345
 
  friend class ::ExtAC;
52346
 
  friend class ::ExtACBuilderCoupling;
52347
 
  friend class ::ExtACSyntaxCoupling;
52348
 
  friend class ::ExtACTree;
52349
 
  friend class ::ExtACKeywords;
52350
 
  friend class ::WinAsm;
52351
 
  friend class ::WinDeclSpecs;
52352
 
  friend class ::WinMemberExplSpec;
52353
 
  friend class ::WinTypeKeywords;
52354
 
  friend class ::PragmaOnceUnitState;
52355
 
  friend class ::PragmaOnce;
52356
 
  friend class ::CCExprResolve;
52357
 
  friend class ::CExprResolve;
52358
 
 
52359
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52360
 
 
52361
 
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
52362
 
 
52363
 
public:
52364
 
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
52365
 
                 CTree *is, CTree *e, CTree *es) {
52366
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
52367
 
    sons[5] = e; sons[6] = es; 
52368
 
  }
52369
 
  static const char *NodeId ();
52370
 
  const char *NodeName () const { return NodeId (); }
52371
 
  int Sons () const { return 7; }
52372
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
52373
 
  CTree *Condition () const { return sons[2]; }
52374
 
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
52375
 
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
52376
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52377
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
52378
 
  }
52379
 
};
52380
 
 
52381
 
 
52382
 
#line 52383 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52383
 
} // closed Puma
52384
 
class WinIfExists;
52385
 
class WinImportHandler;
52386
 
class WinMacros;
52387
 
class CMatchSyntax;
52388
 
class ExtGnu;
52389
 
class ExtAC;
52390
 
class ExtACBuilderCoupling;
52391
 
class ExtACSyntaxCoupling;
52392
 
class ExtACTree;
52393
 
class ExtACKeywords;
52394
 
class WinAsm;
52395
 
class WinDeclSpecs;
52396
 
class WinMemberExplSpec;
52397
 
class WinTypeKeywords;
52398
 
class PragmaOnceUnitState;
52399
 
class PragmaOnce;
52400
 
class CCExprResolve;
52401
 
class CExprResolve;
52402
 
namespace Puma {
52403
 
 
52404
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52405
 
class CT_BreakStmt : public CT_Statement {
52406
 
#line 52407 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52407
 
  friend class ::WinIfExists;
52408
 
  friend class ::WinImportHandler;
52409
 
  friend class ::WinMacros;
52410
 
  friend class ::CMatchSyntax;
52411
 
  friend class ::ExtGnu;
52412
 
  friend class ::ExtAC;
52413
 
  friend class ::ExtACBuilderCoupling;
52414
 
  friend class ::ExtACSyntaxCoupling;
52415
 
  friend class ::ExtACTree;
52416
 
  friend class ::ExtACKeywords;
52417
 
  friend class ::WinAsm;
52418
 
  friend class ::WinDeclSpecs;
52419
 
  friend class ::WinMemberExplSpec;
52420
 
  friend class ::WinTypeKeywords;
52421
 
  friend class ::PragmaOnceUnitState;
52422
 
  friend class ::PragmaOnce;
52423
 
  friend class ::CCExprResolve;
52424
 
  friend class ::CExprResolve;
52425
 
 
52426
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52427
 
 
52428
 
  CTree *sons[2]; // key, semi_colon
52429
 
 
52430
 
public:
52431
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
52432
 
  static const char *NodeId ();
52433
 
  const char *NodeName () const { return NodeId (); }
52434
 
  int Sons () const { return 2; }
52435
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
52436
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52437
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
52438
 
  }
52439
 
};
52440
 
 
52441
 
 
52442
 
#line 52443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52443
 
} // closed Puma
52444
 
class WinIfExists;
52445
 
class WinImportHandler;
52446
 
class WinMacros;
52447
 
class CMatchSyntax;
52448
 
class ExtGnu;
52449
 
class ExtAC;
52450
 
class ExtACBuilderCoupling;
52451
 
class ExtACSyntaxCoupling;
52452
 
class ExtACTree;
52453
 
class ExtACKeywords;
52454
 
class WinAsm;
52455
 
class WinDeclSpecs;
52456
 
class WinMemberExplSpec;
52457
 
class WinTypeKeywords;
52458
 
class PragmaOnceUnitState;
52459
 
class PragmaOnce;
52460
 
class CCExprResolve;
52461
 
class CExprResolve;
52462
 
namespace Puma {
52463
 
 
52464
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52465
 
class CT_ContinueStmt : public CT_Statement {
52466
 
#line 52467 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52467
 
  friend class ::WinIfExists;
52468
 
  friend class ::WinImportHandler;
52469
 
  friend class ::WinMacros;
52470
 
  friend class ::CMatchSyntax;
52471
 
  friend class ::ExtGnu;
52472
 
  friend class ::ExtAC;
52473
 
  friend class ::ExtACBuilderCoupling;
52474
 
  friend class ::ExtACSyntaxCoupling;
52475
 
  friend class ::ExtACTree;
52476
 
  friend class ::ExtACKeywords;
52477
 
  friend class ::WinAsm;
52478
 
  friend class ::WinDeclSpecs;
52479
 
  friend class ::WinMemberExplSpec;
52480
 
  friend class ::WinTypeKeywords;
52481
 
  friend class ::PragmaOnceUnitState;
52482
 
  friend class ::PragmaOnce;
52483
 
  friend class ::CCExprResolve;
52484
 
  friend class ::CExprResolve;
52485
 
 
52486
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52487
 
 
52488
 
  CTree *sons[2]; // key, semi_colon
52489
 
 
52490
 
public:
52491
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
52492
 
  static const char *NodeId ();
52493
 
  const char *NodeName () const { return NodeId (); }
52494
 
  int Sons () const { return 2; }
52495
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
52496
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52497
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
52498
 
  }
52499
 
};
52500
 
 
52501
 
 
52502
 
#line 52503 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52503
 
} // closed Puma
52504
 
class WinIfExists;
52505
 
class WinImportHandler;
52506
 
class WinMacros;
52507
 
class CMatchSyntax;
52508
 
class ExtGnu;
52509
 
class ExtAC;
52510
 
class ExtACBuilderCoupling;
52511
 
class ExtACSyntaxCoupling;
52512
 
class ExtACTree;
52513
 
class ExtACKeywords;
52514
 
class WinAsm;
52515
 
class WinDeclSpecs;
52516
 
class WinMemberExplSpec;
52517
 
class WinTypeKeywords;
52518
 
class PragmaOnceUnitState;
52519
 
class PragmaOnce;
52520
 
class CCExprResolve;
52521
 
class CExprResolve;
52522
 
namespace Puma {
52523
 
 
52524
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52525
 
class CT_GotoStmt : public CT_Statement {
52526
 
#line 52527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52527
 
  friend class ::WinIfExists;
52528
 
  friend class ::WinImportHandler;
52529
 
  friend class ::WinMacros;
52530
 
  friend class ::CMatchSyntax;
52531
 
  friend class ::ExtGnu;
52532
 
  friend class ::ExtAC;
52533
 
  friend class ::ExtACBuilderCoupling;
52534
 
  friend class ::ExtACSyntaxCoupling;
52535
 
  friend class ::ExtACTree;
52536
 
  friend class ::ExtACKeywords;
52537
 
  friend class ::WinAsm;
52538
 
  friend class ::WinDeclSpecs;
52539
 
  friend class ::WinMemberExplSpec;
52540
 
  friend class ::WinTypeKeywords;
52541
 
  friend class ::PragmaOnceUnitState;
52542
 
  friend class ::PragmaOnce;
52543
 
  friend class ::CCExprResolve;
52544
 
  friend class ::CExprResolve;
52545
 
 
52546
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52547
 
 
52548
 
  CTree *sons[3]; // key, label, semi_colon
52549
 
 
52550
 
public:
52551
 
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
52552
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
52553
 
  }
52554
 
  static const char *NodeId ();
52555
 
  const char *NodeName () const { return NodeId (); }
52556
 
  int Sons () const { return 3; }
52557
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
52558
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
52559
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52560
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
52561
 
  }
52562
 
};
52563
 
 
52564
 
 
52565
 
#line 52566 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52566
 
} // closed Puma
52567
 
class WinIfExists;
52568
 
class WinImportHandler;
52569
 
class WinMacros;
52570
 
class CMatchSyntax;
52571
 
class ExtGnu;
52572
 
class ExtAC;
52573
 
class ExtACBuilderCoupling;
52574
 
class ExtACSyntaxCoupling;
52575
 
class ExtACTree;
52576
 
class ExtACKeywords;
52577
 
class WinAsm;
52578
 
class WinDeclSpecs;
52579
 
class WinMemberExplSpec;
52580
 
class WinTypeKeywords;
52581
 
class PragmaOnceUnitState;
52582
 
class PragmaOnce;
52583
 
class CCExprResolve;
52584
 
class CExprResolve;
52585
 
namespace Puma {
52586
 
 
52587
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52588
 
class CT_ReturnStmt : public CT_Statement {
52589
 
#line 52590 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52590
 
  friend class ::WinIfExists;
52591
 
  friend class ::WinImportHandler;
52592
 
  friend class ::WinMacros;
52593
 
  friend class ::CMatchSyntax;
52594
 
  friend class ::ExtGnu;
52595
 
  friend class ::ExtAC;
52596
 
  friend class ::ExtACBuilderCoupling;
52597
 
  friend class ::ExtACSyntaxCoupling;
52598
 
  friend class ::ExtACTree;
52599
 
  friend class ::ExtACKeywords;
52600
 
  friend class ::WinAsm;
52601
 
  friend class ::WinDeclSpecs;
52602
 
  friend class ::WinMemberExplSpec;
52603
 
  friend class ::WinTypeKeywords;
52604
 
  friend class ::PragmaOnceUnitState;
52605
 
  friend class ::PragmaOnce;
52606
 
  friend class ::CCExprResolve;
52607
 
  friend class ::CExprResolve;
52608
 
 
52609
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52610
 
 
52611
 
  CTree *sons[3]; // key, expr, semi_colon
52612
 
 
52613
 
public:
52614
 
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
52615
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
52616
 
  }
52617
 
  static const char *NodeId ();
52618
 
  const char *NodeName () const { return NodeId (); }
52619
 
  int Sons () const { return CTree::Sons (sons, 3); }
52620
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
52621
 
  CTree *Expr () const { return sons[1]; }
52622
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52623
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
52624
 
  }
52625
 
};
52626
 
 
52627
 
 
52628
 
#line 52629 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52629
 
} // closed Puma
52630
 
class WinIfExists;
52631
 
class WinImportHandler;
52632
 
class WinMacros;
52633
 
class CMatchSyntax;
52634
 
class ExtGnu;
52635
 
class ExtAC;
52636
 
class ExtACBuilderCoupling;
52637
 
class ExtACSyntaxCoupling;
52638
 
class ExtACTree;
52639
 
class ExtACKeywords;
52640
 
class WinAsm;
52641
 
class WinDeclSpecs;
52642
 
class WinMemberExplSpec;
52643
 
class WinTypeKeywords;
52644
 
class PragmaOnceUnitState;
52645
 
class PragmaOnce;
52646
 
class CCExprResolve;
52647
 
class CExprResolve;
52648
 
namespace Puma {
52649
 
 
52650
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52651
 
class CT_WhileStmt : public CT_Statement, public CSemScope {
52652
 
#line 52653 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52653
 
  friend class ::WinIfExists;
52654
 
  friend class ::WinImportHandler;
52655
 
  friend class ::WinMacros;
52656
 
  friend class ::CMatchSyntax;
52657
 
  friend class ::ExtGnu;
52658
 
  friend class ::ExtAC;
52659
 
  friend class ::ExtACBuilderCoupling;
52660
 
  friend class ::ExtACSyntaxCoupling;
52661
 
  friend class ::ExtACTree;
52662
 
  friend class ::ExtACKeywords;
52663
 
  friend class ::WinAsm;
52664
 
  friend class ::WinDeclSpecs;
52665
 
  friend class ::WinMemberExplSpec;
52666
 
  friend class ::WinTypeKeywords;
52667
 
  friend class ::PragmaOnceUnitState;
52668
 
  friend class ::PragmaOnce;
52669
 
  friend class ::CCExprResolve;
52670
 
  friend class ::CExprResolve;
52671
 
 
52672
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52673
 
 
52674
 
  CTree *sons[5]; // key, open, cond, close, stmt
52675
 
 
52676
 
public:
52677
 
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
52678
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
52679
 
  }
52680
 
  static const char *NodeId ();
52681
 
  const char *NodeName () const { return NodeId (); }
52682
 
  int Sons () const { return 5; }
52683
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
52684
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
52685
 
  CTree *Condition () const { return sons[2]; }
52686
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52687
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
52688
 
  }
52689
 
};
52690
 
 
52691
 
 
52692
 
#line 52693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52693
 
} // closed Puma
52694
 
class WinIfExists;
52695
 
class WinImportHandler;
52696
 
class WinMacros;
52697
 
class CMatchSyntax;
52698
 
class ExtGnu;
52699
 
class ExtAC;
52700
 
class ExtACBuilderCoupling;
52701
 
class ExtACSyntaxCoupling;
52702
 
class ExtACTree;
52703
 
class ExtACKeywords;
52704
 
class WinAsm;
52705
 
class WinDeclSpecs;
52706
 
class WinMemberExplSpec;
52707
 
class WinTypeKeywords;
52708
 
class PragmaOnceUnitState;
52709
 
class PragmaOnce;
52710
 
class CCExprResolve;
52711
 
class CExprResolve;
52712
 
namespace Puma {
52713
 
 
52714
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52715
 
class CT_DoStmt : public CT_Statement {
52716
 
#line 52717 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52717
 
  friend class ::WinIfExists;
52718
 
  friend class ::WinImportHandler;
52719
 
  friend class ::WinMacros;
52720
 
  friend class ::CMatchSyntax;
52721
 
  friend class ::ExtGnu;
52722
 
  friend class ::ExtAC;
52723
 
  friend class ::ExtACBuilderCoupling;
52724
 
  friend class ::ExtACSyntaxCoupling;
52725
 
  friend class ::ExtACTree;
52726
 
  friend class ::ExtACKeywords;
52727
 
  friend class ::WinAsm;
52728
 
  friend class ::WinDeclSpecs;
52729
 
  friend class ::WinMemberExplSpec;
52730
 
  friend class ::WinTypeKeywords;
52731
 
  friend class ::PragmaOnceUnitState;
52732
 
  friend class ::PragmaOnce;
52733
 
  friend class ::CCExprResolve;
52734
 
  friend class ::CExprResolve;
52735
 
 
52736
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52737
 
 
52738
 
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
52739
 
 
52740
 
public:
52741
 
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
52742
 
             CTree *c, CTree *sc) {
52743
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
52744
 
    sons[5] = c; sons[6] = sc; 
52745
 
  }
52746
 
  static const char *NodeId ();
52747
 
  const char *NodeName () const { return NodeId (); }
52748
 
  int Sons () const { return 7; }
52749
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
52750
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
52751
 
  CTree *Expr () const { return sons[4]; }
52752
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52753
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
52754
 
  }
52755
 
};
52756
 
 
52757
 
 
52758
 
#line 52759 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52759
 
} // closed Puma
52760
 
class WinIfExists;
52761
 
class WinImportHandler;
52762
 
class WinMacros;
52763
 
class CMatchSyntax;
52764
 
class ExtGnu;
52765
 
class ExtAC;
52766
 
class ExtACBuilderCoupling;
52767
 
class ExtACSyntaxCoupling;
52768
 
class ExtACTree;
52769
 
class ExtACKeywords;
52770
 
class WinAsm;
52771
 
class WinDeclSpecs;
52772
 
class WinMemberExplSpec;
52773
 
class WinTypeKeywords;
52774
 
class PragmaOnceUnitState;
52775
 
class PragmaOnce;
52776
 
class CCExprResolve;
52777
 
class CExprResolve;
52778
 
namespace Puma {
52779
 
 
52780
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52781
 
class CT_ForStmt : public CT_Statement, public CSemScope {
52782
 
#line 52783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52783
 
  friend class ::WinIfExists;
52784
 
  friend class ::WinImportHandler;
52785
 
  friend class ::WinMacros;
52786
 
  friend class ::CMatchSyntax;
52787
 
  friend class ::ExtGnu;
52788
 
  friend class ::ExtAC;
52789
 
  friend class ::ExtACBuilderCoupling;
52790
 
  friend class ::ExtACSyntaxCoupling;
52791
 
  friend class ::ExtACTree;
52792
 
  friend class ::ExtACKeywords;
52793
 
  friend class ::WinAsm;
52794
 
  friend class ::WinDeclSpecs;
52795
 
  friend class ::WinMemberExplSpec;
52796
 
  friend class ::WinTypeKeywords;
52797
 
  friend class ::PragmaOnceUnitState;
52798
 
  friend class ::PragmaOnce;
52799
 
  friend class ::CCExprResolve;
52800
 
  friend class ::CExprResolve;
52801
 
 
52802
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52803
 
 
52804
 
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
52805
 
 
52806
 
public:
52807
 
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
52808
 
              CTree *e, CTree *c, CTree *stmt) {
52809
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
52810
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
52811
 
  }
52812
 
  static const char *NodeId ();
52813
 
  const char *NodeName () const { return NodeId (); }
52814
 
  int Sons () const { return CTree::Sons (sons, 8); }
52815
 
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
52816
 
  CTree *InitStmt () const { return sons[2]; }
52817
 
  CTree *Condition () const { return sons[3]; }
52818
 
  CTree *Expr () const { return sons[5]; }
52819
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
52820
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52821
 
    CTree::ReplaceSon (sons, 8, old_son, new_son);
52822
 
  }
52823
 
};
52824
 
 
52825
 
 
52826
 
#line 52827 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52827
 
} // closed Puma
52828
 
class WinIfExists;
52829
 
class WinImportHandler;
52830
 
class WinMacros;
52831
 
class CMatchSyntax;
52832
 
class ExtGnu;
52833
 
class ExtAC;
52834
 
class ExtACBuilderCoupling;
52835
 
class ExtACSyntaxCoupling;
52836
 
class ExtACTree;
52837
 
class ExtACKeywords;
52838
 
class WinAsm;
52839
 
class WinDeclSpecs;
52840
 
class WinMemberExplSpec;
52841
 
class WinTypeKeywords;
52842
 
class PragmaOnceUnitState;
52843
 
class PragmaOnce;
52844
 
class CCExprResolve;
52845
 
class CExprResolve;
52846
 
namespace Puma {
52847
 
 
52848
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52849
 
class CT_Condition : public CT_Decl, public CSemObject {
52850
 
#line 52851 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52851
 
  friend class ::WinIfExists;
52852
 
  friend class ::WinImportHandler;
52853
 
  friend class ::WinMacros;
52854
 
  friend class ::CMatchSyntax;
52855
 
  friend class ::ExtGnu;
52856
 
  friend class ::ExtAC;
52857
 
  friend class ::ExtACBuilderCoupling;
52858
 
  friend class ::ExtACSyntaxCoupling;
52859
 
  friend class ::ExtACTree;
52860
 
  friend class ::ExtACKeywords;
52861
 
  friend class ::WinAsm;
52862
 
  friend class ::WinDeclSpecs;
52863
 
  friend class ::WinMemberExplSpec;
52864
 
  friend class ::WinTypeKeywords;
52865
 
  friend class ::PragmaOnceUnitState;
52866
 
  friend class ::PragmaOnce;
52867
 
  friend class ::CCExprResolve;
52868
 
  friend class ::CExprResolve;
52869
 
 
52870
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52871
 
 
52872
 
  CTree *sons[3]; // declspecs, declarator, init
52873
 
 
52874
 
public:
52875
 
  CT_Condition (CTree *dsl, CTree *d) {
52876
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
52877
 
  }
52878
 
  static const char *NodeId ();
52879
 
  const char *NodeName () const { return NodeId (); }
52880
 
  int Sons () const { return CTree::Sons (sons, 3); }
52881
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
52882
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
52883
 
  CTree *Declarator () const { return sons[1]; }
52884
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
52885
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
52886
 
  void Initializer (CTree *i) { sons[2] = i; }
52887
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52888
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
52889
 
  }
52890
 
};
52891
 
 
52892
 
/*****************************************************************************/
52893
 
/*                                                                           */
52894
 
/*                              Classes                                      */
52895
 
/*                                                                           */
52896
 
/*****************************************************************************/
52897
 
 
52898
 
 
52899
 
#line 52900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52900
 
} // closed Puma
52901
 
class WinIfExists;
52902
 
class WinImportHandler;
52903
 
class WinMacros;
52904
 
class CMatchSyntax;
52905
 
class ExtGnu;
52906
 
class ExtAC;
52907
 
class ExtACBuilderCoupling;
52908
 
class ExtACSyntaxCoupling;
52909
 
class ExtACTree;
52910
 
class ExtACKeywords;
52911
 
class WinAsm;
52912
 
class WinDeclSpecs;
52913
 
class WinMemberExplSpec;
52914
 
class WinTypeKeywords;
52915
 
class PragmaOnceUnitState;
52916
 
class PragmaOnce;
52917
 
class CCExprResolve;
52918
 
class CExprResolve;
52919
 
namespace Puma {
52920
 
 
52921
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52922
 
class CT_ClassDef : public CT_Decl, public CSemObject {
52923
 
#line 52924 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52924
 
  friend class ::WinIfExists;
52925
 
  friend class ::WinImportHandler;
52926
 
  friend class ::WinMacros;
52927
 
  friend class ::CMatchSyntax;
52928
 
  friend class ::ExtGnu;
52929
 
  friend class ::ExtAC;
52930
 
  friend class ::ExtACBuilderCoupling;
52931
 
  friend class ::ExtACSyntaxCoupling;
52932
 
  friend class ::ExtACTree;
52933
 
  friend class ::ExtACKeywords;
52934
 
  friend class ::WinAsm;
52935
 
  friend class ::WinDeclSpecs;
52936
 
  friend class ::WinMemberExplSpec;
52937
 
  friend class ::WinTypeKeywords;
52938
 
  friend class ::PragmaOnceUnitState;
52939
 
  friend class ::PragmaOnce;
52940
 
  friend class ::CCExprResolve;
52941
 
  friend class ::CExprResolve;
52942
 
 
52943
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52944
 
 
52945
 
   
52946
 
#line 52947 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52947
 
 
52948
 
  struct __ac_wrapper_sons {
52949
 
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
52950
 
    operator A& () { return _data; }
52951
 
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
52952
 
    operator const A& () { return _data; }
52953
 
    operator const A& () const { return _data; }
52954
 
    operator void* () { return _data; }
52955
 
    operator void* () const { return (void*)_data; }
52956
 
    operator const void* () { return _data; }
52957
 
    operator const void* () const { return _data; }
52958
 
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
52959
 
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
52960
 
  } sons
52961
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52962
 
 
52963
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52964
 
; // key, name, bases, members
52965
 
  CTree *obj_decl;
52966
 
 
52967
 
public:
52968
 
  
52969
 
#line 52970 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
52970
 
 
52971
 
 
52972
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
52973
 
  typedef void Result;
52974
 
  typedef ::Puma::CT_ClassDef That;
52975
 
  typedef ::Puma::CT_ClassDef Target;
52976
 
  static const int JPID = 4;
52977
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
52978
 
  struct Res {
52979
 
    typedef void Type;
52980
 
    typedef void ReferredType;
52981
 
  };
52982
 
  enum { ARGS = 3 };
52983
 
  template <int I, int DUMMY = 0> struct Arg {
52984
 
    typedef void Type;
52985
 
    typedef void ReferredType;
52986
 
  };
52987
 
  template <int DUMMY> struct Arg<0, DUMMY> {
52988
 
    typedef ::Puma::CTree * Type;
52989
 
    typedef ::Puma::CTree * ReferredType;
52990
 
  };
52991
 
  template <int DUMMY> struct Arg<1, DUMMY> {
52992
 
    typedef ::Puma::CTree * Type;
52993
 
    typedef ::Puma::CTree * ReferredType;
52994
 
  };
52995
 
  template <int DUMMY> struct Arg<2, DUMMY> {
52996
 
    typedef ::Puma::CTree * Type;
52997
 
    typedef ::Puma::CTree * ReferredType;
52998
 
  };
52999
 
 
53000
 
  That *_that;
53001
 
 
53002
 
  inline That *that() {return (That*)_that;}
53003
 
 
53004
 
};
53005
 
 
53006
 
 
53007
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53008
 
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
53009
 
#line 53010 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53010
 
{
53011
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
53012
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
53013
 
this->__exec_old_C1(arg0, arg1, arg2);
53014
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
53015
 
 
53016
 
}
53017
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
53018
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53019
 
{
53020
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
53021
 
  }
53022
 
  static const char *NodeId ();
53023
 
  const char *NodeName () const { return NodeId (); }
53024
 
  int Sons () const { return CTree::Sons (sons, 4); }
53025
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
53026
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
53027
 
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
53028
 
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
53029
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
53030
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
53031
 
  void Members (CTree *m) { sons[3] = m; }
53032
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
53033
 
  void ObjDecl (CTree *od) { obj_decl = od; }
53034
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
53035
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
53036
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
53037
 
  }
53038
 
   private:
53039
 
 
53040
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
53041
 
 CTree * _intro_members ;
53042
 
public :
53043
 
CTree * IntroMembers ( ) const { return _intro_members ; }
53044
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
53045
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53046
 
 
53047
 
#line 53048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53048
 
 
53049
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
53050
 
  typedef void Result;
53051
 
  typedef ::Puma::CT_ClassDef That;
53052
 
  typedef ::Puma::CT_ClassDef Target;
53053
 
  static const int JPID = 4;
53054
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
53055
 
  struct Res {
53056
 
    typedef void Type;
53057
 
    typedef void ReferredType;
53058
 
  };
53059
 
  enum { ARGS = 1 };
53060
 
  template <int I, int DUMMY = 0> struct Arg {
53061
 
    typedef void Type;
53062
 
    typedef void ReferredType;
53063
 
  };
53064
 
  template <int DUMMY> struct Arg<0, DUMMY> {
53065
 
    typedef const ::Puma::CT_ClassDef & Type;
53066
 
    typedef const ::Puma::CT_ClassDef ReferredType;
53067
 
  };
53068
 
 
53069
 
  That *_that;
53070
 
 
53071
 
  inline That *that() {return (That*)_that;}
53072
 
 
53073
 
};
53074
 
 
53075
 
 
53076
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53077
 
 
53078
 
#line 53079 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53079
 
 
53080
 
public:
53081
 
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) {
53082
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
53083
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
53084
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
53085
 
 
53086
 
}
53087
 
 
53088
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53089
 
 
53090
 
#line 53091 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53091
 
 
53092
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
53093
 
  typedef void Result;
53094
 
  typedef ::Puma::CT_ClassDef That;
53095
 
  typedef ::Puma::CT_ClassDef Target;
53096
 
  static const int JPID = 4;
53097
 
  static const AC::JPType JPTYPE = (AC::JPType)32;
53098
 
  struct Res {
53099
 
    typedef void Type;
53100
 
    typedef void ReferredType;
53101
 
  };
53102
 
  enum { ARGS = 0 };
53103
 
  template <int I, int DUMMY = 0> struct Arg {
53104
 
    typedef void Type;
53105
 
    typedef void ReferredType;
53106
 
  };
53107
 
 
53108
 
  That *_that;
53109
 
 
53110
 
  inline That *that() {return (That*)_that;}
53111
 
 
53112
 
};
53113
 
 
53114
 
 
53115
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53116
 
 
53117
 
#line 53118 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53118
 
 
53119
 
public:
53120
 
inline ~CT_ClassDef () {
53121
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
53122
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
53123
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
53124
 
 
53125
 
}
53126
 
 
53127
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53128
 
};
53129
 
      
53130
 
 
53131
 
#line 53132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53132
 
} // closed Puma
53133
 
class WinIfExists;
53134
 
class WinImportHandler;
53135
 
class WinMacros;
53136
 
class CMatchSyntax;
53137
 
class ExtGnu;
53138
 
class ExtAC;
53139
 
class ExtACBuilderCoupling;
53140
 
class ExtACSyntaxCoupling;
53141
 
class ExtACTree;
53142
 
class ExtACKeywords;
53143
 
class WinAsm;
53144
 
class WinDeclSpecs;
53145
 
class WinMemberExplSpec;
53146
 
class WinTypeKeywords;
53147
 
class PragmaOnceUnitState;
53148
 
class PragmaOnce;
53149
 
class CCExprResolve;
53150
 
class CExprResolve;
53151
 
namespace Puma {
53152
 
 
53153
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53154
 
class CT_UnionDef : public CT_ClassDef {
53155
 
#line 53156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53156
 
  friend class ::WinIfExists;
53157
 
  friend class ::WinImportHandler;
53158
 
  friend class ::WinMacros;
53159
 
  friend class ::CMatchSyntax;
53160
 
  friend class ::ExtGnu;
53161
 
  friend class ::ExtAC;
53162
 
  friend class ::ExtACBuilderCoupling;
53163
 
  friend class ::ExtACSyntaxCoupling;
53164
 
  friend class ::ExtACTree;
53165
 
  friend class ::ExtACKeywords;
53166
 
  friend class ::WinAsm;
53167
 
  friend class ::WinDeclSpecs;
53168
 
  friend class ::WinMemberExplSpec;
53169
 
  friend class ::WinTypeKeywords;
53170
 
  friend class ::PragmaOnceUnitState;
53171
 
  friend class ::PragmaOnce;
53172
 
  friend class ::CCExprResolve;
53173
 
  friend class ::CExprResolve;
53174
 
 
53175
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53176
 
 
53177
 
public:
53178
 
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
53179
 
  static const char *NodeId ();
53180
 
  const char *NodeName () const { return NodeId (); }
53181
 
};
53182
 
      
53183
 
 
53184
 
#line 53185 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53185
 
} // closed Puma
53186
 
class WinIfExists;
53187
 
class WinImportHandler;
53188
 
class WinMacros;
53189
 
class CMatchSyntax;
53190
 
class ExtGnu;
53191
 
class ExtAC;
53192
 
class ExtACBuilderCoupling;
53193
 
class ExtACSyntaxCoupling;
53194
 
class ExtACTree;
53195
 
class ExtACKeywords;
53196
 
class WinAsm;
53197
 
class WinDeclSpecs;
53198
 
class WinMemberExplSpec;
53199
 
class WinTypeKeywords;
53200
 
class PragmaOnceUnitState;
53201
 
class PragmaOnce;
53202
 
class CCExprResolve;
53203
 
class CExprResolve;
53204
 
namespace Puma {
53205
 
 
53206
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53207
 
class CT_MembList : public CT_DeclList, public CSemScope {
53208
 
#line 53209 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53209
 
  friend class ::WinIfExists;
53210
 
  friend class ::WinImportHandler;
53211
 
  friend class ::WinMacros;
53212
 
  friend class ::CMatchSyntax;
53213
 
  friend class ::ExtGnu;
53214
 
  friend class ::ExtAC;
53215
 
  friend class ::ExtACBuilderCoupling;
53216
 
  friend class ::ExtACSyntaxCoupling;
53217
 
  friend class ::ExtACTree;
53218
 
  friend class ::ExtACKeywords;
53219
 
  friend class ::WinAsm;
53220
 
  friend class ::WinDeclSpecs;
53221
 
  friend class ::WinMemberExplSpec;
53222
 
  friend class ::WinTypeKeywords;
53223
 
  friend class ::PragmaOnceUnitState;
53224
 
  friend class ::PragmaOnce;
53225
 
  friend class ::CCExprResolve;
53226
 
  friend class ::CExprResolve;
53227
 
 
53228
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53229
 
 
53230
 
public:
53231
 
  CT_MembList (int size = 10, int incr = 10) : 
53232
 
    CT_DeclList (size, incr) {}
53233
 
  static const char *NodeId ();
53234
 
  const char *NodeName () const { return NodeId (); }
53235
 
};
53236
 
 
53237
 
 
53238
 
#line 53239 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53239
 
} // closed Puma
53240
 
class WinIfExists;
53241
 
class WinImportHandler;
53242
 
class WinMacros;
53243
 
class CMatchSyntax;
53244
 
class ExtGnu;
53245
 
class ExtAC;
53246
 
class ExtACBuilderCoupling;
53247
 
class ExtACSyntaxCoupling;
53248
 
class ExtACTree;
53249
 
class ExtACKeywords;
53250
 
class WinAsm;
53251
 
class WinDeclSpecs;
53252
 
class WinMemberExplSpec;
53253
 
class WinTypeKeywords;
53254
 
class PragmaOnceUnitState;
53255
 
class PragmaOnce;
53256
 
class CCExprResolve;
53257
 
class CExprResolve;
53258
 
namespace Puma {
53259
 
 
53260
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53261
 
class CT_MembInitList : public CT_List, public CSemScope {
53262
 
#line 53263 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53263
 
  friend class ::WinIfExists;
53264
 
  friend class ::WinImportHandler;
53265
 
  friend class ::WinMacros;
53266
 
  friend class ::CMatchSyntax;
53267
 
  friend class ::ExtGnu;
53268
 
  friend class ::ExtAC;
53269
 
  friend class ::ExtACBuilderCoupling;
53270
 
  friend class ::ExtACSyntaxCoupling;
53271
 
  friend class ::ExtACTree;
53272
 
  friend class ::ExtACKeywords;
53273
 
  friend class ::WinAsm;
53274
 
  friend class ::WinDeclSpecs;
53275
 
  friend class ::WinMemberExplSpec;
53276
 
  friend class ::WinTypeKeywords;
53277
 
  friend class ::PragmaOnceUnitState;
53278
 
  friend class ::PragmaOnce;
53279
 
  friend class ::CCExprResolve;
53280
 
  friend class ::CExprResolve;
53281
 
 
53282
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53283
 
 
53284
 
public:
53285
 
  CT_MembInitList (int size = 2) : 
53286
 
    CT_List (size, 2, CT_List::OPEN) {}
53287
 
  static const char *NodeId ();
53288
 
  const char *NodeName () const { return NodeId (); }
53289
 
};
53290
 
 
53291
 
 
53292
 
#line 53293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53293
 
} // closed Puma
53294
 
class WinIfExists;
53295
 
class WinImportHandler;
53296
 
class WinMacros;
53297
 
class CMatchSyntax;
53298
 
class ExtGnu;
53299
 
class ExtAC;
53300
 
class ExtACBuilderCoupling;
53301
 
class ExtACSyntaxCoupling;
53302
 
class ExtACTree;
53303
 
class ExtACKeywords;
53304
 
class WinAsm;
53305
 
class WinDeclSpecs;
53306
 
class WinMemberExplSpec;
53307
 
class WinTypeKeywords;
53308
 
class PragmaOnceUnitState;
53309
 
class PragmaOnce;
53310
 
class CCExprResolve;
53311
 
class CExprResolve;
53312
 
namespace Puma {
53313
 
 
53314
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53315
 
class CT_MembInit : public CT_Expression, public CSemObject {
53316
 
#line 53317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53317
 
  friend class ::WinIfExists;
53318
 
  friend class ::WinImportHandler;
53319
 
  friend class ::WinMacros;
53320
 
  friend class ::CMatchSyntax;
53321
 
  friend class ::ExtGnu;
53322
 
  friend class ::ExtAC;
53323
 
  friend class ::ExtACBuilderCoupling;
53324
 
  friend class ::ExtACSyntaxCoupling;
53325
 
  friend class ::ExtACTree;
53326
 
  friend class ::ExtACKeywords;
53327
 
  friend class ::WinAsm;
53328
 
  friend class ::WinDeclSpecs;
53329
 
  friend class ::WinMemberExplSpec;
53330
 
  friend class ::WinTypeKeywords;
53331
 
  friend class ::PragmaOnceUnitState;
53332
 
  friend class ::PragmaOnce;
53333
 
  friend class ::CCExprResolve;
53334
 
  friend class ::CExprResolve;
53335
 
 
53336
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53337
 
 
53338
 
  CTree *sons[2]; // name, init
53339
 
 
53340
 
public:
53341
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
53342
 
  static const char *NodeId ();
53343
 
  const char *NodeName () const { return NodeId (); }
53344
 
  int Sons () const { return 2; }
53345
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
53346
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53347
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
53348
 
  }
53349
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
53350
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
53351
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
53352
 
   private:
53353
 
  typedef CT_MembInit CCExprResolveExpr;
53354
 
 
53355
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
53356
 
 public :
53357
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
53358
 
  typedef CT_MembInit CExprResolveExpr;
53359
 
 
53360
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
53361
 
 public :
53362
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
53363
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53364
 
};
53365
 
 
53366
 
 
53367
 
#line 53368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53368
 
} // closed Puma
53369
 
class WinIfExists;
53370
 
class WinImportHandler;
53371
 
class WinMacros;
53372
 
class CMatchSyntax;
53373
 
class ExtGnu;
53374
 
class ExtAC;
53375
 
class ExtACBuilderCoupling;
53376
 
class ExtACSyntaxCoupling;
53377
 
class ExtACTree;
53378
 
class ExtACKeywords;
53379
 
class WinAsm;
53380
 
class WinDeclSpecs;
53381
 
class WinMemberExplSpec;
53382
 
class WinTypeKeywords;
53383
 
class PragmaOnceUnitState;
53384
 
class PragmaOnce;
53385
 
class CCExprResolve;
53386
 
class CExprResolve;
53387
 
namespace Puma {
53388
 
 
53389
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53390
 
class CT_BaseSpecList : public CT_List {
53391
 
#line 53392 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53392
 
  friend class ::WinIfExists;
53393
 
  friend class ::WinImportHandler;
53394
 
  friend class ::WinMacros;
53395
 
  friend class ::CMatchSyntax;
53396
 
  friend class ::ExtGnu;
53397
 
  friend class ::ExtAC;
53398
 
  friend class ::ExtACBuilderCoupling;
53399
 
  friend class ::ExtACSyntaxCoupling;
53400
 
  friend class ::ExtACTree;
53401
 
  friend class ::ExtACKeywords;
53402
 
  friend class ::WinAsm;
53403
 
  friend class ::WinDeclSpecs;
53404
 
  friend class ::WinMemberExplSpec;
53405
 
  friend class ::WinTypeKeywords;
53406
 
  friend class ::PragmaOnceUnitState;
53407
 
  friend class ::PragmaOnce;
53408
 
  friend class ::CCExprResolve;
53409
 
  friend class ::CExprResolve;
53410
 
 
53411
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53412
 
 
53413
 
public:
53414
 
  CT_BaseSpecList (int size = 2) : 
53415
 
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
53416
 
  static const char *NodeId ();
53417
 
  const char *NodeName () const { return NodeId (); }
53418
 
};
53419
 
 
53420
 
 
53421
 
#line 53422 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53422
 
} // closed Puma
53423
 
class WinIfExists;
53424
 
class WinImportHandler;
53425
 
class WinMacros;
53426
 
class CMatchSyntax;
53427
 
class ExtGnu;
53428
 
class ExtAC;
53429
 
class ExtACBuilderCoupling;
53430
 
class ExtACSyntaxCoupling;
53431
 
class ExtACTree;
53432
 
class ExtACKeywords;
53433
 
class WinAsm;
53434
 
class WinDeclSpecs;
53435
 
class WinMemberExplSpec;
53436
 
class WinTypeKeywords;
53437
 
class PragmaOnceUnitState;
53438
 
class PragmaOnce;
53439
 
class CCExprResolve;
53440
 
class CExprResolve;
53441
 
namespace Puma {
53442
 
 
53443
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53444
 
class CT_AccessSpec : public CTree {
53445
 
#line 53446 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53446
 
  friend class ::WinIfExists;
53447
 
  friend class ::WinImportHandler;
53448
 
  friend class ::WinMacros;
53449
 
  friend class ::CMatchSyntax;
53450
 
  friend class ::ExtGnu;
53451
 
  friend class ::ExtAC;
53452
 
  friend class ::ExtACBuilderCoupling;
53453
 
  friend class ::ExtACSyntaxCoupling;
53454
 
  friend class ::ExtACTree;
53455
 
  friend class ::ExtACKeywords;
53456
 
  friend class ::WinAsm;
53457
 
  friend class ::WinDeclSpecs;
53458
 
  friend class ::WinMemberExplSpec;
53459
 
  friend class ::WinTypeKeywords;
53460
 
  friend class ::PragmaOnceUnitState;
53461
 
  friend class ::PragmaOnce;
53462
 
  friend class ::CCExprResolve;
53463
 
  friend class ::CExprResolve;
53464
 
 
53465
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53466
 
 
53467
 
  CTree *sons[2]; // access, colon
53468
 
 
53469
 
public:
53470
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
53471
 
  static const char *NodeId ();
53472
 
  const char *NodeName () const { return NodeId (); }
53473
 
  int Sons () const { return 2; }
53474
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
53475
 
  int Access () const { return sons[0]->token ()->type (); }
53476
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53477
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
53478
 
  }
53479
 
};
53480
 
 
53481
 
 
53482
 
#line 53483 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53483
 
} // closed Puma
53484
 
class WinIfExists;
53485
 
class WinImportHandler;
53486
 
class WinMacros;
53487
 
class CMatchSyntax;
53488
 
class ExtGnu;
53489
 
class ExtAC;
53490
 
class ExtACBuilderCoupling;
53491
 
class ExtACSyntaxCoupling;
53492
 
class ExtACTree;
53493
 
class ExtACKeywords;
53494
 
class WinAsm;
53495
 
class WinDeclSpecs;
53496
 
class WinMemberExplSpec;
53497
 
class WinTypeKeywords;
53498
 
class PragmaOnceUnitState;
53499
 
class PragmaOnce;
53500
 
class CCExprResolve;
53501
 
class CExprResolve;
53502
 
namespace Puma {
53503
 
 
53504
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53505
 
class CT_BaseSpec : public CTree {
53506
 
#line 53507 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53507
 
  friend class ::WinIfExists;
53508
 
  friend class ::WinImportHandler;
53509
 
  friend class ::WinMacros;
53510
 
  friend class ::CMatchSyntax;
53511
 
  friend class ::ExtGnu;
53512
 
  friend class ::ExtAC;
53513
 
  friend class ::ExtACBuilderCoupling;
53514
 
  friend class ::ExtACSyntaxCoupling;
53515
 
  friend class ::ExtACTree;
53516
 
  friend class ::ExtACKeywords;
53517
 
  friend class ::WinAsm;
53518
 
  friend class ::WinDeclSpecs;
53519
 
  friend class ::WinMemberExplSpec;
53520
 
  friend class ::WinTypeKeywords;
53521
 
  friend class ::PragmaOnceUnitState;
53522
 
  friend class ::PragmaOnce;
53523
 
  friend class ::CCExprResolve;
53524
 
  friend class ::CExprResolve;
53525
 
 
53526
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53527
 
 
53528
 
  CTree *sons[3]; // virtual, access, name
53529
 
 
53530
 
public:
53531
 
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
53532
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
53533
 
  }
53534
 
  static const char *NodeId ();
53535
 
  const char *NodeName () const { return NodeId (); }
53536
 
  int Sons () const { return CTree::Sons (sons, 3); }
53537
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
53538
 
  int Access () const { return sons[1]->token ()->type (); }
53539
 
  CTree *AccessSpec () const { return sons[1]; }
53540
 
  CTree *Virtual () const { return sons[0]; }
53541
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
53542
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53543
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
53544
 
  }
53545
 
};
53546
 
 
53547
 
 
53548
 
#line 53549 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53549
 
} // closed Puma
53550
 
class WinIfExists;
53551
 
class WinImportHandler;
53552
 
class WinMacros;
53553
 
class CMatchSyntax;
53554
 
class ExtGnu;
53555
 
class ExtAC;
53556
 
class ExtACBuilderCoupling;
53557
 
class ExtACSyntaxCoupling;
53558
 
class ExtACTree;
53559
 
class ExtACKeywords;
53560
 
class WinAsm;
53561
 
class WinDeclSpecs;
53562
 
class WinMemberExplSpec;
53563
 
class WinTypeKeywords;
53564
 
class PragmaOnceUnitState;
53565
 
class PragmaOnce;
53566
 
class CCExprResolve;
53567
 
class CExprResolve;
53568
 
namespace Puma {
53569
 
 
53570
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53571
 
class CT_AccessDecl : public CT_Decl {
53572
 
#line 53573 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53573
 
  friend class ::WinIfExists;
53574
 
  friend class ::WinImportHandler;
53575
 
  friend class ::WinMacros;
53576
 
  friend class ::CMatchSyntax;
53577
 
  friend class ::ExtGnu;
53578
 
  friend class ::ExtAC;
53579
 
  friend class ::ExtACBuilderCoupling;
53580
 
  friend class ::ExtACSyntaxCoupling;
53581
 
  friend class ::ExtACTree;
53582
 
  friend class ::ExtACKeywords;
53583
 
  friend class ::WinAsm;
53584
 
  friend class ::WinDeclSpecs;
53585
 
  friend class ::WinMemberExplSpec;
53586
 
  friend class ::WinTypeKeywords;
53587
 
  friend class ::PragmaOnceUnitState;
53588
 
  friend class ::PragmaOnce;
53589
 
  friend class ::CCExprResolve;
53590
 
  friend class ::CExprResolve;
53591
 
 
53592
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53593
 
 
53594
 
  CTree *sons[2]; // name, semi_colon
53595
 
 
53596
 
public:
53597
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
53598
 
  static const char *NodeId ();
53599
 
  const char *NodeName () const { return NodeId (); }
53600
 
  int Sons () const { return 2; }
53601
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
53602
 
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
53603
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53604
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
53605
 
  }
53606
 
};
53607
 
 
53608
 
 
53609
 
#line 53610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53610
 
} // closed Puma
53611
 
class WinIfExists;
53612
 
class WinImportHandler;
53613
 
class WinMacros;
53614
 
class CMatchSyntax;
53615
 
class ExtGnu;
53616
 
class ExtAC;
53617
 
class ExtACBuilderCoupling;
53618
 
class ExtACSyntaxCoupling;
53619
 
class ExtACTree;
53620
 
class ExtACKeywords;
53621
 
class WinAsm;
53622
 
class WinDeclSpecs;
53623
 
class WinMemberExplSpec;
53624
 
class WinTypeKeywords;
53625
 
class PragmaOnceUnitState;
53626
 
class PragmaOnce;
53627
 
class CCExprResolve;
53628
 
class CExprResolve;
53629
 
namespace Puma {
53630
 
 
53631
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53632
 
class CT_UsingDecl : public CT_AccessDecl {
53633
 
#line 53634 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53634
 
  friend class ::WinIfExists;
53635
 
  friend class ::WinImportHandler;
53636
 
  friend class ::WinMacros;
53637
 
  friend class ::CMatchSyntax;
53638
 
  friend class ::ExtGnu;
53639
 
  friend class ::ExtAC;
53640
 
  friend class ::ExtACBuilderCoupling;
53641
 
  friend class ::ExtACSyntaxCoupling;
53642
 
  friend class ::ExtACTree;
53643
 
  friend class ::ExtACKeywords;
53644
 
  friend class ::WinAsm;
53645
 
  friend class ::WinDeclSpecs;
53646
 
  friend class ::WinMemberExplSpec;
53647
 
  friend class ::WinTypeKeywords;
53648
 
  friend class ::PragmaOnceUnitState;
53649
 
  friend class ::PragmaOnce;
53650
 
  friend class ::CCExprResolve;
53651
 
  friend class ::CExprResolve;
53652
 
 
53653
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53654
 
 
53655
 
  CTree *sons[2]; // using, typename
53656
 
 
53657
 
public:
53658
 
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
53659
 
    sons[0] = u; sons[1] = 0; 
53660
 
  }
53661
 
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
53662
 
    sons[0] = u; sons[1] = t; 
53663
 
  }
53664
 
  static const char *NodeId ();
53665
 
  const char *NodeName () const { return NodeId (); }
53666
 
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
53667
 
  CTree *Son (int n) const {
53668
 
    int num = CTree::Sons (sons, 2);
53669
 
    CTree *result = CTree::Son (sons, 2, n);
53670
 
    return result ? result : CT_AccessDecl::Son (n-num);
53671
 
  }
53672
 
  CTree *Typename () const { return sons[1]; }
53673
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53674
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
53675
 
    CT_AccessDecl::ReplaceSon (old_son, new_son);
53676
 
  }
53677
 
};
53678
 
 
53679
 
/*****************************************************************************/
53680
 
/*                                                                           */
53681
 
/*                              Wildcards                                    */
53682
 
/*                                                                           */
53683
 
/*****************************************************************************/
53684
 
 
53685
 
 
53686
 
#line 53687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53687
 
} // closed Puma
53688
 
class WinIfExists;
53689
 
class WinImportHandler;
53690
 
class WinMacros;
53691
 
class CMatchSyntax;
53692
 
class ExtGnu;
53693
 
class ExtAC;
53694
 
class ExtACBuilderCoupling;
53695
 
class ExtACSyntaxCoupling;
53696
 
class ExtACTree;
53697
 
class ExtACKeywords;
53698
 
class WinAsm;
53699
 
class WinDeclSpecs;
53700
 
class WinMemberExplSpec;
53701
 
class WinTypeKeywords;
53702
 
class PragmaOnceUnitState;
53703
 
class PragmaOnce;
53704
 
class CCExprResolve;
53705
 
class CExprResolve;
53706
 
namespace Puma {
53707
 
 
53708
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53709
 
class CT_Any : public CTree {
53710
 
#line 53711 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53711
 
  friend class ::WinIfExists;
53712
 
  friend class ::WinImportHandler;
53713
 
  friend class ::WinMacros;
53714
 
  friend class ::CMatchSyntax;
53715
 
  friend class ::ExtGnu;
53716
 
  friend class ::ExtAC;
53717
 
  friend class ::ExtACBuilderCoupling;
53718
 
  friend class ::ExtACSyntaxCoupling;
53719
 
  friend class ::ExtACTree;
53720
 
  friend class ::ExtACKeywords;
53721
 
  friend class ::WinAsm;
53722
 
  friend class ::WinDeclSpecs;
53723
 
  friend class ::WinMemberExplSpec;
53724
 
  friend class ::WinTypeKeywords;
53725
 
  friend class ::PragmaOnceUnitState;
53726
 
  friend class ::PragmaOnce;
53727
 
  friend class ::CCExprResolve;
53728
 
  friend class ::CExprResolve;
53729
 
 
53730
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53731
 
 
53732
 
  CTree *sons[2]; // keyword, extension
53733
 
 
53734
 
public:
53735
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
53736
 
  static const char *NodeId ();
53737
 
  const char *NodeName () const { return NodeId (); }
53738
 
  int Sons () const { return CTree::Sons (sons, 2); }
53739
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
53740
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53741
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
53742
 
  }
53743
 
  int AnyType () const { return sons[0]->token ()->type (); }
53744
 
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
53745
 
};
53746
 
 
53747
 
 
53748
 
#line 53749 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53749
 
} // closed Puma
53750
 
class WinIfExists;
53751
 
class WinImportHandler;
53752
 
class WinMacros;
53753
 
class CMatchSyntax;
53754
 
class ExtGnu;
53755
 
class ExtAC;
53756
 
class ExtACBuilderCoupling;
53757
 
class ExtACSyntaxCoupling;
53758
 
class ExtACTree;
53759
 
class ExtACKeywords;
53760
 
class WinAsm;
53761
 
class WinDeclSpecs;
53762
 
class WinMemberExplSpec;
53763
 
class WinTypeKeywords;
53764
 
class PragmaOnceUnitState;
53765
 
class PragmaOnce;
53766
 
class CCExprResolve;
53767
 
class CExprResolve;
53768
 
namespace Puma {
53769
 
 
53770
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53771
 
class CT_AnyList : public CT_Any {
53772
 
#line 53773 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53773
 
  friend class ::WinIfExists;
53774
 
  friend class ::WinImportHandler;
53775
 
  friend class ::WinMacros;
53776
 
  friend class ::CMatchSyntax;
53777
 
  friend class ::ExtGnu;
53778
 
  friend class ::ExtAC;
53779
 
  friend class ::ExtACBuilderCoupling;
53780
 
  friend class ::ExtACSyntaxCoupling;
53781
 
  friend class ::ExtACTree;
53782
 
  friend class ::ExtACKeywords;
53783
 
  friend class ::WinAsm;
53784
 
  friend class ::WinDeclSpecs;
53785
 
  friend class ::WinMemberExplSpec;
53786
 
  friend class ::WinTypeKeywords;
53787
 
  friend class ::PragmaOnceUnitState;
53788
 
  friend class ::PragmaOnce;
53789
 
  friend class ::CCExprResolve;
53790
 
  friend class ::CExprResolve;
53791
 
 
53792
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53793
 
 
53794
 
public:
53795
 
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
53796
 
  static const char *NodeId ();
53797
 
  const char *NodeName () const { return NodeId (); }
53798
 
};
53799
 
 
53800
 
 
53801
 
#line 53802 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53802
 
} // closed Puma
53803
 
class WinIfExists;
53804
 
class WinImportHandler;
53805
 
class WinMacros;
53806
 
class CMatchSyntax;
53807
 
class ExtGnu;
53808
 
class ExtAC;
53809
 
class ExtACBuilderCoupling;
53810
 
class ExtACSyntaxCoupling;
53811
 
class ExtACTree;
53812
 
class ExtACKeywords;
53813
 
class WinAsm;
53814
 
class WinDeclSpecs;
53815
 
class WinMemberExplSpec;
53816
 
class WinTypeKeywords;
53817
 
class PragmaOnceUnitState;
53818
 
class PragmaOnce;
53819
 
class CCExprResolve;
53820
 
class CExprResolve;
53821
 
namespace Puma {
53822
 
 
53823
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53824
 
class CT_AnyExtension : public CTree, public CSemValue {
53825
 
#line 53826 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53826
 
  friend class ::WinIfExists;
53827
 
  friend class ::WinImportHandler;
53828
 
  friend class ::WinMacros;
53829
 
  friend class ::CMatchSyntax;
53830
 
  friend class ::ExtGnu;
53831
 
  friend class ::ExtAC;
53832
 
  friend class ::ExtACBuilderCoupling;
53833
 
  friend class ::ExtACSyntaxCoupling;
53834
 
  friend class ::ExtACTree;
53835
 
  friend class ::ExtACKeywords;
53836
 
  friend class ::WinAsm;
53837
 
  friend class ::WinDeclSpecs;
53838
 
  friend class ::WinMemberExplSpec;
53839
 
  friend class ::WinTypeKeywords;
53840
 
  friend class ::PragmaOnceUnitState;
53841
 
  friend class ::PragmaOnce;
53842
 
  friend class ::CCExprResolve;
53843
 
  friend class ::CExprResolve;
53844
 
 
53845
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53846
 
 
53847
 
  CTree *sons[5]; // open, string, comma, cond, close
53848
 
 
53849
 
public:
53850
 
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
53851
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
53852
 
  }
53853
 
  static const char *NodeId ();
53854
 
  const char *NodeName () const { return NodeId (); }
53855
 
  int Sons () const { return CTree::Sons (sons, 5); }
53856
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
53857
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53858
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
53859
 
  }
53860
 
  CTree *Condition () const { return sons[3]; }
53861
 
  CT_Token *String () const { return (CT_Token*)sons[1]; }
53862
 
  const char *Name () const { 
53863
 
    return value ? value->StrLiteral ()->String () : (const char*)0; }
53864
 
 
53865
 
  CExprValue *Value () const { return value; }
53866
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
53867
 
};
53868
 
 
53869
 
 
53870
 
#line 53871 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53871
 
} // closed Puma
53872
 
class WinIfExists;
53873
 
class WinImportHandler;
53874
 
class WinMacros;
53875
 
class CMatchSyntax;
53876
 
class ExtGnu;
53877
 
class ExtAC;
53878
 
class ExtACBuilderCoupling;
53879
 
class ExtACSyntaxCoupling;
53880
 
class ExtACTree;
53881
 
class ExtACKeywords;
53882
 
class WinAsm;
53883
 
class WinDeclSpecs;
53884
 
class WinMemberExplSpec;
53885
 
class WinTypeKeywords;
53886
 
class PragmaOnceUnitState;
53887
 
class PragmaOnce;
53888
 
class CCExprResolve;
53889
 
class CExprResolve;
53890
 
namespace Puma {
53891
 
 
53892
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53893
 
class CT_AnyCondition : public CTree {
53894
 
#line 53895 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53895
 
  friend class ::WinIfExists;
53896
 
  friend class ::WinImportHandler;
53897
 
  friend class ::WinMacros;
53898
 
  friend class ::CMatchSyntax;
53899
 
  friend class ::ExtGnu;
53900
 
  friend class ::ExtAC;
53901
 
  friend class ::ExtACBuilderCoupling;
53902
 
  friend class ::ExtACSyntaxCoupling;
53903
 
  friend class ::ExtACTree;
53904
 
  friend class ::ExtACKeywords;
53905
 
  friend class ::WinAsm;
53906
 
  friend class ::WinDeclSpecs;
53907
 
  friend class ::WinMemberExplSpec;
53908
 
  friend class ::WinTypeKeywords;
53909
 
  friend class ::PragmaOnceUnitState;
53910
 
  friend class ::PragmaOnce;
53911
 
  friend class ::CCExprResolve;
53912
 
  friend class ::CExprResolve;
53913
 
 
53914
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53915
 
 
53916
 
  CTree *sons[3]; // arg1, arg2, arg3
53917
 
 
53918
 
public:
53919
 
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
53920
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
53921
 
  }
53922
 
  static const char *NodeId ();
53923
 
  const char *NodeName () const { return NodeId (); }
53924
 
  int Sons () const { return CTree::Sons (sons, 3); }
53925
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
53926
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53927
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
53928
 
  }
53929
 
};
53930
 
 
53931
 
 
53932
 
} // namespace Puma
53933
 
 
53934
 
#endif /* __CTree_h__ */
53935
 
 
53936
 
#line 53937 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53937
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
53938
 
 
53939
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
53940
 
 
53941
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemExpr.h"
53942
 
namespace Puma {
53943
 
 
53944
 
class CStructure;
53945
 
class CObjectInfo;
53946
 
 
53947
 
 
53948
 
 
53949
 
#line 53950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53950
 
} // closed Puma
53951
 
class WinIfExists;
53952
 
class WinImportHandler;
53953
 
class WinMacros;
53954
 
class CMatchSyntax;
53955
 
class ExtGnu;
53956
 
class ExtAC;
53957
 
class ExtACBuilderCoupling;
53958
 
class ExtACSyntaxCoupling;
53959
 
class ExtACTree;
53960
 
class ExtACKeywords;
53961
 
class WinAsm;
53962
 
class WinDeclSpecs;
53963
 
class WinMemberExplSpec;
53964
 
class WinTypeKeywords;
53965
 
class PragmaOnceUnitState;
53966
 
class PragmaOnce;
53967
 
class CCExprResolve;
53968
 
class CExprResolve;
53969
 
namespace Puma {
53970
 
 
53971
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemExpr.h"
53972
 
class CSemExpr {
53973
 
#line 53974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
53974
 
  friend class ::WinIfExists;
53975
 
  friend class ::WinImportHandler;
53976
 
  friend class ::WinMacros;
53977
 
  friend class ::CMatchSyntax;
53978
 
  friend class ::ExtGnu;
53979
 
  friend class ::ExtAC;
53980
 
  friend class ::ExtACBuilderCoupling;
53981
 
  friend class ::ExtACSyntaxCoupling;
53982
 
  friend class ::ExtACTree;
53983
 
  friend class ::ExtACKeywords;
53984
 
  friend class ::WinAsm;
53985
 
  friend class ::WinDeclSpecs;
53986
 
  friend class ::WinMemberExplSpec;
53987
 
  friend class ::WinTypeKeywords;
53988
 
  friend class ::PragmaOnceUnitState;
53989
 
  friend class ::PragmaOnce;
53990
 
  friend class ::CCExprResolve;
53991
 
  friend class ::CExprResolve;
53992
 
 
53993
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemExpr.h"
53994
 
 
53995
 
protected:
53996
 
  ErrorSink &err;            // error stream
53997
 
  CStructure *current_scope;
53998
 
 
53999
 
protected: // expression evaluation
54000
 
  int conv_to_ptr; // convert array/function type to pointer type
54001
 
 
54002
 
  enum SemObjType { 
54003
 
    CLASS, UNION, ENUM, 
54004
 
    TYPEDEF, FCT, 
54005
 
    ATTRIB, ARG, 
54006
 
    TAG, NON_TAG, 
54007
 
    ANY 
54008
 
  };
54009
 
 
54010
 
public: // public interface
54011
 
  CSemExpr (ErrorSink &, CStructure *scope);
54012
 
 
54013
 
  CTypeInfo *resolveExpr (CTree *expr, CTree *base = (CTree*)0);
54014
 
  void resolveInit (CObjectInfo *, CTree *, CTree *, bool = false);
54015
 
 
54016
 
public:
54017
 
  CTypeInfo *resolve (CTree *, CTree *);
54018
 
  CTypeInfo *resolve (CT_SimpleName *, CTree *);
54019
 
  CTypeInfo *resolve (CT_String *, CTree *);
54020
 
  CTypeInfo *resolve (CT_WideString *, CTree *);
54021
 
  CTypeInfo *resolve (CT_CmpdLiteral *, CTree *);
54022
 
  CTypeInfo *resolve (CT_Bool *, CTree *);
54023
 
  CTypeInfo *resolve (CT_Character *, CTree *);
54024
 
  CTypeInfo *resolve (CT_WideCharacter *, CTree *);
54025
 
  CTypeInfo *resolve (CT_Integer *, CTree *);
54026
 
  CTypeInfo *resolve (CT_Float *, CTree *);
54027
 
  CTypeInfo *resolve (CT_BracedExpr *, CTree *);
54028
 
  CTypeInfo *resolve (CT_BinaryExpr *, CTree *);
54029
 
  CTypeInfo *resolve (CT_UnaryExpr *, CTree *);
54030
 
  CTypeInfo *resolve (CT_AddrExpr *, CTree *);
54031
 
  CTypeInfo *resolve (CT_DerefExpr *, CTree *);
54032
 
  CTypeInfo *resolve (CT_PostfixExpr *, CTree *);
54033
 
  CTypeInfo *resolve (CT_IndexExpr *, CTree *);
54034
 
  CTypeInfo *resolve (CT_SizeofExpr *, CTree *);
54035
 
  CTypeInfo *resolve (CT_IfThenExpr *, CTree *);
54036
 
  CTypeInfo *resolve (CT_CastExpr *, CTree *);
54037
 
  CTypeInfo *resolve (CT_CallExpr *, CTree *);
54038
 
  CTypeInfo *resolve (CT_MembPtrExpr *, CTree *);
54039
 
 
54040
 
  // binary expressions
54041
 
  CTypeInfo *binary_rel (CT_BinaryExpr *);
54042
 
  CTypeInfo *binary_ass (CT_BinaryExpr *);
54043
 
  CTypeInfo *binary_log (CT_BinaryExpr *);
54044
 
  CTypeInfo *binary_and (CT_BinaryExpr *);
54045
 
  CTypeInfo *binary_equ (CT_BinaryExpr *);
54046
 
  CTypeInfo *binary_mul (CT_BinaryExpr *);
54047
 
  CTypeInfo *binary_add (CT_BinaryExpr *);
54048
 
  CTypeInfo *binary_shift (CT_BinaryExpr *);
54049
 
  CTypeInfo *binary_comma (CT_BinaryExpr *);
54050
 
  CTypeInfo *apply_binary_op (CTree *, int);
54051
 
 
54052
 
  // constant expression
54053
 
  static bool isConstExpr (CTree *, bool = false);
54054
 
  static bool isConstIntExpr (CTree *);
54055
 
 
54056
 
  // helper
54057
 
  static bool isLvalue (CTree *);
54058
 
  void overflow (CTree *, int, bool &) const;
54059
 
  int scan_character (CTree *, LONG_LONG &) const;
54060
 
  LONG_LONG next_character (const char *&) const;
54061
 
  static CTypeInfo *cast_to (CTypeInfo *, CTree *, CTree *, bool = true);
54062
 
  static CTypeInfo *promote (CTree *, CTree *);
54063
 
  static CObjectInfo *findObject (CTree *);
54064
 
 
54065
 
protected: // initializer evaluation
54066
 
  struct SubObj {
54067
 
#line 54068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54068
 
  friend class ::WinIfExists;
54069
 
  friend class ::WinImportHandler;
54070
 
  friend class ::WinMacros;
54071
 
  friend class ::CMatchSyntax;
54072
 
  friend class ::ExtGnu;
54073
 
  friend class ::ExtAC;
54074
 
  friend class ::ExtACBuilderCoupling;
54075
 
  friend class ::ExtACSyntaxCoupling;
54076
 
  friend class ::ExtACTree;
54077
 
  friend class ::ExtACKeywords;
54078
 
  friend class ::WinAsm;
54079
 
  friend class ::WinDeclSpecs;
54080
 
  friend class ::WinMemberExplSpec;
54081
 
  friend class ::WinTypeKeywords;
54082
 
  friend class ::PragmaOnceUnitState;
54083
 
  friend class ::PragmaOnce;
54084
 
  friend class ::CCExprResolve;
54085
 
  friend class ::CExprResolve;
54086
 
 
54087
 
#line 107 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemExpr.h"
54088
 
 
54089
 
    CObjectInfo *info;
54090
 
    CTypeInfo *type; 
54091
 
    int size; 
54092
 
    
54093
 
    SubObj () 
54094
 
     { info = 0; type = 0; size = 0; }
54095
 
    SubObj (CObjectInfo *i, CTypeInfo *t, int s)
54096
 
     { info = i; type = t; size = s; }
54097
 
    SubObj &operator =(const SubObj& s) 
54098
 
     { info = s.info; type = s.type; size = s.size; return *this; }
54099
 
  };
54100
 
 
54101
 
  void resolveInit (CObjectInfo *, CTree *, CTree *, bool, Stack<SubObj> &);
54102
 
  void singleExprInit (CTree *, CTree *, CTypeInfo *, bool);
54103
 
  void findFirst (CTree *, CTypeInfo *&, CObjectInfo *&, CObjectInfo *&, 
54104
 
                  CObjectInfo *, Stack<SubObj> &, bool) const;
54105
 
  void findNext (CTree *, CTypeInfo *&, CObjectInfo *&, CObjectInfo *&, 
54106
 
                 CObjectInfo *, Stack<SubObj> &, bool) const;
54107
 
  
54108
 
  // helper
54109
 
  void pushSubObj (CTypeInfo *&, CObjectInfo *&, Stack<SubObj> &) const;
54110
 
  void popSubObj (CTypeInfo *&, CObjectInfo *&, CObjectInfo *&, 
54111
 
                  Stack<SubObj> &) const;
54112
 
  CObjectInfo *nextMember (CStructure *, CObjectInfo *) const;
54113
 
  
54114
 
protected: // name lookup
54115
 
  CObjectInfo *lookup (CT_SimpleName *, SemObjType, bool = false) const;
54116
 
  CObjectInfo *lookup (const char *, CStructure *, SemObjType, bool, 
54117
 
                       unsigned long int) const;
54118
 
 
54119
 
  // helper
54120
 
  CObjectInfo *Type (const char *, CStructure *, SemObjType, unsigned long int) const;
54121
 
  CObjectInfo *Attribute (const char *, CStructure *, unsigned long int) const;
54122
 
  CObjectInfo *Function (const char *, CStructure *, unsigned long int) const;
54123
 
  bool known_here (CObjectInfo *, unsigned long int) const;
54124
 
 
54125
 
public: // common helper, also for CSemVisitor
54126
 
  static bool isPtrToObj (CTypeInfo *, unsigned long = 0);
54127
 
  static bool isModifiable (CTypeInfo *, unsigned long = 0);
54128
 
  static bool compatible (CTypeInfo *, CTypeInfo *);
54129
 
  static bool compatibleBase (CTypeInfo *, CTypeInfo *);
54130
 
   private:
54131
 
  typedef CSemExpr ExtGnuStmtExprsCSemExpr;
54132
 
 
54133
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
54134
 
 public :
54135
 
CTypeInfo * resolve ( CT_GnuStatementExpr * , CTree * ) ;
54136
 
#line 149 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemExpr.h"
54137
 
};
54138
 
 
54139
 
inline CSemExpr::CSemExpr (ErrorSink &e, CStructure *s) : 
54140
 
  err (e), current_scope (s), conv_to_ptr (1) {
54141
 
}
54142
 
inline bool CSemExpr::isPtrToObj (CTypeInfo *type, unsigned long pos) {
54143
 
  return type->isPointer () && type->VirtualType ()->BaseType ()->isComplete (pos);
54144
 
}
54145
 
inline bool CSemExpr::isModifiable (CTypeInfo *type, unsigned long pos) {
54146
 
  return ! (! type->isComplete (pos) || type->isArray () || type->isConst () ||
54147
 
             (type->isRecord () && type->VirtualType ()->TypeRecord ()->
54148
 
              hasConstMember ()));
54149
 
}
54150
 
inline bool CSemExpr::compatible (CTypeInfo *t1, CTypeInfo *t2) {
54151
 
  return *t1->VirtualType () == *t2->VirtualType ();
54152
 
}
54153
 
inline bool CSemExpr::compatibleBase (CTypeInfo *t1, CTypeInfo *t2) {
54154
 
  return compatible (t1->VirtualType ()->BaseType (), t2->VirtualType ()->BaseType ());
54155
 
}
54156
 
 
54157
 
 
54158
 
} // namespace Puma
54159
 
 
54160
 
#endif /* __CSemExpr_h__ */
54161
 
 
54162
 
#line 54163 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54163
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemExpr_h__
54164
 
 
54165
 
#line 172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemExpr.h"
54166
 
 
54167
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
54168
 
namespace Puma {
54169
 
  
54170
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
54171
 
 
54172
 
 
54173
 
  
54174
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
54175
 
 
54176
 
}
54177
 
 
54178
 
#endif /* __CExprResolveCC_ah__ */
54179
 
 
54180
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
54181
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
54182
 
// This file is part of PUMA.
54183
 
// Copyright (C) 1999-2003  The PUMA developer team.
54184
 
//                                                                
54185
 
// This program is free software;  you can redistribute it and/or 
54186
 
// modify it under the terms of the GNU General Public License as 
54187
 
// published by the Free Software Foundation; either version 2 of 
54188
 
// the License, or (at your option) any later version.            
54189
 
//                                                                
54190
 
// This program is distributed in the hope that it will be useful,
54191
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
54192
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
54193
 
// GNU General Public License for more details.                   
54194
 
//                                                                
54195
 
// You should have received a copy of the GNU General Public      
54196
 
// License along with this program; if not, write to the Free     
54197
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
54198
 
// MA  02111-1307  USA                                            
54199
 
 
54200
 
 
54201
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54202
 
 
54203
 
#line 54204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54204
 
 
54205
 
#ifndef __ac_fwd_ExtACTree__
54206
 
#define __ac_fwd_ExtACTree__
54207
 
class ExtACTree;
54208
 
namespace AC {
54209
 
  template <class JoinPoint>
54210
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
54211
 
  template <class JoinPoint>
54212
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
54213
 
}
54214
 
#endif
54215
 
 
54216
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
54217
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
54218
 
#endif
54219
 
 
54220
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54221
 
 
54222
 
#line 54223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54223
 
 
54224
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54225
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
54226
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
54227
 
 
54228
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54229
 
// This file is part of PUMA.
54230
 
// Copyright (C) 1999-2003  The PUMA developer team.
54231
 
//                                                                
54232
 
// This program is free software;  you can redistribute it and/or 
54233
 
// modify it under the terms of the GNU General Public License as 
54234
 
// published by the Free Software Foundation; either version 2 of 
54235
 
// the License, or (at your option) any later version.            
54236
 
//                                                                
54237
 
// This program is distributed in the hope that it will be useful,
54238
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
54239
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
54240
 
// GNU General Public License for more details.                   
54241
 
//                                                                
54242
 
// You should have received a copy of the GNU General Public      
54243
 
// License along with this program; if not, write to the Free     
54244
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
54245
 
// MA  02111-1307  USA                                            
54246
 
 
54247
 
#ifndef __CTree_h__
54248
 
#define __CTree_h__
54249
 
 
54250
 
namespace Puma {
54251
 
 
54252
 
 
54253
 
// Syntax tree node hierarchy:
54254
 
class CTree;
54255
 
class   CT_Statement;          
54256
 
class     CT_LabelStmt;
54257
 
class     CT_IfStmt;
54258
 
class     CT_IfElseStmt;
54259
 
class     CT_SwitchStmt;
54260
 
class     CT_BreakStmt;
54261
 
class     CT_ExprStmt;
54262
 
class     CT_WhileStmt;
54263
 
class     CT_DoStmt;
54264
 
class     CT_ForStmt;
54265
 
class     CT_ContinueStmt;
54266
 
class     CT_ReturnStmt;
54267
 
class     CT_GotoStmt;
54268
 
class     CT_DeclStmt;
54269
 
class     CT_CaseStmt;
54270
 
class     CT_DefaultStmt;
54271
 
class     CT_TryStmt;
54272
 
class   CT_Expression;
54273
 
class     CT_ThrowExpr;
54274
 
class     CT_NewExpr;
54275
 
class     CT_DeleteExpr;
54276
 
class     CT_ConstructExpr;
54277
 
class     CT_Integer;
54278
 
class     CT_Character;
54279
 
class       CT_WideCharacter;
54280
 
class     CT_Float;
54281
 
class     CT_Bool;
54282
 
class     CT_BracedExpr;
54283
 
class     CT_BinaryExpr;
54284
 
class       CT_MembPtrExpr;
54285
 
class         CT_MembRefExpr;
54286
 
class     CT_UnaryExpr;
54287
 
class       CT_PostfixExpr;
54288
 
class       CT_AddrExpr;
54289
 
class       CT_DerefExpr;
54290
 
class     CT_IfThenExpr;
54291
 
class     CT_CmpdLiteral;
54292
 
class     CT_IndexExpr;
54293
 
class     CT_CallExpr;
54294
 
class     CT_CastExpr;
54295
 
class     CT_StaticCast;
54296
 
class       CT_ConstCast;
54297
 
class       CT_ReintCast;
54298
 
class       CT_DynamicCast;
54299
 
class     CT_TypeidExpr;
54300
 
class     CT_SizeofExpr;
54301
 
class     CT_MembDesignator;
54302
 
class     CT_IndexDesignator;
54303
 
class     CT_ImplicitCast;
54304
 
class   CT_DeclSpec;
54305
 
class     CT_PrimDeclSpec;
54306
 
class     CT_NamedType;
54307
 
class     CT_ClassSpec;
54308
 
class       CT_UnionSpec;
54309
 
class       CT_EnumSpec;
54310
 
class     CT_ExceptionSpec;
54311
 
class   CT_Declarator;
54312
 
class     CT_InitDeclarator;
54313
 
class     CT_BracedDeclarator;
54314
 
class     CT_ArrayDeclarator;
54315
 
class     CT_FctDeclarator;
54316
 
class     CT_RefDeclarator;
54317
 
class     CT_PtrDeclarator;
54318
 
class     CT_MembPtrDeclarator;
54319
 
class     CT_BitFieldDeclarator;
54320
 
class   CT_Decl;
54321
 
class     CT_ObjDecl;
54322
 
class     CT_ArgDecl;
54323
 
class     CT_AccessDecl;
54324
 
class       CT_UsingDecl;
54325
 
class     CT_FctDef;
54326
 
class     CT_AsmDef;
54327
 
class     CT_EnumDef;
54328
 
class     CT_ClassDef;
54329
 
class       CT_UnionDef;
54330
 
class     CT_Enumerator;
54331
 
class     CT_LinkageSpec;
54332
 
class     CT_Handler;
54333
 
class     CT_TemplateDecl;
54334
 
class     CT_TemplateParamDecl;
54335
 
class       CT_TypeParamDecl;
54336
 
class       CT_NonTypeParamDecl;
54337
 
class     CT_NamespaceDef;
54338
 
class     CT_NamespaceAliasDef;
54339
 
class     CT_UsingDirective;
54340
 
class   CT_List;
54341
 
class     CT_CmpdStmt;
54342
 
class     CT_DeclSpecSeq;
54343
 
class     CT_HandlerSeq;
54344
 
class     CT_DesignatorSeq;
54345
 
class     CT_DeclList;
54346
 
class       CT_Program;
54347
 
class       CT_ArgDeclList;
54348
 
class         CT_ArgNameList;
54349
 
class       CT_ArgDeclSeq;
54350
 
class       CT_MembList;
54351
 
class     CT_ExprList;
54352
 
class     CT_DeclaratorList;
54353
 
class     CT_BaseSpecList;
54354
 
class     CT_MembInitList;
54355
 
class     CT_SimpleName;
54356
 
class       CT_SpecialName;
54357
 
class         CT_PrivateName;
54358
 
class         CT_OperatorName;
54359
 
class         CT_DestructorName;
54360
 
class         CT_ConversionName;
54361
 
class         CT_TemplateName;
54362
 
class       CT_QualName;
54363
 
class         CT_RootQualName;
54364
 
class     CT_String;
54365
 
class       CT_WideString;
54366
 
class     CT_TemplateParamList;
54367
 
class     CT_TemplateArgList;
54368
 
class   CT_Token;
54369
 
class   CT_Error;
54370
 
class   CT_Condition;
54371
 
class   CT_BaseSpec;
54372
 
class   CT_AccessSpec;
54373
 
class   CT_ArrayDelimiter;
54374
 
class   CT_Any;
54375
 
class   CT_AnyList;
54376
 
class   CT_AnyExtension;
54377
 
class   CT_AnyCondition;
54378
 
 
54379
 
 
54380
 
} // namespace Puma
54381
 
 
54382
 
#include "Puma/ErrorSeverity.h"
54383
 
#include "Puma/CSemObject.h"
54384
 
#include "Puma/CSemScope.h"
54385
 
#include "Puma/CSemValue.h"
54386
 
#include "Puma/CExprValue.h"
54387
 
#include "Puma/CStrLiteral.h"
54388
 
#include "Puma/CTypeInfo.h"
54389
 
#include "Puma/Printable.h"
54390
 
#include "Puma/CTokens.h"
54391
 
#include "Puma/Token.h"
54392
 
 
54393
 
#include <iostream>
54394
 
#include <string.h>
54395
 
using namespace std;
54396
 
 
54397
 
namespace Puma {
54398
 
 
54399
 
 
54400
 
class ErrorStream;
54401
 
class CObjectInfo;
54402
 
class CStructure;
54403
 
 
54404
 
/*****************************************************************************/
54405
 
/*                                                                           */
54406
 
/*                    S y n t a x  t r e e  n o d e s                        */
54407
 
/*                                                                           */
54408
 
/*****************************************************************************/
54409
 
 
54410
 
 
54411
 
#line 54412 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54412
 
} // closed Puma
54413
 
class WinIfExists;
54414
 
class WinImportHandler;
54415
 
class WinMacros;
54416
 
class CMatchSyntax;
54417
 
class ExtGnu;
54418
 
class ExtAC;
54419
 
class ExtACBuilderCoupling;
54420
 
class ExtACSyntaxCoupling;
54421
 
class ExtACTree;
54422
 
class ExtACKeywords;
54423
 
class WinAsm;
54424
 
class WinDeclSpecs;
54425
 
class WinMemberExplSpec;
54426
 
class WinTypeKeywords;
54427
 
class PragmaOnceUnitState;
54428
 
class PragmaOnce;
54429
 
class CCExprResolve;
54430
 
class CExprResolve;
54431
 
namespace Puma {
54432
 
 
54433
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54434
 
class CTree {
54435
 
#line 54436 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54436
 
  friend class ::WinIfExists;
54437
 
  friend class ::WinImportHandler;
54438
 
  friend class ::WinMacros;
54439
 
  friend class ::CMatchSyntax;
54440
 
  friend class ::ExtGnu;
54441
 
  friend class ::ExtAC;
54442
 
  friend class ::ExtACBuilderCoupling;
54443
 
  friend class ::ExtACSyntaxCoupling;
54444
 
  friend class ::ExtACTree;
54445
 
  friend class ::ExtACKeywords;
54446
 
  friend class ::WinAsm;
54447
 
  friend class ::WinDeclSpecs;
54448
 
  friend class ::WinMemberExplSpec;
54449
 
  friend class ::WinTypeKeywords;
54450
 
  friend class ::PragmaOnceUnitState;
54451
 
  friend class ::PragmaOnce;
54452
 
  friend class ::CCExprResolve;
54453
 
  friend class ::CExprResolve;
54454
 
 
54455
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54456
 
 
54457
 
public:
54458
 
  /*DEBUG*/static int alloc;
54459
 
  /*DEBUG*/static int release;
54460
 
 
54461
 
protected:
54462
 
  CTree *Son (CTree * const *, int, int) const;
54463
 
  int Sons (CTree * const *, int) const;
54464
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
54465
 
  
54466
 
protected:
54467
 
  CTree () { /*DEBUG*/alloc++; }
54468
 
 
54469
 
public:
54470
 
  virtual ~CTree () { /*DEBUG*/release++; }
54471
 
  virtual int Sons () const = 0;
54472
 
  virtual CTree *Son (int n) const { return (CTree*)0; }
54473
 
  virtual const char *NodeName () const = 0;
54474
 
  virtual Token *token () const;
54475
 
  virtual Token *end_token () const;
54476
 
  virtual CT_Token *token_node () const;
54477
 
  virtual CT_Token *end_token_node () const;
54478
 
  virtual void ReplaceSon (CTree *, CTree *) {}
54479
 
 
54480
 
public: // semantic information
54481
 
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
54482
 
  virtual CExprValue *Value () const { return (CExprValue*)0; }
54483
 
  
54484
 
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
54485
 
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
54486
 
  
54487
 
public: // node classification function
54488
 
  virtual CT_SimpleName *IsSimpleName () { return 0; }
54489
 
  virtual CT_Declarator *IsDeclarator () { return 0; }
54490
 
   private:
54491
 
  typedef CTree CCExprResolveCTree;
54492
 
 
54493
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
54494
 
 public :
54495
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
54496
 
  typedef CTree CExprResolveCTree;
54497
 
 
54498
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
54499
 
 public :
54500
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
54501
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54502
 
};
54503
 
 
54504
 
 
54505
 
#line 54506 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54506
 
} // closed Puma
54507
 
class WinIfExists;
54508
 
class WinImportHandler;
54509
 
class WinMacros;
54510
 
class CMatchSyntax;
54511
 
class ExtGnu;
54512
 
class ExtAC;
54513
 
class ExtACBuilderCoupling;
54514
 
class ExtACSyntaxCoupling;
54515
 
class ExtACTree;
54516
 
class ExtACKeywords;
54517
 
class WinAsm;
54518
 
class WinDeclSpecs;
54519
 
class WinMemberExplSpec;
54520
 
class WinTypeKeywords;
54521
 
class PragmaOnceUnitState;
54522
 
class PragmaOnce;
54523
 
class CCExprResolve;
54524
 
class CExprResolve;
54525
 
namespace Puma {
54526
 
 
54527
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54528
 
class CT_Error : public CTree {
54529
 
#line 54530 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54530
 
  friend class ::WinIfExists;
54531
 
  friend class ::WinImportHandler;
54532
 
  friend class ::WinMacros;
54533
 
  friend class ::CMatchSyntax;
54534
 
  friend class ::ExtGnu;
54535
 
  friend class ::ExtAC;
54536
 
  friend class ::ExtACBuilderCoupling;
54537
 
  friend class ::ExtACSyntaxCoupling;
54538
 
  friend class ::ExtACTree;
54539
 
  friend class ::ExtACKeywords;
54540
 
  friend class ::WinAsm;
54541
 
  friend class ::WinDeclSpecs;
54542
 
  friend class ::WinMemberExplSpec;
54543
 
  friend class ::WinTypeKeywords;
54544
 
  friend class ::PragmaOnceUnitState;
54545
 
  friend class ::PragmaOnce;
54546
 
  friend class ::CCExprResolve;
54547
 
  friend class ::CExprResolve;
54548
 
 
54549
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54550
 
 
54551
 
public:
54552
 
  static const char *NodeId ();
54553
 
  const char *NodeName () const { return NodeId (); }
54554
 
  int Sons () const { return 0; }
54555
 
};
54556
 
 
54557
 
 
54558
 
#line 54559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54559
 
} // closed Puma
54560
 
class WinIfExists;
54561
 
class WinImportHandler;
54562
 
class WinMacros;
54563
 
class CMatchSyntax;
54564
 
class ExtGnu;
54565
 
class ExtAC;
54566
 
class ExtACBuilderCoupling;
54567
 
class ExtACSyntaxCoupling;
54568
 
class ExtACTree;
54569
 
class ExtACKeywords;
54570
 
class WinAsm;
54571
 
class WinDeclSpecs;
54572
 
class WinMemberExplSpec;
54573
 
class WinTypeKeywords;
54574
 
class PragmaOnceUnitState;
54575
 
class PragmaOnce;
54576
 
class CCExprResolve;
54577
 
class CExprResolve;
54578
 
namespace Puma {
54579
 
 
54580
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54581
 
class CT_Token : public CTree {
54582
 
#line 54583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54583
 
  friend class ::WinIfExists;
54584
 
  friend class ::WinImportHandler;
54585
 
  friend class ::WinMacros;
54586
 
  friend class ::CMatchSyntax;
54587
 
  friend class ::ExtGnu;
54588
 
  friend class ::ExtAC;
54589
 
  friend class ::ExtACBuilderCoupling;
54590
 
  friend class ::ExtACSyntaxCoupling;
54591
 
  friend class ::ExtACTree;
54592
 
  friend class ::ExtACKeywords;
54593
 
  friend class ::WinAsm;
54594
 
  friend class ::WinDeclSpecs;
54595
 
  friend class ::WinMemberExplSpec;
54596
 
  friend class ::WinTypeKeywords;
54597
 
  friend class ::PragmaOnceUnitState;
54598
 
  friend class ::PragmaOnce;
54599
 
  friend class ::CCExprResolve;
54600
 
  friend class ::CExprResolve;
54601
 
 
54602
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54603
 
 
54604
 
  Token *_token;
54605
 
  unsigned long int _number;
54606
 
  
54607
 
public:
54608
 
  CT_Token (Token *t, unsigned long int n = 0) : 
54609
 
    _token (t), _number (n) {}
54610
 
  static const char *NodeId ();
54611
 
  const char *NodeName () const { return NodeId (); }
54612
 
  int Sons () const { return 0; }
54613
 
  Token *token () const { return _token; }
54614
 
  Token *end_token () const { return _token; }
54615
 
  CT_Token *token_node () const { return (CT_Token*)this; }
54616
 
  CT_Token *end_token_node () const { return (CT_Token*)this; }
54617
 
  void Number (unsigned long int n) { _number = n; }
54618
 
  unsigned long int Number () const { return _number; }
54619
 
  // special new / delete with reusing memory
54620
 
  void *operator new (size_t);
54621
 
  void  operator delete (void *);
54622
 
};
54623
 
 
54624
 
/*****************************************************************************/
54625
 
/*                                                                           */
54626
 
/*                              List nodes                                   */
54627
 
/*                                                                           */
54628
 
/*****************************************************************************/
54629
 
 
54630
 
 
54631
 
#line 54632 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54632
 
} // closed Puma
54633
 
class WinIfExists;
54634
 
class WinImportHandler;
54635
 
class WinMacros;
54636
 
class CMatchSyntax;
54637
 
class ExtGnu;
54638
 
class ExtAC;
54639
 
class ExtACBuilderCoupling;
54640
 
class ExtACSyntaxCoupling;
54641
 
class ExtACTree;
54642
 
class ExtACKeywords;
54643
 
class WinAsm;
54644
 
class WinDeclSpecs;
54645
 
class WinMemberExplSpec;
54646
 
class WinTypeKeywords;
54647
 
class PragmaOnceUnitState;
54648
 
class PragmaOnce;
54649
 
class CCExprResolve;
54650
 
class CExprResolve;
54651
 
namespace Puma {
54652
 
 
54653
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54654
 
class CT_List : public CTree {
54655
 
#line 54656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54656
 
  friend class ::WinIfExists;
54657
 
  friend class ::WinImportHandler;
54658
 
  friend class ::WinMacros;
54659
 
  friend class ::CMatchSyntax;
54660
 
  friend class ::ExtGnu;
54661
 
  friend class ::ExtAC;
54662
 
  friend class ::ExtACBuilderCoupling;
54663
 
  friend class ::ExtACSyntaxCoupling;
54664
 
  friend class ::ExtACTree;
54665
 
  friend class ::ExtACKeywords;
54666
 
  friend class ::WinAsm;
54667
 
  friend class ::WinDeclSpecs;
54668
 
  friend class ::WinMemberExplSpec;
54669
 
  friend class ::WinTypeKeywords;
54670
 
  friend class ::PragmaOnceUnitState;
54671
 
  friend class ::PragmaOnce;
54672
 
  friend class ::CCExprResolve;
54673
 
  friend class ::CExprResolve;
54674
 
 
54675
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54676
 
 
54677
 
  Array<CTree*> _sons;
54678
 
  int _properties;
54679
 
 
54680
 
protected:
54681
 
  CT_List(int size = 5, int incr = 5, int props = 0) : 
54682
 
    _sons (size, incr), _properties (props) {}
54683
 
 
54684
 
public:
54685
 
  enum {
54686
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
54687
 
    CLOSE = 2,
54688
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
54689
 
    SEPARATORS = 4,   // the list has separators like ','
54690
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
54691
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
54692
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
54693
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
54694
 
  };
54695
 
 
54696
 
  int Entries () const;
54697
 
  CTree *Entry (int no) const;
54698
 
  int Sons () const { return _sons.length (); }
54699
 
  CTree *Son (int n) const { return _sons.lookup (n); }
54700
 
  int GetProperties () const { return _properties; }
54701
 
  void AddProperties (int p) { _properties |= p; }
54702
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
54703
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
54704
 
  void InsertSon (CTree *, CTree *);  // before given son
54705
 
  void ReplaceSon (CTree *, CTree *);
54706
 
  void RemoveSon (CTree *);
54707
 
  void InsertSon (int idx, CTree *s)
54708
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
54709
 
  void ReplaceSon (int idx, CTree *s) 
54710
 
   { if (idx < Sons ()) _sons[idx] = s; }
54711
 
  void RemoveSon (int idx) 
54712
 
   { if (idx < Sons ()) _sons.remove (idx); }
54713
 
};
54714
 
 
54715
 
 
54716
 
#line 54717 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54717
 
} // closed Puma
54718
 
class WinIfExists;
54719
 
class WinImportHandler;
54720
 
class WinMacros;
54721
 
class CMatchSyntax;
54722
 
class ExtGnu;
54723
 
class ExtAC;
54724
 
class ExtACBuilderCoupling;
54725
 
class ExtACSyntaxCoupling;
54726
 
class ExtACTree;
54727
 
class ExtACKeywords;
54728
 
class WinAsm;
54729
 
class WinDeclSpecs;
54730
 
class WinMemberExplSpec;
54731
 
class WinTypeKeywords;
54732
 
class PragmaOnceUnitState;
54733
 
class PragmaOnce;
54734
 
class CCExprResolve;
54735
 
class CExprResolve;
54736
 
namespace Puma {
54737
 
 
54738
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54739
 
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
54740
 
#line 54741 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54741
 
  friend class ::WinIfExists;
54742
 
  friend class ::WinImportHandler;
54743
 
  friend class ::WinMacros;
54744
 
  friend class ::CMatchSyntax;
54745
 
  friend class ::ExtGnu;
54746
 
  friend class ::ExtAC;
54747
 
  friend class ::ExtACBuilderCoupling;
54748
 
  friend class ::ExtACSyntaxCoupling;
54749
 
  friend class ::ExtACTree;
54750
 
  friend class ::ExtACKeywords;
54751
 
  friend class ::WinAsm;
54752
 
  friend class ::WinDeclSpecs;
54753
 
  friend class ::WinMemberExplSpec;
54754
 
  friend class ::WinTypeKeywords;
54755
 
  friend class ::PragmaOnceUnitState;
54756
 
  friend class ::PragmaOnce;
54757
 
  friend class ::CCExprResolve;
54758
 
  friend class ::CExprResolve;
54759
 
 
54760
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54761
 
 
54762
 
public:
54763
 
  CT_ExprList () { AddProperties (SEPARATORS); }
54764
 
  static const char *NodeId ();
54765
 
  const char *NodeName () const { return NodeId (); }
54766
 
 
54767
 
  CTypeInfo *Type () const { return type; }
54768
 
  CExprValue *Value () const { return value; }
54769
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
54770
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
54771
 
};
54772
 
 
54773
 
 
54774
 
#line 54775 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54775
 
} // closed Puma
54776
 
class WinIfExists;
54777
 
class WinImportHandler;
54778
 
class WinMacros;
54779
 
class CMatchSyntax;
54780
 
class ExtGnu;
54781
 
class ExtAC;
54782
 
class ExtACBuilderCoupling;
54783
 
class ExtACSyntaxCoupling;
54784
 
class ExtACTree;
54785
 
class ExtACKeywords;
54786
 
class WinAsm;
54787
 
class WinDeclSpecs;
54788
 
class WinMemberExplSpec;
54789
 
class WinTypeKeywords;
54790
 
class PragmaOnceUnitState;
54791
 
class PragmaOnce;
54792
 
class CCExprResolve;
54793
 
class CExprResolve;
54794
 
namespace Puma {
54795
 
 
54796
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54797
 
class CT_DeclaratorList : public CT_List {
54798
 
#line 54799 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54799
 
  friend class ::WinIfExists;
54800
 
  friend class ::WinImportHandler;
54801
 
  friend class ::WinMacros;
54802
 
  friend class ::CMatchSyntax;
54803
 
  friend class ::ExtGnu;
54804
 
  friend class ::ExtAC;
54805
 
  friend class ::ExtACBuilderCoupling;
54806
 
  friend class ::ExtACSyntaxCoupling;
54807
 
  friend class ::ExtACTree;
54808
 
  friend class ::ExtACKeywords;
54809
 
  friend class ::WinAsm;
54810
 
  friend class ::WinDeclSpecs;
54811
 
  friend class ::WinMemberExplSpec;
54812
 
  friend class ::WinTypeKeywords;
54813
 
  friend class ::PragmaOnceUnitState;
54814
 
  friend class ::PragmaOnce;
54815
 
  friend class ::CCExprResolve;
54816
 
  friend class ::CExprResolve;
54817
 
 
54818
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54819
 
 
54820
 
public:
54821
 
  static const char *NodeId ();
54822
 
  const char *NodeName () const { return NodeId (); }
54823
 
};
54824
 
 
54825
 
 
54826
 
#line 54827 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54827
 
} // closed Puma
54828
 
class WinIfExists;
54829
 
class WinImportHandler;
54830
 
class WinMacros;
54831
 
class CMatchSyntax;
54832
 
class ExtGnu;
54833
 
class ExtAC;
54834
 
class ExtACBuilderCoupling;
54835
 
class ExtACSyntaxCoupling;
54836
 
class ExtACTree;
54837
 
class ExtACKeywords;
54838
 
class WinAsm;
54839
 
class WinDeclSpecs;
54840
 
class WinMemberExplSpec;
54841
 
class WinTypeKeywords;
54842
 
class PragmaOnceUnitState;
54843
 
class PragmaOnce;
54844
 
class CCExprResolve;
54845
 
class CExprResolve;
54846
 
namespace Puma {
54847
 
 
54848
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54849
 
class CT_EnumeratorList : public CT_List {
54850
 
#line 54851 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54851
 
  friend class ::WinIfExists;
54852
 
  friend class ::WinImportHandler;
54853
 
  friend class ::WinMacros;
54854
 
  friend class ::CMatchSyntax;
54855
 
  friend class ::ExtGnu;
54856
 
  friend class ::ExtAC;
54857
 
  friend class ::ExtACBuilderCoupling;
54858
 
  friend class ::ExtACSyntaxCoupling;
54859
 
  friend class ::ExtACTree;
54860
 
  friend class ::ExtACKeywords;
54861
 
  friend class ::WinAsm;
54862
 
  friend class ::WinDeclSpecs;
54863
 
  friend class ::WinMemberExplSpec;
54864
 
  friend class ::WinTypeKeywords;
54865
 
  friend class ::PragmaOnceUnitState;
54866
 
  friend class ::PragmaOnce;
54867
 
  friend class ::CCExprResolve;
54868
 
  friend class ::CExprResolve;
54869
 
 
54870
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54871
 
 
54872
 
public:
54873
 
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
54874
 
  static const char *NodeId ();
54875
 
  const char *NodeName () const { return NodeId (); }
54876
 
};
54877
 
   
54878
 
 
54879
 
#line 54880 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54880
 
} // closed Puma
54881
 
class WinIfExists;
54882
 
class WinImportHandler;
54883
 
class WinMacros;
54884
 
class CMatchSyntax;
54885
 
class ExtGnu;
54886
 
class ExtAC;
54887
 
class ExtACBuilderCoupling;
54888
 
class ExtACSyntaxCoupling;
54889
 
class ExtACTree;
54890
 
class ExtACKeywords;
54891
 
class WinAsm;
54892
 
class WinDeclSpecs;
54893
 
class WinMemberExplSpec;
54894
 
class WinTypeKeywords;
54895
 
class PragmaOnceUnitState;
54896
 
class PragmaOnce;
54897
 
class CCExprResolve;
54898
 
class CExprResolve;
54899
 
namespace Puma {
54900
 
 
54901
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54902
 
class CT_DeclList : public CT_List {
54903
 
#line 54904 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54904
 
  friend class ::WinIfExists;
54905
 
  friend class ::WinImportHandler;
54906
 
  friend class ::WinMacros;
54907
 
  friend class ::CMatchSyntax;
54908
 
  friend class ::ExtGnu;
54909
 
  friend class ::ExtAC;
54910
 
  friend class ::ExtACBuilderCoupling;
54911
 
  friend class ::ExtACSyntaxCoupling;
54912
 
  friend class ::ExtACTree;
54913
 
  friend class ::ExtACKeywords;
54914
 
  friend class ::WinAsm;
54915
 
  friend class ::WinDeclSpecs;
54916
 
  friend class ::WinMemberExplSpec;
54917
 
  friend class ::WinTypeKeywords;
54918
 
  friend class ::PragmaOnceUnitState;
54919
 
  friend class ::PragmaOnce;
54920
 
  friend class ::CCExprResolve;
54921
 
  friend class ::CExprResolve;
54922
 
 
54923
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54924
 
 
54925
 
public:
54926
 
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
54927
 
  static const char *NodeId ();
54928
 
  const char *NodeName () const { return NodeId (); }
54929
 
  void Linkage (CT_LinkageSpec *l);
54930
 
};
54931
 
 
54932
 
 
54933
 
#line 54934 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54934
 
} // closed Puma
54935
 
class WinIfExists;
54936
 
class WinImportHandler;
54937
 
class WinMacros;
54938
 
class CMatchSyntax;
54939
 
class ExtGnu;
54940
 
class ExtAC;
54941
 
class ExtACBuilderCoupling;
54942
 
class ExtACSyntaxCoupling;
54943
 
class ExtACTree;
54944
 
class ExtACKeywords;
54945
 
class WinAsm;
54946
 
class WinDeclSpecs;
54947
 
class WinMemberExplSpec;
54948
 
class WinTypeKeywords;
54949
 
class PragmaOnceUnitState;
54950
 
class PragmaOnce;
54951
 
class CCExprResolve;
54952
 
class CExprResolve;
54953
 
namespace Puma {
54954
 
 
54955
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54956
 
class CT_DeclSpecSeq : public CT_List {
54957
 
#line 54958 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54958
 
  friend class ::WinIfExists;
54959
 
  friend class ::WinImportHandler;
54960
 
  friend class ::WinMacros;
54961
 
  friend class ::CMatchSyntax;
54962
 
  friend class ::ExtGnu;
54963
 
  friend class ::ExtAC;
54964
 
  friend class ::ExtACBuilderCoupling;
54965
 
  friend class ::ExtACSyntaxCoupling;
54966
 
  friend class ::ExtACTree;
54967
 
  friend class ::ExtACKeywords;
54968
 
  friend class ::WinAsm;
54969
 
  friend class ::WinDeclSpecs;
54970
 
  friend class ::WinMemberExplSpec;
54971
 
  friend class ::WinTypeKeywords;
54972
 
  friend class ::PragmaOnceUnitState;
54973
 
  friend class ::PragmaOnce;
54974
 
  friend class ::CCExprResolve;
54975
 
  friend class ::CExprResolve;
54976
 
 
54977
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
54978
 
 
54979
 
public:
54980
 
  static const char *NodeId ();
54981
 
  const char *NodeName () const { return NodeId (); }
54982
 
};
54983
 
 
54984
 
 
54985
 
#line 54986 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
54986
 
} // closed Puma
54987
 
class WinIfExists;
54988
 
class WinImportHandler;
54989
 
class WinMacros;
54990
 
class CMatchSyntax;
54991
 
class ExtGnu;
54992
 
class ExtAC;
54993
 
class ExtACBuilderCoupling;
54994
 
class ExtACSyntaxCoupling;
54995
 
class ExtACTree;
54996
 
class ExtACKeywords;
54997
 
class WinAsm;
54998
 
class WinDeclSpecs;
54999
 
class WinMemberExplSpec;
55000
 
class WinTypeKeywords;
55001
 
class PragmaOnceUnitState;
55002
 
class PragmaOnce;
55003
 
class CCExprResolve;
55004
 
class CExprResolve;
55005
 
namespace Puma {
55006
 
 
55007
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55008
 
class CT_CmpdStmt : public CT_List, public CSemScope {
55009
 
#line 55010 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55010
 
  friend class ::WinIfExists;
55011
 
  friend class ::WinImportHandler;
55012
 
  friend class ::WinMacros;
55013
 
  friend class ::CMatchSyntax;
55014
 
  friend class ::ExtGnu;
55015
 
  friend class ::ExtAC;
55016
 
  friend class ::ExtACBuilderCoupling;
55017
 
  friend class ::ExtACSyntaxCoupling;
55018
 
  friend class ::ExtACTree;
55019
 
  friend class ::ExtACKeywords;
55020
 
  friend class ::WinAsm;
55021
 
  friend class ::WinDeclSpecs;
55022
 
  friend class ::WinMemberExplSpec;
55023
 
  friend class ::WinTypeKeywords;
55024
 
  friend class ::PragmaOnceUnitState;
55025
 
  friend class ::PragmaOnce;
55026
 
  friend class ::CCExprResolve;
55027
 
  friend class ::CExprResolve;
55028
 
 
55029
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55030
 
 
55031
 
public:
55032
 
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
55033
 
  static const char *NodeId ();
55034
 
  const char *NodeName () const { return NodeId (); }
55035
 
};
55036
 
 
55037
 
 
55038
 
#line 55039 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55039
 
} // closed Puma
55040
 
class WinIfExists;
55041
 
class WinImportHandler;
55042
 
class WinMacros;
55043
 
class CMatchSyntax;
55044
 
class ExtGnu;
55045
 
class ExtAC;
55046
 
class ExtACBuilderCoupling;
55047
 
class ExtACSyntaxCoupling;
55048
 
class ExtACTree;
55049
 
class ExtACKeywords;
55050
 
class WinAsm;
55051
 
class WinDeclSpecs;
55052
 
class WinMemberExplSpec;
55053
 
class WinTypeKeywords;
55054
 
class PragmaOnceUnitState;
55055
 
class PragmaOnce;
55056
 
class CCExprResolve;
55057
 
class CExprResolve;
55058
 
namespace Puma {
55059
 
 
55060
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55061
 
class CT_HandlerSeq : public CT_List {
55062
 
#line 55063 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55063
 
  friend class ::WinIfExists;
55064
 
  friend class ::WinImportHandler;
55065
 
  friend class ::WinMacros;
55066
 
  friend class ::CMatchSyntax;
55067
 
  friend class ::ExtGnu;
55068
 
  friend class ::ExtAC;
55069
 
  friend class ::ExtACBuilderCoupling;
55070
 
  friend class ::ExtACSyntaxCoupling;
55071
 
  friend class ::ExtACTree;
55072
 
  friend class ::ExtACKeywords;
55073
 
  friend class ::WinAsm;
55074
 
  friend class ::WinDeclSpecs;
55075
 
  friend class ::WinMemberExplSpec;
55076
 
  friend class ::WinTypeKeywords;
55077
 
  friend class ::PragmaOnceUnitState;
55078
 
  friend class ::PragmaOnce;
55079
 
  friend class ::CCExprResolve;
55080
 
  friend class ::CExprResolve;
55081
 
 
55082
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55083
 
 
55084
 
public:
55085
 
  static const char *NodeId ();
55086
 
  const char *NodeName () const { return NodeId (); }
55087
 
};
55088
 
 
55089
 
 
55090
 
#line 55091 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55091
 
} // closed Puma
55092
 
class WinIfExists;
55093
 
class WinImportHandler;
55094
 
class WinMacros;
55095
 
class CMatchSyntax;
55096
 
class ExtGnu;
55097
 
class ExtAC;
55098
 
class ExtACBuilderCoupling;
55099
 
class ExtACSyntaxCoupling;
55100
 
class ExtACTree;
55101
 
class ExtACKeywords;
55102
 
class WinAsm;
55103
 
class WinDeclSpecs;
55104
 
class WinMemberExplSpec;
55105
 
class WinTypeKeywords;
55106
 
class PragmaOnceUnitState;
55107
 
class PragmaOnce;
55108
 
class CCExprResolve;
55109
 
class CExprResolve;
55110
 
namespace Puma {
55111
 
 
55112
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55113
 
class CT_TemplateParamList : public CT_List, public CSemScope {
55114
 
#line 55115 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55115
 
  friend class ::WinIfExists;
55116
 
  friend class ::WinImportHandler;
55117
 
  friend class ::WinMacros;
55118
 
  friend class ::CMatchSyntax;
55119
 
  friend class ::ExtGnu;
55120
 
  friend class ::ExtAC;
55121
 
  friend class ::ExtACBuilderCoupling;
55122
 
  friend class ::ExtACSyntaxCoupling;
55123
 
  friend class ::ExtACTree;
55124
 
  friend class ::ExtACKeywords;
55125
 
  friend class ::WinAsm;
55126
 
  friend class ::WinDeclSpecs;
55127
 
  friend class ::WinMemberExplSpec;
55128
 
  friend class ::WinTypeKeywords;
55129
 
  friend class ::PragmaOnceUnitState;
55130
 
  friend class ::PragmaOnce;
55131
 
  friend class ::CCExprResolve;
55132
 
  friend class ::CExprResolve;
55133
 
 
55134
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55135
 
 
55136
 
public:
55137
 
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
55138
 
  static const char *NodeId ();
55139
 
  const char *NodeName () const { return NodeId (); }
55140
 
};
55141
 
 
55142
 
 
55143
 
#line 55144 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55144
 
} // closed Puma
55145
 
class WinIfExists;
55146
 
class WinImportHandler;
55147
 
class WinMacros;
55148
 
class CMatchSyntax;
55149
 
class ExtGnu;
55150
 
class ExtAC;
55151
 
class ExtACBuilderCoupling;
55152
 
class ExtACSyntaxCoupling;
55153
 
class ExtACTree;
55154
 
class ExtACKeywords;
55155
 
class WinAsm;
55156
 
class WinDeclSpecs;
55157
 
class WinMemberExplSpec;
55158
 
class WinTypeKeywords;
55159
 
class PragmaOnceUnitState;
55160
 
class PragmaOnce;
55161
 
class CCExprResolve;
55162
 
class CExprResolve;
55163
 
namespace Puma {
55164
 
 
55165
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55166
 
class CT_TemplateArgList : public CT_List {
55167
 
#line 55168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55168
 
  friend class ::WinIfExists;
55169
 
  friend class ::WinImportHandler;
55170
 
  friend class ::WinMacros;
55171
 
  friend class ::CMatchSyntax;
55172
 
  friend class ::ExtGnu;
55173
 
  friend class ::ExtAC;
55174
 
  friend class ::ExtACBuilderCoupling;
55175
 
  friend class ::ExtACSyntaxCoupling;
55176
 
  friend class ::ExtACTree;
55177
 
  friend class ::ExtACKeywords;
55178
 
  friend class ::WinAsm;
55179
 
  friend class ::WinDeclSpecs;
55180
 
  friend class ::WinMemberExplSpec;
55181
 
  friend class ::WinTypeKeywords;
55182
 
  friend class ::PragmaOnceUnitState;
55183
 
  friend class ::PragmaOnce;
55184
 
  friend class ::CCExprResolve;
55185
 
  friend class ::CExprResolve;
55186
 
 
55187
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55188
 
 
55189
 
public:
55190
 
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
55191
 
  static const char *NodeId ();
55192
 
  const char *NodeName () const { return NodeId (); }
55193
 
};
55194
 
 
55195
 
/*****************************************************************************/
55196
 
/*                                                                           */
55197
 
/*                              Expressions                                  */
55198
 
/*                                                                           */
55199
 
/*****************************************************************************/
55200
 
 
55201
 
 
55202
 
#line 55203 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55203
 
} // closed Puma
55204
 
class WinIfExists;
55205
 
class WinImportHandler;
55206
 
class WinMacros;
55207
 
class CMatchSyntax;
55208
 
class ExtGnu;
55209
 
class ExtAC;
55210
 
class ExtACBuilderCoupling;
55211
 
class ExtACSyntaxCoupling;
55212
 
class ExtACTree;
55213
 
class ExtACKeywords;
55214
 
class WinAsm;
55215
 
class WinDeclSpecs;
55216
 
class WinMemberExplSpec;
55217
 
class WinTypeKeywords;
55218
 
class PragmaOnceUnitState;
55219
 
class PragmaOnce;
55220
 
class CCExprResolve;
55221
 
class CExprResolve;
55222
 
namespace Puma {
55223
 
 
55224
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55225
 
class CT_Expression : public CTree, public CSemValue {
55226
 
#line 55227 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55227
 
  friend class ::WinIfExists;
55228
 
  friend class ::WinImportHandler;
55229
 
  friend class ::WinMacros;
55230
 
  friend class ::CMatchSyntax;
55231
 
  friend class ::ExtGnu;
55232
 
  friend class ::ExtAC;
55233
 
  friend class ::ExtACBuilderCoupling;
55234
 
  friend class ::ExtACSyntaxCoupling;
55235
 
  friend class ::ExtACTree;
55236
 
  friend class ::ExtACKeywords;
55237
 
  friend class ::WinAsm;
55238
 
  friend class ::WinDeclSpecs;
55239
 
  friend class ::WinMemberExplSpec;
55240
 
  friend class ::WinTypeKeywords;
55241
 
  friend class ::PragmaOnceUnitState;
55242
 
  friend class ::PragmaOnce;
55243
 
  friend class ::CCExprResolve;
55244
 
  friend class ::CExprResolve;
55245
 
 
55246
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55247
 
 
55248
 
protected:
55249
 
  CT_Expression () {}
55250
 
 
55251
 
public:
55252
 
  static const char *NodeId ();
55253
 
  const char *NodeName () const { return NodeId (); }
55254
 
  CTypeInfo *Type () const { return type; }
55255
 
  CExprValue *Value () const { return value; }
55256
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
55257
 
   private:
55258
 
  typedef CT_Expression CCExprResolveExpr;
55259
 
 
55260
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
55261
 
 public :
55262
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
55263
 
  typedef CT_Expression CExprResolveExpr;
55264
 
 
55265
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
55266
 
 public :
55267
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
55268
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55269
 
};
55270
 
 
55271
 
 
55272
 
#line 55273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55273
 
} // closed Puma
55274
 
class WinIfExists;
55275
 
class WinImportHandler;
55276
 
class WinMacros;
55277
 
class CMatchSyntax;
55278
 
class ExtGnu;
55279
 
class ExtAC;
55280
 
class ExtACBuilderCoupling;
55281
 
class ExtACSyntaxCoupling;
55282
 
class ExtACTree;
55283
 
class ExtACKeywords;
55284
 
class WinAsm;
55285
 
class WinDeclSpecs;
55286
 
class WinMemberExplSpec;
55287
 
class WinTypeKeywords;
55288
 
class PragmaOnceUnitState;
55289
 
class PragmaOnce;
55290
 
class CCExprResolve;
55291
 
class CExprResolve;
55292
 
namespace Puma {
55293
 
 
55294
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55295
 
class CT_String : public CT_List, public CSemValue {
55296
 
#line 55297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55297
 
  friend class ::WinIfExists;
55298
 
  friend class ::WinImportHandler;
55299
 
  friend class ::WinMacros;
55300
 
  friend class ::CMatchSyntax;
55301
 
  friend class ::ExtGnu;
55302
 
  friend class ::ExtAC;
55303
 
  friend class ::ExtACBuilderCoupling;
55304
 
  friend class ::ExtACSyntaxCoupling;
55305
 
  friend class ::ExtACTree;
55306
 
  friend class ::ExtACKeywords;
55307
 
  friend class ::WinAsm;
55308
 
  friend class ::WinDeclSpecs;
55309
 
  friend class ::WinMemberExplSpec;
55310
 
  friend class ::WinTypeKeywords;
55311
 
  friend class ::PragmaOnceUnitState;
55312
 
  friend class ::PragmaOnce;
55313
 
  friend class ::CCExprResolve;
55314
 
  friend class ::CExprResolve;
55315
 
 
55316
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55317
 
 
55318
 
public:
55319
 
  CT_String (int size) : CT_List (size, 1) {}
55320
 
  static const char *NodeId ();
55321
 
  const char *NodeName () const { return NodeId (); }
55322
 
 
55323
 
  CTypeInfo *Type () const { return type; }
55324
 
  CExprValue *Value () const { return value; }
55325
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
55326
 
   private:
55327
 
  typedef CT_String CCExprResolveExpr;
55328
 
 
55329
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
55330
 
 public :
55331
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
55332
 
  typedef CT_String CExprResolveExpr;
55333
 
 
55334
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
55335
 
 public :
55336
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
55337
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55338
 
};
55339
 
 
55340
 
 
55341
 
#line 55342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55342
 
} // closed Puma
55343
 
class WinIfExists;
55344
 
class WinImportHandler;
55345
 
class WinMacros;
55346
 
class CMatchSyntax;
55347
 
class ExtGnu;
55348
 
class ExtAC;
55349
 
class ExtACBuilderCoupling;
55350
 
class ExtACSyntaxCoupling;
55351
 
class ExtACTree;
55352
 
class ExtACKeywords;
55353
 
class WinAsm;
55354
 
class WinDeclSpecs;
55355
 
class WinMemberExplSpec;
55356
 
class WinTypeKeywords;
55357
 
class PragmaOnceUnitState;
55358
 
class PragmaOnce;
55359
 
class CCExprResolve;
55360
 
class CExprResolve;
55361
 
namespace Puma {
55362
 
 
55363
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55364
 
class CT_WideString : public CT_String {
55365
 
#line 55366 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55366
 
  friend class ::WinIfExists;
55367
 
  friend class ::WinImportHandler;
55368
 
  friend class ::WinMacros;
55369
 
  friend class ::CMatchSyntax;
55370
 
  friend class ::ExtGnu;
55371
 
  friend class ::ExtAC;
55372
 
  friend class ::ExtACBuilderCoupling;
55373
 
  friend class ::ExtACSyntaxCoupling;
55374
 
  friend class ::ExtACTree;
55375
 
  friend class ::ExtACKeywords;
55376
 
  friend class ::WinAsm;
55377
 
  friend class ::WinDeclSpecs;
55378
 
  friend class ::WinMemberExplSpec;
55379
 
  friend class ::WinTypeKeywords;
55380
 
  friend class ::PragmaOnceUnitState;
55381
 
  friend class ::PragmaOnce;
55382
 
  friend class ::CCExprResolve;
55383
 
  friend class ::CExprResolve;
55384
 
 
55385
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55386
 
 
55387
 
public:
55388
 
  CT_WideString (int size) : CT_String (size) {}
55389
 
  static const char *NodeId ();
55390
 
  const char *NodeName () const { return NodeId (); }
55391
 
   private:
55392
 
  typedef CT_WideString CCExprResolveExpr;
55393
 
 
55394
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
55395
 
 public :
55396
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
55397
 
  typedef CT_WideString CExprResolveExpr;
55398
 
 
55399
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
55400
 
 public :
55401
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
55402
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55403
 
};
55404
 
 
55405
 
 
55406
 
#line 55407 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55407
 
} // closed Puma
55408
 
class WinIfExists;
55409
 
class WinImportHandler;
55410
 
class WinMacros;
55411
 
class CMatchSyntax;
55412
 
class ExtGnu;
55413
 
class ExtAC;
55414
 
class ExtACBuilderCoupling;
55415
 
class ExtACSyntaxCoupling;
55416
 
class ExtACTree;
55417
 
class ExtACKeywords;
55418
 
class WinAsm;
55419
 
class WinDeclSpecs;
55420
 
class WinMemberExplSpec;
55421
 
class WinTypeKeywords;
55422
 
class PragmaOnceUnitState;
55423
 
class PragmaOnce;
55424
 
class CCExprResolve;
55425
 
class CExprResolve;
55426
 
namespace Puma {
55427
 
 
55428
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55429
 
class CT_Integer : public CT_Expression {
55430
 
#line 55431 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55431
 
  friend class ::WinIfExists;
55432
 
  friend class ::WinImportHandler;
55433
 
  friend class ::WinMacros;
55434
 
  friend class ::CMatchSyntax;
55435
 
  friend class ::ExtGnu;
55436
 
  friend class ::ExtAC;
55437
 
  friend class ::ExtACBuilderCoupling;
55438
 
  friend class ::ExtACSyntaxCoupling;
55439
 
  friend class ::ExtACTree;
55440
 
  friend class ::ExtACKeywords;
55441
 
  friend class ::WinAsm;
55442
 
  friend class ::WinDeclSpecs;
55443
 
  friend class ::WinMemberExplSpec;
55444
 
  friend class ::WinTypeKeywords;
55445
 
  friend class ::PragmaOnceUnitState;
55446
 
  friend class ::PragmaOnce;
55447
 
  friend class ::CCExprResolve;
55448
 
  friend class ::CExprResolve;
55449
 
 
55450
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55451
 
 
55452
 
  CTree *_value;  // CT_Token
55453
 
 
55454
 
public:
55455
 
  CT_Integer (CTree *t) : _value (t) {}
55456
 
  static const char *NodeId ();
55457
 
  const char *NodeName () const { return NodeId (); }
55458
 
  int Sons () const { return _value ? 1 : 0; }
55459
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
55460
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
55461
 
   { if (old_son == _value) _value = new_son; }
55462
 
   private:
55463
 
  typedef CT_Integer CCExprResolveExpr;
55464
 
 
55465
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
55466
 
 public :
55467
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
55468
 
  typedef CT_Integer CExprResolveExpr;
55469
 
 
55470
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
55471
 
 public :
55472
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
55473
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55474
 
};
55475
 
 
55476
 
 
55477
 
#line 55478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55478
 
} // closed Puma
55479
 
class WinIfExists;
55480
 
class WinImportHandler;
55481
 
class WinMacros;
55482
 
class CMatchSyntax;
55483
 
class ExtGnu;
55484
 
class ExtAC;
55485
 
class ExtACBuilderCoupling;
55486
 
class ExtACSyntaxCoupling;
55487
 
class ExtACTree;
55488
 
class ExtACKeywords;
55489
 
class WinAsm;
55490
 
class WinDeclSpecs;
55491
 
class WinMemberExplSpec;
55492
 
class WinTypeKeywords;
55493
 
class PragmaOnceUnitState;
55494
 
class PragmaOnce;
55495
 
class CCExprResolve;
55496
 
class CExprResolve;
55497
 
namespace Puma {
55498
 
 
55499
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55500
 
class CT_Character : public CT_Expression {
55501
 
#line 55502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55502
 
  friend class ::WinIfExists;
55503
 
  friend class ::WinImportHandler;
55504
 
  friend class ::WinMacros;
55505
 
  friend class ::CMatchSyntax;
55506
 
  friend class ::ExtGnu;
55507
 
  friend class ::ExtAC;
55508
 
  friend class ::ExtACBuilderCoupling;
55509
 
  friend class ::ExtACSyntaxCoupling;
55510
 
  friend class ::ExtACTree;
55511
 
  friend class ::ExtACKeywords;
55512
 
  friend class ::WinAsm;
55513
 
  friend class ::WinDeclSpecs;
55514
 
  friend class ::WinMemberExplSpec;
55515
 
  friend class ::WinTypeKeywords;
55516
 
  friend class ::PragmaOnceUnitState;
55517
 
  friend class ::PragmaOnce;
55518
 
  friend class ::CCExprResolve;
55519
 
  friend class ::CExprResolve;
55520
 
 
55521
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55522
 
 
55523
 
  CTree *_value;  // CT_Token
55524
 
 
55525
 
public:
55526
 
  CT_Character (CTree *t) : _value (t) {}
55527
 
  static const char *NodeId ();
55528
 
  const char *NodeName () const { return NodeId (); }
55529
 
  int Sons () const { return 1; }
55530
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
55531
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
55532
 
   { if (old_son == _value) _value = new_son; }
55533
 
   private:
55534
 
  typedef CT_Character CCExprResolveExpr;
55535
 
 
55536
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
55537
 
 public :
55538
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
55539
 
  typedef CT_Character CExprResolveExpr;
55540
 
 
55541
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
55542
 
 public :
55543
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
55544
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55545
 
};
55546
 
 
55547
 
 
55548
 
#line 55549 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55549
 
} // closed Puma
55550
 
class WinIfExists;
55551
 
class WinImportHandler;
55552
 
class WinMacros;
55553
 
class CMatchSyntax;
55554
 
class ExtGnu;
55555
 
class ExtAC;
55556
 
class ExtACBuilderCoupling;
55557
 
class ExtACSyntaxCoupling;
55558
 
class ExtACTree;
55559
 
class ExtACKeywords;
55560
 
class WinAsm;
55561
 
class WinDeclSpecs;
55562
 
class WinMemberExplSpec;
55563
 
class WinTypeKeywords;
55564
 
class PragmaOnceUnitState;
55565
 
class PragmaOnce;
55566
 
class CCExprResolve;
55567
 
class CExprResolve;
55568
 
namespace Puma {
55569
 
 
55570
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55571
 
class CT_WideCharacter : public CT_Character {
55572
 
#line 55573 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55573
 
  friend class ::WinIfExists;
55574
 
  friend class ::WinImportHandler;
55575
 
  friend class ::WinMacros;
55576
 
  friend class ::CMatchSyntax;
55577
 
  friend class ::ExtGnu;
55578
 
  friend class ::ExtAC;
55579
 
  friend class ::ExtACBuilderCoupling;
55580
 
  friend class ::ExtACSyntaxCoupling;
55581
 
  friend class ::ExtACTree;
55582
 
  friend class ::ExtACKeywords;
55583
 
  friend class ::WinAsm;
55584
 
  friend class ::WinDeclSpecs;
55585
 
  friend class ::WinMemberExplSpec;
55586
 
  friend class ::WinTypeKeywords;
55587
 
  friend class ::PragmaOnceUnitState;
55588
 
  friend class ::PragmaOnce;
55589
 
  friend class ::CCExprResolve;
55590
 
  friend class ::CExprResolve;
55591
 
 
55592
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55593
 
 
55594
 
  CTree *_value;  // CT_Token
55595
 
 
55596
 
public:
55597
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
55598
 
  static const char *NodeId ();
55599
 
  const char *NodeName () const { return NodeId (); }
55600
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
55601
 
   { if (old_son == _value) _value = new_son; }
55602
 
   private:
55603
 
  typedef CT_WideCharacter CCExprResolveExpr;
55604
 
 
55605
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
55606
 
 public :
55607
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
55608
 
  typedef CT_WideCharacter CExprResolveExpr;
55609
 
 
55610
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
55611
 
 public :
55612
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
55613
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55614
 
};
55615
 
 
55616
 
 
55617
 
#line 55618 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55618
 
} // closed Puma
55619
 
class WinIfExists;
55620
 
class WinImportHandler;
55621
 
class WinMacros;
55622
 
class CMatchSyntax;
55623
 
class ExtGnu;
55624
 
class ExtAC;
55625
 
class ExtACBuilderCoupling;
55626
 
class ExtACSyntaxCoupling;
55627
 
class ExtACTree;
55628
 
class ExtACKeywords;
55629
 
class WinAsm;
55630
 
class WinDeclSpecs;
55631
 
class WinMemberExplSpec;
55632
 
class WinTypeKeywords;
55633
 
class PragmaOnceUnitState;
55634
 
class PragmaOnce;
55635
 
class CCExprResolve;
55636
 
class CExprResolve;
55637
 
namespace Puma {
55638
 
 
55639
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55640
 
class CT_Float : public CT_Expression {
55641
 
#line 55642 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55642
 
  friend class ::WinIfExists;
55643
 
  friend class ::WinImportHandler;
55644
 
  friend class ::WinMacros;
55645
 
  friend class ::CMatchSyntax;
55646
 
  friend class ::ExtGnu;
55647
 
  friend class ::ExtAC;
55648
 
  friend class ::ExtACBuilderCoupling;
55649
 
  friend class ::ExtACSyntaxCoupling;
55650
 
  friend class ::ExtACTree;
55651
 
  friend class ::ExtACKeywords;
55652
 
  friend class ::WinAsm;
55653
 
  friend class ::WinDeclSpecs;
55654
 
  friend class ::WinMemberExplSpec;
55655
 
  friend class ::WinTypeKeywords;
55656
 
  friend class ::PragmaOnceUnitState;
55657
 
  friend class ::PragmaOnce;
55658
 
  friend class ::CCExprResolve;
55659
 
  friend class ::CExprResolve;
55660
 
 
55661
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55662
 
 
55663
 
  CTree *_value;  // CT_Token
55664
 
 
55665
 
public:
55666
 
  CT_Float (CTree *t) : _value (t) {}
55667
 
  static const char *NodeId ();
55668
 
  const char *NodeName () const { return NodeId (); }
55669
 
  int Sons () const { return 1; }
55670
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
55671
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
55672
 
   { if (old_son == _value) _value = new_son; }
55673
 
   private:
55674
 
  typedef CT_Float CCExprResolveExpr;
55675
 
 
55676
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
55677
 
 public :
55678
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
55679
 
  typedef CT_Float CExprResolveExpr;
55680
 
 
55681
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
55682
 
 public :
55683
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
55684
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55685
 
};
55686
 
 
55687
 
 
55688
 
#line 55689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55689
 
} // closed Puma
55690
 
class WinIfExists;
55691
 
class WinImportHandler;
55692
 
class WinMacros;
55693
 
class CMatchSyntax;
55694
 
class ExtGnu;
55695
 
class ExtAC;
55696
 
class ExtACBuilderCoupling;
55697
 
class ExtACSyntaxCoupling;
55698
 
class ExtACTree;
55699
 
class ExtACKeywords;
55700
 
class WinAsm;
55701
 
class WinDeclSpecs;
55702
 
class WinMemberExplSpec;
55703
 
class WinTypeKeywords;
55704
 
class PragmaOnceUnitState;
55705
 
class PragmaOnce;
55706
 
class CCExprResolve;
55707
 
class CExprResolve;
55708
 
namespace Puma {
55709
 
 
55710
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55711
 
class CT_Bool : public CT_Expression {
55712
 
#line 55713 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55713
 
  friend class ::WinIfExists;
55714
 
  friend class ::WinImportHandler;
55715
 
  friend class ::WinMacros;
55716
 
  friend class ::CMatchSyntax;
55717
 
  friend class ::ExtGnu;
55718
 
  friend class ::ExtAC;
55719
 
  friend class ::ExtACBuilderCoupling;
55720
 
  friend class ::ExtACSyntaxCoupling;
55721
 
  friend class ::ExtACTree;
55722
 
  friend class ::ExtACKeywords;
55723
 
  friend class ::WinAsm;
55724
 
  friend class ::WinDeclSpecs;
55725
 
  friend class ::WinMemberExplSpec;
55726
 
  friend class ::WinTypeKeywords;
55727
 
  friend class ::PragmaOnceUnitState;
55728
 
  friend class ::PragmaOnce;
55729
 
  friend class ::CCExprResolve;
55730
 
  friend class ::CExprResolve;
55731
 
 
55732
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55733
 
 
55734
 
  CTree *_value;  // CT_Token
55735
 
 
55736
 
public:
55737
 
  CT_Bool (CTree *t) : _value (t) {}
55738
 
  static const char *NodeId ();
55739
 
  const char *NodeName () const { return NodeId (); }
55740
 
  int Sons () const { return 1; }
55741
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
55742
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
55743
 
   { if (old_son == _value) _value = new_son; }
55744
 
   private:
55745
 
  typedef CT_Bool CCExprResolveExpr;
55746
 
 
55747
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
55748
 
 public :
55749
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
55750
 
  typedef CT_Bool CExprResolveExpr;
55751
 
 
55752
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
55753
 
 public :
55754
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
55755
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55756
 
};
55757
 
 
55758
 
 
55759
 
#line 55760 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55760
 
} // closed Puma
55761
 
class WinIfExists;
55762
 
class WinImportHandler;
55763
 
class WinMacros;
55764
 
class CMatchSyntax;
55765
 
class ExtGnu;
55766
 
class ExtAC;
55767
 
class ExtACBuilderCoupling;
55768
 
class ExtACSyntaxCoupling;
55769
 
class ExtACTree;
55770
 
class ExtACKeywords;
55771
 
class WinAsm;
55772
 
class WinDeclSpecs;
55773
 
class WinMemberExplSpec;
55774
 
class WinTypeKeywords;
55775
 
class PragmaOnceUnitState;
55776
 
class PragmaOnce;
55777
 
class CCExprResolve;
55778
 
class CExprResolve;
55779
 
namespace Puma {
55780
 
 
55781
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55782
 
class CT_BracedExpr : public CT_Expression {
55783
 
#line 55784 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55784
 
  friend class ::WinIfExists;
55785
 
  friend class ::WinImportHandler;
55786
 
  friend class ::WinMacros;
55787
 
  friend class ::CMatchSyntax;
55788
 
  friend class ::ExtGnu;
55789
 
  friend class ::ExtAC;
55790
 
  friend class ::ExtACBuilderCoupling;
55791
 
  friend class ::ExtACSyntaxCoupling;
55792
 
  friend class ::ExtACTree;
55793
 
  friend class ::ExtACKeywords;
55794
 
  friend class ::WinAsm;
55795
 
  friend class ::WinDeclSpecs;
55796
 
  friend class ::WinMemberExplSpec;
55797
 
  friend class ::WinTypeKeywords;
55798
 
  friend class ::PragmaOnceUnitState;
55799
 
  friend class ::PragmaOnce;
55800
 
  friend class ::CCExprResolve;
55801
 
  friend class ::CExprResolve;
55802
 
 
55803
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55804
 
 
55805
 
  CTree *sons[3]; // open, expr, close
55806
 
 
55807
 
public:
55808
 
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
55809
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
55810
 
  }
55811
 
  static const char *NodeId ();
55812
 
  const char *NodeName () const { return NodeId (); }
55813
 
  int Sons () const { return 3; }
55814
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
55815
 
  CTree *Expr () const { return sons[1]; }
55816
 
  CTypeInfo *Type () const { return Expr ()->Type (); }
55817
 
  CExprValue *Value () const { return Expr ()->Value (); }
55818
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
55819
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
55820
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
55821
 
  }
55822
 
   private:
55823
 
  typedef CT_BracedExpr CCExprResolveExpr;
55824
 
 
55825
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
55826
 
 public :
55827
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
55828
 
  typedef CT_BracedExpr CExprResolveExpr;
55829
 
 
55830
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
55831
 
 public :
55832
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
55833
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55834
 
};
55835
 
 
55836
 
 
55837
 
#line 55838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55838
 
} // closed Puma
55839
 
class WinIfExists;
55840
 
class WinImportHandler;
55841
 
class WinMacros;
55842
 
class CMatchSyntax;
55843
 
class ExtGnu;
55844
 
class ExtAC;
55845
 
class ExtACBuilderCoupling;
55846
 
class ExtACSyntaxCoupling;
55847
 
class ExtACTree;
55848
 
class ExtACKeywords;
55849
 
class WinAsm;
55850
 
class WinDeclSpecs;
55851
 
class WinMemberExplSpec;
55852
 
class WinTypeKeywords;
55853
 
class PragmaOnceUnitState;
55854
 
class PragmaOnce;
55855
 
class CCExprResolve;
55856
 
class CExprResolve;
55857
 
namespace Puma {
55858
 
 
55859
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55860
 
class CT_SimpleName : public CT_List, public Printable, 
55861
 
                      public CSemValue, public CSemObject {
55862
 
#line 55863 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55863
 
  friend class ::WinIfExists;
55864
 
  friend class ::WinImportHandler;
55865
 
  friend class ::WinMacros;
55866
 
  friend class ::CMatchSyntax;
55867
 
  friend class ::ExtGnu;
55868
 
  friend class ::ExtAC;
55869
 
  friend class ::ExtACBuilderCoupling;
55870
 
  friend class ::ExtACSyntaxCoupling;
55871
 
  friend class ::ExtACTree;
55872
 
  friend class ::ExtACKeywords;
55873
 
  friend class ::WinAsm;
55874
 
  friend class ::WinDeclSpecs;
55875
 
  friend class ::WinMemberExplSpec;
55876
 
  friend class ::WinTypeKeywords;
55877
 
  friend class ::PragmaOnceUnitState;
55878
 
  friend class ::PragmaOnce;
55879
 
  friend class ::CCExprResolve;
55880
 
  friend class ::CExprResolve;
55881
 
 
55882
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55883
 
 
55884
 
protected:
55885
 
  CT_SimpleName (int size) : CT_List (size, 1) {}
55886
 
  CT_SimpleName (int size, int properties) : 
55887
 
    CT_List (size, 2, properties) {}
55888
 
  
55889
 
public:
55890
 
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
55891
 
  static const char *NodeId ();
55892
 
  const char *NodeName () const { return NodeId (); }
55893
 
  virtual const char *Text () const 
55894
 
   { return Son (Sons ()-1)->token ()->text (); }
55895
 
  virtual void print (ostream &os) const { os << Text (); }
55896
 
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
55897
 
  CTypeInfo *Type () const { return type; }
55898
 
  CExprValue *Value () const { return value; }
55899
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
55900
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
55901
 
  // special new / delete with reusing memory
55902
 
  void *operator new (size_t);
55903
 
  void  operator delete (void *);
55904
 
  // classification function
55905
 
  virtual CT_SimpleName *IsSimpleName () { return this; }  
55906
 
   private:
55907
 
  typedef CT_SimpleName CCExprResolveExpr;
55908
 
 
55909
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
55910
 
 public :
55911
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
55912
 
  typedef CT_SimpleName CExprResolveExpr;
55913
 
 
55914
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
55915
 
 public :
55916
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
55917
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55918
 
};
55919
 
 
55920
 
 
55921
 
#line 55922 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55922
 
} // closed Puma
55923
 
class WinIfExists;
55924
 
class WinImportHandler;
55925
 
class WinMacros;
55926
 
class CMatchSyntax;
55927
 
class ExtGnu;
55928
 
class ExtAC;
55929
 
class ExtACBuilderCoupling;
55930
 
class ExtACSyntaxCoupling;
55931
 
class ExtACTree;
55932
 
class ExtACKeywords;
55933
 
class WinAsm;
55934
 
class WinDeclSpecs;
55935
 
class WinMemberExplSpec;
55936
 
class WinTypeKeywords;
55937
 
class PragmaOnceUnitState;
55938
 
class PragmaOnce;
55939
 
class CCExprResolve;
55940
 
class CExprResolve;
55941
 
namespace Puma {
55942
 
 
55943
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55944
 
class CT_SpecialName : public CT_SimpleName {
55945
 
#line 55946 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
55946
 
  friend class ::WinIfExists;
55947
 
  friend class ::WinImportHandler;
55948
 
  friend class ::WinMacros;
55949
 
  friend class ::CMatchSyntax;
55950
 
  friend class ::ExtGnu;
55951
 
  friend class ::ExtAC;
55952
 
  friend class ::ExtACBuilderCoupling;
55953
 
  friend class ::ExtACSyntaxCoupling;
55954
 
  friend class ::ExtACTree;
55955
 
  friend class ::ExtACKeywords;
55956
 
  friend class ::WinAsm;
55957
 
  friend class ::WinDeclSpecs;
55958
 
  friend class ::WinMemberExplSpec;
55959
 
  friend class ::WinTypeKeywords;
55960
 
  friend class ::PragmaOnceUnitState;
55961
 
  friend class ::PragmaOnce;
55962
 
  friend class ::CCExprResolve;
55963
 
  friend class ::CExprResolve;
55964
 
 
55965
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55966
 
 
55967
 
  char *_name;
55968
 
  
55969
 
protected:
55970
 
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
55971
 
  
55972
 
public:
55973
 
  ~CT_SpecialName () { if (_name) delete[] _name; }
55974
 
  const char *Text () const { return _name; }
55975
 
  void Name (const char *n) { 
55976
 
    if (n) { 
55977
 
      _name = new char[strlen(n) + 1];
55978
 
      strcpy (_name,n);
55979
 
    }
55980
 
  }
55981
 
  // special new / delete with reusing memory
55982
 
  void *operator new (size_t);
55983
 
  void  operator delete (void *);
55984
 
   private:
55985
 
  typedef CT_SpecialName CCExprResolveExpr;
55986
 
 
55987
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
55988
 
 public :
55989
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
55990
 
  typedef CT_SpecialName CExprResolveExpr;
55991
 
 
55992
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
55993
 
 public :
55994
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
55995
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55996
 
};
55997
 
 
55998
 
 
55999
 
#line 56000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56000
 
} // closed Puma
56001
 
class WinIfExists;
56002
 
class WinImportHandler;
56003
 
class WinMacros;
56004
 
class CMatchSyntax;
56005
 
class ExtGnu;
56006
 
class ExtAC;
56007
 
class ExtACBuilderCoupling;
56008
 
class ExtACSyntaxCoupling;
56009
 
class ExtACTree;
56010
 
class ExtACKeywords;
56011
 
class WinAsm;
56012
 
class WinDeclSpecs;
56013
 
class WinMemberExplSpec;
56014
 
class WinTypeKeywords;
56015
 
class PragmaOnceUnitState;
56016
 
class PragmaOnce;
56017
 
class CCExprResolve;
56018
 
class CExprResolve;
56019
 
namespace Puma {
56020
 
 
56021
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56022
 
class CT_PrivateName : public CT_SpecialName {
56023
 
#line 56024 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56024
 
  friend class ::WinIfExists;
56025
 
  friend class ::WinImportHandler;
56026
 
  friend class ::WinMacros;
56027
 
  friend class ::CMatchSyntax;
56028
 
  friend class ::ExtGnu;
56029
 
  friend class ::ExtAC;
56030
 
  friend class ::ExtACBuilderCoupling;
56031
 
  friend class ::ExtACSyntaxCoupling;
56032
 
  friend class ::ExtACTree;
56033
 
  friend class ::ExtACKeywords;
56034
 
  friend class ::WinAsm;
56035
 
  friend class ::WinDeclSpecs;
56036
 
  friend class ::WinMemberExplSpec;
56037
 
  friend class ::WinTypeKeywords;
56038
 
  friend class ::PragmaOnceUnitState;
56039
 
  friend class ::PragmaOnce;
56040
 
  friend class ::CCExprResolve;
56041
 
  friend class ::CExprResolve;
56042
 
 
56043
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56044
 
 
56045
 
public:
56046
 
  CT_PrivateName (const char *n) { Name (n); }
56047
 
  static const char *NodeId ();
56048
 
  const char *NodeName () const { return NodeId (); }
56049
 
  int Sons () const { return 0; }
56050
 
  CTree *Son (int n) const { return (CTree*)0; }
56051
 
  // special new / delete with reusing memory
56052
 
  void *operator new (size_t);
56053
 
  void  operator delete (void *);
56054
 
   private:
56055
 
  typedef CT_PrivateName CCExprResolveExpr;
56056
 
 
56057
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56058
 
 public :
56059
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
56060
 
  typedef CT_PrivateName CExprResolveExpr;
56061
 
 
56062
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56063
 
 public :
56064
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56065
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56066
 
};
56067
 
 
56068
 
 
56069
 
#line 56070 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56070
 
} // closed Puma
56071
 
class WinIfExists;
56072
 
class WinImportHandler;
56073
 
class WinMacros;
56074
 
class CMatchSyntax;
56075
 
class ExtGnu;
56076
 
class ExtAC;
56077
 
class ExtACBuilderCoupling;
56078
 
class ExtACSyntaxCoupling;
56079
 
class ExtACTree;
56080
 
class ExtACKeywords;
56081
 
class WinAsm;
56082
 
class WinDeclSpecs;
56083
 
class WinMemberExplSpec;
56084
 
class WinTypeKeywords;
56085
 
class PragmaOnceUnitState;
56086
 
class PragmaOnce;
56087
 
class CCExprResolve;
56088
 
class CExprResolve;
56089
 
namespace Puma {
56090
 
 
56091
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56092
 
class CT_DestructorName : public CT_SpecialName {
56093
 
#line 56094 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56094
 
  friend class ::WinIfExists;
56095
 
  friend class ::WinImportHandler;
56096
 
  friend class ::WinMacros;
56097
 
  friend class ::CMatchSyntax;
56098
 
  friend class ::ExtGnu;
56099
 
  friend class ::ExtAC;
56100
 
  friend class ::ExtACBuilderCoupling;
56101
 
  friend class ::ExtACSyntaxCoupling;
56102
 
  friend class ::ExtACTree;
56103
 
  friend class ::ExtACKeywords;
56104
 
  friend class ::WinAsm;
56105
 
  friend class ::WinDeclSpecs;
56106
 
  friend class ::WinMemberExplSpec;
56107
 
  friend class ::WinTypeKeywords;
56108
 
  friend class ::PragmaOnceUnitState;
56109
 
  friend class ::PragmaOnce;
56110
 
  friend class ::CCExprResolve;
56111
 
  friend class ::CExprResolve;
56112
 
 
56113
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56114
 
 
56115
 
public:
56116
 
  CT_DestructorName (CTree *, CTree *);
56117
 
  static const char *NodeId ();
56118
 
  const char *NodeName () const { return NodeId (); }
56119
 
  // special new / delete with reusing memory
56120
 
  void *operator new (size_t);
56121
 
  void  operator delete (void *);
56122
 
   private:
56123
 
  typedef CT_DestructorName CCExprResolveExpr;
56124
 
 
56125
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56126
 
 public :
56127
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
56128
 
  typedef CT_DestructorName CExprResolveExpr;
56129
 
 
56130
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56131
 
 public :
56132
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56133
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56134
 
};
56135
 
 
56136
 
 
56137
 
#line 56138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56138
 
} // closed Puma
56139
 
class WinIfExists;
56140
 
class WinImportHandler;
56141
 
class WinMacros;
56142
 
class CMatchSyntax;
56143
 
class ExtGnu;
56144
 
class ExtAC;
56145
 
class ExtACBuilderCoupling;
56146
 
class ExtACSyntaxCoupling;
56147
 
class ExtACTree;
56148
 
class ExtACKeywords;
56149
 
class WinAsm;
56150
 
class WinDeclSpecs;
56151
 
class WinMemberExplSpec;
56152
 
class WinTypeKeywords;
56153
 
class PragmaOnceUnitState;
56154
 
class PragmaOnce;
56155
 
class CCExprResolve;
56156
 
class CExprResolve;
56157
 
namespace Puma {
56158
 
 
56159
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56160
 
class CT_TemplateName : public CT_SpecialName {
56161
 
#line 56162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56162
 
  friend class ::WinIfExists;
56163
 
  friend class ::WinImportHandler;
56164
 
  friend class ::WinMacros;
56165
 
  friend class ::CMatchSyntax;
56166
 
  friend class ::ExtGnu;
56167
 
  friend class ::ExtAC;
56168
 
  friend class ::ExtACBuilderCoupling;
56169
 
  friend class ::ExtACSyntaxCoupling;
56170
 
  friend class ::ExtACTree;
56171
 
  friend class ::ExtACKeywords;
56172
 
  friend class ::WinAsm;
56173
 
  friend class ::WinDeclSpecs;
56174
 
  friend class ::WinMemberExplSpec;
56175
 
  friend class ::WinTypeKeywords;
56176
 
  friend class ::PragmaOnceUnitState;
56177
 
  friend class ::PragmaOnce;
56178
 
  friend class ::CCExprResolve;
56179
 
  friend class ::CExprResolve;
56180
 
 
56181
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56182
 
 
56183
 
public:
56184
 
  CT_TemplateName (CTree *n, CTree *a) 
56185
 
   { AddSon (n); AddSon (a); }
56186
 
  static const char *NodeId ();
56187
 
  const char *NodeName () const { return NodeId (); }
56188
 
  CT_TemplateArgList *Arguments () const 
56189
 
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
56190
 
  CT_SimpleName *TemplateName () const 
56191
 
   { return (CT_SimpleName*)Son (Sons ()-2); }
56192
 
  // may change in the future
56193
 
  const char *Text () const { return TemplateName ()->Text (); }
56194
 
  // special new / delete with reusing memory
56195
 
  void *operator new (size_t);
56196
 
  void  operator delete (void *);
56197
 
   private:
56198
 
  typedef CT_TemplateName CCExprResolveExpr;
56199
 
 
56200
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56201
 
 public :
56202
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
56203
 
  typedef CT_TemplateName CExprResolveExpr;
56204
 
 
56205
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56206
 
 public :
56207
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56208
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56209
 
};
56210
 
 
56211
 
 
56212
 
#line 56213 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56213
 
} // closed Puma
56214
 
class WinIfExists;
56215
 
class WinImportHandler;
56216
 
class WinMacros;
56217
 
class CMatchSyntax;
56218
 
class ExtGnu;
56219
 
class ExtAC;
56220
 
class ExtACBuilderCoupling;
56221
 
class ExtACSyntaxCoupling;
56222
 
class ExtACTree;
56223
 
class ExtACKeywords;
56224
 
class WinAsm;
56225
 
class WinDeclSpecs;
56226
 
class WinMemberExplSpec;
56227
 
class WinTypeKeywords;
56228
 
class PragmaOnceUnitState;
56229
 
class PragmaOnce;
56230
 
class CCExprResolve;
56231
 
class CExprResolve;
56232
 
namespace Puma {
56233
 
 
56234
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56235
 
class CT_OperatorName : public CT_SpecialName {
56236
 
#line 56237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56237
 
  friend class ::WinIfExists;
56238
 
  friend class ::WinImportHandler;
56239
 
  friend class ::WinMacros;
56240
 
  friend class ::CMatchSyntax;
56241
 
  friend class ::ExtGnu;
56242
 
  friend class ::ExtAC;
56243
 
  friend class ::ExtACBuilderCoupling;
56244
 
  friend class ::ExtACSyntaxCoupling;
56245
 
  friend class ::ExtACTree;
56246
 
  friend class ::ExtACKeywords;
56247
 
  friend class ::WinAsm;
56248
 
  friend class ::WinDeclSpecs;
56249
 
  friend class ::WinMemberExplSpec;
56250
 
  friend class ::WinTypeKeywords;
56251
 
  friend class ::PragmaOnceUnitState;
56252
 
  friend class ::PragmaOnce;
56253
 
  friend class ::CCExprResolve;
56254
 
  friend class ::CExprResolve;
56255
 
 
56256
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56257
 
 
56258
 
  int _oper;
56259
 
 
56260
 
public:
56261
 
  enum { // complex operators
56262
 
    FCT_CALL = -100,
56263
 
    SUBSCRIPT,
56264
 
    NEW_ARRAY,
56265
 
    DEL_ARRAY
56266
 
  };
56267
 
 
56268
 
public:
56269
 
  CT_OperatorName (CTree *);
56270
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
56271
 
  static const char *NodeId ();
56272
 
  const char *NodeName () const { return NodeId (); }
56273
 
  int Operator () const { return _oper; }
56274
 
  // special new / delete with reusing memory
56275
 
  void *operator new (size_t);
56276
 
  void  operator delete (void *);
56277
 
   private:
56278
 
  typedef CT_OperatorName CCExprResolveExpr;
56279
 
 
56280
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56281
 
 public :
56282
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
56283
 
  typedef CT_OperatorName CExprResolveExpr;
56284
 
 
56285
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56286
 
 public :
56287
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56288
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56289
 
};
56290
 
 
56291
 
 
56292
 
#line 56293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56293
 
} // closed Puma
56294
 
class WinIfExists;
56295
 
class WinImportHandler;
56296
 
class WinMacros;
56297
 
class CMatchSyntax;
56298
 
class ExtGnu;
56299
 
class ExtAC;
56300
 
class ExtACBuilderCoupling;
56301
 
class ExtACSyntaxCoupling;
56302
 
class ExtACTree;
56303
 
class ExtACKeywords;
56304
 
class WinAsm;
56305
 
class WinDeclSpecs;
56306
 
class WinMemberExplSpec;
56307
 
class WinTypeKeywords;
56308
 
class PragmaOnceUnitState;
56309
 
class PragmaOnce;
56310
 
class CCExprResolve;
56311
 
class CExprResolve;
56312
 
namespace Puma {
56313
 
 
56314
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56315
 
class CT_ConversionName : public CT_SpecialName {
56316
 
#line 56317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56317
 
  friend class ::WinIfExists;
56318
 
  friend class ::WinImportHandler;
56319
 
  friend class ::WinMacros;
56320
 
  friend class ::CMatchSyntax;
56321
 
  friend class ::ExtGnu;
56322
 
  friend class ::ExtAC;
56323
 
  friend class ::ExtACBuilderCoupling;
56324
 
  friend class ::ExtACSyntaxCoupling;
56325
 
  friend class ::ExtACTree;
56326
 
  friend class ::ExtACKeywords;
56327
 
  friend class ::WinAsm;
56328
 
  friend class ::WinDeclSpecs;
56329
 
  friend class ::WinMemberExplSpec;
56330
 
  friend class ::WinTypeKeywords;
56331
 
  friend class ::PragmaOnceUnitState;
56332
 
  friend class ::PragmaOnce;
56333
 
  friend class ::CCExprResolve;
56334
 
  friend class ::CExprResolve;
56335
 
 
56336
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56337
 
 
56338
 
public:
56339
 
  CT_ConversionName (CTree *, CTree *);
56340
 
  static const char *NodeId ();
56341
 
  const char *NodeName () const { return NodeId (); }
56342
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
56343
 
  // special new / delete with reusing memory
56344
 
  void *operator new (size_t);
56345
 
  void  operator delete (void *);
56346
 
   private:
56347
 
  typedef CT_ConversionName CCExprResolveExpr;
56348
 
 
56349
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56350
 
 public :
56351
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
56352
 
  typedef CT_ConversionName CExprResolveExpr;
56353
 
 
56354
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56355
 
 public :
56356
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56357
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56358
 
};
56359
 
 
56360
 
 
56361
 
#line 56362 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56362
 
} // closed Puma
56363
 
class WinIfExists;
56364
 
class WinImportHandler;
56365
 
class WinMacros;
56366
 
class CMatchSyntax;
56367
 
class ExtGnu;
56368
 
class ExtAC;
56369
 
class ExtACBuilderCoupling;
56370
 
class ExtACSyntaxCoupling;
56371
 
class ExtACTree;
56372
 
class ExtACKeywords;
56373
 
class WinAsm;
56374
 
class WinDeclSpecs;
56375
 
class WinMemberExplSpec;
56376
 
class WinTypeKeywords;
56377
 
class PragmaOnceUnitState;
56378
 
class PragmaOnce;
56379
 
class CCExprResolve;
56380
 
class CExprResolve;
56381
 
namespace Puma {
56382
 
 
56383
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56384
 
class CT_QualName : public CT_SimpleName {
56385
 
#line 56386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56386
 
  friend class ::WinIfExists;
56387
 
  friend class ::WinImportHandler;
56388
 
  friend class ::WinMacros;
56389
 
  friend class ::CMatchSyntax;
56390
 
  friend class ::ExtGnu;
56391
 
  friend class ::ExtAC;
56392
 
  friend class ::ExtACBuilderCoupling;
56393
 
  friend class ::ExtACSyntaxCoupling;
56394
 
  friend class ::ExtACTree;
56395
 
  friend class ::ExtACKeywords;
56396
 
  friend class ::WinAsm;
56397
 
  friend class ::WinDeclSpecs;
56398
 
  friend class ::WinMemberExplSpec;
56399
 
  friend class ::WinTypeKeywords;
56400
 
  friend class ::PragmaOnceUnitState;
56401
 
  friend class ::PragmaOnce;
56402
 
  friend class ::CCExprResolve;
56403
 
  friend class ::CExprResolve;
56404
 
 
56405
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56406
 
 
56407
 
public:
56408
 
  CT_QualName (int size = 3) : 
56409
 
    CT_SimpleName (size, CT_List::SEPARATORS) {}
56410
 
  static const char *NodeId ();
56411
 
  const char *NodeName () const { return NodeId (); }
56412
 
  void print (ostream &) const;
56413
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
56414
 
  const char *Text () const { return Name ()->Text (); }
56415
 
  CTypeInfo *Type () const { return Name ()->Type (); }
56416
 
  CExprValue *Value () const { return Name ()->Value (); }
56417
 
  CSemValue *SemValue () const { return Name ()->SemValue (); }
56418
 
  CSemObject *SemObject () const { return Name ()->SemObject (); }
56419
 
  // special new / delete with reusing memory
56420
 
  void *operator new (size_t);
56421
 
  void  operator delete (void *);
56422
 
   private:
56423
 
  typedef CT_QualName CCExprResolveExpr;
56424
 
 
56425
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56426
 
 public :
56427
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
56428
 
  typedef CT_QualName CExprResolveExpr;
56429
 
 
56430
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56431
 
 public :
56432
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56433
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56434
 
};
56435
 
 
56436
 
 
56437
 
#line 56438 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56438
 
} // closed Puma
56439
 
class WinIfExists;
56440
 
class WinImportHandler;
56441
 
class WinMacros;
56442
 
class CMatchSyntax;
56443
 
class ExtGnu;
56444
 
class ExtAC;
56445
 
class ExtACBuilderCoupling;
56446
 
class ExtACSyntaxCoupling;
56447
 
class ExtACTree;
56448
 
class ExtACKeywords;
56449
 
class WinAsm;
56450
 
class WinDeclSpecs;
56451
 
class WinMemberExplSpec;
56452
 
class WinTypeKeywords;
56453
 
class PragmaOnceUnitState;
56454
 
class PragmaOnce;
56455
 
class CCExprResolve;
56456
 
class CExprResolve;
56457
 
namespace Puma {
56458
 
 
56459
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56460
 
class CT_RootQualName : public CT_QualName {
56461
 
#line 56462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56462
 
  friend class ::WinIfExists;
56463
 
  friend class ::WinImportHandler;
56464
 
  friend class ::WinMacros;
56465
 
  friend class ::CMatchSyntax;
56466
 
  friend class ::ExtGnu;
56467
 
  friend class ::ExtAC;
56468
 
  friend class ::ExtACBuilderCoupling;
56469
 
  friend class ::ExtACSyntaxCoupling;
56470
 
  friend class ::ExtACTree;
56471
 
  friend class ::ExtACKeywords;
56472
 
  friend class ::WinAsm;
56473
 
  friend class ::WinDeclSpecs;
56474
 
  friend class ::WinMemberExplSpec;
56475
 
  friend class ::WinTypeKeywords;
56476
 
  friend class ::PragmaOnceUnitState;
56477
 
  friend class ::PragmaOnce;
56478
 
  friend class ::CCExprResolve;
56479
 
  friend class ::CExprResolve;
56480
 
 
56481
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56482
 
 
56483
 
public:
56484
 
  CT_RootQualName (int size = 2) : 
56485
 
    CT_QualName (size) { AddProperties (INTRO); }
56486
 
  static const char *NodeId ();
56487
 
  const char *NodeName () const { return NodeId (); }
56488
 
  // special new / delete with reusing memory
56489
 
  void *operator new (size_t);
56490
 
  void  operator delete (void *);
56491
 
   private:
56492
 
  typedef CT_RootQualName CCExprResolveExpr;
56493
 
 
56494
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56495
 
 public :
56496
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
56497
 
  typedef CT_RootQualName CExprResolveExpr;
56498
 
 
56499
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56500
 
 public :
56501
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56502
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56503
 
};
56504
 
 
56505
 
 
56506
 
#line 56507 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56507
 
} // closed Puma
56508
 
class WinIfExists;
56509
 
class WinImportHandler;
56510
 
class WinMacros;
56511
 
class CMatchSyntax;
56512
 
class ExtGnu;
56513
 
class ExtAC;
56514
 
class ExtACBuilderCoupling;
56515
 
class ExtACSyntaxCoupling;
56516
 
class ExtACTree;
56517
 
class ExtACKeywords;
56518
 
class WinAsm;
56519
 
class WinDeclSpecs;
56520
 
class WinMemberExplSpec;
56521
 
class WinTypeKeywords;
56522
 
class PragmaOnceUnitState;
56523
 
class PragmaOnce;
56524
 
class CCExprResolve;
56525
 
class CExprResolve;
56526
 
namespace Puma {
56527
 
 
56528
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56529
 
class CT_BinaryExpr : public CT_Expression {
56530
 
#line 56531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56531
 
  friend class ::WinIfExists;
56532
 
  friend class ::WinImportHandler;
56533
 
  friend class ::WinMacros;
56534
 
  friend class ::CMatchSyntax;
56535
 
  friend class ::ExtGnu;
56536
 
  friend class ::ExtAC;
56537
 
  friend class ::ExtACBuilderCoupling;
56538
 
  friend class ::ExtACSyntaxCoupling;
56539
 
  friend class ::ExtACTree;
56540
 
  friend class ::ExtACKeywords;
56541
 
  friend class ::WinAsm;
56542
 
  friend class ::WinDeclSpecs;
56543
 
  friend class ::WinMemberExplSpec;
56544
 
  friend class ::WinTypeKeywords;
56545
 
  friend class ::PragmaOnceUnitState;
56546
 
  friend class ::PragmaOnce;
56547
 
  friend class ::CCExprResolve;
56548
 
  friend class ::CExprResolve;
56549
 
 
56550
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56551
 
 
56552
 
  CTree *sons[3]; // expr, oper, expr
56553
 
 
56554
 
public:
56555
 
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
56556
 
    sons[0] = l; sons[1] = o; sons[2] = r;
56557
 
  }
56558
 
  static const char *NodeId ();
56559
 
  const char *NodeName () const { return NodeId (); }
56560
 
  int Sons () const { return 3; }
56561
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
56562
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
56563
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
56564
 
  }
56565
 
   private:
56566
 
  typedef CT_BinaryExpr CCExprResolveExpr;
56567
 
 
56568
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56569
 
 public :
56570
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
56571
 
  typedef CT_BinaryExpr CExprResolveExpr;
56572
 
 
56573
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56574
 
 public :
56575
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56576
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56577
 
};
56578
 
 
56579
 
 
56580
 
#line 56581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56581
 
} // closed Puma
56582
 
class WinIfExists;
56583
 
class WinImportHandler;
56584
 
class WinMacros;
56585
 
class CMatchSyntax;
56586
 
class ExtGnu;
56587
 
class ExtAC;
56588
 
class ExtACBuilderCoupling;
56589
 
class ExtACSyntaxCoupling;
56590
 
class ExtACTree;
56591
 
class ExtACKeywords;
56592
 
class WinAsm;
56593
 
class WinDeclSpecs;
56594
 
class WinMemberExplSpec;
56595
 
class WinTypeKeywords;
56596
 
class PragmaOnceUnitState;
56597
 
class PragmaOnce;
56598
 
class CCExprResolve;
56599
 
class CExprResolve;
56600
 
namespace Puma {
56601
 
 
56602
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56603
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
56604
 
#line 56605 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56605
 
  friend class ::WinIfExists;
56606
 
  friend class ::WinImportHandler;
56607
 
  friend class ::WinMacros;
56608
 
  friend class ::CMatchSyntax;
56609
 
  friend class ::ExtGnu;
56610
 
  friend class ::ExtAC;
56611
 
  friend class ::ExtACBuilderCoupling;
56612
 
  friend class ::ExtACSyntaxCoupling;
56613
 
  friend class ::ExtACTree;
56614
 
  friend class ::ExtACKeywords;
56615
 
  friend class ::WinAsm;
56616
 
  friend class ::WinDeclSpecs;
56617
 
  friend class ::WinMemberExplSpec;
56618
 
  friend class ::WinTypeKeywords;
56619
 
  friend class ::PragmaOnceUnitState;
56620
 
  friend class ::PragmaOnce;
56621
 
  friend class ::CCExprResolve;
56622
 
  friend class ::CExprResolve;
56623
 
 
56624
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56625
 
 
56626
 
public:
56627
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
56628
 
    CT_BinaryExpr (e, o, i) {}
56629
 
  static const char *NodeId ();
56630
 
  const char *NodeName () const { return NodeId (); }
56631
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
56632
 
   private:
56633
 
  typedef CT_MembPtrExpr CCExprResolveExpr;
56634
 
 
56635
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56636
 
 public :
56637
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
56638
 
  typedef CT_MembPtrExpr CExprResolveExpr;
56639
 
 
56640
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56641
 
 public :
56642
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56643
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56644
 
};
56645
 
 
56646
 
 
56647
 
#line 56648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56648
 
} // closed Puma
56649
 
class WinIfExists;
56650
 
class WinImportHandler;
56651
 
class WinMacros;
56652
 
class CMatchSyntax;
56653
 
class ExtGnu;
56654
 
class ExtAC;
56655
 
class ExtACBuilderCoupling;
56656
 
class ExtACSyntaxCoupling;
56657
 
class ExtACTree;
56658
 
class ExtACKeywords;
56659
 
class WinAsm;
56660
 
class WinDeclSpecs;
56661
 
class WinMemberExplSpec;
56662
 
class WinTypeKeywords;
56663
 
class PragmaOnceUnitState;
56664
 
class PragmaOnce;
56665
 
class CCExprResolve;
56666
 
class CExprResolve;
56667
 
namespace Puma {
56668
 
 
56669
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56670
 
class CT_MembRefExpr : public CT_MembPtrExpr {
56671
 
#line 56672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56672
 
  friend class ::WinIfExists;
56673
 
  friend class ::WinImportHandler;
56674
 
  friend class ::WinMacros;
56675
 
  friend class ::CMatchSyntax;
56676
 
  friend class ::ExtGnu;
56677
 
  friend class ::ExtAC;
56678
 
  friend class ::ExtACBuilderCoupling;
56679
 
  friend class ::ExtACSyntaxCoupling;
56680
 
  friend class ::ExtACTree;
56681
 
  friend class ::ExtACKeywords;
56682
 
  friend class ::WinAsm;
56683
 
  friend class ::WinDeclSpecs;
56684
 
  friend class ::WinMemberExplSpec;
56685
 
  friend class ::WinTypeKeywords;
56686
 
  friend class ::PragmaOnceUnitState;
56687
 
  friend class ::PragmaOnce;
56688
 
  friend class ::CCExprResolve;
56689
 
  friend class ::CExprResolve;
56690
 
 
56691
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56692
 
 
56693
 
public:
56694
 
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
56695
 
    CT_MembPtrExpr (e, o, i) {}
56696
 
  static const char *NodeId ();
56697
 
  const char *NodeName () const { return NodeId (); }
56698
 
   private:
56699
 
  typedef CT_MembRefExpr CCExprResolveExpr;
56700
 
 
56701
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56702
 
 public :
56703
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
56704
 
  typedef CT_MembRefExpr CExprResolveExpr;
56705
 
 
56706
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56707
 
 public :
56708
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56709
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56710
 
};
56711
 
 
56712
 
 
56713
 
#line 56714 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56714
 
} // closed Puma
56715
 
class WinIfExists;
56716
 
class WinImportHandler;
56717
 
class WinMacros;
56718
 
class CMatchSyntax;
56719
 
class ExtGnu;
56720
 
class ExtAC;
56721
 
class ExtACBuilderCoupling;
56722
 
class ExtACSyntaxCoupling;
56723
 
class ExtACTree;
56724
 
class ExtACKeywords;
56725
 
class WinAsm;
56726
 
class WinDeclSpecs;
56727
 
class WinMemberExplSpec;
56728
 
class WinTypeKeywords;
56729
 
class PragmaOnceUnitState;
56730
 
class PragmaOnce;
56731
 
class CCExprResolve;
56732
 
class CExprResolve;
56733
 
namespace Puma {
56734
 
 
56735
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56736
 
class CT_UnaryExpr : public CT_Expression {
56737
 
#line 56738 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56738
 
  friend class ::WinIfExists;
56739
 
  friend class ::WinImportHandler;
56740
 
  friend class ::WinMacros;
56741
 
  friend class ::CMatchSyntax;
56742
 
  friend class ::ExtGnu;
56743
 
  friend class ::ExtAC;
56744
 
  friend class ::ExtACBuilderCoupling;
56745
 
  friend class ::ExtACSyntaxCoupling;
56746
 
  friend class ::ExtACTree;
56747
 
  friend class ::ExtACKeywords;
56748
 
  friend class ::WinAsm;
56749
 
  friend class ::WinDeclSpecs;
56750
 
  friend class ::WinMemberExplSpec;
56751
 
  friend class ::WinTypeKeywords;
56752
 
  friend class ::PragmaOnceUnitState;
56753
 
  friend class ::PragmaOnce;
56754
 
  friend class ::CCExprResolve;
56755
 
  friend class ::CExprResolve;
56756
 
 
56757
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56758
 
 
56759
 
  CTree *sons[2]; // oper, expr
56760
 
 
56761
 
public:
56762
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
56763
 
  static const char *NodeId ();
56764
 
  const char *NodeName () const { return NodeId (); }
56765
 
  int Sons () const { return 2; }
56766
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
56767
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
56768
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
56769
 
  }
56770
 
  CTree *Expr () const { return sons[1]; }
56771
 
   private:
56772
 
  typedef CT_UnaryExpr CCExprResolveExpr;
56773
 
 
56774
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56775
 
 public :
56776
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
56777
 
  typedef CT_UnaryExpr CExprResolveExpr;
56778
 
 
56779
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56780
 
 public :
56781
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56782
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56783
 
};
56784
 
 
56785
 
 
56786
 
#line 56787 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56787
 
} // closed Puma
56788
 
class WinIfExists;
56789
 
class WinImportHandler;
56790
 
class WinMacros;
56791
 
class CMatchSyntax;
56792
 
class ExtGnu;
56793
 
class ExtAC;
56794
 
class ExtACBuilderCoupling;
56795
 
class ExtACSyntaxCoupling;
56796
 
class ExtACTree;
56797
 
class ExtACKeywords;
56798
 
class WinAsm;
56799
 
class WinDeclSpecs;
56800
 
class WinMemberExplSpec;
56801
 
class WinTypeKeywords;
56802
 
class PragmaOnceUnitState;
56803
 
class PragmaOnce;
56804
 
class CCExprResolve;
56805
 
class CExprResolve;
56806
 
namespace Puma {
56807
 
 
56808
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56809
 
class CT_PostfixExpr : public CT_UnaryExpr {
56810
 
#line 56811 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56811
 
  friend class ::WinIfExists;
56812
 
  friend class ::WinImportHandler;
56813
 
  friend class ::WinMacros;
56814
 
  friend class ::CMatchSyntax;
56815
 
  friend class ::ExtGnu;
56816
 
  friend class ::ExtAC;
56817
 
  friend class ::ExtACBuilderCoupling;
56818
 
  friend class ::ExtACSyntaxCoupling;
56819
 
  friend class ::ExtACTree;
56820
 
  friend class ::ExtACKeywords;
56821
 
  friend class ::WinAsm;
56822
 
  friend class ::WinDeclSpecs;
56823
 
  friend class ::WinMemberExplSpec;
56824
 
  friend class ::WinTypeKeywords;
56825
 
  friend class ::PragmaOnceUnitState;
56826
 
  friend class ::PragmaOnce;
56827
 
  friend class ::CCExprResolve;
56828
 
  friend class ::CExprResolve;
56829
 
 
56830
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56831
 
 
56832
 
public:
56833
 
  CT_PostfixExpr (CTree *e, CTree *o) :
56834
 
    CT_UnaryExpr (e, o) {}
56835
 
  static const char *NodeId ();
56836
 
  const char *NodeName () const { return NodeId (); }
56837
 
   private:
56838
 
  typedef CT_PostfixExpr CCExprResolveExpr;
56839
 
 
56840
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56841
 
 public :
56842
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
56843
 
  typedef CT_PostfixExpr CExprResolveExpr;
56844
 
 
56845
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56846
 
 public :
56847
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56848
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56849
 
};
56850
 
 
56851
 
 
56852
 
#line 56853 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56853
 
} // closed Puma
56854
 
class WinIfExists;
56855
 
class WinImportHandler;
56856
 
class WinMacros;
56857
 
class CMatchSyntax;
56858
 
class ExtGnu;
56859
 
class ExtAC;
56860
 
class ExtACBuilderCoupling;
56861
 
class ExtACSyntaxCoupling;
56862
 
class ExtACTree;
56863
 
class ExtACKeywords;
56864
 
class WinAsm;
56865
 
class WinDeclSpecs;
56866
 
class WinMemberExplSpec;
56867
 
class WinTypeKeywords;
56868
 
class PragmaOnceUnitState;
56869
 
class PragmaOnce;
56870
 
class CCExprResolve;
56871
 
class CExprResolve;
56872
 
namespace Puma {
56873
 
 
56874
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56875
 
class CT_AddrExpr : public CT_UnaryExpr {
56876
 
#line 56877 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56877
 
  friend class ::WinIfExists;
56878
 
  friend class ::WinImportHandler;
56879
 
  friend class ::WinMacros;
56880
 
  friend class ::CMatchSyntax;
56881
 
  friend class ::ExtGnu;
56882
 
  friend class ::ExtAC;
56883
 
  friend class ::ExtACBuilderCoupling;
56884
 
  friend class ::ExtACSyntaxCoupling;
56885
 
  friend class ::ExtACTree;
56886
 
  friend class ::ExtACKeywords;
56887
 
  friend class ::WinAsm;
56888
 
  friend class ::WinDeclSpecs;
56889
 
  friend class ::WinMemberExplSpec;
56890
 
  friend class ::WinTypeKeywords;
56891
 
  friend class ::PragmaOnceUnitState;
56892
 
  friend class ::PragmaOnce;
56893
 
  friend class ::CCExprResolve;
56894
 
  friend class ::CExprResolve;
56895
 
 
56896
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56897
 
 
56898
 
public:
56899
 
  CT_AddrExpr (CTree *o, CTree *e) :
56900
 
    CT_UnaryExpr (o, e) {}
56901
 
  static const char *NodeId ();
56902
 
  const char *NodeName () const { return NodeId (); }
56903
 
   private:
56904
 
  typedef CT_AddrExpr CCExprResolveExpr;
56905
 
 
56906
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56907
 
 public :
56908
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
56909
 
  typedef CT_AddrExpr CExprResolveExpr;
56910
 
 
56911
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56912
 
 public :
56913
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56914
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56915
 
};
56916
 
 
56917
 
 
56918
 
#line 56919 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56919
 
} // closed Puma
56920
 
class WinIfExists;
56921
 
class WinImportHandler;
56922
 
class WinMacros;
56923
 
class CMatchSyntax;
56924
 
class ExtGnu;
56925
 
class ExtAC;
56926
 
class ExtACBuilderCoupling;
56927
 
class ExtACSyntaxCoupling;
56928
 
class ExtACTree;
56929
 
class ExtACKeywords;
56930
 
class WinAsm;
56931
 
class WinDeclSpecs;
56932
 
class WinMemberExplSpec;
56933
 
class WinTypeKeywords;
56934
 
class PragmaOnceUnitState;
56935
 
class PragmaOnce;
56936
 
class CCExprResolve;
56937
 
class CExprResolve;
56938
 
namespace Puma {
56939
 
 
56940
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56941
 
class CT_DerefExpr : public CT_UnaryExpr {
56942
 
#line 56943 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56943
 
  friend class ::WinIfExists;
56944
 
  friend class ::WinImportHandler;
56945
 
  friend class ::WinMacros;
56946
 
  friend class ::CMatchSyntax;
56947
 
  friend class ::ExtGnu;
56948
 
  friend class ::ExtAC;
56949
 
  friend class ::ExtACBuilderCoupling;
56950
 
  friend class ::ExtACSyntaxCoupling;
56951
 
  friend class ::ExtACTree;
56952
 
  friend class ::ExtACKeywords;
56953
 
  friend class ::WinAsm;
56954
 
  friend class ::WinDeclSpecs;
56955
 
  friend class ::WinMemberExplSpec;
56956
 
  friend class ::WinTypeKeywords;
56957
 
  friend class ::PragmaOnceUnitState;
56958
 
  friend class ::PragmaOnce;
56959
 
  friend class ::CCExprResolve;
56960
 
  friend class ::CExprResolve;
56961
 
 
56962
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56963
 
 
56964
 
public:
56965
 
  CT_DerefExpr (CTree *o, CTree *e) :
56966
 
    CT_UnaryExpr (o, e) {}
56967
 
  static const char *NodeId ();
56968
 
  const char *NodeName () const { return NodeId (); }
56969
 
   private:
56970
 
  typedef CT_DerefExpr CCExprResolveExpr;
56971
 
 
56972
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56973
 
 public :
56974
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
56975
 
  typedef CT_DerefExpr CExprResolveExpr;
56976
 
 
56977
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56978
 
 public :
56979
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56980
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56981
 
};
56982
 
 
56983
 
 
56984
 
#line 56985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
56985
 
} // closed Puma
56986
 
class WinIfExists;
56987
 
class WinImportHandler;
56988
 
class WinMacros;
56989
 
class CMatchSyntax;
56990
 
class ExtGnu;
56991
 
class ExtAC;
56992
 
class ExtACBuilderCoupling;
56993
 
class ExtACSyntaxCoupling;
56994
 
class ExtACTree;
56995
 
class ExtACKeywords;
56996
 
class WinAsm;
56997
 
class WinDeclSpecs;
56998
 
class WinMemberExplSpec;
56999
 
class WinTypeKeywords;
57000
 
class PragmaOnceUnitState;
57001
 
class PragmaOnce;
57002
 
class CCExprResolve;
57003
 
class CExprResolve;
57004
 
namespace Puma {
57005
 
 
57006
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57007
 
class CT_DeleteExpr : public CT_Expression, public CSemObject {
57008
 
#line 57009 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57009
 
  friend class ::WinIfExists;
57010
 
  friend class ::WinImportHandler;
57011
 
  friend class ::WinMacros;
57012
 
  friend class ::CMatchSyntax;
57013
 
  friend class ::ExtGnu;
57014
 
  friend class ::ExtAC;
57015
 
  friend class ::ExtACBuilderCoupling;
57016
 
  friend class ::ExtACSyntaxCoupling;
57017
 
  friend class ::ExtACTree;
57018
 
  friend class ::ExtACKeywords;
57019
 
  friend class ::WinAsm;
57020
 
  friend class ::WinDeclSpecs;
57021
 
  friend class ::WinMemberExplSpec;
57022
 
  friend class ::WinTypeKeywords;
57023
 
  friend class ::PragmaOnceUnitState;
57024
 
  friend class ::PragmaOnce;
57025
 
  friend class ::CCExprResolve;
57026
 
  friend class ::CExprResolve;
57027
 
 
57028
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57029
 
 
57030
 
  CTree *sons[2]; // oper, expr
57031
 
 
57032
 
public:
57033
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
57034
 
  static const char *NodeId ();
57035
 
  const char *NodeName () const { return NodeId (); }
57036
 
  int Sons () const { return 2; }
57037
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
57038
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57039
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
57040
 
  }
57041
 
  CTree *Expr () const { return sons[1]; }
57042
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
57043
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
57044
 
   private:
57045
 
  typedef CT_DeleteExpr CCExprResolveExpr;
57046
 
 
57047
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57048
 
 public :
57049
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
57050
 
  typedef CT_DeleteExpr CExprResolveExpr;
57051
 
 
57052
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57053
 
 public :
57054
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57055
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57056
 
};
57057
 
 
57058
 
 
57059
 
#line 57060 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57060
 
} // closed Puma
57061
 
class WinIfExists;
57062
 
class WinImportHandler;
57063
 
class WinMacros;
57064
 
class CMatchSyntax;
57065
 
class ExtGnu;
57066
 
class ExtAC;
57067
 
class ExtACBuilderCoupling;
57068
 
class ExtACSyntaxCoupling;
57069
 
class ExtACTree;
57070
 
class ExtACKeywords;
57071
 
class WinAsm;
57072
 
class WinDeclSpecs;
57073
 
class WinMemberExplSpec;
57074
 
class WinTypeKeywords;
57075
 
class PragmaOnceUnitState;
57076
 
class PragmaOnce;
57077
 
class CCExprResolve;
57078
 
class CExprResolve;
57079
 
namespace Puma {
57080
 
 
57081
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57082
 
class CT_NewExpr : public CT_Expression, public CSemObject {
57083
 
#line 57084 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57084
 
  friend class ::WinIfExists;
57085
 
  friend class ::WinImportHandler;
57086
 
  friend class ::WinMacros;
57087
 
  friend class ::CMatchSyntax;
57088
 
  friend class ::ExtGnu;
57089
 
  friend class ::ExtAC;
57090
 
  friend class ::ExtACBuilderCoupling;
57091
 
  friend class ::ExtACSyntaxCoupling;
57092
 
  friend class ::ExtACTree;
57093
 
  friend class ::ExtACKeywords;
57094
 
  friend class ::WinAsm;
57095
 
  friend class ::WinDeclSpecs;
57096
 
  friend class ::WinMemberExplSpec;
57097
 
  friend class ::WinTypeKeywords;
57098
 
  friend class ::PragmaOnceUnitState;
57099
 
  friend class ::PragmaOnce;
57100
 
  friend class ::CCExprResolve;
57101
 
  friend class ::CExprResolve;
57102
 
 
57103
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57104
 
 
57105
 
  CTree *sons[6]; // oper, placement, open, type, close, init
57106
 
 
57107
 
public:
57108
 
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
57109
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
57110
 
  }
57111
 
  static const char *NodeId ();
57112
 
  const char *NodeName () const { return NodeId (); }
57113
 
  int Sons () const { return CTree::Sons (sons, 6); }
57114
 
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
57115
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57116
 
    CTree::ReplaceSon (sons, 6, old_son, new_son);
57117
 
  }
57118
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
57119
 
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
57120
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
57121
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
57122
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
57123
 
   private:
57124
 
  typedef CT_NewExpr CCExprResolveExpr;
57125
 
 
57126
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57127
 
 public :
57128
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
57129
 
  typedef CT_NewExpr CExprResolveExpr;
57130
 
 
57131
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57132
 
 public :
57133
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57134
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57135
 
};
57136
 
 
57137
 
 
57138
 
#line 57139 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57139
 
} // closed Puma
57140
 
class WinIfExists;
57141
 
class WinImportHandler;
57142
 
class WinMacros;
57143
 
class CMatchSyntax;
57144
 
class ExtGnu;
57145
 
class ExtAC;
57146
 
class ExtACBuilderCoupling;
57147
 
class ExtACSyntaxCoupling;
57148
 
class ExtACTree;
57149
 
class ExtACKeywords;
57150
 
class WinAsm;
57151
 
class WinDeclSpecs;
57152
 
class WinMemberExplSpec;
57153
 
class WinTypeKeywords;
57154
 
class PragmaOnceUnitState;
57155
 
class PragmaOnce;
57156
 
class CCExprResolve;
57157
 
class CExprResolve;
57158
 
namespace Puma {
57159
 
 
57160
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57161
 
class CT_IfThenExpr : public CT_Expression {
57162
 
#line 57163 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57163
 
  friend class ::WinIfExists;
57164
 
  friend class ::WinImportHandler;
57165
 
  friend class ::WinMacros;
57166
 
  friend class ::CMatchSyntax;
57167
 
  friend class ::ExtGnu;
57168
 
  friend class ::ExtAC;
57169
 
  friend class ::ExtACBuilderCoupling;
57170
 
  friend class ::ExtACSyntaxCoupling;
57171
 
  friend class ::ExtACTree;
57172
 
  friend class ::ExtACKeywords;
57173
 
  friend class ::WinAsm;
57174
 
  friend class ::WinDeclSpecs;
57175
 
  friend class ::WinMemberExplSpec;
57176
 
  friend class ::WinTypeKeywords;
57177
 
  friend class ::PragmaOnceUnitState;
57178
 
  friend class ::PragmaOnce;
57179
 
  friend class ::CCExprResolve;
57180
 
  friend class ::CExprResolve;
57181
 
 
57182
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57183
 
 
57184
 
  CTree *sons[5]; // cond, oper, left, colon, right
57185
 
 
57186
 
public:
57187
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
57188
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
57189
 
  }
57190
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
57191
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
57192
 
  }
57193
 
  static const char *NodeId ();
57194
 
  const char *NodeName () const { return NodeId (); }
57195
 
  int Sons () const { return CTree::Sons (sons, 5); }
57196
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
57197
 
  CTree *Condition () const { return sons[0]; }
57198
 
  CTree *LeftOperand () const { return sons[2]; }
57199
 
  CTree *RightOperand () const { return sons[4]; }
57200
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57201
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
57202
 
  }
57203
 
   private:
57204
 
  typedef CT_IfThenExpr CCExprResolveExpr;
57205
 
 
57206
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57207
 
 public :
57208
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
57209
 
  typedef CT_IfThenExpr CExprResolveExpr;
57210
 
 
57211
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57212
 
 public :
57213
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57214
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57215
 
};
57216
 
 
57217
 
 
57218
 
#line 57219 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57219
 
} // closed Puma
57220
 
class WinIfExists;
57221
 
class WinImportHandler;
57222
 
class WinMacros;
57223
 
class CMatchSyntax;
57224
 
class ExtGnu;
57225
 
class ExtAC;
57226
 
class ExtACBuilderCoupling;
57227
 
class ExtACSyntaxCoupling;
57228
 
class ExtACTree;
57229
 
class ExtACKeywords;
57230
 
class WinAsm;
57231
 
class WinDeclSpecs;
57232
 
class WinMemberExplSpec;
57233
 
class WinTypeKeywords;
57234
 
class PragmaOnceUnitState;
57235
 
class PragmaOnce;
57236
 
class CCExprResolve;
57237
 
class CExprResolve;
57238
 
namespace Puma {
57239
 
 
57240
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57241
 
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
57242
 
#line 57243 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57243
 
  friend class ::WinIfExists;
57244
 
  friend class ::WinImportHandler;
57245
 
  friend class ::WinMacros;
57246
 
  friend class ::CMatchSyntax;
57247
 
  friend class ::ExtGnu;
57248
 
  friend class ::ExtAC;
57249
 
  friend class ::ExtACBuilderCoupling;
57250
 
  friend class ::ExtACSyntaxCoupling;
57251
 
  friend class ::ExtACTree;
57252
 
  friend class ::ExtACKeywords;
57253
 
  friend class ::WinAsm;
57254
 
  friend class ::WinDeclSpecs;
57255
 
  friend class ::WinMemberExplSpec;
57256
 
  friend class ::WinTypeKeywords;
57257
 
  friend class ::PragmaOnceUnitState;
57258
 
  friend class ::PragmaOnce;
57259
 
  friend class ::CCExprResolve;
57260
 
  friend class ::CExprResolve;
57261
 
 
57262
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57263
 
 
57264
 
  CTree *sons[4]; // open, type, close, init
57265
 
 
57266
 
public:
57267
 
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
57268
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
57269
 
  }
57270
 
  static const char *NodeId ();
57271
 
  const char *NodeName () const { return NodeId (); }
57272
 
  int Sons () const { return 4; }
57273
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
57274
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57275
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
57276
 
  }
57277
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
57278
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
57279
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
57280
 
   private:
57281
 
  typedef CT_CmpdLiteral CCExprResolveExpr;
57282
 
 
57283
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57284
 
 public :
57285
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
57286
 
  typedef CT_CmpdLiteral CExprResolveExpr;
57287
 
 
57288
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57289
 
 public :
57290
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57291
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57292
 
};
57293
 
 
57294
 
 
57295
 
#line 57296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57296
 
} // closed Puma
57297
 
class WinIfExists;
57298
 
class WinImportHandler;
57299
 
class WinMacros;
57300
 
class CMatchSyntax;
57301
 
class ExtGnu;
57302
 
class ExtAC;
57303
 
class ExtACBuilderCoupling;
57304
 
class ExtACSyntaxCoupling;
57305
 
class ExtACTree;
57306
 
class ExtACKeywords;
57307
 
class WinAsm;
57308
 
class WinDeclSpecs;
57309
 
class WinMemberExplSpec;
57310
 
class WinTypeKeywords;
57311
 
class PragmaOnceUnitState;
57312
 
class PragmaOnce;
57313
 
class CCExprResolve;
57314
 
class CExprResolve;
57315
 
namespace Puma {
57316
 
 
57317
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57318
 
class CT_ConstructExpr : public CT_Expression, public CSemObject {
57319
 
#line 57320 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57320
 
  friend class ::WinIfExists;
57321
 
  friend class ::WinImportHandler;
57322
 
  friend class ::WinMacros;
57323
 
  friend class ::CMatchSyntax;
57324
 
  friend class ::ExtGnu;
57325
 
  friend class ::ExtAC;
57326
 
  friend class ::ExtACBuilderCoupling;
57327
 
  friend class ::ExtACSyntaxCoupling;
57328
 
  friend class ::ExtACTree;
57329
 
  friend class ::ExtACKeywords;
57330
 
  friend class ::WinAsm;
57331
 
  friend class ::WinDeclSpecs;
57332
 
  friend class ::WinMemberExplSpec;
57333
 
  friend class ::WinTypeKeywords;
57334
 
  friend class ::PragmaOnceUnitState;
57335
 
  friend class ::PragmaOnce;
57336
 
  friend class ::CCExprResolve;
57337
 
  friend class ::CExprResolve;
57338
 
 
57339
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57340
 
 
57341
 
  CTree *sons[2]; // type, init
57342
 
 
57343
 
public:
57344
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
57345
 
  static const char *NodeId ();
57346
 
  const char *NodeName () const { return NodeId (); }
57347
 
  int Sons () const { return 2; }
57348
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
57349
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57350
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
57351
 
  }
57352
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
57353
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
57354
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
57355
 
   private:
57356
 
  typedef CT_ConstructExpr CCExprResolveExpr;
57357
 
 
57358
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57359
 
 public :
57360
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
57361
 
  typedef CT_ConstructExpr CExprResolveExpr;
57362
 
 
57363
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57364
 
 public :
57365
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57366
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57367
 
};
57368
 
 
57369
 
 
57370
 
#line 57371 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57371
 
} // closed Puma
57372
 
class WinIfExists;
57373
 
class WinImportHandler;
57374
 
class WinMacros;
57375
 
class CMatchSyntax;
57376
 
class ExtGnu;
57377
 
class ExtAC;
57378
 
class ExtACBuilderCoupling;
57379
 
class ExtACSyntaxCoupling;
57380
 
class ExtACTree;
57381
 
class ExtACKeywords;
57382
 
class WinAsm;
57383
 
class WinDeclSpecs;
57384
 
class WinMemberExplSpec;
57385
 
class WinTypeKeywords;
57386
 
class PragmaOnceUnitState;
57387
 
class PragmaOnce;
57388
 
class CCExprResolve;
57389
 
class CExprResolve;
57390
 
namespace Puma {
57391
 
 
57392
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57393
 
class CT_ThrowExpr : public CT_Expression {
57394
 
#line 57395 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57395
 
  friend class ::WinIfExists;
57396
 
  friend class ::WinImportHandler;
57397
 
  friend class ::WinMacros;
57398
 
  friend class ::CMatchSyntax;
57399
 
  friend class ::ExtGnu;
57400
 
  friend class ::ExtAC;
57401
 
  friend class ::ExtACBuilderCoupling;
57402
 
  friend class ::ExtACSyntaxCoupling;
57403
 
  friend class ::ExtACTree;
57404
 
  friend class ::ExtACKeywords;
57405
 
  friend class ::WinAsm;
57406
 
  friend class ::WinDeclSpecs;
57407
 
  friend class ::WinMemberExplSpec;
57408
 
  friend class ::WinTypeKeywords;
57409
 
  friend class ::PragmaOnceUnitState;
57410
 
  friend class ::PragmaOnce;
57411
 
  friend class ::CCExprResolve;
57412
 
  friend class ::CExprResolve;
57413
 
 
57414
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57415
 
 
57416
 
  CTree *sons[2]; // throw, expr
57417
 
 
57418
 
public:
57419
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
57420
 
  static const char *NodeId ();
57421
 
  const char *NodeName () const { return NodeId (); }
57422
 
  int Sons () const { return CTree::Sons (sons, 2); }
57423
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
57424
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57425
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
57426
 
  }
57427
 
  CTree *Expr () const { return sons[1]; }
57428
 
   private:
57429
 
  typedef CT_ThrowExpr CCExprResolveExpr;
57430
 
 
57431
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57432
 
 public :
57433
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
57434
 
  typedef CT_ThrowExpr CExprResolveExpr;
57435
 
 
57436
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57437
 
 public :
57438
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57439
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57440
 
};
57441
 
 
57442
 
 
57443
 
#line 57444 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57444
 
} // closed Puma
57445
 
class WinIfExists;
57446
 
class WinImportHandler;
57447
 
class WinMacros;
57448
 
class CMatchSyntax;
57449
 
class ExtGnu;
57450
 
class ExtAC;
57451
 
class ExtACBuilderCoupling;
57452
 
class ExtACSyntaxCoupling;
57453
 
class ExtACTree;
57454
 
class ExtACKeywords;
57455
 
class WinAsm;
57456
 
class WinDeclSpecs;
57457
 
class WinMemberExplSpec;
57458
 
class WinTypeKeywords;
57459
 
class PragmaOnceUnitState;
57460
 
class PragmaOnce;
57461
 
class CCExprResolve;
57462
 
class CExprResolve;
57463
 
namespace Puma {
57464
 
 
57465
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57466
 
class CT_IndexExpr : public CT_Expression {
57467
 
#line 57468 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57468
 
  friend class ::WinIfExists;
57469
 
  friend class ::WinImportHandler;
57470
 
  friend class ::WinMacros;
57471
 
  friend class ::CMatchSyntax;
57472
 
  friend class ::ExtGnu;
57473
 
  friend class ::ExtAC;
57474
 
  friend class ::ExtACBuilderCoupling;
57475
 
  friend class ::ExtACSyntaxCoupling;
57476
 
  friend class ::ExtACTree;
57477
 
  friend class ::ExtACKeywords;
57478
 
  friend class ::WinAsm;
57479
 
  friend class ::WinDeclSpecs;
57480
 
  friend class ::WinMemberExplSpec;
57481
 
  friend class ::WinTypeKeywords;
57482
 
  friend class ::PragmaOnceUnitState;
57483
 
  friend class ::PragmaOnce;
57484
 
  friend class ::CCExprResolve;
57485
 
  friend class ::CExprResolve;
57486
 
 
57487
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57488
 
 
57489
 
  CTree *sons[4]; // expr, open, index, close
57490
 
 
57491
 
public:
57492
 
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
57493
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
57494
 
  }
57495
 
  static const char *NodeId ();
57496
 
  const char *NodeName () const { return NodeId (); }
57497
 
  int Sons () const { return 4; }
57498
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
57499
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57500
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
57501
 
  }
57502
 
   private:
57503
 
  typedef CT_IndexExpr CCExprResolveExpr;
57504
 
 
57505
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57506
 
 public :
57507
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
57508
 
  typedef CT_IndexExpr CExprResolveExpr;
57509
 
 
57510
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57511
 
 public :
57512
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57513
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57514
 
};
57515
 
 
57516
 
 
57517
 
#line 57518 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57518
 
} // closed Puma
57519
 
class WinIfExists;
57520
 
class WinImportHandler;
57521
 
class WinMacros;
57522
 
class CMatchSyntax;
57523
 
class ExtGnu;
57524
 
class ExtAC;
57525
 
class ExtACBuilderCoupling;
57526
 
class ExtACSyntaxCoupling;
57527
 
class ExtACTree;
57528
 
class ExtACKeywords;
57529
 
class WinAsm;
57530
 
class WinDeclSpecs;
57531
 
class WinMemberExplSpec;
57532
 
class WinTypeKeywords;
57533
 
class PragmaOnceUnitState;
57534
 
class PragmaOnce;
57535
 
class CCExprResolve;
57536
 
class CExprResolve;
57537
 
namespace Puma {
57538
 
 
57539
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57540
 
class CT_CallExpr : public CT_Expression, public CSemObject {
57541
 
#line 57542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57542
 
  friend class ::WinIfExists;
57543
 
  friend class ::WinImportHandler;
57544
 
  friend class ::WinMacros;
57545
 
  friend class ::CMatchSyntax;
57546
 
  friend class ::ExtGnu;
57547
 
  friend class ::ExtAC;
57548
 
  friend class ::ExtACBuilderCoupling;
57549
 
  friend class ::ExtACSyntaxCoupling;
57550
 
  friend class ::ExtACTree;
57551
 
  friend class ::ExtACKeywords;
57552
 
  friend class ::WinAsm;
57553
 
  friend class ::WinDeclSpecs;
57554
 
  friend class ::WinMemberExplSpec;
57555
 
  friend class ::WinTypeKeywords;
57556
 
  friend class ::PragmaOnceUnitState;
57557
 
  friend class ::PragmaOnce;
57558
 
  friend class ::CCExprResolve;
57559
 
  friend class ::CExprResolve;
57560
 
 
57561
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57562
 
 
57563
 
  CTree *sons[2]; // expr, args
57564
 
 
57565
 
public:
57566
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
57567
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
57568
 
  static const char *NodeId ();
57569
 
  const char *NodeName () const { return NodeId (); }
57570
 
  int Sons () const { return CTree::Sons (sons, 2); }
57571
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
57572
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57573
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
57574
 
  }
57575
 
  CTree *Expr () const { return sons[0]; }
57576
 
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
57577
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
57578
 
   private:
57579
 
  typedef CT_CallExpr CCExprResolveExpr;
57580
 
 
57581
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57582
 
 public :
57583
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
57584
 
  typedef CT_CallExpr CExprResolveExpr;
57585
 
 
57586
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57587
 
 public :
57588
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57589
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57590
 
};
57591
 
 
57592
 
 
57593
 
#line 57594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57594
 
} // closed Puma
57595
 
class WinIfExists;
57596
 
class WinImportHandler;
57597
 
class WinMacros;
57598
 
class CMatchSyntax;
57599
 
class ExtGnu;
57600
 
class ExtAC;
57601
 
class ExtACBuilderCoupling;
57602
 
class ExtACSyntaxCoupling;
57603
 
class ExtACTree;
57604
 
class ExtACKeywords;
57605
 
class WinAsm;
57606
 
class WinDeclSpecs;
57607
 
class WinMemberExplSpec;
57608
 
class WinTypeKeywords;
57609
 
class PragmaOnceUnitState;
57610
 
class PragmaOnce;
57611
 
class CCExprResolve;
57612
 
class CExprResolve;
57613
 
namespace Puma {
57614
 
 
57615
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57616
 
class CT_CastExpr : public CT_Expression {
57617
 
#line 57618 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57618
 
  friend class ::WinIfExists;
57619
 
  friend class ::WinImportHandler;
57620
 
  friend class ::WinMacros;
57621
 
  friend class ::CMatchSyntax;
57622
 
  friend class ::ExtGnu;
57623
 
  friend class ::ExtAC;
57624
 
  friend class ::ExtACBuilderCoupling;
57625
 
  friend class ::ExtACSyntaxCoupling;
57626
 
  friend class ::ExtACTree;
57627
 
  friend class ::ExtACKeywords;
57628
 
  friend class ::WinAsm;
57629
 
  friend class ::WinDeclSpecs;
57630
 
  friend class ::WinMemberExplSpec;
57631
 
  friend class ::WinTypeKeywords;
57632
 
  friend class ::PragmaOnceUnitState;
57633
 
  friend class ::PragmaOnce;
57634
 
  friend class ::CCExprResolve;
57635
 
  friend class ::CExprResolve;
57636
 
 
57637
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57638
 
 
57639
 
  CTree *sons[4]; // open, type, close, expr
57640
 
 
57641
 
public:
57642
 
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
57643
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
57644
 
  }
57645
 
  static const char *NodeId ();
57646
 
  const char *NodeName () const { return NodeId (); }
57647
 
  int Sons () const { return 4; }
57648
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
57649
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57650
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
57651
 
  }
57652
 
  CTree *Expr () const { return sons[3]; }
57653
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
57654
 
   private:
57655
 
  typedef CT_CastExpr CCExprResolveExpr;
57656
 
 
57657
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57658
 
 public :
57659
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
57660
 
  typedef CT_CastExpr CExprResolveExpr;
57661
 
 
57662
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57663
 
 public :
57664
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57665
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57666
 
};
57667
 
 
57668
 
 
57669
 
#line 57670 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57670
 
} // closed Puma
57671
 
class WinIfExists;
57672
 
class WinImportHandler;
57673
 
class WinMacros;
57674
 
class CMatchSyntax;
57675
 
class ExtGnu;
57676
 
class ExtAC;
57677
 
class ExtACBuilderCoupling;
57678
 
class ExtACSyntaxCoupling;
57679
 
class ExtACTree;
57680
 
class ExtACKeywords;
57681
 
class WinAsm;
57682
 
class WinDeclSpecs;
57683
 
class WinMemberExplSpec;
57684
 
class WinTypeKeywords;
57685
 
class PragmaOnceUnitState;
57686
 
class PragmaOnce;
57687
 
class CCExprResolve;
57688
 
class CExprResolve;
57689
 
namespace Puma {
57690
 
 
57691
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57692
 
class CT_StaticCast : public CT_Expression {
57693
 
#line 57694 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57694
 
  friend class ::WinIfExists;
57695
 
  friend class ::WinImportHandler;
57696
 
  friend class ::WinMacros;
57697
 
  friend class ::CMatchSyntax;
57698
 
  friend class ::ExtGnu;
57699
 
  friend class ::ExtAC;
57700
 
  friend class ::ExtACBuilderCoupling;
57701
 
  friend class ::ExtACSyntaxCoupling;
57702
 
  friend class ::ExtACTree;
57703
 
  friend class ::ExtACKeywords;
57704
 
  friend class ::WinAsm;
57705
 
  friend class ::WinDeclSpecs;
57706
 
  friend class ::WinMemberExplSpec;
57707
 
  friend class ::WinTypeKeywords;
57708
 
  friend class ::PragmaOnceUnitState;
57709
 
  friend class ::PragmaOnce;
57710
 
  friend class ::CCExprResolve;
57711
 
  friend class ::CExprResolve;
57712
 
 
57713
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57714
 
 
57715
 
  CTree *sons[5]; // cast, open, type, close, expr
57716
 
 
57717
 
public:
57718
 
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
57719
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
57720
 
  }
57721
 
  static const char *NodeId ();
57722
 
  const char *NodeName () const { return NodeId (); }
57723
 
  int Sons () const { return 5; }
57724
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
57725
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57726
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
57727
 
  }
57728
 
  CTree *Expr () const { return sons[4]; }
57729
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
57730
 
   private:
57731
 
  typedef CT_StaticCast CCExprResolveExpr;
57732
 
 
57733
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57734
 
 public :
57735
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
57736
 
  typedef CT_StaticCast CExprResolveExpr;
57737
 
 
57738
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57739
 
 public :
57740
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57741
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57742
 
};
57743
 
 
57744
 
 
57745
 
#line 57746 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57746
 
} // closed Puma
57747
 
class WinIfExists;
57748
 
class WinImportHandler;
57749
 
class WinMacros;
57750
 
class CMatchSyntax;
57751
 
class ExtGnu;
57752
 
class ExtAC;
57753
 
class ExtACBuilderCoupling;
57754
 
class ExtACSyntaxCoupling;
57755
 
class ExtACTree;
57756
 
class ExtACKeywords;
57757
 
class WinAsm;
57758
 
class WinDeclSpecs;
57759
 
class WinMemberExplSpec;
57760
 
class WinTypeKeywords;
57761
 
class PragmaOnceUnitState;
57762
 
class PragmaOnce;
57763
 
class CCExprResolve;
57764
 
class CExprResolve;
57765
 
namespace Puma {
57766
 
 
57767
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57768
 
class CT_ConstCast : public CT_StaticCast {
57769
 
#line 57770 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57770
 
  friend class ::WinIfExists;
57771
 
  friend class ::WinImportHandler;
57772
 
  friend class ::WinMacros;
57773
 
  friend class ::CMatchSyntax;
57774
 
  friend class ::ExtGnu;
57775
 
  friend class ::ExtAC;
57776
 
  friend class ::ExtACBuilderCoupling;
57777
 
  friend class ::ExtACSyntaxCoupling;
57778
 
  friend class ::ExtACTree;
57779
 
  friend class ::ExtACKeywords;
57780
 
  friend class ::WinAsm;
57781
 
  friend class ::WinDeclSpecs;
57782
 
  friend class ::WinMemberExplSpec;
57783
 
  friend class ::WinTypeKeywords;
57784
 
  friend class ::PragmaOnceUnitState;
57785
 
  friend class ::PragmaOnce;
57786
 
  friend class ::CCExprResolve;
57787
 
  friend class ::CExprResolve;
57788
 
 
57789
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57790
 
 
57791
 
public:
57792
 
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
57793
 
    CT_StaticCast (cst, o, t, c, e) {}
57794
 
  static const char *NodeId ();
57795
 
  const char *NodeName () const { return NodeId (); }
57796
 
   private:
57797
 
  typedef CT_ConstCast CCExprResolveExpr;
57798
 
 
57799
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57800
 
 public :
57801
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
57802
 
  typedef CT_ConstCast CExprResolveExpr;
57803
 
 
57804
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57805
 
 public :
57806
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57807
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57808
 
};
57809
 
 
57810
 
 
57811
 
#line 57812 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57812
 
} // closed Puma
57813
 
class WinIfExists;
57814
 
class WinImportHandler;
57815
 
class WinMacros;
57816
 
class CMatchSyntax;
57817
 
class ExtGnu;
57818
 
class ExtAC;
57819
 
class ExtACBuilderCoupling;
57820
 
class ExtACSyntaxCoupling;
57821
 
class ExtACTree;
57822
 
class ExtACKeywords;
57823
 
class WinAsm;
57824
 
class WinDeclSpecs;
57825
 
class WinMemberExplSpec;
57826
 
class WinTypeKeywords;
57827
 
class PragmaOnceUnitState;
57828
 
class PragmaOnce;
57829
 
class CCExprResolve;
57830
 
class CExprResolve;
57831
 
namespace Puma {
57832
 
 
57833
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57834
 
class CT_ReintCast : public CT_StaticCast {
57835
 
#line 57836 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57836
 
  friend class ::WinIfExists;
57837
 
  friend class ::WinImportHandler;
57838
 
  friend class ::WinMacros;
57839
 
  friend class ::CMatchSyntax;
57840
 
  friend class ::ExtGnu;
57841
 
  friend class ::ExtAC;
57842
 
  friend class ::ExtACBuilderCoupling;
57843
 
  friend class ::ExtACSyntaxCoupling;
57844
 
  friend class ::ExtACTree;
57845
 
  friend class ::ExtACKeywords;
57846
 
  friend class ::WinAsm;
57847
 
  friend class ::WinDeclSpecs;
57848
 
  friend class ::WinMemberExplSpec;
57849
 
  friend class ::WinTypeKeywords;
57850
 
  friend class ::PragmaOnceUnitState;
57851
 
  friend class ::PragmaOnce;
57852
 
  friend class ::CCExprResolve;
57853
 
  friend class ::CExprResolve;
57854
 
 
57855
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57856
 
 
57857
 
public:
57858
 
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
57859
 
    CT_StaticCast (cst, o, t, c, e) {}
57860
 
  static const char *NodeId ();
57861
 
  const char *NodeName () const { return NodeId (); }
57862
 
   private:
57863
 
  typedef CT_ReintCast CCExprResolveExpr;
57864
 
 
57865
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57866
 
 public :
57867
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
57868
 
  typedef CT_ReintCast CExprResolveExpr;
57869
 
 
57870
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57871
 
 public :
57872
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57873
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57874
 
};
57875
 
 
57876
 
 
57877
 
#line 57878 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57878
 
} // closed Puma
57879
 
class WinIfExists;
57880
 
class WinImportHandler;
57881
 
class WinMacros;
57882
 
class CMatchSyntax;
57883
 
class ExtGnu;
57884
 
class ExtAC;
57885
 
class ExtACBuilderCoupling;
57886
 
class ExtACSyntaxCoupling;
57887
 
class ExtACTree;
57888
 
class ExtACKeywords;
57889
 
class WinAsm;
57890
 
class WinDeclSpecs;
57891
 
class WinMemberExplSpec;
57892
 
class WinTypeKeywords;
57893
 
class PragmaOnceUnitState;
57894
 
class PragmaOnce;
57895
 
class CCExprResolve;
57896
 
class CExprResolve;
57897
 
namespace Puma {
57898
 
 
57899
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57900
 
class CT_DynamicCast : public CT_StaticCast {
57901
 
#line 57902 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57902
 
  friend class ::WinIfExists;
57903
 
  friend class ::WinImportHandler;
57904
 
  friend class ::WinMacros;
57905
 
  friend class ::CMatchSyntax;
57906
 
  friend class ::ExtGnu;
57907
 
  friend class ::ExtAC;
57908
 
  friend class ::ExtACBuilderCoupling;
57909
 
  friend class ::ExtACSyntaxCoupling;
57910
 
  friend class ::ExtACTree;
57911
 
  friend class ::ExtACKeywords;
57912
 
  friend class ::WinAsm;
57913
 
  friend class ::WinDeclSpecs;
57914
 
  friend class ::WinMemberExplSpec;
57915
 
  friend class ::WinTypeKeywords;
57916
 
  friend class ::PragmaOnceUnitState;
57917
 
  friend class ::PragmaOnce;
57918
 
  friend class ::CCExprResolve;
57919
 
  friend class ::CExprResolve;
57920
 
 
57921
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57922
 
 
57923
 
public:
57924
 
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
57925
 
    CT_StaticCast (cst, o, t, c, e) {}
57926
 
  static const char *NodeId ();
57927
 
  const char *NodeName () const { return NodeId (); }
57928
 
   private:
57929
 
  typedef CT_DynamicCast CCExprResolveExpr;
57930
 
 
57931
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57932
 
 public :
57933
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
57934
 
  typedef CT_DynamicCast CExprResolveExpr;
57935
 
 
57936
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57937
 
 public :
57938
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57939
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57940
 
};
57941
 
 
57942
 
 
57943
 
#line 57944 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57944
 
} // closed Puma
57945
 
class WinIfExists;
57946
 
class WinImportHandler;
57947
 
class WinMacros;
57948
 
class CMatchSyntax;
57949
 
class ExtGnu;
57950
 
class ExtAC;
57951
 
class ExtACBuilderCoupling;
57952
 
class ExtACSyntaxCoupling;
57953
 
class ExtACTree;
57954
 
class ExtACKeywords;
57955
 
class WinAsm;
57956
 
class WinDeclSpecs;
57957
 
class WinMemberExplSpec;
57958
 
class WinTypeKeywords;
57959
 
class PragmaOnceUnitState;
57960
 
class PragmaOnce;
57961
 
class CCExprResolve;
57962
 
class CExprResolve;
57963
 
namespace Puma {
57964
 
 
57965
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57966
 
class CT_ImplicitCast : public CT_Expression {
57967
 
#line 57968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
57968
 
  friend class ::WinIfExists;
57969
 
  friend class ::WinImportHandler;
57970
 
  friend class ::WinMacros;
57971
 
  friend class ::CMatchSyntax;
57972
 
  friend class ::ExtGnu;
57973
 
  friend class ::ExtAC;
57974
 
  friend class ::ExtACBuilderCoupling;
57975
 
  friend class ::ExtACSyntaxCoupling;
57976
 
  friend class ::ExtACTree;
57977
 
  friend class ::ExtACKeywords;
57978
 
  friend class ::WinAsm;
57979
 
  friend class ::WinDeclSpecs;
57980
 
  friend class ::WinMemberExplSpec;
57981
 
  friend class ::WinTypeKeywords;
57982
 
  friend class ::PragmaOnceUnitState;
57983
 
  friend class ::PragmaOnce;
57984
 
  friend class ::CCExprResolve;
57985
 
  friend class ::CExprResolve;
57986
 
 
57987
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57988
 
 
57989
 
  CTree *_expr; // casted expression
57990
 
 
57991
 
public:
57992
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
57993
 
  static const char *NodeId ();
57994
 
  const char *NodeName () const { return NodeId (); }
57995
 
  int Sons () const { return 1; }
57996
 
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
57997
 
  CTree *Expr () const { return _expr; }
57998
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
57999
 
   { if (old_son == _expr) _expr = new_son; }
58000
 
   private:
58001
 
  typedef CT_ImplicitCast CCExprResolveExpr;
58002
 
 
58003
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58004
 
 public :
58005
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
58006
 
  typedef CT_ImplicitCast CExprResolveExpr;
58007
 
 
58008
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58009
 
 public :
58010
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58011
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58012
 
};
58013
 
 
58014
 
 
58015
 
#line 58016 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58016
 
} // closed Puma
58017
 
class WinIfExists;
58018
 
class WinImportHandler;
58019
 
class WinMacros;
58020
 
class CMatchSyntax;
58021
 
class ExtGnu;
58022
 
class ExtAC;
58023
 
class ExtACBuilderCoupling;
58024
 
class ExtACSyntaxCoupling;
58025
 
class ExtACTree;
58026
 
class ExtACKeywords;
58027
 
class WinAsm;
58028
 
class WinDeclSpecs;
58029
 
class WinMemberExplSpec;
58030
 
class WinTypeKeywords;
58031
 
class PragmaOnceUnitState;
58032
 
class PragmaOnce;
58033
 
class CCExprResolve;
58034
 
class CExprResolve;
58035
 
namespace Puma {
58036
 
 
58037
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58038
 
class CT_TypeidExpr : public CT_Expression {
58039
 
#line 58040 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58040
 
  friend class ::WinIfExists;
58041
 
  friend class ::WinImportHandler;
58042
 
  friend class ::WinMacros;
58043
 
  friend class ::CMatchSyntax;
58044
 
  friend class ::ExtGnu;
58045
 
  friend class ::ExtAC;
58046
 
  friend class ::ExtACBuilderCoupling;
58047
 
  friend class ::ExtACSyntaxCoupling;
58048
 
  friend class ::ExtACTree;
58049
 
  friend class ::ExtACKeywords;
58050
 
  friend class ::WinAsm;
58051
 
  friend class ::WinDeclSpecs;
58052
 
  friend class ::WinMemberExplSpec;
58053
 
  friend class ::WinTypeKeywords;
58054
 
  friend class ::PragmaOnceUnitState;
58055
 
  friend class ::PragmaOnce;
58056
 
  friend class ::CCExprResolve;
58057
 
  friend class ::CExprResolve;
58058
 
 
58059
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58060
 
 
58061
 
  CTree *sons[4]; // typeid, open, type_id/expr, close
58062
 
 
58063
 
public:
58064
 
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
58065
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
58066
 
  }
58067
 
  static const char *NodeId ();
58068
 
  const char *NodeName () const { return NodeId (); }
58069
 
  int Sons () const { return 4; }
58070
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
58071
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58072
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
58073
 
  }
58074
 
  CTree *Arg () const { return sons[2]; }
58075
 
   private:
58076
 
  typedef CT_TypeidExpr CCExprResolveExpr;
58077
 
 
58078
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58079
 
 public :
58080
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
58081
 
  typedef CT_TypeidExpr CExprResolveExpr;
58082
 
 
58083
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58084
 
 public :
58085
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58086
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58087
 
};
58088
 
 
58089
 
 
58090
 
#line 58091 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58091
 
} // closed Puma
58092
 
class WinIfExists;
58093
 
class WinImportHandler;
58094
 
class WinMacros;
58095
 
class CMatchSyntax;
58096
 
class ExtGnu;
58097
 
class ExtAC;
58098
 
class ExtACBuilderCoupling;
58099
 
class ExtACSyntaxCoupling;
58100
 
class ExtACTree;
58101
 
class ExtACKeywords;
58102
 
class WinAsm;
58103
 
class WinDeclSpecs;
58104
 
class WinMemberExplSpec;
58105
 
class WinTypeKeywords;
58106
 
class PragmaOnceUnitState;
58107
 
class PragmaOnce;
58108
 
class CCExprResolve;
58109
 
class CExprResolve;
58110
 
namespace Puma {
58111
 
 
58112
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58113
 
class CT_SizeofExpr : public CT_Expression {
58114
 
#line 58115 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58115
 
  friend class ::WinIfExists;
58116
 
  friend class ::WinImportHandler;
58117
 
  friend class ::WinMacros;
58118
 
  friend class ::CMatchSyntax;
58119
 
  friend class ::ExtGnu;
58120
 
  friend class ::ExtAC;
58121
 
  friend class ::ExtACBuilderCoupling;
58122
 
  friend class ::ExtACSyntaxCoupling;
58123
 
  friend class ::ExtACTree;
58124
 
  friend class ::ExtACKeywords;
58125
 
  friend class ::WinAsm;
58126
 
  friend class ::WinDeclSpecs;
58127
 
  friend class ::WinMemberExplSpec;
58128
 
  friend class ::WinTypeKeywords;
58129
 
  friend class ::PragmaOnceUnitState;
58130
 
  friend class ::PragmaOnce;
58131
 
  friend class ::CCExprResolve;
58132
 
  friend class ::CExprResolve;
58133
 
 
58134
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58135
 
 
58136
 
  CTree *sons[5]; // key, open, type, close, expr
58137
 
 
58138
 
public:
58139
 
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
58140
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
58141
 
  }
58142
 
  CT_SizeofExpr (CTree *k, CTree *e) {
58143
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
58144
 
  }
58145
 
  static const char *NodeId ();
58146
 
  const char *NodeName () const { return NodeId (); }
58147
 
  int Sons () const { return CTree::Sons (sons, 5); }
58148
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
58149
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58150
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
58151
 
  }
58152
 
  CTree *Expr () const { return sons[4]; }
58153
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
58154
 
   private:
58155
 
  typedef CT_SizeofExpr CCExprResolveExpr;
58156
 
 
58157
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58158
 
 public :
58159
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
58160
 
  typedef CT_SizeofExpr CExprResolveExpr;
58161
 
 
58162
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58163
 
 public :
58164
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58165
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58166
 
};
58167
 
 
58168
 
 
58169
 
#line 58170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58170
 
} // closed Puma
58171
 
class WinIfExists;
58172
 
class WinImportHandler;
58173
 
class WinMacros;
58174
 
class CMatchSyntax;
58175
 
class ExtGnu;
58176
 
class ExtAC;
58177
 
class ExtACBuilderCoupling;
58178
 
class ExtACSyntaxCoupling;
58179
 
class ExtACTree;
58180
 
class ExtACKeywords;
58181
 
class WinAsm;
58182
 
class WinDeclSpecs;
58183
 
class WinMemberExplSpec;
58184
 
class WinTypeKeywords;
58185
 
class PragmaOnceUnitState;
58186
 
class PragmaOnce;
58187
 
class CCExprResolve;
58188
 
class CExprResolve;
58189
 
namespace Puma {
58190
 
 
58191
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58192
 
class CT_IndexDesignator : public CT_Expression {
58193
 
#line 58194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58194
 
  friend class ::WinIfExists;
58195
 
  friend class ::WinImportHandler;
58196
 
  friend class ::WinMacros;
58197
 
  friend class ::CMatchSyntax;
58198
 
  friend class ::ExtGnu;
58199
 
  friend class ::ExtAC;
58200
 
  friend class ::ExtACBuilderCoupling;
58201
 
  friend class ::ExtACSyntaxCoupling;
58202
 
  friend class ::ExtACTree;
58203
 
  friend class ::ExtACKeywords;
58204
 
  friend class ::WinAsm;
58205
 
  friend class ::WinDeclSpecs;
58206
 
  friend class ::WinMemberExplSpec;
58207
 
  friend class ::WinTypeKeywords;
58208
 
  friend class ::PragmaOnceUnitState;
58209
 
  friend class ::PragmaOnce;
58210
 
  friend class ::CCExprResolve;
58211
 
  friend class ::CExprResolve;
58212
 
 
58213
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58214
 
 
58215
 
  CTree *sons[3]; // open, index, close
58216
 
 
58217
 
public:
58218
 
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
58219
 
    sons[0] = o; sons[1] = i; sons[2] = c;
58220
 
  }
58221
 
  static const char *NodeId ();
58222
 
  const char *NodeName () const { return NodeId (); }
58223
 
  int Sons () const { return 3; }
58224
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
58225
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58226
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
58227
 
  }
58228
 
   private:
58229
 
  typedef CT_IndexDesignator CCExprResolveExpr;
58230
 
 
58231
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58232
 
 public :
58233
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
58234
 
  typedef CT_IndexDesignator CExprResolveExpr;
58235
 
 
58236
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58237
 
 public :
58238
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58239
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58240
 
};
58241
 
 
58242
 
 
58243
 
#line 58244 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58244
 
} // closed Puma
58245
 
class WinIfExists;
58246
 
class WinImportHandler;
58247
 
class WinMacros;
58248
 
class CMatchSyntax;
58249
 
class ExtGnu;
58250
 
class ExtAC;
58251
 
class ExtACBuilderCoupling;
58252
 
class ExtACSyntaxCoupling;
58253
 
class ExtACTree;
58254
 
class ExtACKeywords;
58255
 
class WinAsm;
58256
 
class WinDeclSpecs;
58257
 
class WinMemberExplSpec;
58258
 
class WinTypeKeywords;
58259
 
class PragmaOnceUnitState;
58260
 
class PragmaOnce;
58261
 
class CCExprResolve;
58262
 
class CExprResolve;
58263
 
namespace Puma {
58264
 
 
58265
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58266
 
class CT_MembDesignator : public CT_Expression {
58267
 
#line 58268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58268
 
  friend class ::WinIfExists;
58269
 
  friend class ::WinImportHandler;
58270
 
  friend class ::WinMacros;
58271
 
  friend class ::CMatchSyntax;
58272
 
  friend class ::ExtGnu;
58273
 
  friend class ::ExtAC;
58274
 
  friend class ::ExtACBuilderCoupling;
58275
 
  friend class ::ExtACSyntaxCoupling;
58276
 
  friend class ::ExtACTree;
58277
 
  friend class ::ExtACKeywords;
58278
 
  friend class ::WinAsm;
58279
 
  friend class ::WinDeclSpecs;
58280
 
  friend class ::WinMemberExplSpec;
58281
 
  friend class ::WinTypeKeywords;
58282
 
  friend class ::PragmaOnceUnitState;
58283
 
  friend class ::PragmaOnce;
58284
 
  friend class ::CCExprResolve;
58285
 
  friend class ::CExprResolve;
58286
 
 
58287
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58288
 
 
58289
 
  CTree *sons[2]; // dot, member
58290
 
 
58291
 
public:
58292
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
58293
 
  static const char *NodeId ();
58294
 
  const char *NodeName () const { return NodeId (); }
58295
 
  int Sons () const { return 2; }
58296
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
58297
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58298
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
58299
 
  }
58300
 
   private:
58301
 
  typedef CT_MembDesignator CCExprResolveExpr;
58302
 
 
58303
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58304
 
 public :
58305
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
58306
 
  typedef CT_MembDesignator CExprResolveExpr;
58307
 
 
58308
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58309
 
 public :
58310
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58311
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58312
 
};
58313
 
 
58314
 
 
58315
 
#line 58316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58316
 
} // closed Puma
58317
 
class WinIfExists;
58318
 
class WinImportHandler;
58319
 
class WinMacros;
58320
 
class CMatchSyntax;
58321
 
class ExtGnu;
58322
 
class ExtAC;
58323
 
class ExtACBuilderCoupling;
58324
 
class ExtACSyntaxCoupling;
58325
 
class ExtACTree;
58326
 
class ExtACKeywords;
58327
 
class WinAsm;
58328
 
class WinDeclSpecs;
58329
 
class WinMemberExplSpec;
58330
 
class WinTypeKeywords;
58331
 
class PragmaOnceUnitState;
58332
 
class PragmaOnce;
58333
 
class CCExprResolve;
58334
 
class CExprResolve;
58335
 
namespace Puma {
58336
 
 
58337
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58338
 
class CT_DesignatorSeq : public CT_List, public CSemValue {
58339
 
#line 58340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58340
 
  friend class ::WinIfExists;
58341
 
  friend class ::WinImportHandler;
58342
 
  friend class ::WinMacros;
58343
 
  friend class ::CMatchSyntax;
58344
 
  friend class ::ExtGnu;
58345
 
  friend class ::ExtAC;
58346
 
  friend class ::ExtACBuilderCoupling;
58347
 
  friend class ::ExtACSyntaxCoupling;
58348
 
  friend class ::ExtACTree;
58349
 
  friend class ::ExtACKeywords;
58350
 
  friend class ::WinAsm;
58351
 
  friend class ::WinDeclSpecs;
58352
 
  friend class ::WinMemberExplSpec;
58353
 
  friend class ::WinTypeKeywords;
58354
 
  friend class ::PragmaOnceUnitState;
58355
 
  friend class ::PragmaOnce;
58356
 
  friend class ::CCExprResolve;
58357
 
  friend class ::CExprResolve;
58358
 
 
58359
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58360
 
 
58361
 
public:
58362
 
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
58363
 
  static const char *NodeId ();
58364
 
  const char *NodeName () const { return NodeId (); }
58365
 
 
58366
 
  CTypeInfo *Type () const { return type; }
58367
 
  CExprValue *Value () const { return value; }
58368
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
58369
 
};
58370
 
 
58371
 
/*****************************************************************************/
58372
 
/*                                                                           */
58373
 
/*                         Declaration specifiers                            */
58374
 
/*                                                                           */
58375
 
/*****************************************************************************/
58376
 
 
58377
 
 
58378
 
#line 58379 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58379
 
} // closed Puma
58380
 
class WinIfExists;
58381
 
class WinImportHandler;
58382
 
class WinMacros;
58383
 
class CMatchSyntax;
58384
 
class ExtGnu;
58385
 
class ExtAC;
58386
 
class ExtACBuilderCoupling;
58387
 
class ExtACSyntaxCoupling;
58388
 
class ExtACTree;
58389
 
class ExtACKeywords;
58390
 
class WinAsm;
58391
 
class WinDeclSpecs;
58392
 
class WinMemberExplSpec;
58393
 
class WinTypeKeywords;
58394
 
class PragmaOnceUnitState;
58395
 
class PragmaOnce;
58396
 
class CCExprResolve;
58397
 
class CExprResolve;
58398
 
namespace Puma {
58399
 
 
58400
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58401
 
class CT_DeclSpec : public CTree {
58402
 
#line 58403 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58403
 
  friend class ::WinIfExists;
58404
 
  friend class ::WinImportHandler;
58405
 
  friend class ::WinMacros;
58406
 
  friend class ::CMatchSyntax;
58407
 
  friend class ::ExtGnu;
58408
 
  friend class ::ExtAC;
58409
 
  friend class ::ExtACBuilderCoupling;
58410
 
  friend class ::ExtACSyntaxCoupling;
58411
 
  friend class ::ExtACTree;
58412
 
  friend class ::ExtACKeywords;
58413
 
  friend class ::WinAsm;
58414
 
  friend class ::WinDeclSpecs;
58415
 
  friend class ::WinMemberExplSpec;
58416
 
  friend class ::WinTypeKeywords;
58417
 
  friend class ::PragmaOnceUnitState;
58418
 
  friend class ::PragmaOnce;
58419
 
  friend class ::CCExprResolve;
58420
 
  friend class ::CExprResolve;
58421
 
 
58422
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58423
 
 
58424
 
protected:
58425
 
  CT_DeclSpec () {}
58426
 
};
58427
 
 
58428
 
 
58429
 
#line 58430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58430
 
} // closed Puma
58431
 
class WinIfExists;
58432
 
class WinImportHandler;
58433
 
class WinMacros;
58434
 
class CMatchSyntax;
58435
 
class ExtGnu;
58436
 
class ExtAC;
58437
 
class ExtACBuilderCoupling;
58438
 
class ExtACSyntaxCoupling;
58439
 
class ExtACTree;
58440
 
class ExtACKeywords;
58441
 
class WinAsm;
58442
 
class WinDeclSpecs;
58443
 
class WinMemberExplSpec;
58444
 
class WinTypeKeywords;
58445
 
class PragmaOnceUnitState;
58446
 
class PragmaOnce;
58447
 
class CCExprResolve;
58448
 
class CExprResolve;
58449
 
namespace Puma {
58450
 
 
58451
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58452
 
class CT_PrimDeclSpec : public CT_DeclSpec {
58453
 
#line 58454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58454
 
  friend class ::WinIfExists;
58455
 
  friend class ::WinImportHandler;
58456
 
  friend class ::WinMacros;
58457
 
  friend class ::CMatchSyntax;
58458
 
  friend class ::ExtGnu;
58459
 
  friend class ::ExtAC;
58460
 
  friend class ::ExtACBuilderCoupling;
58461
 
  friend class ::ExtACSyntaxCoupling;
58462
 
  friend class ::ExtACTree;
58463
 
  friend class ::ExtACKeywords;
58464
 
  friend class ::WinAsm;
58465
 
  friend class ::WinDeclSpecs;
58466
 
  friend class ::WinMemberExplSpec;
58467
 
  friend class ::WinTypeKeywords;
58468
 
  friend class ::PragmaOnceUnitState;
58469
 
  friend class ::PragmaOnce;
58470
 
  friend class ::CCExprResolve;
58471
 
  friend class ::CExprResolve;
58472
 
 
58473
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58474
 
 
58475
 
public:
58476
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
58477
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
58478
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
58479
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
58480
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
58481
 
              // AspectC++ specific type specifier
58482
 
              PDS_UNKNOWN_T,
58483
 
              // Win specific declaration specifiers
58484
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
58485
 
              PDS_UNKNOWN, PDS_NUM };
58486
 
 
58487
 
private:
58488
 
  Type _type;
58489
 
  CT_Token *_token;
58490
 
 
58491
 
  void determine_type ();
58492
 
 
58493
 
public:
58494
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
58495
 
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
58496
 
  static const char *NodeId ();
58497
 
  const char *NodeName () const { return NodeId (); }
58498
 
  int Sons () const { return _token ? 1 : 0; }
58499
 
  CTree *Son (int n) const 
58500
 
   { return (n == 0) ? _token : (CTree*)0; }
58501
 
  const char *SpecText () const 
58502
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
58503
 
  Type SpecType () const { return _type; }
58504
 
  static const int NumTypes = PDS_NUM;
58505
 
};
58506
 
 
58507
 
 
58508
 
#line 58509 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58509
 
} // closed Puma
58510
 
class WinIfExists;
58511
 
class WinImportHandler;
58512
 
class WinMacros;
58513
 
class CMatchSyntax;
58514
 
class ExtGnu;
58515
 
class ExtAC;
58516
 
class ExtACBuilderCoupling;
58517
 
class ExtACSyntaxCoupling;
58518
 
class ExtACTree;
58519
 
class ExtACKeywords;
58520
 
class WinAsm;
58521
 
class WinDeclSpecs;
58522
 
class WinMemberExplSpec;
58523
 
class WinTypeKeywords;
58524
 
class PragmaOnceUnitState;
58525
 
class PragmaOnce;
58526
 
class CCExprResolve;
58527
 
class CExprResolve;
58528
 
namespace Puma {
58529
 
 
58530
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58531
 
class CT_NamedType : public CT_DeclSpec, public CSemObject {
58532
 
#line 58533 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58533
 
  friend class ::WinIfExists;
58534
 
  friend class ::WinImportHandler;
58535
 
  friend class ::WinMacros;
58536
 
  friend class ::CMatchSyntax;
58537
 
  friend class ::ExtGnu;
58538
 
  friend class ::ExtAC;
58539
 
  friend class ::ExtACBuilderCoupling;
58540
 
  friend class ::ExtACSyntaxCoupling;
58541
 
  friend class ::ExtACTree;
58542
 
  friend class ::ExtACKeywords;
58543
 
  friend class ::WinAsm;
58544
 
  friend class ::WinDeclSpecs;
58545
 
  friend class ::WinMemberExplSpec;
58546
 
  friend class ::WinTypeKeywords;
58547
 
  friend class ::PragmaOnceUnitState;
58548
 
  friend class ::PragmaOnce;
58549
 
  friend class ::CCExprResolve;
58550
 
  friend class ::CExprResolve;
58551
 
 
58552
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58553
 
 
58554
 
  CTree *sons[2]; // declspecs, declarator
58555
 
 
58556
 
public:
58557
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
58558
 
  static const char *NodeId ();
58559
 
  const char *NodeName () const { return NodeId (); }
58560
 
  int Sons () const { return CTree::Sons (sons, 2); }
58561
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
58562
 
  CTree *Declarator () const { return sons[1]; }
58563
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58564
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
58565
 
  }
58566
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
58567
 
};
58568
 
      
58569
 
 
58570
 
#line 58571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58571
 
} // closed Puma
58572
 
class WinIfExists;
58573
 
class WinImportHandler;
58574
 
class WinMacros;
58575
 
class CMatchSyntax;
58576
 
class ExtGnu;
58577
 
class ExtAC;
58578
 
class ExtACBuilderCoupling;
58579
 
class ExtACSyntaxCoupling;
58580
 
class ExtACTree;
58581
 
class ExtACKeywords;
58582
 
class WinAsm;
58583
 
class WinDeclSpecs;
58584
 
class WinMemberExplSpec;
58585
 
class WinTypeKeywords;
58586
 
class PragmaOnceUnitState;
58587
 
class PragmaOnce;
58588
 
class CCExprResolve;
58589
 
class CExprResolve;
58590
 
namespace Puma {
58591
 
 
58592
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58593
 
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
58594
 
#line 58595 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58595
 
  friend class ::WinIfExists;
58596
 
  friend class ::WinImportHandler;
58597
 
  friend class ::WinMacros;
58598
 
  friend class ::CMatchSyntax;
58599
 
  friend class ::ExtGnu;
58600
 
  friend class ::ExtAC;
58601
 
  friend class ::ExtACBuilderCoupling;
58602
 
  friend class ::ExtACSyntaxCoupling;
58603
 
  friend class ::ExtACTree;
58604
 
  friend class ::ExtACKeywords;
58605
 
  friend class ::WinAsm;
58606
 
  friend class ::WinDeclSpecs;
58607
 
  friend class ::WinMemberExplSpec;
58608
 
  friend class ::WinTypeKeywords;
58609
 
  friend class ::PragmaOnceUnitState;
58610
 
  friend class ::PragmaOnce;
58611
 
  friend class ::CCExprResolve;
58612
 
  friend class ::CExprResolve;
58613
 
 
58614
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58615
 
 
58616
 
  CTree *sons[2]; // key, name
58617
 
  
58618
 
public:
58619
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
58620
 
  static const char *NodeId ();
58621
 
  const char *NodeName () const { return NodeId (); }
58622
 
  int Sons () const { return 2; }
58623
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
58624
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
58625
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
58626
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58627
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
58628
 
  }
58629
 
};
58630
 
 
58631
 
 
58632
 
#line 58633 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58633
 
} // closed Puma
58634
 
class WinIfExists;
58635
 
class WinImportHandler;
58636
 
class WinMacros;
58637
 
class CMatchSyntax;
58638
 
class ExtGnu;
58639
 
class ExtAC;
58640
 
class ExtACBuilderCoupling;
58641
 
class ExtACSyntaxCoupling;
58642
 
class ExtACTree;
58643
 
class ExtACKeywords;
58644
 
class WinAsm;
58645
 
class WinDeclSpecs;
58646
 
class WinMemberExplSpec;
58647
 
class WinTypeKeywords;
58648
 
class PragmaOnceUnitState;
58649
 
class PragmaOnce;
58650
 
class CCExprResolve;
58651
 
class CExprResolve;
58652
 
namespace Puma {
58653
 
 
58654
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58655
 
class CT_UnionSpec : public CT_ClassSpec {
58656
 
#line 58657 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58657
 
  friend class ::WinIfExists;
58658
 
  friend class ::WinImportHandler;
58659
 
  friend class ::WinMacros;
58660
 
  friend class ::CMatchSyntax;
58661
 
  friend class ::ExtGnu;
58662
 
  friend class ::ExtAC;
58663
 
  friend class ::ExtACBuilderCoupling;
58664
 
  friend class ::ExtACSyntaxCoupling;
58665
 
  friend class ::ExtACTree;
58666
 
  friend class ::ExtACKeywords;
58667
 
  friend class ::WinAsm;
58668
 
  friend class ::WinDeclSpecs;
58669
 
  friend class ::WinMemberExplSpec;
58670
 
  friend class ::WinTypeKeywords;
58671
 
  friend class ::PragmaOnceUnitState;
58672
 
  friend class ::PragmaOnce;
58673
 
  friend class ::CCExprResolve;
58674
 
  friend class ::CExprResolve;
58675
 
 
58676
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58677
 
 
58678
 
public:
58679
 
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
58680
 
  static const char *NodeId ();
58681
 
  const char *NodeName () const { return NodeId (); }
58682
 
};
58683
 
 
58684
 
 
58685
 
#line 58686 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58686
 
} // closed Puma
58687
 
class WinIfExists;
58688
 
class WinImportHandler;
58689
 
class WinMacros;
58690
 
class CMatchSyntax;
58691
 
class ExtGnu;
58692
 
class ExtAC;
58693
 
class ExtACBuilderCoupling;
58694
 
class ExtACSyntaxCoupling;
58695
 
class ExtACTree;
58696
 
class ExtACKeywords;
58697
 
class WinAsm;
58698
 
class WinDeclSpecs;
58699
 
class WinMemberExplSpec;
58700
 
class WinTypeKeywords;
58701
 
class PragmaOnceUnitState;
58702
 
class PragmaOnce;
58703
 
class CCExprResolve;
58704
 
class CExprResolve;
58705
 
namespace Puma {
58706
 
 
58707
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58708
 
class CT_EnumSpec : public CT_ClassSpec {
58709
 
#line 58710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58710
 
  friend class ::WinIfExists;
58711
 
  friend class ::WinImportHandler;
58712
 
  friend class ::WinMacros;
58713
 
  friend class ::CMatchSyntax;
58714
 
  friend class ::ExtGnu;
58715
 
  friend class ::ExtAC;
58716
 
  friend class ::ExtACBuilderCoupling;
58717
 
  friend class ::ExtACSyntaxCoupling;
58718
 
  friend class ::ExtACTree;
58719
 
  friend class ::ExtACKeywords;
58720
 
  friend class ::WinAsm;
58721
 
  friend class ::WinDeclSpecs;
58722
 
  friend class ::WinMemberExplSpec;
58723
 
  friend class ::WinTypeKeywords;
58724
 
  friend class ::PragmaOnceUnitState;
58725
 
  friend class ::PragmaOnce;
58726
 
  friend class ::CCExprResolve;
58727
 
  friend class ::CExprResolve;
58728
 
 
58729
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58730
 
 
58731
 
public:
58732
 
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
58733
 
  static const char *NodeId ();
58734
 
  const char *NodeName () const { return NodeId (); }
58735
 
};
58736
 
 
58737
 
 
58738
 
#line 58739 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58739
 
} // closed Puma
58740
 
class WinIfExists;
58741
 
class WinImportHandler;
58742
 
class WinMacros;
58743
 
class CMatchSyntax;
58744
 
class ExtGnu;
58745
 
class ExtAC;
58746
 
class ExtACBuilderCoupling;
58747
 
class ExtACSyntaxCoupling;
58748
 
class ExtACTree;
58749
 
class ExtACKeywords;
58750
 
class WinAsm;
58751
 
class WinDeclSpecs;
58752
 
class WinMemberExplSpec;
58753
 
class WinTypeKeywords;
58754
 
class PragmaOnceUnitState;
58755
 
class PragmaOnce;
58756
 
class CCExprResolve;
58757
 
class CExprResolve;
58758
 
namespace Puma {
58759
 
 
58760
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58761
 
class CT_ExceptionSpec : public CT_DeclSpec {
58762
 
#line 58763 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58763
 
  friend class ::WinIfExists;
58764
 
  friend class ::WinImportHandler;
58765
 
  friend class ::WinMacros;
58766
 
  friend class ::CMatchSyntax;
58767
 
  friend class ::ExtGnu;
58768
 
  friend class ::ExtAC;
58769
 
  friend class ::ExtACBuilderCoupling;
58770
 
  friend class ::ExtACSyntaxCoupling;
58771
 
  friend class ::ExtACTree;
58772
 
  friend class ::ExtACKeywords;
58773
 
  friend class ::WinAsm;
58774
 
  friend class ::WinDeclSpecs;
58775
 
  friend class ::WinMemberExplSpec;
58776
 
  friend class ::WinTypeKeywords;
58777
 
  friend class ::PragmaOnceUnitState;
58778
 
  friend class ::PragmaOnce;
58779
 
  friend class ::CCExprResolve;
58780
 
  friend class ::CExprResolve;
58781
 
 
58782
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58783
 
 
58784
 
  CTree *sons[2]; // throw, type_id_list
58785
 
  
58786
 
public:
58787
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
58788
 
  static const char *NodeId ();
58789
 
  const char *NodeName () const { return NodeId (); }
58790
 
  int Sons () const { return 2; }
58791
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
58792
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
58793
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58794
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
58795
 
  }
58796
 
};
58797
 
 
58798
 
/*****************************************************************************/
58799
 
/*                                                                           */
58800
 
/*                              Declarations                                 */
58801
 
/*                                                                           */
58802
 
/*****************************************************************************/
58803
 
 
58804
 
 
58805
 
#line 58806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58806
 
} // closed Puma
58807
 
class WinIfExists;
58808
 
class WinImportHandler;
58809
 
class WinMacros;
58810
 
class CMatchSyntax;
58811
 
class ExtGnu;
58812
 
class ExtAC;
58813
 
class ExtACBuilderCoupling;
58814
 
class ExtACSyntaxCoupling;
58815
 
class ExtACTree;
58816
 
class ExtACKeywords;
58817
 
class WinAsm;
58818
 
class WinDeclSpecs;
58819
 
class WinMemberExplSpec;
58820
 
class WinTypeKeywords;
58821
 
class PragmaOnceUnitState;
58822
 
class PragmaOnce;
58823
 
class CCExprResolve;
58824
 
class CExprResolve;
58825
 
namespace Puma {
58826
 
 
58827
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58828
 
class CT_Decl : public CTree {
58829
 
#line 58830 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58830
 
  friend class ::WinIfExists;
58831
 
  friend class ::WinImportHandler;
58832
 
  friend class ::WinMacros;
58833
 
  friend class ::CMatchSyntax;
58834
 
  friend class ::ExtGnu;
58835
 
  friend class ::ExtAC;
58836
 
  friend class ::ExtACBuilderCoupling;
58837
 
  friend class ::ExtACSyntaxCoupling;
58838
 
  friend class ::ExtACTree;
58839
 
  friend class ::ExtACKeywords;
58840
 
  friend class ::WinAsm;
58841
 
  friend class ::WinDeclSpecs;
58842
 
  friend class ::WinMemberExplSpec;
58843
 
  friend class ::WinTypeKeywords;
58844
 
  friend class ::PragmaOnceUnitState;
58845
 
  friend class ::PragmaOnce;
58846
 
  friend class ::CCExprResolve;
58847
 
  friend class ::CExprResolve;
58848
 
 
58849
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58850
 
 
58851
 
  CT_LinkageSpec *_linkage;
58852
 
protected:
58853
 
  CT_Decl () : _linkage (0) {}
58854
 
public:
58855
 
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
58856
 
  CT_LinkageSpec *Linkage () const { return _linkage; }
58857
 
};
58858
 
 
58859
 
 
58860
 
#line 58861 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58861
 
} // closed Puma
58862
 
class WinIfExists;
58863
 
class WinImportHandler;
58864
 
class WinMacros;
58865
 
class CMatchSyntax;
58866
 
class ExtGnu;
58867
 
class ExtAC;
58868
 
class ExtACBuilderCoupling;
58869
 
class ExtACSyntaxCoupling;
58870
 
class ExtACTree;
58871
 
class ExtACKeywords;
58872
 
class WinAsm;
58873
 
class WinDeclSpecs;
58874
 
class WinMemberExplSpec;
58875
 
class WinTypeKeywords;
58876
 
class PragmaOnceUnitState;
58877
 
class PragmaOnce;
58878
 
class CCExprResolve;
58879
 
class CExprResolve;
58880
 
namespace Puma {
58881
 
 
58882
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58883
 
class CT_Program : public CT_DeclList, public CSemScope {
58884
 
#line 58885 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58885
 
  friend class ::WinIfExists;
58886
 
  friend class ::WinImportHandler;
58887
 
  friend class ::WinMacros;
58888
 
  friend class ::CMatchSyntax;
58889
 
  friend class ::ExtGnu;
58890
 
  friend class ::ExtAC;
58891
 
  friend class ::ExtACBuilderCoupling;
58892
 
  friend class ::ExtACSyntaxCoupling;
58893
 
  friend class ::ExtACTree;
58894
 
  friend class ::ExtACKeywords;
58895
 
  friend class ::WinAsm;
58896
 
  friend class ::WinDeclSpecs;
58897
 
  friend class ::WinMemberExplSpec;
58898
 
  friend class ::WinTypeKeywords;
58899
 
  friend class ::PragmaOnceUnitState;
58900
 
  friend class ::PragmaOnce;
58901
 
  friend class ::CCExprResolve;
58902
 
  friend class ::CExprResolve;
58903
 
 
58904
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58905
 
 
58906
 
public:
58907
 
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
58908
 
  static const char *NodeId ();
58909
 
  const char *NodeName () const { return NodeId (); }
58910
 
};
58911
 
   
58912
 
 
58913
 
#line 58914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58914
 
} // closed Puma
58915
 
class WinIfExists;
58916
 
class WinImportHandler;
58917
 
class WinMacros;
58918
 
class CMatchSyntax;
58919
 
class ExtGnu;
58920
 
class ExtAC;
58921
 
class ExtACBuilderCoupling;
58922
 
class ExtACSyntaxCoupling;
58923
 
class ExtACTree;
58924
 
class ExtACKeywords;
58925
 
class WinAsm;
58926
 
class WinDeclSpecs;
58927
 
class WinMemberExplSpec;
58928
 
class WinTypeKeywords;
58929
 
class PragmaOnceUnitState;
58930
 
class PragmaOnce;
58931
 
class CCExprResolve;
58932
 
class CExprResolve;
58933
 
namespace Puma {
58934
 
 
58935
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58936
 
class CT_ObjDecl : public CT_Decl {
58937
 
#line 58938 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58938
 
  friend class ::WinIfExists;
58939
 
  friend class ::WinImportHandler;
58940
 
  friend class ::WinMacros;
58941
 
  friend class ::CMatchSyntax;
58942
 
  friend class ::ExtGnu;
58943
 
  friend class ::ExtAC;
58944
 
  friend class ::ExtACBuilderCoupling;
58945
 
  friend class ::ExtACSyntaxCoupling;
58946
 
  friend class ::ExtACTree;
58947
 
  friend class ::ExtACKeywords;
58948
 
  friend class ::WinAsm;
58949
 
  friend class ::WinDeclSpecs;
58950
 
  friend class ::WinMemberExplSpec;
58951
 
  friend class ::WinTypeKeywords;
58952
 
  friend class ::PragmaOnceUnitState;
58953
 
  friend class ::PragmaOnce;
58954
 
  friend class ::CCExprResolve;
58955
 
  friend class ::CExprResolve;
58956
 
 
58957
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58958
 
 
58959
 
  CTree *sons[3]; // declspecs, declarators, colon
58960
 
 
58961
 
public:
58962
 
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
58963
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
58964
 
  }
58965
 
  static const char *NodeId ();
58966
 
  const char *NodeName () const { return NodeId (); }
58967
 
  int Sons () const { return 3; }
58968
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
58969
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
58970
 
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
58971
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58972
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
58973
 
  }
58974
 
};
58975
 
 
58976
 
 
58977
 
#line 58978 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
58978
 
} // closed Puma
58979
 
class WinIfExists;
58980
 
class WinImportHandler;
58981
 
class WinMacros;
58982
 
class CMatchSyntax;
58983
 
class ExtGnu;
58984
 
class ExtAC;
58985
 
class ExtACBuilderCoupling;
58986
 
class ExtACSyntaxCoupling;
58987
 
class ExtACTree;
58988
 
class ExtACKeywords;
58989
 
class WinAsm;
58990
 
class WinDeclSpecs;
58991
 
class WinMemberExplSpec;
58992
 
class WinTypeKeywords;
58993
 
class PragmaOnceUnitState;
58994
 
class PragmaOnce;
58995
 
class CCExprResolve;
58996
 
class CExprResolve;
58997
 
namespace Puma {
58998
 
 
58999
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59000
 
class CT_TemplateDecl : public CT_Decl, public CSemScope {
59001
 
#line 59002 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59002
 
  friend class ::WinIfExists;
59003
 
  friend class ::WinImportHandler;
59004
 
  friend class ::WinMacros;
59005
 
  friend class ::CMatchSyntax;
59006
 
  friend class ::ExtGnu;
59007
 
  friend class ::ExtAC;
59008
 
  friend class ::ExtACBuilderCoupling;
59009
 
  friend class ::ExtACSyntaxCoupling;
59010
 
  friend class ::ExtACTree;
59011
 
  friend class ::ExtACKeywords;
59012
 
  friend class ::WinAsm;
59013
 
  friend class ::WinDeclSpecs;
59014
 
  friend class ::WinMemberExplSpec;
59015
 
  friend class ::WinTypeKeywords;
59016
 
  friend class ::PragmaOnceUnitState;
59017
 
  friend class ::PragmaOnce;
59018
 
  friend class ::CCExprResolve;
59019
 
  friend class ::CExprResolve;
59020
 
 
59021
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59022
 
 
59023
 
  CTree *sons[3]; // export, param_list, decl
59024
 
 
59025
 
public:
59026
 
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
59027
 
    sons[0] = e; sons[1] = p; sons[2] = d;
59028
 
  }
59029
 
  static const char *NodeId ();
59030
 
  const char *NodeName () const { return NodeId (); }
59031
 
  int Sons () const { return CTree::Sons (sons, 3); }
59032
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
59033
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59034
 
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
59035
 
  }
59036
 
  CTree *Export () const { return sons[0]; }
59037
 
  CT_TemplateParamList *Parameters () const { 
59038
 
    return (CT_TemplateParamList*)sons[1]; 
59039
 
  }
59040
 
  CTree *Declaration () const { return sons[2]; }
59041
 
};
59042
 
 
59043
 
 
59044
 
#line 59045 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59045
 
} // closed Puma
59046
 
class WinIfExists;
59047
 
class WinImportHandler;
59048
 
class WinMacros;
59049
 
class CMatchSyntax;
59050
 
class ExtGnu;
59051
 
class ExtAC;
59052
 
class ExtACBuilderCoupling;
59053
 
class ExtACSyntaxCoupling;
59054
 
class ExtACTree;
59055
 
class ExtACKeywords;
59056
 
class WinAsm;
59057
 
class WinDeclSpecs;
59058
 
class WinMemberExplSpec;
59059
 
class WinTypeKeywords;
59060
 
class PragmaOnceUnitState;
59061
 
class PragmaOnce;
59062
 
class CCExprResolve;
59063
 
class CExprResolve;
59064
 
namespace Puma {
59065
 
 
59066
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59067
 
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
59068
 
#line 59069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59069
 
  friend class ::WinIfExists;
59070
 
  friend class ::WinImportHandler;
59071
 
  friend class ::WinMacros;
59072
 
  friend class ::CMatchSyntax;
59073
 
  friend class ::ExtGnu;
59074
 
  friend class ::ExtAC;
59075
 
  friend class ::ExtACBuilderCoupling;
59076
 
  friend class ::ExtACSyntaxCoupling;
59077
 
  friend class ::ExtACTree;
59078
 
  friend class ::ExtACKeywords;
59079
 
  friend class ::WinAsm;
59080
 
  friend class ::WinDeclSpecs;
59081
 
  friend class ::WinMemberExplSpec;
59082
 
  friend class ::WinTypeKeywords;
59083
 
  friend class ::PragmaOnceUnitState;
59084
 
  friend class ::PragmaOnce;
59085
 
  friend class ::CCExprResolve;
59086
 
  friend class ::CExprResolve;
59087
 
 
59088
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59089
 
 
59090
 
protected:
59091
 
  CT_TemplateParamDecl () {}
59092
 
  
59093
 
public:
59094
 
  virtual CT_ExprList *DefaultArgument () const = 0;
59095
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
59096
 
};
59097
 
 
59098
 
 
59099
 
#line 59100 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59100
 
} // closed Puma
59101
 
class WinIfExists;
59102
 
class WinImportHandler;
59103
 
class WinMacros;
59104
 
class CMatchSyntax;
59105
 
class ExtGnu;
59106
 
class ExtAC;
59107
 
class ExtACBuilderCoupling;
59108
 
class ExtACSyntaxCoupling;
59109
 
class ExtACTree;
59110
 
class ExtACKeywords;
59111
 
class WinAsm;
59112
 
class WinDeclSpecs;
59113
 
class WinMemberExplSpec;
59114
 
class WinTypeKeywords;
59115
 
class PragmaOnceUnitState;
59116
 
class PragmaOnce;
59117
 
class CCExprResolve;
59118
 
class CExprResolve;
59119
 
namespace Puma {
59120
 
 
59121
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59122
 
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
59123
 
#line 59124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59124
 
  friend class ::WinIfExists;
59125
 
  friend class ::WinImportHandler;
59126
 
  friend class ::WinMacros;
59127
 
  friend class ::CMatchSyntax;
59128
 
  friend class ::ExtGnu;
59129
 
  friend class ::ExtAC;
59130
 
  friend class ::ExtACBuilderCoupling;
59131
 
  friend class ::ExtACSyntaxCoupling;
59132
 
  friend class ::ExtACTree;
59133
 
  friend class ::ExtACKeywords;
59134
 
  friend class ::WinAsm;
59135
 
  friend class ::WinDeclSpecs;
59136
 
  friend class ::WinMemberExplSpec;
59137
 
  friend class ::WinTypeKeywords;
59138
 
  friend class ::PragmaOnceUnitState;
59139
 
  friend class ::PragmaOnce;
59140
 
  friend class ::CCExprResolve;
59141
 
  friend class ::CExprResolve;
59142
 
 
59143
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59144
 
 
59145
 
  CTree *sons[3]; // declspecs, declarator, init
59146
 
 
59147
 
public:
59148
 
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
59149
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
59150
 
  }
59151
 
  static const char *NodeId ();
59152
 
  const char *NodeName () const { return NodeId (); }
59153
 
  int Sons () const { return CTree::Sons (sons, 3); }
59154
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
59155
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
59156
 
  CTree *Declarator () const { return sons[1]; }
59157
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
59158
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
59159
 
  void Initializer (CTree *i) { sons[2] = i; }
59160
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59161
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
59162
 
  }
59163
 
};
59164
 
 
59165
 
 
59166
 
#line 59167 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59167
 
} // closed Puma
59168
 
class WinIfExists;
59169
 
class WinImportHandler;
59170
 
class WinMacros;
59171
 
class CMatchSyntax;
59172
 
class ExtGnu;
59173
 
class ExtAC;
59174
 
class ExtACBuilderCoupling;
59175
 
class ExtACSyntaxCoupling;
59176
 
class ExtACTree;
59177
 
class ExtACKeywords;
59178
 
class WinAsm;
59179
 
class WinDeclSpecs;
59180
 
class WinMemberExplSpec;
59181
 
class WinTypeKeywords;
59182
 
class PragmaOnceUnitState;
59183
 
class PragmaOnce;
59184
 
class CCExprResolve;
59185
 
class CExprResolve;
59186
 
namespace Puma {
59187
 
 
59188
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59189
 
class CT_TypeParamDecl : public CT_TemplateParamDecl {
59190
 
#line 59191 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59191
 
  friend class ::WinIfExists;
59192
 
  friend class ::WinImportHandler;
59193
 
  friend class ::WinMacros;
59194
 
  friend class ::CMatchSyntax;
59195
 
  friend class ::ExtGnu;
59196
 
  friend class ::ExtAC;
59197
 
  friend class ::ExtACBuilderCoupling;
59198
 
  friend class ::ExtACSyntaxCoupling;
59199
 
  friend class ::ExtACTree;
59200
 
  friend class ::ExtACKeywords;
59201
 
  friend class ::WinAsm;
59202
 
  friend class ::WinDeclSpecs;
59203
 
  friend class ::WinMemberExplSpec;
59204
 
  friend class ::WinTypeKeywords;
59205
 
  friend class ::PragmaOnceUnitState;
59206
 
  friend class ::PragmaOnce;
59207
 
  friend class ::CCExprResolve;
59208
 
  friend class ::CExprResolve;
59209
 
 
59210
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59211
 
 
59212
 
  CTree *sons[4]; // params, key, id, init
59213
 
 
59214
 
public:
59215
 
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
59216
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
59217
 
  }
59218
 
  static const char *NodeId ();
59219
 
  const char *NodeName () const { return NodeId (); }
59220
 
  int Sons () const { return CTree::Sons (sons, 4); }
59221
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
59222
 
  CT_TemplateParamList *Parameters () const { 
59223
 
    return (CT_TemplateParamList*)sons[0]; 
59224
 
  }
59225
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
59226
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
59227
 
  void Initializer (CTree *i) { sons[3] = i; }
59228
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59229
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
59230
 
  }
59231
 
};
59232
 
 
59233
 
 
59234
 
#line 59235 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59235
 
} // closed Puma
59236
 
class WinIfExists;
59237
 
class WinImportHandler;
59238
 
class WinMacros;
59239
 
class CMatchSyntax;
59240
 
class ExtGnu;
59241
 
class ExtAC;
59242
 
class ExtACBuilderCoupling;
59243
 
class ExtACSyntaxCoupling;
59244
 
class ExtACTree;
59245
 
class ExtACKeywords;
59246
 
class WinAsm;
59247
 
class WinDeclSpecs;
59248
 
class WinMemberExplSpec;
59249
 
class WinTypeKeywords;
59250
 
class PragmaOnceUnitState;
59251
 
class PragmaOnce;
59252
 
class CCExprResolve;
59253
 
class CExprResolve;
59254
 
namespace Puma {
59255
 
 
59256
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59257
 
class CT_EnumDef : public CT_Decl, public CSemObject {
59258
 
#line 59259 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59259
 
  friend class ::WinIfExists;
59260
 
  friend class ::WinImportHandler;
59261
 
  friend class ::WinMacros;
59262
 
  friend class ::CMatchSyntax;
59263
 
  friend class ::ExtGnu;
59264
 
  friend class ::ExtAC;
59265
 
  friend class ::ExtACBuilderCoupling;
59266
 
  friend class ::ExtACSyntaxCoupling;
59267
 
  friend class ::ExtACTree;
59268
 
  friend class ::ExtACKeywords;
59269
 
  friend class ::WinAsm;
59270
 
  friend class ::WinDeclSpecs;
59271
 
  friend class ::WinMemberExplSpec;
59272
 
  friend class ::WinTypeKeywords;
59273
 
  friend class ::PragmaOnceUnitState;
59274
 
  friend class ::PragmaOnce;
59275
 
  friend class ::CCExprResolve;
59276
 
  friend class ::CExprResolve;
59277
 
 
59278
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59279
 
 
59280
 
  CTree *sons[3]; // key, name, enumerators
59281
 
 
59282
 
public:
59283
 
  CT_EnumDef (CTree *k, CTree *n) {
59284
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
59285
 
  }
59286
 
  static const char *NodeId ();
59287
 
  const char *NodeName () const { return NodeId (); }
59288
 
  int Sons () const { return CTree::Sons (sons, 3); }
59289
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
59290
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
59291
 
  void Enumerators (CTree *el) { sons[2] = el; }
59292
 
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
59293
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59294
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
59295
 
  }
59296
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
59297
 
};
59298
 
 
59299
 
 
59300
 
#line 59301 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59301
 
} // closed Puma
59302
 
class WinIfExists;
59303
 
class WinImportHandler;
59304
 
class WinMacros;
59305
 
class CMatchSyntax;
59306
 
class ExtGnu;
59307
 
class ExtAC;
59308
 
class ExtACBuilderCoupling;
59309
 
class ExtACSyntaxCoupling;
59310
 
class ExtACTree;
59311
 
class ExtACKeywords;
59312
 
class WinAsm;
59313
 
class WinDeclSpecs;
59314
 
class WinMemberExplSpec;
59315
 
class WinTypeKeywords;
59316
 
class PragmaOnceUnitState;
59317
 
class PragmaOnce;
59318
 
class CCExprResolve;
59319
 
class CExprResolve;
59320
 
namespace Puma {
59321
 
 
59322
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59323
 
class CT_Enumerator : public CT_Decl, public CSemObject {
59324
 
#line 59325 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59325
 
  friend class ::WinIfExists;
59326
 
  friend class ::WinImportHandler;
59327
 
  friend class ::WinMacros;
59328
 
  friend class ::CMatchSyntax;
59329
 
  friend class ::ExtGnu;
59330
 
  friend class ::ExtAC;
59331
 
  friend class ::ExtACBuilderCoupling;
59332
 
  friend class ::ExtACSyntaxCoupling;
59333
 
  friend class ::ExtACTree;
59334
 
  friend class ::ExtACKeywords;
59335
 
  friend class ::WinAsm;
59336
 
  friend class ::WinDeclSpecs;
59337
 
  friend class ::WinMemberExplSpec;
59338
 
  friend class ::WinTypeKeywords;
59339
 
  friend class ::PragmaOnceUnitState;
59340
 
  friend class ::PragmaOnce;
59341
 
  friend class ::CCExprResolve;
59342
 
  friend class ::CExprResolve;
59343
 
 
59344
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59345
 
 
59346
 
  CTree *sons[2]; // name, init
59347
 
 
59348
 
public:
59349
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
59350
 
  static const char *NodeId ();
59351
 
  const char *NodeName () const { return NodeId (); }
59352
 
  int Sons () const { return CTree::Sons (sons, 2); }
59353
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
59354
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
59355
 
  void Initializer (CTree *i) { sons[1] = i; }
59356
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
59357
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59358
 
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
59359
 
  }
59360
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
59361
 
};
59362
 
 
59363
 
 
59364
 
#line 59365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59365
 
} // closed Puma
59366
 
class WinIfExists;
59367
 
class WinImportHandler;
59368
 
class WinMacros;
59369
 
class CMatchSyntax;
59370
 
class ExtGnu;
59371
 
class ExtAC;
59372
 
class ExtACBuilderCoupling;
59373
 
class ExtACSyntaxCoupling;
59374
 
class ExtACTree;
59375
 
class ExtACKeywords;
59376
 
class WinAsm;
59377
 
class WinDeclSpecs;
59378
 
class WinMemberExplSpec;
59379
 
class WinTypeKeywords;
59380
 
class PragmaOnceUnitState;
59381
 
class PragmaOnce;
59382
 
class CCExprResolve;
59383
 
class CExprResolve;
59384
 
namespace Puma {
59385
 
 
59386
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59387
 
class CT_FctDef : public CT_Decl, public CSemObject {
59388
 
#line 59389 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59389
 
  friend class ::WinIfExists;
59390
 
  friend class ::WinImportHandler;
59391
 
  friend class ::WinMacros;
59392
 
  friend class ::CMatchSyntax;
59393
 
  friend class ::ExtGnu;
59394
 
  friend class ::ExtAC;
59395
 
  friend class ::ExtACBuilderCoupling;
59396
 
  friend class ::ExtACSyntaxCoupling;
59397
 
  friend class ::ExtACTree;
59398
 
  friend class ::ExtACKeywords;
59399
 
  friend class ::WinAsm;
59400
 
  friend class ::WinDeclSpecs;
59401
 
  friend class ::WinMemberExplSpec;
59402
 
  friend class ::WinTypeKeywords;
59403
 
  friend class ::PragmaOnceUnitState;
59404
 
  friend class ::PragmaOnce;
59405
 
  friend class ::CCExprResolve;
59406
 
  friend class ::CExprResolve;
59407
 
 
59408
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59409
 
 
59410
 
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
59411
 
 
59412
 
public:
59413
 
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
59414
 
             CTree *b, CTree *hs) {
59415
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
59416
 
    sons[5] = b; sons[6] = hs; 
59417
 
  }
59418
 
  static const char *NodeId ();
59419
 
  const char *NodeName () const { return NodeId (); }
59420
 
  int Sons () const { return CTree::Sons (sons, 7); }
59421
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
59422
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
59423
 
  CTree *Declarator () const { return sons[1]; }
59424
 
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
59425
 
  CTree *CtorInit () const { return sons[3]; }
59426
 
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
59427
 
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
59428
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
59429
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
59430
 
  void CtorInit (CTree *i) { sons[3] = i; }
59431
 
  void Body (CTree *b) { sons[5] = b; }
59432
 
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
59433
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
59434
 
  }
59435
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59436
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
59437
 
  }
59438
 
};
59439
 
 
59440
 
 
59441
 
#line 59442 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59442
 
} // closed Puma
59443
 
class WinIfExists;
59444
 
class WinImportHandler;
59445
 
class WinMacros;
59446
 
class CMatchSyntax;
59447
 
class ExtGnu;
59448
 
class ExtAC;
59449
 
class ExtACBuilderCoupling;
59450
 
class ExtACSyntaxCoupling;
59451
 
class ExtACTree;
59452
 
class ExtACKeywords;
59453
 
class WinAsm;
59454
 
class WinDeclSpecs;
59455
 
class WinMemberExplSpec;
59456
 
class WinTypeKeywords;
59457
 
class PragmaOnceUnitState;
59458
 
class PragmaOnce;
59459
 
class CCExprResolve;
59460
 
class CExprResolve;
59461
 
namespace Puma {
59462
 
 
59463
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59464
 
class CT_AsmDef : public CT_Decl {
59465
 
#line 59466 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59466
 
  friend class ::WinIfExists;
59467
 
  friend class ::WinImportHandler;
59468
 
  friend class ::WinMacros;
59469
 
  friend class ::CMatchSyntax;
59470
 
  friend class ::ExtGnu;
59471
 
  friend class ::ExtAC;
59472
 
  friend class ::ExtACBuilderCoupling;
59473
 
  friend class ::ExtACSyntaxCoupling;
59474
 
  friend class ::ExtACTree;
59475
 
  friend class ::ExtACKeywords;
59476
 
  friend class ::WinAsm;
59477
 
  friend class ::WinDeclSpecs;
59478
 
  friend class ::WinMemberExplSpec;
59479
 
  friend class ::WinTypeKeywords;
59480
 
  friend class ::PragmaOnceUnitState;
59481
 
  friend class ::PragmaOnce;
59482
 
  friend class ::CCExprResolve;
59483
 
  friend class ::CExprResolve;
59484
 
 
59485
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59486
 
 
59487
 
  CTree *sons[5]; // asm, open, str, close, semi_colon
59488
 
 
59489
 
public:
59490
 
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
59491
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
59492
 
  }
59493
 
  static const char *NodeId ();
59494
 
  const char *NodeName () const { return NodeId (); }
59495
 
  int Sons () const { return 5; }
59496
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
59497
 
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
59498
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59499
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
59500
 
  }
59501
 
};
59502
 
 
59503
 
 
59504
 
#line 59505 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59505
 
} // closed Puma
59506
 
class WinIfExists;
59507
 
class WinImportHandler;
59508
 
class WinMacros;
59509
 
class CMatchSyntax;
59510
 
class ExtGnu;
59511
 
class ExtAC;
59512
 
class ExtACBuilderCoupling;
59513
 
class ExtACSyntaxCoupling;
59514
 
class ExtACTree;
59515
 
class ExtACKeywords;
59516
 
class WinAsm;
59517
 
class WinDeclSpecs;
59518
 
class WinMemberExplSpec;
59519
 
class WinTypeKeywords;
59520
 
class PragmaOnceUnitState;
59521
 
class PragmaOnce;
59522
 
class CCExprResolve;
59523
 
class CExprResolve;
59524
 
namespace Puma {
59525
 
 
59526
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59527
 
class CT_Handler : public CT_Decl, public CSemScope {
59528
 
#line 59529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59529
 
  friend class ::WinIfExists;
59530
 
  friend class ::WinImportHandler;
59531
 
  friend class ::WinMacros;
59532
 
  friend class ::CMatchSyntax;
59533
 
  friend class ::ExtGnu;
59534
 
  friend class ::ExtAC;
59535
 
  friend class ::ExtACBuilderCoupling;
59536
 
  friend class ::ExtACSyntaxCoupling;
59537
 
  friend class ::ExtACTree;
59538
 
  friend class ::ExtACKeywords;
59539
 
  friend class ::WinAsm;
59540
 
  friend class ::WinDeclSpecs;
59541
 
  friend class ::WinMemberExplSpec;
59542
 
  friend class ::WinTypeKeywords;
59543
 
  friend class ::PragmaOnceUnitState;
59544
 
  friend class ::PragmaOnce;
59545
 
  friend class ::CCExprResolve;
59546
 
  friend class ::CExprResolve;
59547
 
 
59548
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59549
 
 
59550
 
  CTree *sons[3]; // catch, exception_decl, stmt
59551
 
 
59552
 
public:
59553
 
  CT_Handler (CTree *c, CTree *e, CTree *s) {
59554
 
    sons[0] = c; sons[1] = e; sons[2] = s;
59555
 
  }
59556
 
  static const char *NodeId ();
59557
 
  const char *NodeName () const { return NodeId (); }
59558
 
  int Sons () const { return 3; }
59559
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
59560
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
59561
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
59562
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59563
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
59564
 
  }
59565
 
};
59566
 
 
59567
 
 
59568
 
#line 59569 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59569
 
} // closed Puma
59570
 
class WinIfExists;
59571
 
class WinImportHandler;
59572
 
class WinMacros;
59573
 
class CMatchSyntax;
59574
 
class ExtGnu;
59575
 
class ExtAC;
59576
 
class ExtACBuilderCoupling;
59577
 
class ExtACSyntaxCoupling;
59578
 
class ExtACTree;
59579
 
class ExtACKeywords;
59580
 
class WinAsm;
59581
 
class WinDeclSpecs;
59582
 
class WinMemberExplSpec;
59583
 
class WinTypeKeywords;
59584
 
class PragmaOnceUnitState;
59585
 
class PragmaOnce;
59586
 
class CCExprResolve;
59587
 
class CExprResolve;
59588
 
namespace Puma {
59589
 
 
59590
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59591
 
class CT_LinkageSpec : public CT_Decl {
59592
 
#line 59593 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59593
 
  friend class ::WinIfExists;
59594
 
  friend class ::WinImportHandler;
59595
 
  friend class ::WinMacros;
59596
 
  friend class ::CMatchSyntax;
59597
 
  friend class ::ExtGnu;
59598
 
  friend class ::ExtAC;
59599
 
  friend class ::ExtACBuilderCoupling;
59600
 
  friend class ::ExtACSyntaxCoupling;
59601
 
  friend class ::ExtACTree;
59602
 
  friend class ::ExtACKeywords;
59603
 
  friend class ::WinAsm;
59604
 
  friend class ::WinDeclSpecs;
59605
 
  friend class ::WinMemberExplSpec;
59606
 
  friend class ::WinTypeKeywords;
59607
 
  friend class ::PragmaOnceUnitState;
59608
 
  friend class ::PragmaOnce;
59609
 
  friend class ::CCExprResolve;
59610
 
  friend class ::CExprResolve;
59611
 
 
59612
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59613
 
 
59614
 
  CTree *sons[5]; // extern, str, open, decls, close
59615
 
 
59616
 
public:
59617
 
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
59618
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
59619
 
    if (isList ())
59620
 
      ((CT_DeclList*)Decls ())->Linkage (this);
59621
 
    else
59622
 
      ((CT_Decl*)Decls ())->Linkage (this);
59623
 
  }
59624
 
  static const char *NodeId ();
59625
 
  const char *NodeName () const { return NodeId (); }
59626
 
  int Sons () const { return CTree::Sons (sons, 5); }
59627
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
59628
 
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
59629
 
  CTree *Decls () const { return sons[3]; }
59630
 
  bool isList () const {
59631
 
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
59632
 
  }
59633
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59634
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
59635
 
  }
59636
 
};
59637
 
 
59638
 
 
59639
 
#line 59640 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59640
 
} // closed Puma
59641
 
class WinIfExists;
59642
 
class WinImportHandler;
59643
 
class WinMacros;
59644
 
class CMatchSyntax;
59645
 
class ExtGnu;
59646
 
class ExtAC;
59647
 
class ExtACBuilderCoupling;
59648
 
class ExtACSyntaxCoupling;
59649
 
class ExtACTree;
59650
 
class ExtACKeywords;
59651
 
class WinAsm;
59652
 
class WinDeclSpecs;
59653
 
class WinMemberExplSpec;
59654
 
class WinTypeKeywords;
59655
 
class PragmaOnceUnitState;
59656
 
class PragmaOnce;
59657
 
class CCExprResolve;
59658
 
class CExprResolve;
59659
 
namespace Puma {
59660
 
 
59661
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59662
 
class CT_ArgDecl : public CT_Decl, public CSemObject {
59663
 
#line 59664 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59664
 
  friend class ::WinIfExists;
59665
 
  friend class ::WinImportHandler;
59666
 
  friend class ::WinMacros;
59667
 
  friend class ::CMatchSyntax;
59668
 
  friend class ::ExtGnu;
59669
 
  friend class ::ExtAC;
59670
 
  friend class ::ExtACBuilderCoupling;
59671
 
  friend class ::ExtACSyntaxCoupling;
59672
 
  friend class ::ExtACTree;
59673
 
  friend class ::ExtACKeywords;
59674
 
  friend class ::WinAsm;
59675
 
  friend class ::WinDeclSpecs;
59676
 
  friend class ::WinMemberExplSpec;
59677
 
  friend class ::WinTypeKeywords;
59678
 
  friend class ::PragmaOnceUnitState;
59679
 
  friend class ::PragmaOnce;
59680
 
  friend class ::CCExprResolve;
59681
 
  friend class ::CExprResolve;
59682
 
 
59683
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59684
 
 
59685
 
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
59686
 
 
59687
 
public:
59688
 
  CT_ArgDecl (CTree *dsl, CTree *d) {
59689
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
59690
 
  }
59691
 
  CT_ArgDecl (CTree *ellipsis) {
59692
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
59693
 
  }
59694
 
  static const char *NodeId ();
59695
 
  const char *NodeName () const { return NodeId (); }
59696
 
  int Sons () const { return CTree::Sons (sons, 4); }
59697
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
59698
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
59699
 
  CTree *Declarator () const { return sons[1]; }
59700
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
59701
 
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
59702
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
59703
 
  void Initializer (CTree *i) { sons[2] = i; }
59704
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59705
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
59706
 
  }
59707
 
};
59708
 
 
59709
 
 
59710
 
#line 59711 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59711
 
} // closed Puma
59712
 
class WinIfExists;
59713
 
class WinImportHandler;
59714
 
class WinMacros;
59715
 
class CMatchSyntax;
59716
 
class ExtGnu;
59717
 
class ExtAC;
59718
 
class ExtACBuilderCoupling;
59719
 
class ExtACSyntaxCoupling;
59720
 
class ExtACTree;
59721
 
class ExtACKeywords;
59722
 
class WinAsm;
59723
 
class WinDeclSpecs;
59724
 
class WinMemberExplSpec;
59725
 
class WinTypeKeywords;
59726
 
class PragmaOnceUnitState;
59727
 
class PragmaOnce;
59728
 
class CCExprResolve;
59729
 
class CExprResolve;
59730
 
namespace Puma {
59731
 
 
59732
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59733
 
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
59734
 
#line 59735 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59735
 
  friend class ::WinIfExists;
59736
 
  friend class ::WinImportHandler;
59737
 
  friend class ::WinMacros;
59738
 
  friend class ::CMatchSyntax;
59739
 
  friend class ::ExtGnu;
59740
 
  friend class ::ExtAC;
59741
 
  friend class ::ExtACBuilderCoupling;
59742
 
  friend class ::ExtACSyntaxCoupling;
59743
 
  friend class ::ExtACTree;
59744
 
  friend class ::ExtACKeywords;
59745
 
  friend class ::WinAsm;
59746
 
  friend class ::WinDeclSpecs;
59747
 
  friend class ::WinMemberExplSpec;
59748
 
  friend class ::WinTypeKeywords;
59749
 
  friend class ::PragmaOnceUnitState;
59750
 
  friend class ::PragmaOnce;
59751
 
  friend class ::CCExprResolve;
59752
 
  friend class ::CExprResolve;
59753
 
 
59754
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59755
 
 
59756
 
public:
59757
 
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
59758
 
   CT_DeclList (size, 2) { AddProperties (props); }
59759
 
  static const char *NodeId ();
59760
 
  const char *NodeName () const { return NodeId (); }
59761
 
};
59762
 
 
59763
 
 
59764
 
#line 59765 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59765
 
} // closed Puma
59766
 
class WinIfExists;
59767
 
class WinImportHandler;
59768
 
class WinMacros;
59769
 
class CMatchSyntax;
59770
 
class ExtGnu;
59771
 
class ExtAC;
59772
 
class ExtACBuilderCoupling;
59773
 
class ExtACSyntaxCoupling;
59774
 
class ExtACTree;
59775
 
class ExtACKeywords;
59776
 
class WinAsm;
59777
 
class WinDeclSpecs;
59778
 
class WinMemberExplSpec;
59779
 
class WinTypeKeywords;
59780
 
class PragmaOnceUnitState;
59781
 
class PragmaOnce;
59782
 
class CCExprResolve;
59783
 
class CExprResolve;
59784
 
namespace Puma {
59785
 
 
59786
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59787
 
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
59788
 
#line 59789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59789
 
  friend class ::WinIfExists;
59790
 
  friend class ::WinImportHandler;
59791
 
  friend class ::WinMacros;
59792
 
  friend class ::CMatchSyntax;
59793
 
  friend class ::ExtGnu;
59794
 
  friend class ::ExtAC;
59795
 
  friend class ::ExtACBuilderCoupling;
59796
 
  friend class ::ExtACSyntaxCoupling;
59797
 
  friend class ::ExtACTree;
59798
 
  friend class ::ExtACKeywords;
59799
 
  friend class ::WinAsm;
59800
 
  friend class ::WinDeclSpecs;
59801
 
  friend class ::WinMemberExplSpec;
59802
 
  friend class ::WinTypeKeywords;
59803
 
  friend class ::PragmaOnceUnitState;
59804
 
  friend class ::PragmaOnce;
59805
 
  friend class ::CCExprResolve;
59806
 
  friend class ::CExprResolve;
59807
 
 
59808
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59809
 
 
59810
 
public:
59811
 
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
59812
 
  static const char *NodeId ();
59813
 
  const char *NodeName () const { return NodeId (); }
59814
 
};
59815
 
 
59816
 
 
59817
 
#line 59818 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59818
 
} // closed Puma
59819
 
class WinIfExists;
59820
 
class WinImportHandler;
59821
 
class WinMacros;
59822
 
class CMatchSyntax;
59823
 
class ExtGnu;
59824
 
class ExtAC;
59825
 
class ExtACBuilderCoupling;
59826
 
class ExtACSyntaxCoupling;
59827
 
class ExtACTree;
59828
 
class ExtACKeywords;
59829
 
class WinAsm;
59830
 
class WinDeclSpecs;
59831
 
class WinMemberExplSpec;
59832
 
class WinTypeKeywords;
59833
 
class PragmaOnceUnitState;
59834
 
class PragmaOnce;
59835
 
class CCExprResolve;
59836
 
class CExprResolve;
59837
 
namespace Puma {
59838
 
 
59839
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59840
 
class CT_ArgNameList : public CT_ArgDeclList {
59841
 
#line 59842 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59842
 
  friend class ::WinIfExists;
59843
 
  friend class ::WinImportHandler;
59844
 
  friend class ::WinMacros;
59845
 
  friend class ::CMatchSyntax;
59846
 
  friend class ::ExtGnu;
59847
 
  friend class ::ExtAC;
59848
 
  friend class ::ExtACBuilderCoupling;
59849
 
  friend class ::ExtACSyntaxCoupling;
59850
 
  friend class ::ExtACTree;
59851
 
  friend class ::ExtACKeywords;
59852
 
  friend class ::WinAsm;
59853
 
  friend class ::WinDeclSpecs;
59854
 
  friend class ::WinMemberExplSpec;
59855
 
  friend class ::WinTypeKeywords;
59856
 
  friend class ::PragmaOnceUnitState;
59857
 
  friend class ::PragmaOnce;
59858
 
  friend class ::CCExprResolve;
59859
 
  friend class ::CExprResolve;
59860
 
 
59861
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59862
 
 
59863
 
public:
59864
 
  CT_ArgNameList () : CT_ArgDeclList () {}
59865
 
  static const char *NodeId ();
59866
 
  const char *NodeName () const { return NodeId (); }
59867
 
};
59868
 
 
59869
 
 
59870
 
#line 59871 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59871
 
} // closed Puma
59872
 
class WinIfExists;
59873
 
class WinImportHandler;
59874
 
class WinMacros;
59875
 
class CMatchSyntax;
59876
 
class ExtGnu;
59877
 
class ExtAC;
59878
 
class ExtACBuilderCoupling;
59879
 
class ExtACSyntaxCoupling;
59880
 
class ExtACTree;
59881
 
class ExtACKeywords;
59882
 
class WinAsm;
59883
 
class WinDeclSpecs;
59884
 
class WinMemberExplSpec;
59885
 
class WinTypeKeywords;
59886
 
class PragmaOnceUnitState;
59887
 
class PragmaOnce;
59888
 
class CCExprResolve;
59889
 
class CExprResolve;
59890
 
namespace Puma {
59891
 
 
59892
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59893
 
class CT_NamespaceDef : public CT_Decl, public CSemObject {
59894
 
#line 59895 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59895
 
  friend class ::WinIfExists;
59896
 
  friend class ::WinImportHandler;
59897
 
  friend class ::WinMacros;
59898
 
  friend class ::CMatchSyntax;
59899
 
  friend class ::ExtGnu;
59900
 
  friend class ::ExtAC;
59901
 
  friend class ::ExtACBuilderCoupling;
59902
 
  friend class ::ExtACSyntaxCoupling;
59903
 
  friend class ::ExtACTree;
59904
 
  friend class ::ExtACKeywords;
59905
 
  friend class ::WinAsm;
59906
 
  friend class ::WinDeclSpecs;
59907
 
  friend class ::WinMemberExplSpec;
59908
 
  friend class ::WinTypeKeywords;
59909
 
  friend class ::PragmaOnceUnitState;
59910
 
  friend class ::PragmaOnce;
59911
 
  friend class ::CCExprResolve;
59912
 
  friend class ::CExprResolve;
59913
 
 
59914
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59915
 
 
59916
 
  CTree *sons[3]; // ns, name, members
59917
 
 
59918
 
public:
59919
 
  CT_NamespaceDef (CTree *n, CTree *nm) {
59920
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
59921
 
  }
59922
 
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
59923
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
59924
 
  }
59925
 
  static const char *NodeId ();
59926
 
  const char *NodeName () const { return NodeId (); }
59927
 
  int Sons () const { return CTree::Sons (sons, 3); }
59928
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
59929
 
  void Members (CTree *m) { sons[2] = m; }
59930
 
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
59931
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
59932
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
59933
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59934
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
59935
 
  }
59936
 
};
59937
 
 
59938
 
 
59939
 
#line 59940 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59940
 
} // closed Puma
59941
 
class WinIfExists;
59942
 
class WinImportHandler;
59943
 
class WinMacros;
59944
 
class CMatchSyntax;
59945
 
class ExtGnu;
59946
 
class ExtAC;
59947
 
class ExtACBuilderCoupling;
59948
 
class ExtACSyntaxCoupling;
59949
 
class ExtACTree;
59950
 
class ExtACKeywords;
59951
 
class WinAsm;
59952
 
class WinDeclSpecs;
59953
 
class WinMemberExplSpec;
59954
 
class WinTypeKeywords;
59955
 
class PragmaOnceUnitState;
59956
 
class PragmaOnce;
59957
 
class CCExprResolve;
59958
 
class CExprResolve;
59959
 
namespace Puma {
59960
 
 
59961
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59962
 
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
59963
 
#line 59964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
59964
 
  friend class ::WinIfExists;
59965
 
  friend class ::WinImportHandler;
59966
 
  friend class ::WinMacros;
59967
 
  friend class ::CMatchSyntax;
59968
 
  friend class ::ExtGnu;
59969
 
  friend class ::ExtAC;
59970
 
  friend class ::ExtACBuilderCoupling;
59971
 
  friend class ::ExtACSyntaxCoupling;
59972
 
  friend class ::ExtACTree;
59973
 
  friend class ::ExtACKeywords;
59974
 
  friend class ::WinAsm;
59975
 
  friend class ::WinDeclSpecs;
59976
 
  friend class ::WinMemberExplSpec;
59977
 
  friend class ::WinTypeKeywords;
59978
 
  friend class ::PragmaOnceUnitState;
59979
 
  friend class ::PragmaOnce;
59980
 
  friend class ::CCExprResolve;
59981
 
  friend class ::CExprResolve;
59982
 
 
59983
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59984
 
 
59985
 
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
59986
 
 
59987
 
public:
59988
 
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
59989
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
59990
 
  }
59991
 
  static const char *NodeId ();
59992
 
  const char *NodeName () const { return NodeId (); }
59993
 
  int Sons () const { return 5; }
59994
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
59995
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
59996
 
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
59997
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
59998
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59999
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
60000
 
  }
60001
 
};
60002
 
 
60003
 
 
60004
 
#line 60005 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60005
 
} // closed Puma
60006
 
class WinIfExists;
60007
 
class WinImportHandler;
60008
 
class WinMacros;
60009
 
class CMatchSyntax;
60010
 
class ExtGnu;
60011
 
class ExtAC;
60012
 
class ExtACBuilderCoupling;
60013
 
class ExtACSyntaxCoupling;
60014
 
class ExtACTree;
60015
 
class ExtACKeywords;
60016
 
class WinAsm;
60017
 
class WinDeclSpecs;
60018
 
class WinMemberExplSpec;
60019
 
class WinTypeKeywords;
60020
 
class PragmaOnceUnitState;
60021
 
class PragmaOnce;
60022
 
class CCExprResolve;
60023
 
class CExprResolve;
60024
 
namespace Puma {
60025
 
 
60026
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60027
 
class CT_UsingDirective : public CT_Decl {
60028
 
#line 60029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60029
 
  friend class ::WinIfExists;
60030
 
  friend class ::WinImportHandler;
60031
 
  friend class ::WinMacros;
60032
 
  friend class ::CMatchSyntax;
60033
 
  friend class ::ExtGnu;
60034
 
  friend class ::ExtAC;
60035
 
  friend class ::ExtACBuilderCoupling;
60036
 
  friend class ::ExtACSyntaxCoupling;
60037
 
  friend class ::ExtACTree;
60038
 
  friend class ::ExtACKeywords;
60039
 
  friend class ::WinAsm;
60040
 
  friend class ::WinDeclSpecs;
60041
 
  friend class ::WinMemberExplSpec;
60042
 
  friend class ::WinTypeKeywords;
60043
 
  friend class ::PragmaOnceUnitState;
60044
 
  friend class ::PragmaOnce;
60045
 
  friend class ::CCExprResolve;
60046
 
  friend class ::CExprResolve;
60047
 
 
60048
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60049
 
 
60050
 
  CTree *sons[4]; // using, ns, name, semi_colon
60051
 
 
60052
 
public:
60053
 
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
60054
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
60055
 
  }
60056
 
  static const char *NodeId ();
60057
 
  const char *NodeName () const { return NodeId (); }
60058
 
  int Sons () const { return 4; }
60059
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
60060
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
60061
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60062
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
60063
 
  }
60064
 
};
60065
 
 
60066
 
/*****************************************************************************/
60067
 
/*                                                                           */
60068
 
/*                              Declarators                                  */
60069
 
/*                                                                           */
60070
 
/*****************************************************************************/
60071
 
 
60072
 
 
60073
 
#line 60074 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60074
 
} // closed Puma
60075
 
class WinIfExists;
60076
 
class WinImportHandler;
60077
 
class WinMacros;
60078
 
class CMatchSyntax;
60079
 
class ExtGnu;
60080
 
class ExtAC;
60081
 
class ExtACBuilderCoupling;
60082
 
class ExtACSyntaxCoupling;
60083
 
class ExtACTree;
60084
 
class ExtACKeywords;
60085
 
class WinAsm;
60086
 
class WinDeclSpecs;
60087
 
class WinMemberExplSpec;
60088
 
class WinTypeKeywords;
60089
 
class PragmaOnceUnitState;
60090
 
class PragmaOnce;
60091
 
class CCExprResolve;
60092
 
class CExprResolve;
60093
 
namespace Puma {
60094
 
 
60095
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60096
 
class CT_Declarator : public CTree {
60097
 
#line 60098 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60098
 
  friend class ::WinIfExists;
60099
 
  friend class ::WinImportHandler;
60100
 
  friend class ::WinMacros;
60101
 
  friend class ::CMatchSyntax;
60102
 
  friend class ::ExtGnu;
60103
 
  friend class ::ExtAC;
60104
 
  friend class ::ExtACBuilderCoupling;
60105
 
  friend class ::ExtACSyntaxCoupling;
60106
 
  friend class ::ExtACTree;
60107
 
  friend class ::ExtACKeywords;
60108
 
  friend class ::WinAsm;
60109
 
  friend class ::WinDeclSpecs;
60110
 
  friend class ::WinMemberExplSpec;
60111
 
  friend class ::WinTypeKeywords;
60112
 
  friend class ::PragmaOnceUnitState;
60113
 
  friend class ::PragmaOnce;
60114
 
  friend class ::CCExprResolve;
60115
 
  friend class ::CExprResolve;
60116
 
 
60117
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60118
 
 
60119
 
protected:
60120
 
  CT_Declarator () {}
60121
 
 
60122
 
public:
60123
 
  virtual CTree *Declarator () const = 0;
60124
 
  //classification function
60125
 
  virtual CT_Declarator *IsDeclarator () { return this; }
60126
 
  // locate the name node
60127
 
  CT_SimpleName *Name ();
60128
 
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
60129
 
};
60130
 
 
60131
 
 
60132
 
#line 60133 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60133
 
} // closed Puma
60134
 
class WinIfExists;
60135
 
class WinImportHandler;
60136
 
class WinMacros;
60137
 
class CMatchSyntax;
60138
 
class ExtGnu;
60139
 
class ExtAC;
60140
 
class ExtACBuilderCoupling;
60141
 
class ExtACSyntaxCoupling;
60142
 
class ExtACTree;
60143
 
class ExtACKeywords;
60144
 
class WinAsm;
60145
 
class WinDeclSpecs;
60146
 
class WinMemberExplSpec;
60147
 
class WinTypeKeywords;
60148
 
class PragmaOnceUnitState;
60149
 
class PragmaOnce;
60150
 
class CCExprResolve;
60151
 
class CExprResolve;
60152
 
namespace Puma {
60153
 
 
60154
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60155
 
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
60156
 
#line 60157 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60157
 
  friend class ::WinIfExists;
60158
 
  friend class ::WinImportHandler;
60159
 
  friend class ::WinMacros;
60160
 
  friend class ::CMatchSyntax;
60161
 
  friend class ::ExtGnu;
60162
 
  friend class ::ExtAC;
60163
 
  friend class ::ExtACBuilderCoupling;
60164
 
  friend class ::ExtACSyntaxCoupling;
60165
 
  friend class ::ExtACTree;
60166
 
  friend class ::ExtACKeywords;
60167
 
  friend class ::WinAsm;
60168
 
  friend class ::WinDeclSpecs;
60169
 
  friend class ::WinMemberExplSpec;
60170
 
  friend class ::WinTypeKeywords;
60171
 
  friend class ::PragmaOnceUnitState;
60172
 
  friend class ::PragmaOnce;
60173
 
  friend class ::CCExprResolve;
60174
 
  friend class ::CExprResolve;
60175
 
 
60176
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60177
 
 
60178
 
  CTree *sons[2]; // declarator, init
60179
 
  CTree *obj_decl;
60180
 
 
60181
 
public:
60182
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
60183
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
60184
 
  }
60185
 
  static const char *NodeId ();
60186
 
  const char *NodeName () const { return NodeId (); }
60187
 
  int Sons () const { return CTree::Sons (sons, 2); }
60188
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
60189
 
  CTree *Declarator () const { return sons[0]; }
60190
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
60191
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
60192
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
60193
 
  void Initializer (CTree* i) { sons[1] = i; }
60194
 
  void ObjDecl (CTree *od) { obj_decl = od; }
60195
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60196
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
60197
 
  }
60198
 
};
60199
 
 
60200
 
 
60201
 
#line 60202 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60202
 
} // closed Puma
60203
 
class WinIfExists;
60204
 
class WinImportHandler;
60205
 
class WinMacros;
60206
 
class CMatchSyntax;
60207
 
class ExtGnu;
60208
 
class ExtAC;
60209
 
class ExtACBuilderCoupling;
60210
 
class ExtACSyntaxCoupling;
60211
 
class ExtACTree;
60212
 
class ExtACKeywords;
60213
 
class WinAsm;
60214
 
class WinDeclSpecs;
60215
 
class WinMemberExplSpec;
60216
 
class WinTypeKeywords;
60217
 
class PragmaOnceUnitState;
60218
 
class PragmaOnce;
60219
 
class CCExprResolve;
60220
 
class CExprResolve;
60221
 
namespace Puma {
60222
 
 
60223
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60224
 
class CT_BracedDeclarator : public CT_Declarator {
60225
 
#line 60226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60226
 
  friend class ::WinIfExists;
60227
 
  friend class ::WinImportHandler;
60228
 
  friend class ::WinMacros;
60229
 
  friend class ::CMatchSyntax;
60230
 
  friend class ::ExtGnu;
60231
 
  friend class ::ExtAC;
60232
 
  friend class ::ExtACBuilderCoupling;
60233
 
  friend class ::ExtACSyntaxCoupling;
60234
 
  friend class ::ExtACTree;
60235
 
  friend class ::ExtACKeywords;
60236
 
  friend class ::WinAsm;
60237
 
  friend class ::WinDeclSpecs;
60238
 
  friend class ::WinMemberExplSpec;
60239
 
  friend class ::WinTypeKeywords;
60240
 
  friend class ::PragmaOnceUnitState;
60241
 
  friend class ::PragmaOnce;
60242
 
  friend class ::CCExprResolve;
60243
 
  friend class ::CExprResolve;
60244
 
 
60245
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60246
 
 
60247
 
  CTree *sons[4]; // open, win_specs, declarator, close
60248
 
 
60249
 
public:
60250
 
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
60251
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
60252
 
  }
60253
 
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
60254
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
60255
 
  }
60256
 
  static const char *NodeId ();
60257
 
  const char *NodeName () const { return NodeId (); }
60258
 
  int Sons () const { return CTree::Sons (sons, 4); }
60259
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
60260
 
  CTree *Declarator () const { return sons[2]; }
60261
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60262
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
60263
 
  }
60264
 
};
60265
 
 
60266
 
 
60267
 
#line 60268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60268
 
} // closed Puma
60269
 
class WinIfExists;
60270
 
class WinImportHandler;
60271
 
class WinMacros;
60272
 
class CMatchSyntax;
60273
 
class ExtGnu;
60274
 
class ExtAC;
60275
 
class ExtACBuilderCoupling;
60276
 
class ExtACSyntaxCoupling;
60277
 
class ExtACTree;
60278
 
class ExtACKeywords;
60279
 
class WinAsm;
60280
 
class WinDeclSpecs;
60281
 
class WinMemberExplSpec;
60282
 
class WinTypeKeywords;
60283
 
class PragmaOnceUnitState;
60284
 
class PragmaOnce;
60285
 
class CCExprResolve;
60286
 
class CExprResolve;
60287
 
namespace Puma {
60288
 
 
60289
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60290
 
class CT_ArrayDelimiter : public CTree {
60291
 
#line 60292 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60292
 
  friend class ::WinIfExists;
60293
 
  friend class ::WinImportHandler;
60294
 
  friend class ::WinMacros;
60295
 
  friend class ::CMatchSyntax;
60296
 
  friend class ::ExtGnu;
60297
 
  friend class ::ExtAC;
60298
 
  friend class ::ExtACBuilderCoupling;
60299
 
  friend class ::ExtACSyntaxCoupling;
60300
 
  friend class ::ExtACTree;
60301
 
  friend class ::ExtACKeywords;
60302
 
  friend class ::WinAsm;
60303
 
  friend class ::WinDeclSpecs;
60304
 
  friend class ::WinMemberExplSpec;
60305
 
  friend class ::WinTypeKeywords;
60306
 
  friend class ::PragmaOnceUnitState;
60307
 
  friend class ::PragmaOnce;
60308
 
  friend class ::CCExprResolve;
60309
 
  friend class ::CExprResolve;
60310
 
 
60311
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60312
 
 
60313
 
  CTree *sons[4]; // star, static, quals, expr
60314
 
  bool pos0;
60315
 
 
60316
 
public:
60317
 
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
60318
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
60319
 
  }
60320
 
  static const char *NodeId ();
60321
 
  const char *NodeName () const { return NodeId (); }
60322
 
  int Sons () const { return CTree::Sons (sons, 4); }
60323
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
60324
 
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
60325
 
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
60326
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
60327
 
  CTree *Expr () const { return sons[3]; }
60328
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60329
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
60330
 
  }
60331
 
};
60332
 
 
60333
 
 
60334
 
#line 60335 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60335
 
} // closed Puma
60336
 
class WinIfExists;
60337
 
class WinImportHandler;
60338
 
class WinMacros;
60339
 
class CMatchSyntax;
60340
 
class ExtGnu;
60341
 
class ExtAC;
60342
 
class ExtACBuilderCoupling;
60343
 
class ExtACSyntaxCoupling;
60344
 
class ExtACTree;
60345
 
class ExtACKeywords;
60346
 
class WinAsm;
60347
 
class WinDeclSpecs;
60348
 
class WinMemberExplSpec;
60349
 
class WinTypeKeywords;
60350
 
class PragmaOnceUnitState;
60351
 
class PragmaOnce;
60352
 
class CCExprResolve;
60353
 
class CExprResolve;
60354
 
namespace Puma {
60355
 
 
60356
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60357
 
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
60358
 
#line 60359 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60359
 
  friend class ::WinIfExists;
60360
 
  friend class ::WinImportHandler;
60361
 
  friend class ::WinMacros;
60362
 
  friend class ::CMatchSyntax;
60363
 
  friend class ::ExtGnu;
60364
 
  friend class ::ExtAC;
60365
 
  friend class ::ExtACBuilderCoupling;
60366
 
  friend class ::ExtACSyntaxCoupling;
60367
 
  friend class ::ExtACTree;
60368
 
  friend class ::ExtACKeywords;
60369
 
  friend class ::WinAsm;
60370
 
  friend class ::WinDeclSpecs;
60371
 
  friend class ::WinMemberExplSpec;
60372
 
  friend class ::WinTypeKeywords;
60373
 
  friend class ::PragmaOnceUnitState;
60374
 
  friend class ::PragmaOnce;
60375
 
  friend class ::CCExprResolve;
60376
 
  friend class ::CExprResolve;
60377
 
 
60378
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60379
 
 
60380
 
  CTree *sons[4]; // declarator, open, delim, close
60381
 
 
60382
 
public:
60383
 
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
60384
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
60385
 
  }
60386
 
  static const char *NodeId ();
60387
 
  const char *NodeName () const { return NodeId (); }
60388
 
  int Sons () const { return 4; }
60389
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
60390
 
  CTree *Declarator () const { return sons[0]; }
60391
 
  CT_ArrayDelimiter *Delimiter () const 
60392
 
   { return (CT_ArrayDelimiter*)sons[2]; }
60393
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60394
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
60395
 
  }
60396
 
  CTypeInfo *Type () const { return type; }
60397
 
  CExprValue *Value () const { return value; }
60398
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
60399
 
};
60400
 
 
60401
 
 
60402
 
#line 60403 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60403
 
} // closed Puma
60404
 
class WinIfExists;
60405
 
class WinImportHandler;
60406
 
class WinMacros;
60407
 
class CMatchSyntax;
60408
 
class ExtGnu;
60409
 
class ExtAC;
60410
 
class ExtACBuilderCoupling;
60411
 
class ExtACSyntaxCoupling;
60412
 
class ExtACTree;
60413
 
class ExtACKeywords;
60414
 
class WinAsm;
60415
 
class WinDeclSpecs;
60416
 
class WinMemberExplSpec;
60417
 
class WinTypeKeywords;
60418
 
class PragmaOnceUnitState;
60419
 
class PragmaOnce;
60420
 
class CCExprResolve;
60421
 
class CExprResolve;
60422
 
namespace Puma {
60423
 
 
60424
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60425
 
class CT_FctDeclarator : public CT_Declarator {
60426
 
#line 60427 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60427
 
  friend class ::WinIfExists;
60428
 
  friend class ::WinImportHandler;
60429
 
  friend class ::WinMacros;
60430
 
  friend class ::CMatchSyntax;
60431
 
  friend class ::ExtGnu;
60432
 
  friend class ::ExtAC;
60433
 
  friend class ::ExtACBuilderCoupling;
60434
 
  friend class ::ExtACSyntaxCoupling;
60435
 
  friend class ::ExtACTree;
60436
 
  friend class ::ExtACKeywords;
60437
 
  friend class ::WinAsm;
60438
 
  friend class ::WinDeclSpecs;
60439
 
  friend class ::WinMemberExplSpec;
60440
 
  friend class ::WinTypeKeywords;
60441
 
  friend class ::PragmaOnceUnitState;
60442
 
  friend class ::PragmaOnce;
60443
 
  friend class ::CCExprResolve;
60444
 
  friend class ::CExprResolve;
60445
 
 
60446
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60447
 
 
60448
 
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
60449
 
 
60450
 
public:
60451
 
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
60452
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
60453
 
  }
60454
 
  static const char *NodeId ();
60455
 
  const char *NodeName () const { return NodeId (); }
60456
 
  int Sons () const { return CTree::Sons (sons, 4); }
60457
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
60458
 
  CTree *Declarator () const { return sons[0]; }
60459
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
60460
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
60461
 
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
60462
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60463
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
60464
 
  }
60465
 
};
60466
 
 
60467
 
 
60468
 
#line 60469 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60469
 
} // closed Puma
60470
 
class WinIfExists;
60471
 
class WinImportHandler;
60472
 
class WinMacros;
60473
 
class CMatchSyntax;
60474
 
class ExtGnu;
60475
 
class ExtAC;
60476
 
class ExtACBuilderCoupling;
60477
 
class ExtACSyntaxCoupling;
60478
 
class ExtACTree;
60479
 
class ExtACKeywords;
60480
 
class WinAsm;
60481
 
class WinDeclSpecs;
60482
 
class WinMemberExplSpec;
60483
 
class WinTypeKeywords;
60484
 
class PragmaOnceUnitState;
60485
 
class PragmaOnce;
60486
 
class CCExprResolve;
60487
 
class CExprResolve;
60488
 
namespace Puma {
60489
 
 
60490
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60491
 
class CT_RefDeclarator : public CT_Declarator {
60492
 
#line 60493 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60493
 
  friend class ::WinIfExists;
60494
 
  friend class ::WinImportHandler;
60495
 
  friend class ::WinMacros;
60496
 
  friend class ::CMatchSyntax;
60497
 
  friend class ::ExtGnu;
60498
 
  friend class ::ExtAC;
60499
 
  friend class ::ExtACBuilderCoupling;
60500
 
  friend class ::ExtACSyntaxCoupling;
60501
 
  friend class ::ExtACTree;
60502
 
  friend class ::ExtACKeywords;
60503
 
  friend class ::WinAsm;
60504
 
  friend class ::WinDeclSpecs;
60505
 
  friend class ::WinMemberExplSpec;
60506
 
  friend class ::WinTypeKeywords;
60507
 
  friend class ::PragmaOnceUnitState;
60508
 
  friend class ::PragmaOnce;
60509
 
  friend class ::CCExprResolve;
60510
 
  friend class ::CExprResolve;
60511
 
 
60512
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60513
 
 
60514
 
  CTree *sons[2]; // ref, declarator
60515
 
 
60516
 
public:
60517
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
60518
 
  static const char *NodeId ();
60519
 
  const char *NodeName () const { return NodeId (); }
60520
 
  int Sons () const { return 2; }
60521
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
60522
 
  CTree *Declarator () const { return sons[1]; }
60523
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
60524
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
60525
 
  }
60526
 
};
60527
 
 
60528
 
 
60529
 
#line 60530 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60530
 
} // closed Puma
60531
 
class WinIfExists;
60532
 
class WinImportHandler;
60533
 
class WinMacros;
60534
 
class CMatchSyntax;
60535
 
class ExtGnu;
60536
 
class ExtAC;
60537
 
class ExtACBuilderCoupling;
60538
 
class ExtACSyntaxCoupling;
60539
 
class ExtACTree;
60540
 
class ExtACKeywords;
60541
 
class WinAsm;
60542
 
class WinDeclSpecs;
60543
 
class WinMemberExplSpec;
60544
 
class WinTypeKeywords;
60545
 
class PragmaOnceUnitState;
60546
 
class PragmaOnce;
60547
 
class CCExprResolve;
60548
 
class CExprResolve;
60549
 
namespace Puma {
60550
 
 
60551
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60552
 
class CT_PtrDeclarator : public CT_Declarator {
60553
 
#line 60554 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60554
 
  friend class ::WinIfExists;
60555
 
  friend class ::WinImportHandler;
60556
 
  friend class ::WinMacros;
60557
 
  friend class ::CMatchSyntax;
60558
 
  friend class ::ExtGnu;
60559
 
  friend class ::ExtAC;
60560
 
  friend class ::ExtACBuilderCoupling;
60561
 
  friend class ::ExtACSyntaxCoupling;
60562
 
  friend class ::ExtACTree;
60563
 
  friend class ::ExtACKeywords;
60564
 
  friend class ::WinAsm;
60565
 
  friend class ::WinDeclSpecs;
60566
 
  friend class ::WinMemberExplSpec;
60567
 
  friend class ::WinTypeKeywords;
60568
 
  friend class ::PragmaOnceUnitState;
60569
 
  friend class ::PragmaOnce;
60570
 
  friend class ::CCExprResolve;
60571
 
  friend class ::CExprResolve;
60572
 
 
60573
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60574
 
 
60575
 
  CTree *sons[3]; // ptr, cv_quals, declarator
60576
 
 
60577
 
public:
60578
 
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
60579
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
60580
 
  }
60581
 
  static const char *NodeId ();
60582
 
  const char *NodeName () const { return NodeId (); }
60583
 
  int Sons () const { return CTree::Sons (sons, 3); }
60584
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
60585
 
  CTree *Declarator () const { return sons[2]; }
60586
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
60587
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60588
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
60589
 
  }
60590
 
};
60591
 
 
60592
 
 
60593
 
#line 60594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60594
 
} // closed Puma
60595
 
class WinIfExists;
60596
 
class WinImportHandler;
60597
 
class WinMacros;
60598
 
class CMatchSyntax;
60599
 
class ExtGnu;
60600
 
class ExtAC;
60601
 
class ExtACBuilderCoupling;
60602
 
class ExtACSyntaxCoupling;
60603
 
class ExtACTree;
60604
 
class ExtACKeywords;
60605
 
class WinAsm;
60606
 
class WinDeclSpecs;
60607
 
class WinMemberExplSpec;
60608
 
class WinTypeKeywords;
60609
 
class PragmaOnceUnitState;
60610
 
class PragmaOnce;
60611
 
class CCExprResolve;
60612
 
class CExprResolve;
60613
 
namespace Puma {
60614
 
 
60615
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60616
 
class CT_MembPtrDeclarator : public CT_Declarator {
60617
 
#line 60618 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60618
 
  friend class ::WinIfExists;
60619
 
  friend class ::WinImportHandler;
60620
 
  friend class ::WinMacros;
60621
 
  friend class ::CMatchSyntax;
60622
 
  friend class ::ExtGnu;
60623
 
  friend class ::ExtAC;
60624
 
  friend class ::ExtACBuilderCoupling;
60625
 
  friend class ::ExtACSyntaxCoupling;
60626
 
  friend class ::ExtACTree;
60627
 
  friend class ::ExtACKeywords;
60628
 
  friend class ::WinAsm;
60629
 
  friend class ::WinDeclSpecs;
60630
 
  friend class ::WinMemberExplSpec;
60631
 
  friend class ::WinTypeKeywords;
60632
 
  friend class ::PragmaOnceUnitState;
60633
 
  friend class ::PragmaOnce;
60634
 
  friend class ::CCExprResolve;
60635
 
  friend class ::CExprResolve;
60636
 
 
60637
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60638
 
 
60639
 
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
60640
 
 
60641
 
public:
60642
 
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
60643
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
60644
 
  }
60645
 
  static const char *NodeId ();
60646
 
  const char *NodeName () const { return NodeId (); }
60647
 
  int Sons () const { return CTree::Sons (sons, 5); }
60648
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
60649
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
60650
 
  CTree *Declarator () const { return sons[4]; }
60651
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
60652
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60653
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
60654
 
  }
60655
 
};
60656
 
 
60657
 
 
60658
 
#line 60659 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60659
 
} // closed Puma
60660
 
class WinIfExists;
60661
 
class WinImportHandler;
60662
 
class WinMacros;
60663
 
class CMatchSyntax;
60664
 
class ExtGnu;
60665
 
class ExtAC;
60666
 
class ExtACBuilderCoupling;
60667
 
class ExtACSyntaxCoupling;
60668
 
class ExtACTree;
60669
 
class ExtACKeywords;
60670
 
class WinAsm;
60671
 
class WinDeclSpecs;
60672
 
class WinMemberExplSpec;
60673
 
class WinTypeKeywords;
60674
 
class PragmaOnceUnitState;
60675
 
class PragmaOnce;
60676
 
class CCExprResolve;
60677
 
class CExprResolve;
60678
 
namespace Puma {
60679
 
 
60680
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60681
 
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
60682
 
#line 60683 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60683
 
  friend class ::WinIfExists;
60684
 
  friend class ::WinImportHandler;
60685
 
  friend class ::WinMacros;
60686
 
  friend class ::CMatchSyntax;
60687
 
  friend class ::ExtGnu;
60688
 
  friend class ::ExtAC;
60689
 
  friend class ::ExtACBuilderCoupling;
60690
 
  friend class ::ExtACSyntaxCoupling;
60691
 
  friend class ::ExtACTree;
60692
 
  friend class ::ExtACKeywords;
60693
 
  friend class ::WinAsm;
60694
 
  friend class ::WinDeclSpecs;
60695
 
  friend class ::WinMemberExplSpec;
60696
 
  friend class ::WinTypeKeywords;
60697
 
  friend class ::PragmaOnceUnitState;
60698
 
  friend class ::PragmaOnce;
60699
 
  friend class ::CCExprResolve;
60700
 
  friend class ::CExprResolve;
60701
 
 
60702
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60703
 
 
60704
 
  CTree *sons[3]; // declarator, colon, expr
60705
 
 
60706
 
public:
60707
 
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
60708
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
60709
 
  }
60710
 
  static const char *NodeId ();
60711
 
  const char *NodeName () const { return NodeId (); }
60712
 
  int Sons () const { return CTree::Sons (sons, 3); }
60713
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
60714
 
  CTree *Declarator () const { return sons[0]; }
60715
 
  CTree *Expr () const { return sons[2]; }
60716
 
  void FieldSize (CTree *s) { sons[2] = s; }
60717
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
60718
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60719
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
60720
 
  }
60721
 
};
60722
 
 
60723
 
/*****************************************************************************/
60724
 
/*                                                                           */
60725
 
/*                              Statements                                   */
60726
 
/*                                                                           */
60727
 
/*****************************************************************************/
60728
 
 
60729
 
 
60730
 
#line 60731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60731
 
} // closed Puma
60732
 
class WinIfExists;
60733
 
class WinImportHandler;
60734
 
class WinMacros;
60735
 
class CMatchSyntax;
60736
 
class ExtGnu;
60737
 
class ExtAC;
60738
 
class ExtACBuilderCoupling;
60739
 
class ExtACSyntaxCoupling;
60740
 
class ExtACTree;
60741
 
class ExtACKeywords;
60742
 
class WinAsm;
60743
 
class WinDeclSpecs;
60744
 
class WinMemberExplSpec;
60745
 
class WinTypeKeywords;
60746
 
class PragmaOnceUnitState;
60747
 
class PragmaOnce;
60748
 
class CCExprResolve;
60749
 
class CExprResolve;
60750
 
namespace Puma {
60751
 
 
60752
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60753
 
class CT_Statement : public CTree {
60754
 
#line 60755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60755
 
  friend class ::WinIfExists;
60756
 
  friend class ::WinImportHandler;
60757
 
  friend class ::WinMacros;
60758
 
  friend class ::CMatchSyntax;
60759
 
  friend class ::ExtGnu;
60760
 
  friend class ::ExtAC;
60761
 
  friend class ::ExtACBuilderCoupling;
60762
 
  friend class ::ExtACSyntaxCoupling;
60763
 
  friend class ::ExtACTree;
60764
 
  friend class ::ExtACKeywords;
60765
 
  friend class ::WinAsm;
60766
 
  friend class ::WinDeclSpecs;
60767
 
  friend class ::WinMemberExplSpec;
60768
 
  friend class ::WinTypeKeywords;
60769
 
  friend class ::PragmaOnceUnitState;
60770
 
  friend class ::PragmaOnce;
60771
 
  friend class ::CCExprResolve;
60772
 
  friend class ::CExprResolve;
60773
 
 
60774
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60775
 
 
60776
 
protected:
60777
 
  CT_Statement () {}
60778
 
};
60779
 
 
60780
 
 
60781
 
#line 60782 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60782
 
} // closed Puma
60783
 
class WinIfExists;
60784
 
class WinImportHandler;
60785
 
class WinMacros;
60786
 
class CMatchSyntax;
60787
 
class ExtGnu;
60788
 
class ExtAC;
60789
 
class ExtACBuilderCoupling;
60790
 
class ExtACSyntaxCoupling;
60791
 
class ExtACTree;
60792
 
class ExtACKeywords;
60793
 
class WinAsm;
60794
 
class WinDeclSpecs;
60795
 
class WinMemberExplSpec;
60796
 
class WinTypeKeywords;
60797
 
class PragmaOnceUnitState;
60798
 
class PragmaOnce;
60799
 
class CCExprResolve;
60800
 
class CExprResolve;
60801
 
namespace Puma {
60802
 
 
60803
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60804
 
class CT_LabelStmt : public CT_Statement {
60805
 
#line 60806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60806
 
  friend class ::WinIfExists;
60807
 
  friend class ::WinImportHandler;
60808
 
  friend class ::WinMacros;
60809
 
  friend class ::CMatchSyntax;
60810
 
  friend class ::ExtGnu;
60811
 
  friend class ::ExtAC;
60812
 
  friend class ::ExtACBuilderCoupling;
60813
 
  friend class ::ExtACSyntaxCoupling;
60814
 
  friend class ::ExtACTree;
60815
 
  friend class ::ExtACKeywords;
60816
 
  friend class ::WinAsm;
60817
 
  friend class ::WinDeclSpecs;
60818
 
  friend class ::WinMemberExplSpec;
60819
 
  friend class ::WinTypeKeywords;
60820
 
  friend class ::PragmaOnceUnitState;
60821
 
  friend class ::PragmaOnce;
60822
 
  friend class ::CCExprResolve;
60823
 
  friend class ::CExprResolve;
60824
 
 
60825
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60826
 
 
60827
 
  CTree *sons[3]; // id, colon, stmt
60828
 
 
60829
 
public:
60830
 
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
60831
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
60832
 
  }
60833
 
  static const char *NodeId ();
60834
 
  const char *NodeName () const { return NodeId (); }
60835
 
  int Sons () const { return 3; }
60836
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
60837
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
60838
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
60839
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60840
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
60841
 
  }
60842
 
};
60843
 
 
60844
 
 
60845
 
#line 60846 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60846
 
} // closed Puma
60847
 
class WinIfExists;
60848
 
class WinImportHandler;
60849
 
class WinMacros;
60850
 
class CMatchSyntax;
60851
 
class ExtGnu;
60852
 
class ExtAC;
60853
 
class ExtACBuilderCoupling;
60854
 
class ExtACSyntaxCoupling;
60855
 
class ExtACTree;
60856
 
class ExtACKeywords;
60857
 
class WinAsm;
60858
 
class WinDeclSpecs;
60859
 
class WinMemberExplSpec;
60860
 
class WinTypeKeywords;
60861
 
class PragmaOnceUnitState;
60862
 
class PragmaOnce;
60863
 
class CCExprResolve;
60864
 
class CExprResolve;
60865
 
namespace Puma {
60866
 
 
60867
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60868
 
class CT_DefaultStmt : public CT_Statement {
60869
 
#line 60870 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60870
 
  friend class ::WinIfExists;
60871
 
  friend class ::WinImportHandler;
60872
 
  friend class ::WinMacros;
60873
 
  friend class ::CMatchSyntax;
60874
 
  friend class ::ExtGnu;
60875
 
  friend class ::ExtAC;
60876
 
  friend class ::ExtACBuilderCoupling;
60877
 
  friend class ::ExtACSyntaxCoupling;
60878
 
  friend class ::ExtACTree;
60879
 
  friend class ::ExtACKeywords;
60880
 
  friend class ::WinAsm;
60881
 
  friend class ::WinDeclSpecs;
60882
 
  friend class ::WinMemberExplSpec;
60883
 
  friend class ::WinTypeKeywords;
60884
 
  friend class ::PragmaOnceUnitState;
60885
 
  friend class ::PragmaOnce;
60886
 
  friend class ::CCExprResolve;
60887
 
  friend class ::CExprResolve;
60888
 
 
60889
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60890
 
 
60891
 
  CTree *sons[3]; // keyword, colon, stmt
60892
 
 
60893
 
public:
60894
 
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
60895
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
60896
 
  }
60897
 
  static const char *NodeId ();
60898
 
  const char *NodeName () const { return NodeId (); }
60899
 
  int Sons () const { return 3; }
60900
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
60901
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
60902
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60903
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
60904
 
  }
60905
 
};
60906
 
 
60907
 
 
60908
 
#line 60909 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60909
 
} // closed Puma
60910
 
class WinIfExists;
60911
 
class WinImportHandler;
60912
 
class WinMacros;
60913
 
class CMatchSyntax;
60914
 
class ExtGnu;
60915
 
class ExtAC;
60916
 
class ExtACBuilderCoupling;
60917
 
class ExtACSyntaxCoupling;
60918
 
class ExtACTree;
60919
 
class ExtACKeywords;
60920
 
class WinAsm;
60921
 
class WinDeclSpecs;
60922
 
class WinMemberExplSpec;
60923
 
class WinTypeKeywords;
60924
 
class PragmaOnceUnitState;
60925
 
class PragmaOnce;
60926
 
class CCExprResolve;
60927
 
class CExprResolve;
60928
 
namespace Puma {
60929
 
 
60930
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60931
 
class CT_TryStmt : public CT_Statement {
60932
 
#line 60933 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60933
 
  friend class ::WinIfExists;
60934
 
  friend class ::WinImportHandler;
60935
 
  friend class ::WinMacros;
60936
 
  friend class ::CMatchSyntax;
60937
 
  friend class ::ExtGnu;
60938
 
  friend class ::ExtAC;
60939
 
  friend class ::ExtACBuilderCoupling;
60940
 
  friend class ::ExtACSyntaxCoupling;
60941
 
  friend class ::ExtACTree;
60942
 
  friend class ::ExtACKeywords;
60943
 
  friend class ::WinAsm;
60944
 
  friend class ::WinDeclSpecs;
60945
 
  friend class ::WinMemberExplSpec;
60946
 
  friend class ::WinTypeKeywords;
60947
 
  friend class ::PragmaOnceUnitState;
60948
 
  friend class ::PragmaOnce;
60949
 
  friend class ::CCExprResolve;
60950
 
  friend class ::CExprResolve;
60951
 
 
60952
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60953
 
 
60954
 
  CTree *sons[3]; // try, stmt, handlers
60955
 
 
60956
 
public:
60957
 
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
60958
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
60959
 
  }
60960
 
  static const char *NodeId ();
60961
 
  const char *NodeName () const { return NodeId (); }
60962
 
  int Sons () const { return 3; }
60963
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
60964
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
60965
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
60966
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60967
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
60968
 
  }
60969
 
};
60970
 
 
60971
 
 
60972
 
#line 60973 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60973
 
} // closed Puma
60974
 
class WinIfExists;
60975
 
class WinImportHandler;
60976
 
class WinMacros;
60977
 
class CMatchSyntax;
60978
 
class ExtGnu;
60979
 
class ExtAC;
60980
 
class ExtACBuilderCoupling;
60981
 
class ExtACSyntaxCoupling;
60982
 
class ExtACTree;
60983
 
class ExtACKeywords;
60984
 
class WinAsm;
60985
 
class WinDeclSpecs;
60986
 
class WinMemberExplSpec;
60987
 
class WinTypeKeywords;
60988
 
class PragmaOnceUnitState;
60989
 
class PragmaOnce;
60990
 
class CCExprResolve;
60991
 
class CExprResolve;
60992
 
namespace Puma {
60993
 
 
60994
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60995
 
class CT_CaseStmt : public CT_Statement {
60996
 
#line 60997 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
60997
 
  friend class ::WinIfExists;
60998
 
  friend class ::WinImportHandler;
60999
 
  friend class ::WinMacros;
61000
 
  friend class ::CMatchSyntax;
61001
 
  friend class ::ExtGnu;
61002
 
  friend class ::ExtAC;
61003
 
  friend class ::ExtACBuilderCoupling;
61004
 
  friend class ::ExtACSyntaxCoupling;
61005
 
  friend class ::ExtACTree;
61006
 
  friend class ::ExtACKeywords;
61007
 
  friend class ::WinAsm;
61008
 
  friend class ::WinDeclSpecs;
61009
 
  friend class ::WinMemberExplSpec;
61010
 
  friend class ::WinTypeKeywords;
61011
 
  friend class ::PragmaOnceUnitState;
61012
 
  friend class ::PragmaOnce;
61013
 
  friend class ::CCExprResolve;
61014
 
  friend class ::CExprResolve;
61015
 
 
61016
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61017
 
 
61018
 
  CTree *sons[4]; // keyword, expr, colon, stmt
61019
 
 
61020
 
public:
61021
 
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
61022
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
61023
 
  }
61024
 
  static const char *NodeId ();
61025
 
  const char *NodeName () const { return NodeId (); }
61026
 
  int Sons () const { return 4; }
61027
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
61028
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
61029
 
  CTree *Expr () const { return sons[1]; }
61030
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61031
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
61032
 
  }
61033
 
};
61034
 
 
61035
 
 
61036
 
#line 61037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61037
 
} // closed Puma
61038
 
class WinIfExists;
61039
 
class WinImportHandler;
61040
 
class WinMacros;
61041
 
class CMatchSyntax;
61042
 
class ExtGnu;
61043
 
class ExtAC;
61044
 
class ExtACBuilderCoupling;
61045
 
class ExtACSyntaxCoupling;
61046
 
class ExtACTree;
61047
 
class ExtACKeywords;
61048
 
class WinAsm;
61049
 
class WinDeclSpecs;
61050
 
class WinMemberExplSpec;
61051
 
class WinTypeKeywords;
61052
 
class PragmaOnceUnitState;
61053
 
class PragmaOnce;
61054
 
class CCExprResolve;
61055
 
class CExprResolve;
61056
 
namespace Puma {
61057
 
 
61058
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61059
 
class CT_ExprStmt : public CT_Statement {
61060
 
#line 61061 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61061
 
  friend class ::WinIfExists;
61062
 
  friend class ::WinImportHandler;
61063
 
  friend class ::WinMacros;
61064
 
  friend class ::CMatchSyntax;
61065
 
  friend class ::ExtGnu;
61066
 
  friend class ::ExtAC;
61067
 
  friend class ::ExtACBuilderCoupling;
61068
 
  friend class ::ExtACSyntaxCoupling;
61069
 
  friend class ::ExtACTree;
61070
 
  friend class ::ExtACKeywords;
61071
 
  friend class ::WinAsm;
61072
 
  friend class ::WinDeclSpecs;
61073
 
  friend class ::WinMemberExplSpec;
61074
 
  friend class ::WinTypeKeywords;
61075
 
  friend class ::PragmaOnceUnitState;
61076
 
  friend class ::PragmaOnce;
61077
 
  friend class ::CCExprResolve;
61078
 
  friend class ::CExprResolve;
61079
 
 
61080
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61081
 
 
61082
 
  CTree *sons[2]; // expr, semi_colon
61083
 
 
61084
 
public:
61085
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
61086
 
  static const char *NodeId ();
61087
 
  const char *NodeName () const { return NodeId (); }
61088
 
  int Sons () const { return CTree::Sons (sons, 2); }
61089
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
61090
 
  CTree *Expr () const { return sons[0]; }
61091
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61092
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
61093
 
  }
61094
 
};
61095
 
 
61096
 
 
61097
 
#line 61098 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61098
 
} // closed Puma
61099
 
class WinIfExists;
61100
 
class WinImportHandler;
61101
 
class WinMacros;
61102
 
class CMatchSyntax;
61103
 
class ExtGnu;
61104
 
class ExtAC;
61105
 
class ExtACBuilderCoupling;
61106
 
class ExtACSyntaxCoupling;
61107
 
class ExtACTree;
61108
 
class ExtACKeywords;
61109
 
class WinAsm;
61110
 
class WinDeclSpecs;
61111
 
class WinMemberExplSpec;
61112
 
class WinTypeKeywords;
61113
 
class PragmaOnceUnitState;
61114
 
class PragmaOnce;
61115
 
class CCExprResolve;
61116
 
class CExprResolve;
61117
 
namespace Puma {
61118
 
 
61119
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61120
 
class CT_DeclStmt : public CT_Statement {
61121
 
#line 61122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61122
 
  friend class ::WinIfExists;
61123
 
  friend class ::WinImportHandler;
61124
 
  friend class ::WinMacros;
61125
 
  friend class ::CMatchSyntax;
61126
 
  friend class ::ExtGnu;
61127
 
  friend class ::ExtAC;
61128
 
  friend class ::ExtACBuilderCoupling;
61129
 
  friend class ::ExtACSyntaxCoupling;
61130
 
  friend class ::ExtACTree;
61131
 
  friend class ::ExtACKeywords;
61132
 
  friend class ::WinAsm;
61133
 
  friend class ::WinDeclSpecs;
61134
 
  friend class ::WinMemberExplSpec;
61135
 
  friend class ::WinTypeKeywords;
61136
 
  friend class ::PragmaOnceUnitState;
61137
 
  friend class ::PragmaOnce;
61138
 
  friend class ::CCExprResolve;
61139
 
  friend class ::CExprResolve;
61140
 
 
61141
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61142
 
 
61143
 
  CTree *_decl;
61144
 
 
61145
 
public:
61146
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
61147
 
  static const char *NodeId ();
61148
 
  const char *NodeName () const { return NodeId (); }
61149
 
  int Sons () const { return 1; }
61150
 
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
61151
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
61152
 
   { if (old_son == _decl) _decl = new_son; }
61153
 
};
61154
 
 
61155
 
 
61156
 
#line 61157 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61157
 
} // closed Puma
61158
 
class WinIfExists;
61159
 
class WinImportHandler;
61160
 
class WinMacros;
61161
 
class CMatchSyntax;
61162
 
class ExtGnu;
61163
 
class ExtAC;
61164
 
class ExtACBuilderCoupling;
61165
 
class ExtACSyntaxCoupling;
61166
 
class ExtACTree;
61167
 
class ExtACKeywords;
61168
 
class WinAsm;
61169
 
class WinDeclSpecs;
61170
 
class WinMemberExplSpec;
61171
 
class WinTypeKeywords;
61172
 
class PragmaOnceUnitState;
61173
 
class PragmaOnce;
61174
 
class CCExprResolve;
61175
 
class CExprResolve;
61176
 
namespace Puma {
61177
 
 
61178
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61179
 
class CT_SwitchStmt : public CT_Statement, public CSemScope {
61180
 
#line 61181 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61181
 
  friend class ::WinIfExists;
61182
 
  friend class ::WinImportHandler;
61183
 
  friend class ::WinMacros;
61184
 
  friend class ::CMatchSyntax;
61185
 
  friend class ::ExtGnu;
61186
 
  friend class ::ExtAC;
61187
 
  friend class ::ExtACBuilderCoupling;
61188
 
  friend class ::ExtACSyntaxCoupling;
61189
 
  friend class ::ExtACTree;
61190
 
  friend class ::ExtACKeywords;
61191
 
  friend class ::WinAsm;
61192
 
  friend class ::WinDeclSpecs;
61193
 
  friend class ::WinMemberExplSpec;
61194
 
  friend class ::WinTypeKeywords;
61195
 
  friend class ::PragmaOnceUnitState;
61196
 
  friend class ::PragmaOnce;
61197
 
  friend class ::CCExprResolve;
61198
 
  friend class ::CExprResolve;
61199
 
 
61200
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61201
 
 
61202
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
61203
 
 
61204
 
public:
61205
 
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
61206
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
61207
 
  }
61208
 
  static const char *NodeId ();
61209
 
  const char *NodeName () const { return NodeId (); }
61210
 
  int Sons () const { return 5; }
61211
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
61212
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
61213
 
  CTree *Condition () const { return sons[2]; }
61214
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61215
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
61216
 
  }
61217
 
};
61218
 
 
61219
 
 
61220
 
#line 61221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61221
 
} // closed Puma
61222
 
class WinIfExists;
61223
 
class WinImportHandler;
61224
 
class WinMacros;
61225
 
class CMatchSyntax;
61226
 
class ExtGnu;
61227
 
class ExtAC;
61228
 
class ExtACBuilderCoupling;
61229
 
class ExtACSyntaxCoupling;
61230
 
class ExtACTree;
61231
 
class ExtACKeywords;
61232
 
class WinAsm;
61233
 
class WinDeclSpecs;
61234
 
class WinMemberExplSpec;
61235
 
class WinTypeKeywords;
61236
 
class PragmaOnceUnitState;
61237
 
class PragmaOnce;
61238
 
class CCExprResolve;
61239
 
class CExprResolve;
61240
 
namespace Puma {
61241
 
 
61242
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61243
 
class CT_IfStmt : public CT_Statement, public CSemScope {
61244
 
#line 61245 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61245
 
  friend class ::WinIfExists;
61246
 
  friend class ::WinImportHandler;
61247
 
  friend class ::WinMacros;
61248
 
  friend class ::CMatchSyntax;
61249
 
  friend class ::ExtGnu;
61250
 
  friend class ::ExtAC;
61251
 
  friend class ::ExtACBuilderCoupling;
61252
 
  friend class ::ExtACSyntaxCoupling;
61253
 
  friend class ::ExtACTree;
61254
 
  friend class ::ExtACKeywords;
61255
 
  friend class ::WinAsm;
61256
 
  friend class ::WinDeclSpecs;
61257
 
  friend class ::WinMemberExplSpec;
61258
 
  friend class ::WinTypeKeywords;
61259
 
  friend class ::PragmaOnceUnitState;
61260
 
  friend class ::PragmaOnce;
61261
 
  friend class ::CCExprResolve;
61262
 
  friend class ::CExprResolve;
61263
 
 
61264
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61265
 
 
61266
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
61267
 
 
61268
 
public:
61269
 
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
61270
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
61271
 
  }
61272
 
  static const char *NodeId ();
61273
 
  const char *NodeName () const { return NodeId (); }
61274
 
  int Sons () const { return 5; }
61275
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
61276
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
61277
 
  CTree *Condition () const { return sons[2]; }
61278
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61279
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
61280
 
  }
61281
 
};
61282
 
 
61283
 
 
61284
 
#line 61285 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61285
 
} // closed Puma
61286
 
class WinIfExists;
61287
 
class WinImportHandler;
61288
 
class WinMacros;
61289
 
class CMatchSyntax;
61290
 
class ExtGnu;
61291
 
class ExtAC;
61292
 
class ExtACBuilderCoupling;
61293
 
class ExtACSyntaxCoupling;
61294
 
class ExtACTree;
61295
 
class ExtACKeywords;
61296
 
class WinAsm;
61297
 
class WinDeclSpecs;
61298
 
class WinMemberExplSpec;
61299
 
class WinTypeKeywords;
61300
 
class PragmaOnceUnitState;
61301
 
class PragmaOnce;
61302
 
class CCExprResolve;
61303
 
class CExprResolve;
61304
 
namespace Puma {
61305
 
 
61306
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61307
 
class CT_IfElseStmt : public CT_Statement, public CSemScope {
61308
 
#line 61309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61309
 
  friend class ::WinIfExists;
61310
 
  friend class ::WinImportHandler;
61311
 
  friend class ::WinMacros;
61312
 
  friend class ::CMatchSyntax;
61313
 
  friend class ::ExtGnu;
61314
 
  friend class ::ExtAC;
61315
 
  friend class ::ExtACBuilderCoupling;
61316
 
  friend class ::ExtACSyntaxCoupling;
61317
 
  friend class ::ExtACTree;
61318
 
  friend class ::ExtACKeywords;
61319
 
  friend class ::WinAsm;
61320
 
  friend class ::WinDeclSpecs;
61321
 
  friend class ::WinMemberExplSpec;
61322
 
  friend class ::WinTypeKeywords;
61323
 
  friend class ::PragmaOnceUnitState;
61324
 
  friend class ::PragmaOnce;
61325
 
  friend class ::CCExprResolve;
61326
 
  friend class ::CExprResolve;
61327
 
 
61328
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61329
 
 
61330
 
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
61331
 
 
61332
 
public:
61333
 
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
61334
 
                 CTree *is, CTree *e, CTree *es) {
61335
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
61336
 
    sons[5] = e; sons[6] = es; 
61337
 
  }
61338
 
  static const char *NodeId ();
61339
 
  const char *NodeName () const { return NodeId (); }
61340
 
  int Sons () const { return 7; }
61341
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
61342
 
  CTree *Condition () const { return sons[2]; }
61343
 
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
61344
 
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
61345
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61346
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
61347
 
  }
61348
 
};
61349
 
 
61350
 
 
61351
 
#line 61352 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61352
 
} // closed Puma
61353
 
class WinIfExists;
61354
 
class WinImportHandler;
61355
 
class WinMacros;
61356
 
class CMatchSyntax;
61357
 
class ExtGnu;
61358
 
class ExtAC;
61359
 
class ExtACBuilderCoupling;
61360
 
class ExtACSyntaxCoupling;
61361
 
class ExtACTree;
61362
 
class ExtACKeywords;
61363
 
class WinAsm;
61364
 
class WinDeclSpecs;
61365
 
class WinMemberExplSpec;
61366
 
class WinTypeKeywords;
61367
 
class PragmaOnceUnitState;
61368
 
class PragmaOnce;
61369
 
class CCExprResolve;
61370
 
class CExprResolve;
61371
 
namespace Puma {
61372
 
 
61373
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61374
 
class CT_BreakStmt : public CT_Statement {
61375
 
#line 61376 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61376
 
  friend class ::WinIfExists;
61377
 
  friend class ::WinImportHandler;
61378
 
  friend class ::WinMacros;
61379
 
  friend class ::CMatchSyntax;
61380
 
  friend class ::ExtGnu;
61381
 
  friend class ::ExtAC;
61382
 
  friend class ::ExtACBuilderCoupling;
61383
 
  friend class ::ExtACSyntaxCoupling;
61384
 
  friend class ::ExtACTree;
61385
 
  friend class ::ExtACKeywords;
61386
 
  friend class ::WinAsm;
61387
 
  friend class ::WinDeclSpecs;
61388
 
  friend class ::WinMemberExplSpec;
61389
 
  friend class ::WinTypeKeywords;
61390
 
  friend class ::PragmaOnceUnitState;
61391
 
  friend class ::PragmaOnce;
61392
 
  friend class ::CCExprResolve;
61393
 
  friend class ::CExprResolve;
61394
 
 
61395
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61396
 
 
61397
 
  CTree *sons[2]; // key, semi_colon
61398
 
 
61399
 
public:
61400
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
61401
 
  static const char *NodeId ();
61402
 
  const char *NodeName () const { return NodeId (); }
61403
 
  int Sons () const { return 2; }
61404
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
61405
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61406
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
61407
 
  }
61408
 
};
61409
 
 
61410
 
 
61411
 
#line 61412 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61412
 
} // closed Puma
61413
 
class WinIfExists;
61414
 
class WinImportHandler;
61415
 
class WinMacros;
61416
 
class CMatchSyntax;
61417
 
class ExtGnu;
61418
 
class ExtAC;
61419
 
class ExtACBuilderCoupling;
61420
 
class ExtACSyntaxCoupling;
61421
 
class ExtACTree;
61422
 
class ExtACKeywords;
61423
 
class WinAsm;
61424
 
class WinDeclSpecs;
61425
 
class WinMemberExplSpec;
61426
 
class WinTypeKeywords;
61427
 
class PragmaOnceUnitState;
61428
 
class PragmaOnce;
61429
 
class CCExprResolve;
61430
 
class CExprResolve;
61431
 
namespace Puma {
61432
 
 
61433
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61434
 
class CT_ContinueStmt : public CT_Statement {
61435
 
#line 61436 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61436
 
  friend class ::WinIfExists;
61437
 
  friend class ::WinImportHandler;
61438
 
  friend class ::WinMacros;
61439
 
  friend class ::CMatchSyntax;
61440
 
  friend class ::ExtGnu;
61441
 
  friend class ::ExtAC;
61442
 
  friend class ::ExtACBuilderCoupling;
61443
 
  friend class ::ExtACSyntaxCoupling;
61444
 
  friend class ::ExtACTree;
61445
 
  friend class ::ExtACKeywords;
61446
 
  friend class ::WinAsm;
61447
 
  friend class ::WinDeclSpecs;
61448
 
  friend class ::WinMemberExplSpec;
61449
 
  friend class ::WinTypeKeywords;
61450
 
  friend class ::PragmaOnceUnitState;
61451
 
  friend class ::PragmaOnce;
61452
 
  friend class ::CCExprResolve;
61453
 
  friend class ::CExprResolve;
61454
 
 
61455
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61456
 
 
61457
 
  CTree *sons[2]; // key, semi_colon
61458
 
 
61459
 
public:
61460
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
61461
 
  static const char *NodeId ();
61462
 
  const char *NodeName () const { return NodeId (); }
61463
 
  int Sons () const { return 2; }
61464
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
61465
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61466
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
61467
 
  }
61468
 
};
61469
 
 
61470
 
 
61471
 
#line 61472 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61472
 
} // closed Puma
61473
 
class WinIfExists;
61474
 
class WinImportHandler;
61475
 
class WinMacros;
61476
 
class CMatchSyntax;
61477
 
class ExtGnu;
61478
 
class ExtAC;
61479
 
class ExtACBuilderCoupling;
61480
 
class ExtACSyntaxCoupling;
61481
 
class ExtACTree;
61482
 
class ExtACKeywords;
61483
 
class WinAsm;
61484
 
class WinDeclSpecs;
61485
 
class WinMemberExplSpec;
61486
 
class WinTypeKeywords;
61487
 
class PragmaOnceUnitState;
61488
 
class PragmaOnce;
61489
 
class CCExprResolve;
61490
 
class CExprResolve;
61491
 
namespace Puma {
61492
 
 
61493
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61494
 
class CT_GotoStmt : public CT_Statement {
61495
 
#line 61496 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61496
 
  friend class ::WinIfExists;
61497
 
  friend class ::WinImportHandler;
61498
 
  friend class ::WinMacros;
61499
 
  friend class ::CMatchSyntax;
61500
 
  friend class ::ExtGnu;
61501
 
  friend class ::ExtAC;
61502
 
  friend class ::ExtACBuilderCoupling;
61503
 
  friend class ::ExtACSyntaxCoupling;
61504
 
  friend class ::ExtACTree;
61505
 
  friend class ::ExtACKeywords;
61506
 
  friend class ::WinAsm;
61507
 
  friend class ::WinDeclSpecs;
61508
 
  friend class ::WinMemberExplSpec;
61509
 
  friend class ::WinTypeKeywords;
61510
 
  friend class ::PragmaOnceUnitState;
61511
 
  friend class ::PragmaOnce;
61512
 
  friend class ::CCExprResolve;
61513
 
  friend class ::CExprResolve;
61514
 
 
61515
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61516
 
 
61517
 
  CTree *sons[3]; // key, label, semi_colon
61518
 
 
61519
 
public:
61520
 
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
61521
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
61522
 
  }
61523
 
  static const char *NodeId ();
61524
 
  const char *NodeName () const { return NodeId (); }
61525
 
  int Sons () const { return 3; }
61526
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
61527
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
61528
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61529
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
61530
 
  }
61531
 
};
61532
 
 
61533
 
 
61534
 
#line 61535 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61535
 
} // closed Puma
61536
 
class WinIfExists;
61537
 
class WinImportHandler;
61538
 
class WinMacros;
61539
 
class CMatchSyntax;
61540
 
class ExtGnu;
61541
 
class ExtAC;
61542
 
class ExtACBuilderCoupling;
61543
 
class ExtACSyntaxCoupling;
61544
 
class ExtACTree;
61545
 
class ExtACKeywords;
61546
 
class WinAsm;
61547
 
class WinDeclSpecs;
61548
 
class WinMemberExplSpec;
61549
 
class WinTypeKeywords;
61550
 
class PragmaOnceUnitState;
61551
 
class PragmaOnce;
61552
 
class CCExprResolve;
61553
 
class CExprResolve;
61554
 
namespace Puma {
61555
 
 
61556
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61557
 
class CT_ReturnStmt : public CT_Statement {
61558
 
#line 61559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61559
 
  friend class ::WinIfExists;
61560
 
  friend class ::WinImportHandler;
61561
 
  friend class ::WinMacros;
61562
 
  friend class ::CMatchSyntax;
61563
 
  friend class ::ExtGnu;
61564
 
  friend class ::ExtAC;
61565
 
  friend class ::ExtACBuilderCoupling;
61566
 
  friend class ::ExtACSyntaxCoupling;
61567
 
  friend class ::ExtACTree;
61568
 
  friend class ::ExtACKeywords;
61569
 
  friend class ::WinAsm;
61570
 
  friend class ::WinDeclSpecs;
61571
 
  friend class ::WinMemberExplSpec;
61572
 
  friend class ::WinTypeKeywords;
61573
 
  friend class ::PragmaOnceUnitState;
61574
 
  friend class ::PragmaOnce;
61575
 
  friend class ::CCExprResolve;
61576
 
  friend class ::CExprResolve;
61577
 
 
61578
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61579
 
 
61580
 
  CTree *sons[3]; // key, expr, semi_colon
61581
 
 
61582
 
public:
61583
 
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
61584
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
61585
 
  }
61586
 
  static const char *NodeId ();
61587
 
  const char *NodeName () const { return NodeId (); }
61588
 
  int Sons () const { return CTree::Sons (sons, 3); }
61589
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
61590
 
  CTree *Expr () const { return sons[1]; }
61591
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61592
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
61593
 
  }
61594
 
};
61595
 
 
61596
 
 
61597
 
#line 61598 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61598
 
} // closed Puma
61599
 
class WinIfExists;
61600
 
class WinImportHandler;
61601
 
class WinMacros;
61602
 
class CMatchSyntax;
61603
 
class ExtGnu;
61604
 
class ExtAC;
61605
 
class ExtACBuilderCoupling;
61606
 
class ExtACSyntaxCoupling;
61607
 
class ExtACTree;
61608
 
class ExtACKeywords;
61609
 
class WinAsm;
61610
 
class WinDeclSpecs;
61611
 
class WinMemberExplSpec;
61612
 
class WinTypeKeywords;
61613
 
class PragmaOnceUnitState;
61614
 
class PragmaOnce;
61615
 
class CCExprResolve;
61616
 
class CExprResolve;
61617
 
namespace Puma {
61618
 
 
61619
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61620
 
class CT_WhileStmt : public CT_Statement, public CSemScope {
61621
 
#line 61622 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61622
 
  friend class ::WinIfExists;
61623
 
  friend class ::WinImportHandler;
61624
 
  friend class ::WinMacros;
61625
 
  friend class ::CMatchSyntax;
61626
 
  friend class ::ExtGnu;
61627
 
  friend class ::ExtAC;
61628
 
  friend class ::ExtACBuilderCoupling;
61629
 
  friend class ::ExtACSyntaxCoupling;
61630
 
  friend class ::ExtACTree;
61631
 
  friend class ::ExtACKeywords;
61632
 
  friend class ::WinAsm;
61633
 
  friend class ::WinDeclSpecs;
61634
 
  friend class ::WinMemberExplSpec;
61635
 
  friend class ::WinTypeKeywords;
61636
 
  friend class ::PragmaOnceUnitState;
61637
 
  friend class ::PragmaOnce;
61638
 
  friend class ::CCExprResolve;
61639
 
  friend class ::CExprResolve;
61640
 
 
61641
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61642
 
 
61643
 
  CTree *sons[5]; // key, open, cond, close, stmt
61644
 
 
61645
 
public:
61646
 
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
61647
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
61648
 
  }
61649
 
  static const char *NodeId ();
61650
 
  const char *NodeName () const { return NodeId (); }
61651
 
  int Sons () const { return 5; }
61652
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
61653
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
61654
 
  CTree *Condition () const { return sons[2]; }
61655
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61656
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
61657
 
  }
61658
 
};
61659
 
 
61660
 
 
61661
 
#line 61662 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61662
 
} // closed Puma
61663
 
class WinIfExists;
61664
 
class WinImportHandler;
61665
 
class WinMacros;
61666
 
class CMatchSyntax;
61667
 
class ExtGnu;
61668
 
class ExtAC;
61669
 
class ExtACBuilderCoupling;
61670
 
class ExtACSyntaxCoupling;
61671
 
class ExtACTree;
61672
 
class ExtACKeywords;
61673
 
class WinAsm;
61674
 
class WinDeclSpecs;
61675
 
class WinMemberExplSpec;
61676
 
class WinTypeKeywords;
61677
 
class PragmaOnceUnitState;
61678
 
class PragmaOnce;
61679
 
class CCExprResolve;
61680
 
class CExprResolve;
61681
 
namespace Puma {
61682
 
 
61683
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61684
 
class CT_DoStmt : public CT_Statement {
61685
 
#line 61686 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61686
 
  friend class ::WinIfExists;
61687
 
  friend class ::WinImportHandler;
61688
 
  friend class ::WinMacros;
61689
 
  friend class ::CMatchSyntax;
61690
 
  friend class ::ExtGnu;
61691
 
  friend class ::ExtAC;
61692
 
  friend class ::ExtACBuilderCoupling;
61693
 
  friend class ::ExtACSyntaxCoupling;
61694
 
  friend class ::ExtACTree;
61695
 
  friend class ::ExtACKeywords;
61696
 
  friend class ::WinAsm;
61697
 
  friend class ::WinDeclSpecs;
61698
 
  friend class ::WinMemberExplSpec;
61699
 
  friend class ::WinTypeKeywords;
61700
 
  friend class ::PragmaOnceUnitState;
61701
 
  friend class ::PragmaOnce;
61702
 
  friend class ::CCExprResolve;
61703
 
  friend class ::CExprResolve;
61704
 
 
61705
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61706
 
 
61707
 
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
61708
 
 
61709
 
public:
61710
 
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
61711
 
             CTree *c, CTree *sc) {
61712
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
61713
 
    sons[5] = c; sons[6] = sc; 
61714
 
  }
61715
 
  static const char *NodeId ();
61716
 
  const char *NodeName () const { return NodeId (); }
61717
 
  int Sons () const { return 7; }
61718
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
61719
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
61720
 
  CTree *Expr () const { return sons[4]; }
61721
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61722
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
61723
 
  }
61724
 
};
61725
 
 
61726
 
 
61727
 
#line 61728 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61728
 
} // closed Puma
61729
 
class WinIfExists;
61730
 
class WinImportHandler;
61731
 
class WinMacros;
61732
 
class CMatchSyntax;
61733
 
class ExtGnu;
61734
 
class ExtAC;
61735
 
class ExtACBuilderCoupling;
61736
 
class ExtACSyntaxCoupling;
61737
 
class ExtACTree;
61738
 
class ExtACKeywords;
61739
 
class WinAsm;
61740
 
class WinDeclSpecs;
61741
 
class WinMemberExplSpec;
61742
 
class WinTypeKeywords;
61743
 
class PragmaOnceUnitState;
61744
 
class PragmaOnce;
61745
 
class CCExprResolve;
61746
 
class CExprResolve;
61747
 
namespace Puma {
61748
 
 
61749
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61750
 
class CT_ForStmt : public CT_Statement, public CSemScope {
61751
 
#line 61752 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61752
 
  friend class ::WinIfExists;
61753
 
  friend class ::WinImportHandler;
61754
 
  friend class ::WinMacros;
61755
 
  friend class ::CMatchSyntax;
61756
 
  friend class ::ExtGnu;
61757
 
  friend class ::ExtAC;
61758
 
  friend class ::ExtACBuilderCoupling;
61759
 
  friend class ::ExtACSyntaxCoupling;
61760
 
  friend class ::ExtACTree;
61761
 
  friend class ::ExtACKeywords;
61762
 
  friend class ::WinAsm;
61763
 
  friend class ::WinDeclSpecs;
61764
 
  friend class ::WinMemberExplSpec;
61765
 
  friend class ::WinTypeKeywords;
61766
 
  friend class ::PragmaOnceUnitState;
61767
 
  friend class ::PragmaOnce;
61768
 
  friend class ::CCExprResolve;
61769
 
  friend class ::CExprResolve;
61770
 
 
61771
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61772
 
 
61773
 
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
61774
 
 
61775
 
public:
61776
 
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
61777
 
              CTree *e, CTree *c, CTree *stmt) {
61778
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
61779
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
61780
 
  }
61781
 
  static const char *NodeId ();
61782
 
  const char *NodeName () const { return NodeId (); }
61783
 
  int Sons () const { return CTree::Sons (sons, 8); }
61784
 
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
61785
 
  CTree *InitStmt () const { return sons[2]; }
61786
 
  CTree *Condition () const { return sons[3]; }
61787
 
  CTree *Expr () const { return sons[5]; }
61788
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
61789
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61790
 
    CTree::ReplaceSon (sons, 8, old_son, new_son);
61791
 
  }
61792
 
};
61793
 
 
61794
 
 
61795
 
#line 61796 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61796
 
} // closed Puma
61797
 
class WinIfExists;
61798
 
class WinImportHandler;
61799
 
class WinMacros;
61800
 
class CMatchSyntax;
61801
 
class ExtGnu;
61802
 
class ExtAC;
61803
 
class ExtACBuilderCoupling;
61804
 
class ExtACSyntaxCoupling;
61805
 
class ExtACTree;
61806
 
class ExtACKeywords;
61807
 
class WinAsm;
61808
 
class WinDeclSpecs;
61809
 
class WinMemberExplSpec;
61810
 
class WinTypeKeywords;
61811
 
class PragmaOnceUnitState;
61812
 
class PragmaOnce;
61813
 
class CCExprResolve;
61814
 
class CExprResolve;
61815
 
namespace Puma {
61816
 
 
61817
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61818
 
class CT_Condition : public CT_Decl, public CSemObject {
61819
 
#line 61820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61820
 
  friend class ::WinIfExists;
61821
 
  friend class ::WinImportHandler;
61822
 
  friend class ::WinMacros;
61823
 
  friend class ::CMatchSyntax;
61824
 
  friend class ::ExtGnu;
61825
 
  friend class ::ExtAC;
61826
 
  friend class ::ExtACBuilderCoupling;
61827
 
  friend class ::ExtACSyntaxCoupling;
61828
 
  friend class ::ExtACTree;
61829
 
  friend class ::ExtACKeywords;
61830
 
  friend class ::WinAsm;
61831
 
  friend class ::WinDeclSpecs;
61832
 
  friend class ::WinMemberExplSpec;
61833
 
  friend class ::WinTypeKeywords;
61834
 
  friend class ::PragmaOnceUnitState;
61835
 
  friend class ::PragmaOnce;
61836
 
  friend class ::CCExprResolve;
61837
 
  friend class ::CExprResolve;
61838
 
 
61839
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61840
 
 
61841
 
  CTree *sons[3]; // declspecs, declarator, init
61842
 
 
61843
 
public:
61844
 
  CT_Condition (CTree *dsl, CTree *d) {
61845
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
61846
 
  }
61847
 
  static const char *NodeId ();
61848
 
  const char *NodeName () const { return NodeId (); }
61849
 
  int Sons () const { return CTree::Sons (sons, 3); }
61850
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
61851
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
61852
 
  CTree *Declarator () const { return sons[1]; }
61853
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
61854
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
61855
 
  void Initializer (CTree *i) { sons[2] = i; }
61856
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61857
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
61858
 
  }
61859
 
};
61860
 
 
61861
 
/*****************************************************************************/
61862
 
/*                                                                           */
61863
 
/*                              Classes                                      */
61864
 
/*                                                                           */
61865
 
/*****************************************************************************/
61866
 
 
61867
 
 
61868
 
#line 61869 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61869
 
} // closed Puma
61870
 
class WinIfExists;
61871
 
class WinImportHandler;
61872
 
class WinMacros;
61873
 
class CMatchSyntax;
61874
 
class ExtGnu;
61875
 
class ExtAC;
61876
 
class ExtACBuilderCoupling;
61877
 
class ExtACSyntaxCoupling;
61878
 
class ExtACTree;
61879
 
class ExtACKeywords;
61880
 
class WinAsm;
61881
 
class WinDeclSpecs;
61882
 
class WinMemberExplSpec;
61883
 
class WinTypeKeywords;
61884
 
class PragmaOnceUnitState;
61885
 
class PragmaOnce;
61886
 
class CCExprResolve;
61887
 
class CExprResolve;
61888
 
namespace Puma {
61889
 
 
61890
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61891
 
class CT_ClassDef : public CT_Decl, public CSemObject {
61892
 
#line 61893 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61893
 
  friend class ::WinIfExists;
61894
 
  friend class ::WinImportHandler;
61895
 
  friend class ::WinMacros;
61896
 
  friend class ::CMatchSyntax;
61897
 
  friend class ::ExtGnu;
61898
 
  friend class ::ExtAC;
61899
 
  friend class ::ExtACBuilderCoupling;
61900
 
  friend class ::ExtACSyntaxCoupling;
61901
 
  friend class ::ExtACTree;
61902
 
  friend class ::ExtACKeywords;
61903
 
  friend class ::WinAsm;
61904
 
  friend class ::WinDeclSpecs;
61905
 
  friend class ::WinMemberExplSpec;
61906
 
  friend class ::WinTypeKeywords;
61907
 
  friend class ::PragmaOnceUnitState;
61908
 
  friend class ::PragmaOnce;
61909
 
  friend class ::CCExprResolve;
61910
 
  friend class ::CExprResolve;
61911
 
 
61912
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61913
 
 
61914
 
   
61915
 
#line 61916 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61916
 
 
61917
 
  struct __ac_wrapper_sons {
61918
 
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
61919
 
    operator A& () { return _data; }
61920
 
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
61921
 
    operator const A& () { return _data; }
61922
 
    operator const A& () const { return _data; }
61923
 
    operator void* () { return _data; }
61924
 
    operator void* () const { return (void*)_data; }
61925
 
    operator const void* () { return _data; }
61926
 
    operator const void* () const { return _data; }
61927
 
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
61928
 
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
61929
 
  } sons
61930
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61931
 
 
61932
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61933
 
; // key, name, bases, members
61934
 
  CTree *obj_decl;
61935
 
 
61936
 
public:
61937
 
  
61938
 
#line 61939 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61939
 
 
61940
 
 
61941
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
61942
 
  typedef void Result;
61943
 
  typedef ::Puma::CT_ClassDef That;
61944
 
  typedef ::Puma::CT_ClassDef Target;
61945
 
  static const int JPID = 4;
61946
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
61947
 
  struct Res {
61948
 
    typedef void Type;
61949
 
    typedef void ReferredType;
61950
 
  };
61951
 
  enum { ARGS = 3 };
61952
 
  template <int I, int DUMMY = 0> struct Arg {
61953
 
    typedef void Type;
61954
 
    typedef void ReferredType;
61955
 
  };
61956
 
  template <int DUMMY> struct Arg<0, DUMMY> {
61957
 
    typedef ::Puma::CTree * Type;
61958
 
    typedef ::Puma::CTree * ReferredType;
61959
 
  };
61960
 
  template <int DUMMY> struct Arg<1, DUMMY> {
61961
 
    typedef ::Puma::CTree * Type;
61962
 
    typedef ::Puma::CTree * ReferredType;
61963
 
  };
61964
 
  template <int DUMMY> struct Arg<2, DUMMY> {
61965
 
    typedef ::Puma::CTree * Type;
61966
 
    typedef ::Puma::CTree * ReferredType;
61967
 
  };
61968
 
 
61969
 
  That *_that;
61970
 
 
61971
 
  inline That *that() {return (That*)_that;}
61972
 
 
61973
 
};
61974
 
 
61975
 
 
61976
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61977
 
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
61978
 
#line 61979 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
61979
 
{
61980
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
61981
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
61982
 
this->__exec_old_C1(arg0, arg1, arg2);
61983
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
61984
 
 
61985
 
}
61986
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
61987
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61988
 
{
61989
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
61990
 
  }
61991
 
  static const char *NodeId ();
61992
 
  const char *NodeName () const { return NodeId (); }
61993
 
  int Sons () const { return CTree::Sons (sons, 4); }
61994
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
61995
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
61996
 
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
61997
 
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
61998
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
61999
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
62000
 
  void Members (CTree *m) { sons[3] = m; }
62001
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
62002
 
  void ObjDecl (CTree *od) { obj_decl = od; }
62003
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
62004
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
62005
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
62006
 
  }
62007
 
   private:
62008
 
 
62009
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
62010
 
 CTree * _intro_members ;
62011
 
public :
62012
 
CTree * IntroMembers ( ) const { return _intro_members ; }
62013
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
62014
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62015
 
 
62016
 
#line 62017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62017
 
 
62018
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
62019
 
  typedef void Result;
62020
 
  typedef ::Puma::CT_ClassDef That;
62021
 
  typedef ::Puma::CT_ClassDef Target;
62022
 
  static const int JPID = 4;
62023
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
62024
 
  struct Res {
62025
 
    typedef void Type;
62026
 
    typedef void ReferredType;
62027
 
  };
62028
 
  enum { ARGS = 1 };
62029
 
  template <int I, int DUMMY = 0> struct Arg {
62030
 
    typedef void Type;
62031
 
    typedef void ReferredType;
62032
 
  };
62033
 
  template <int DUMMY> struct Arg<0, DUMMY> {
62034
 
    typedef const ::Puma::CT_ClassDef & Type;
62035
 
    typedef const ::Puma::CT_ClassDef ReferredType;
62036
 
  };
62037
 
 
62038
 
  That *_that;
62039
 
 
62040
 
  inline That *that() {return (That*)_that;}
62041
 
 
62042
 
};
62043
 
 
62044
 
 
62045
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62046
 
 
62047
 
#line 62048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62048
 
 
62049
 
public:
62050
 
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) {
62051
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
62052
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
62053
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
62054
 
 
62055
 
}
62056
 
 
62057
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62058
 
 
62059
 
#line 62060 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62060
 
 
62061
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
62062
 
  typedef void Result;
62063
 
  typedef ::Puma::CT_ClassDef That;
62064
 
  typedef ::Puma::CT_ClassDef Target;
62065
 
  static const int JPID = 4;
62066
 
  static const AC::JPType JPTYPE = (AC::JPType)32;
62067
 
  struct Res {
62068
 
    typedef void Type;
62069
 
    typedef void ReferredType;
62070
 
  };
62071
 
  enum { ARGS = 0 };
62072
 
  template <int I, int DUMMY = 0> struct Arg {
62073
 
    typedef void Type;
62074
 
    typedef void ReferredType;
62075
 
  };
62076
 
 
62077
 
  That *_that;
62078
 
 
62079
 
  inline That *that() {return (That*)_that;}
62080
 
 
62081
 
};
62082
 
 
62083
 
 
62084
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62085
 
 
62086
 
#line 62087 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62087
 
 
62088
 
public:
62089
 
inline ~CT_ClassDef () {
62090
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
62091
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
62092
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
62093
 
 
62094
 
}
62095
 
 
62096
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62097
 
};
62098
 
      
62099
 
 
62100
 
#line 62101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62101
 
} // closed Puma
62102
 
class WinIfExists;
62103
 
class WinImportHandler;
62104
 
class WinMacros;
62105
 
class CMatchSyntax;
62106
 
class ExtGnu;
62107
 
class ExtAC;
62108
 
class ExtACBuilderCoupling;
62109
 
class ExtACSyntaxCoupling;
62110
 
class ExtACTree;
62111
 
class ExtACKeywords;
62112
 
class WinAsm;
62113
 
class WinDeclSpecs;
62114
 
class WinMemberExplSpec;
62115
 
class WinTypeKeywords;
62116
 
class PragmaOnceUnitState;
62117
 
class PragmaOnce;
62118
 
class CCExprResolve;
62119
 
class CExprResolve;
62120
 
namespace Puma {
62121
 
 
62122
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62123
 
class CT_UnionDef : public CT_ClassDef {
62124
 
#line 62125 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62125
 
  friend class ::WinIfExists;
62126
 
  friend class ::WinImportHandler;
62127
 
  friend class ::WinMacros;
62128
 
  friend class ::CMatchSyntax;
62129
 
  friend class ::ExtGnu;
62130
 
  friend class ::ExtAC;
62131
 
  friend class ::ExtACBuilderCoupling;
62132
 
  friend class ::ExtACSyntaxCoupling;
62133
 
  friend class ::ExtACTree;
62134
 
  friend class ::ExtACKeywords;
62135
 
  friend class ::WinAsm;
62136
 
  friend class ::WinDeclSpecs;
62137
 
  friend class ::WinMemberExplSpec;
62138
 
  friend class ::WinTypeKeywords;
62139
 
  friend class ::PragmaOnceUnitState;
62140
 
  friend class ::PragmaOnce;
62141
 
  friend class ::CCExprResolve;
62142
 
  friend class ::CExprResolve;
62143
 
 
62144
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62145
 
 
62146
 
public:
62147
 
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
62148
 
  static const char *NodeId ();
62149
 
  const char *NodeName () const { return NodeId (); }
62150
 
};
62151
 
      
62152
 
 
62153
 
#line 62154 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62154
 
} // closed Puma
62155
 
class WinIfExists;
62156
 
class WinImportHandler;
62157
 
class WinMacros;
62158
 
class CMatchSyntax;
62159
 
class ExtGnu;
62160
 
class ExtAC;
62161
 
class ExtACBuilderCoupling;
62162
 
class ExtACSyntaxCoupling;
62163
 
class ExtACTree;
62164
 
class ExtACKeywords;
62165
 
class WinAsm;
62166
 
class WinDeclSpecs;
62167
 
class WinMemberExplSpec;
62168
 
class WinTypeKeywords;
62169
 
class PragmaOnceUnitState;
62170
 
class PragmaOnce;
62171
 
class CCExprResolve;
62172
 
class CExprResolve;
62173
 
namespace Puma {
62174
 
 
62175
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62176
 
class CT_MembList : public CT_DeclList, public CSemScope {
62177
 
#line 62178 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62178
 
  friend class ::WinIfExists;
62179
 
  friend class ::WinImportHandler;
62180
 
  friend class ::WinMacros;
62181
 
  friend class ::CMatchSyntax;
62182
 
  friend class ::ExtGnu;
62183
 
  friend class ::ExtAC;
62184
 
  friend class ::ExtACBuilderCoupling;
62185
 
  friend class ::ExtACSyntaxCoupling;
62186
 
  friend class ::ExtACTree;
62187
 
  friend class ::ExtACKeywords;
62188
 
  friend class ::WinAsm;
62189
 
  friend class ::WinDeclSpecs;
62190
 
  friend class ::WinMemberExplSpec;
62191
 
  friend class ::WinTypeKeywords;
62192
 
  friend class ::PragmaOnceUnitState;
62193
 
  friend class ::PragmaOnce;
62194
 
  friend class ::CCExprResolve;
62195
 
  friend class ::CExprResolve;
62196
 
 
62197
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62198
 
 
62199
 
public:
62200
 
  CT_MembList (int size = 10, int incr = 10) : 
62201
 
    CT_DeclList (size, incr) {}
62202
 
  static const char *NodeId ();
62203
 
  const char *NodeName () const { return NodeId (); }
62204
 
};
62205
 
 
62206
 
 
62207
 
#line 62208 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62208
 
} // closed Puma
62209
 
class WinIfExists;
62210
 
class WinImportHandler;
62211
 
class WinMacros;
62212
 
class CMatchSyntax;
62213
 
class ExtGnu;
62214
 
class ExtAC;
62215
 
class ExtACBuilderCoupling;
62216
 
class ExtACSyntaxCoupling;
62217
 
class ExtACTree;
62218
 
class ExtACKeywords;
62219
 
class WinAsm;
62220
 
class WinDeclSpecs;
62221
 
class WinMemberExplSpec;
62222
 
class WinTypeKeywords;
62223
 
class PragmaOnceUnitState;
62224
 
class PragmaOnce;
62225
 
class CCExprResolve;
62226
 
class CExprResolve;
62227
 
namespace Puma {
62228
 
 
62229
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62230
 
class CT_MembInitList : public CT_List, public CSemScope {
62231
 
#line 62232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62232
 
  friend class ::WinIfExists;
62233
 
  friend class ::WinImportHandler;
62234
 
  friend class ::WinMacros;
62235
 
  friend class ::CMatchSyntax;
62236
 
  friend class ::ExtGnu;
62237
 
  friend class ::ExtAC;
62238
 
  friend class ::ExtACBuilderCoupling;
62239
 
  friend class ::ExtACSyntaxCoupling;
62240
 
  friend class ::ExtACTree;
62241
 
  friend class ::ExtACKeywords;
62242
 
  friend class ::WinAsm;
62243
 
  friend class ::WinDeclSpecs;
62244
 
  friend class ::WinMemberExplSpec;
62245
 
  friend class ::WinTypeKeywords;
62246
 
  friend class ::PragmaOnceUnitState;
62247
 
  friend class ::PragmaOnce;
62248
 
  friend class ::CCExprResolve;
62249
 
  friend class ::CExprResolve;
62250
 
 
62251
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62252
 
 
62253
 
public:
62254
 
  CT_MembInitList (int size = 2) : 
62255
 
    CT_List (size, 2, CT_List::OPEN) {}
62256
 
  static const char *NodeId ();
62257
 
  const char *NodeName () const { return NodeId (); }
62258
 
};
62259
 
 
62260
 
 
62261
 
#line 62262 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62262
 
} // closed Puma
62263
 
class WinIfExists;
62264
 
class WinImportHandler;
62265
 
class WinMacros;
62266
 
class CMatchSyntax;
62267
 
class ExtGnu;
62268
 
class ExtAC;
62269
 
class ExtACBuilderCoupling;
62270
 
class ExtACSyntaxCoupling;
62271
 
class ExtACTree;
62272
 
class ExtACKeywords;
62273
 
class WinAsm;
62274
 
class WinDeclSpecs;
62275
 
class WinMemberExplSpec;
62276
 
class WinTypeKeywords;
62277
 
class PragmaOnceUnitState;
62278
 
class PragmaOnce;
62279
 
class CCExprResolve;
62280
 
class CExprResolve;
62281
 
namespace Puma {
62282
 
 
62283
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62284
 
class CT_MembInit : public CT_Expression, public CSemObject {
62285
 
#line 62286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62286
 
  friend class ::WinIfExists;
62287
 
  friend class ::WinImportHandler;
62288
 
  friend class ::WinMacros;
62289
 
  friend class ::CMatchSyntax;
62290
 
  friend class ::ExtGnu;
62291
 
  friend class ::ExtAC;
62292
 
  friend class ::ExtACBuilderCoupling;
62293
 
  friend class ::ExtACSyntaxCoupling;
62294
 
  friend class ::ExtACTree;
62295
 
  friend class ::ExtACKeywords;
62296
 
  friend class ::WinAsm;
62297
 
  friend class ::WinDeclSpecs;
62298
 
  friend class ::WinMemberExplSpec;
62299
 
  friend class ::WinTypeKeywords;
62300
 
  friend class ::PragmaOnceUnitState;
62301
 
  friend class ::PragmaOnce;
62302
 
  friend class ::CCExprResolve;
62303
 
  friend class ::CExprResolve;
62304
 
 
62305
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62306
 
 
62307
 
  CTree *sons[2]; // name, init
62308
 
 
62309
 
public:
62310
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
62311
 
  static const char *NodeId ();
62312
 
  const char *NodeName () const { return NodeId (); }
62313
 
  int Sons () const { return 2; }
62314
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
62315
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62316
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
62317
 
  }
62318
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
62319
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
62320
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
62321
 
   private:
62322
 
  typedef CT_MembInit CCExprResolveExpr;
62323
 
 
62324
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
62325
 
 public :
62326
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
62327
 
  typedef CT_MembInit CExprResolveExpr;
62328
 
 
62329
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
62330
 
 public :
62331
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
62332
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62333
 
};
62334
 
 
62335
 
 
62336
 
#line 62337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62337
 
} // closed Puma
62338
 
class WinIfExists;
62339
 
class WinImportHandler;
62340
 
class WinMacros;
62341
 
class CMatchSyntax;
62342
 
class ExtGnu;
62343
 
class ExtAC;
62344
 
class ExtACBuilderCoupling;
62345
 
class ExtACSyntaxCoupling;
62346
 
class ExtACTree;
62347
 
class ExtACKeywords;
62348
 
class WinAsm;
62349
 
class WinDeclSpecs;
62350
 
class WinMemberExplSpec;
62351
 
class WinTypeKeywords;
62352
 
class PragmaOnceUnitState;
62353
 
class PragmaOnce;
62354
 
class CCExprResolve;
62355
 
class CExprResolve;
62356
 
namespace Puma {
62357
 
 
62358
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62359
 
class CT_BaseSpecList : public CT_List {
62360
 
#line 62361 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62361
 
  friend class ::WinIfExists;
62362
 
  friend class ::WinImportHandler;
62363
 
  friend class ::WinMacros;
62364
 
  friend class ::CMatchSyntax;
62365
 
  friend class ::ExtGnu;
62366
 
  friend class ::ExtAC;
62367
 
  friend class ::ExtACBuilderCoupling;
62368
 
  friend class ::ExtACSyntaxCoupling;
62369
 
  friend class ::ExtACTree;
62370
 
  friend class ::ExtACKeywords;
62371
 
  friend class ::WinAsm;
62372
 
  friend class ::WinDeclSpecs;
62373
 
  friend class ::WinMemberExplSpec;
62374
 
  friend class ::WinTypeKeywords;
62375
 
  friend class ::PragmaOnceUnitState;
62376
 
  friend class ::PragmaOnce;
62377
 
  friend class ::CCExprResolve;
62378
 
  friend class ::CExprResolve;
62379
 
 
62380
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62381
 
 
62382
 
public:
62383
 
  CT_BaseSpecList (int size = 2) : 
62384
 
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
62385
 
  static const char *NodeId ();
62386
 
  const char *NodeName () const { return NodeId (); }
62387
 
};
62388
 
 
62389
 
 
62390
 
#line 62391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62391
 
} // closed Puma
62392
 
class WinIfExists;
62393
 
class WinImportHandler;
62394
 
class WinMacros;
62395
 
class CMatchSyntax;
62396
 
class ExtGnu;
62397
 
class ExtAC;
62398
 
class ExtACBuilderCoupling;
62399
 
class ExtACSyntaxCoupling;
62400
 
class ExtACTree;
62401
 
class ExtACKeywords;
62402
 
class WinAsm;
62403
 
class WinDeclSpecs;
62404
 
class WinMemberExplSpec;
62405
 
class WinTypeKeywords;
62406
 
class PragmaOnceUnitState;
62407
 
class PragmaOnce;
62408
 
class CCExprResolve;
62409
 
class CExprResolve;
62410
 
namespace Puma {
62411
 
 
62412
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62413
 
class CT_AccessSpec : public CTree {
62414
 
#line 62415 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62415
 
  friend class ::WinIfExists;
62416
 
  friend class ::WinImportHandler;
62417
 
  friend class ::WinMacros;
62418
 
  friend class ::CMatchSyntax;
62419
 
  friend class ::ExtGnu;
62420
 
  friend class ::ExtAC;
62421
 
  friend class ::ExtACBuilderCoupling;
62422
 
  friend class ::ExtACSyntaxCoupling;
62423
 
  friend class ::ExtACTree;
62424
 
  friend class ::ExtACKeywords;
62425
 
  friend class ::WinAsm;
62426
 
  friend class ::WinDeclSpecs;
62427
 
  friend class ::WinMemberExplSpec;
62428
 
  friend class ::WinTypeKeywords;
62429
 
  friend class ::PragmaOnceUnitState;
62430
 
  friend class ::PragmaOnce;
62431
 
  friend class ::CCExprResolve;
62432
 
  friend class ::CExprResolve;
62433
 
 
62434
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62435
 
 
62436
 
  CTree *sons[2]; // access, colon
62437
 
 
62438
 
public:
62439
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
62440
 
  static const char *NodeId ();
62441
 
  const char *NodeName () const { return NodeId (); }
62442
 
  int Sons () const { return 2; }
62443
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
62444
 
  int Access () const { return sons[0]->token ()->type (); }
62445
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62446
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
62447
 
  }
62448
 
};
62449
 
 
62450
 
 
62451
 
#line 62452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62452
 
} // closed Puma
62453
 
class WinIfExists;
62454
 
class WinImportHandler;
62455
 
class WinMacros;
62456
 
class CMatchSyntax;
62457
 
class ExtGnu;
62458
 
class ExtAC;
62459
 
class ExtACBuilderCoupling;
62460
 
class ExtACSyntaxCoupling;
62461
 
class ExtACTree;
62462
 
class ExtACKeywords;
62463
 
class WinAsm;
62464
 
class WinDeclSpecs;
62465
 
class WinMemberExplSpec;
62466
 
class WinTypeKeywords;
62467
 
class PragmaOnceUnitState;
62468
 
class PragmaOnce;
62469
 
class CCExprResolve;
62470
 
class CExprResolve;
62471
 
namespace Puma {
62472
 
 
62473
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62474
 
class CT_BaseSpec : public CTree {
62475
 
#line 62476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62476
 
  friend class ::WinIfExists;
62477
 
  friend class ::WinImportHandler;
62478
 
  friend class ::WinMacros;
62479
 
  friend class ::CMatchSyntax;
62480
 
  friend class ::ExtGnu;
62481
 
  friend class ::ExtAC;
62482
 
  friend class ::ExtACBuilderCoupling;
62483
 
  friend class ::ExtACSyntaxCoupling;
62484
 
  friend class ::ExtACTree;
62485
 
  friend class ::ExtACKeywords;
62486
 
  friend class ::WinAsm;
62487
 
  friend class ::WinDeclSpecs;
62488
 
  friend class ::WinMemberExplSpec;
62489
 
  friend class ::WinTypeKeywords;
62490
 
  friend class ::PragmaOnceUnitState;
62491
 
  friend class ::PragmaOnce;
62492
 
  friend class ::CCExprResolve;
62493
 
  friend class ::CExprResolve;
62494
 
 
62495
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62496
 
 
62497
 
  CTree *sons[3]; // virtual, access, name
62498
 
 
62499
 
public:
62500
 
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
62501
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
62502
 
  }
62503
 
  static const char *NodeId ();
62504
 
  const char *NodeName () const { return NodeId (); }
62505
 
  int Sons () const { return CTree::Sons (sons, 3); }
62506
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
62507
 
  int Access () const { return sons[1]->token ()->type (); }
62508
 
  CTree *AccessSpec () const { return sons[1]; }
62509
 
  CTree *Virtual () const { return sons[0]; }
62510
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
62511
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62512
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
62513
 
  }
62514
 
};
62515
 
 
62516
 
 
62517
 
#line 62518 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62518
 
} // closed Puma
62519
 
class WinIfExists;
62520
 
class WinImportHandler;
62521
 
class WinMacros;
62522
 
class CMatchSyntax;
62523
 
class ExtGnu;
62524
 
class ExtAC;
62525
 
class ExtACBuilderCoupling;
62526
 
class ExtACSyntaxCoupling;
62527
 
class ExtACTree;
62528
 
class ExtACKeywords;
62529
 
class WinAsm;
62530
 
class WinDeclSpecs;
62531
 
class WinMemberExplSpec;
62532
 
class WinTypeKeywords;
62533
 
class PragmaOnceUnitState;
62534
 
class PragmaOnce;
62535
 
class CCExprResolve;
62536
 
class CExprResolve;
62537
 
namespace Puma {
62538
 
 
62539
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62540
 
class CT_AccessDecl : public CT_Decl {
62541
 
#line 62542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62542
 
  friend class ::WinIfExists;
62543
 
  friend class ::WinImportHandler;
62544
 
  friend class ::WinMacros;
62545
 
  friend class ::CMatchSyntax;
62546
 
  friend class ::ExtGnu;
62547
 
  friend class ::ExtAC;
62548
 
  friend class ::ExtACBuilderCoupling;
62549
 
  friend class ::ExtACSyntaxCoupling;
62550
 
  friend class ::ExtACTree;
62551
 
  friend class ::ExtACKeywords;
62552
 
  friend class ::WinAsm;
62553
 
  friend class ::WinDeclSpecs;
62554
 
  friend class ::WinMemberExplSpec;
62555
 
  friend class ::WinTypeKeywords;
62556
 
  friend class ::PragmaOnceUnitState;
62557
 
  friend class ::PragmaOnce;
62558
 
  friend class ::CCExprResolve;
62559
 
  friend class ::CExprResolve;
62560
 
 
62561
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62562
 
 
62563
 
  CTree *sons[2]; // name, semi_colon
62564
 
 
62565
 
public:
62566
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
62567
 
  static const char *NodeId ();
62568
 
  const char *NodeName () const { return NodeId (); }
62569
 
  int Sons () const { return 2; }
62570
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
62571
 
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
62572
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62573
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
62574
 
  }
62575
 
};
62576
 
 
62577
 
 
62578
 
#line 62579 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62579
 
} // closed Puma
62580
 
class WinIfExists;
62581
 
class WinImportHandler;
62582
 
class WinMacros;
62583
 
class CMatchSyntax;
62584
 
class ExtGnu;
62585
 
class ExtAC;
62586
 
class ExtACBuilderCoupling;
62587
 
class ExtACSyntaxCoupling;
62588
 
class ExtACTree;
62589
 
class ExtACKeywords;
62590
 
class WinAsm;
62591
 
class WinDeclSpecs;
62592
 
class WinMemberExplSpec;
62593
 
class WinTypeKeywords;
62594
 
class PragmaOnceUnitState;
62595
 
class PragmaOnce;
62596
 
class CCExprResolve;
62597
 
class CExprResolve;
62598
 
namespace Puma {
62599
 
 
62600
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62601
 
class CT_UsingDecl : public CT_AccessDecl {
62602
 
#line 62603 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62603
 
  friend class ::WinIfExists;
62604
 
  friend class ::WinImportHandler;
62605
 
  friend class ::WinMacros;
62606
 
  friend class ::CMatchSyntax;
62607
 
  friend class ::ExtGnu;
62608
 
  friend class ::ExtAC;
62609
 
  friend class ::ExtACBuilderCoupling;
62610
 
  friend class ::ExtACSyntaxCoupling;
62611
 
  friend class ::ExtACTree;
62612
 
  friend class ::ExtACKeywords;
62613
 
  friend class ::WinAsm;
62614
 
  friend class ::WinDeclSpecs;
62615
 
  friend class ::WinMemberExplSpec;
62616
 
  friend class ::WinTypeKeywords;
62617
 
  friend class ::PragmaOnceUnitState;
62618
 
  friend class ::PragmaOnce;
62619
 
  friend class ::CCExprResolve;
62620
 
  friend class ::CExprResolve;
62621
 
 
62622
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62623
 
 
62624
 
  CTree *sons[2]; // using, typename
62625
 
 
62626
 
public:
62627
 
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
62628
 
    sons[0] = u; sons[1] = 0; 
62629
 
  }
62630
 
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
62631
 
    sons[0] = u; sons[1] = t; 
62632
 
  }
62633
 
  static const char *NodeId ();
62634
 
  const char *NodeName () const { return NodeId (); }
62635
 
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
62636
 
  CTree *Son (int n) const {
62637
 
    int num = CTree::Sons (sons, 2);
62638
 
    CTree *result = CTree::Son (sons, 2, n);
62639
 
    return result ? result : CT_AccessDecl::Son (n-num);
62640
 
  }
62641
 
  CTree *Typename () const { return sons[1]; }
62642
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62643
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
62644
 
    CT_AccessDecl::ReplaceSon (old_son, new_son);
62645
 
  }
62646
 
};
62647
 
 
62648
 
/*****************************************************************************/
62649
 
/*                                                                           */
62650
 
/*                              Wildcards                                    */
62651
 
/*                                                                           */
62652
 
/*****************************************************************************/
62653
 
 
62654
 
 
62655
 
#line 62656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62656
 
} // closed Puma
62657
 
class WinIfExists;
62658
 
class WinImportHandler;
62659
 
class WinMacros;
62660
 
class CMatchSyntax;
62661
 
class ExtGnu;
62662
 
class ExtAC;
62663
 
class ExtACBuilderCoupling;
62664
 
class ExtACSyntaxCoupling;
62665
 
class ExtACTree;
62666
 
class ExtACKeywords;
62667
 
class WinAsm;
62668
 
class WinDeclSpecs;
62669
 
class WinMemberExplSpec;
62670
 
class WinTypeKeywords;
62671
 
class PragmaOnceUnitState;
62672
 
class PragmaOnce;
62673
 
class CCExprResolve;
62674
 
class CExprResolve;
62675
 
namespace Puma {
62676
 
 
62677
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62678
 
class CT_Any : public CTree {
62679
 
#line 62680 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62680
 
  friend class ::WinIfExists;
62681
 
  friend class ::WinImportHandler;
62682
 
  friend class ::WinMacros;
62683
 
  friend class ::CMatchSyntax;
62684
 
  friend class ::ExtGnu;
62685
 
  friend class ::ExtAC;
62686
 
  friend class ::ExtACBuilderCoupling;
62687
 
  friend class ::ExtACSyntaxCoupling;
62688
 
  friend class ::ExtACTree;
62689
 
  friend class ::ExtACKeywords;
62690
 
  friend class ::WinAsm;
62691
 
  friend class ::WinDeclSpecs;
62692
 
  friend class ::WinMemberExplSpec;
62693
 
  friend class ::WinTypeKeywords;
62694
 
  friend class ::PragmaOnceUnitState;
62695
 
  friend class ::PragmaOnce;
62696
 
  friend class ::CCExprResolve;
62697
 
  friend class ::CExprResolve;
62698
 
 
62699
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62700
 
 
62701
 
  CTree *sons[2]; // keyword, extension
62702
 
 
62703
 
public:
62704
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
62705
 
  static const char *NodeId ();
62706
 
  const char *NodeName () const { return NodeId (); }
62707
 
  int Sons () const { return CTree::Sons (sons, 2); }
62708
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
62709
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62710
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
62711
 
  }
62712
 
  int AnyType () const { return sons[0]->token ()->type (); }
62713
 
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
62714
 
};
62715
 
 
62716
 
 
62717
 
#line 62718 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62718
 
} // closed Puma
62719
 
class WinIfExists;
62720
 
class WinImportHandler;
62721
 
class WinMacros;
62722
 
class CMatchSyntax;
62723
 
class ExtGnu;
62724
 
class ExtAC;
62725
 
class ExtACBuilderCoupling;
62726
 
class ExtACSyntaxCoupling;
62727
 
class ExtACTree;
62728
 
class ExtACKeywords;
62729
 
class WinAsm;
62730
 
class WinDeclSpecs;
62731
 
class WinMemberExplSpec;
62732
 
class WinTypeKeywords;
62733
 
class PragmaOnceUnitState;
62734
 
class PragmaOnce;
62735
 
class CCExprResolve;
62736
 
class CExprResolve;
62737
 
namespace Puma {
62738
 
 
62739
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62740
 
class CT_AnyList : public CT_Any {
62741
 
#line 62742 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62742
 
  friend class ::WinIfExists;
62743
 
  friend class ::WinImportHandler;
62744
 
  friend class ::WinMacros;
62745
 
  friend class ::CMatchSyntax;
62746
 
  friend class ::ExtGnu;
62747
 
  friend class ::ExtAC;
62748
 
  friend class ::ExtACBuilderCoupling;
62749
 
  friend class ::ExtACSyntaxCoupling;
62750
 
  friend class ::ExtACTree;
62751
 
  friend class ::ExtACKeywords;
62752
 
  friend class ::WinAsm;
62753
 
  friend class ::WinDeclSpecs;
62754
 
  friend class ::WinMemberExplSpec;
62755
 
  friend class ::WinTypeKeywords;
62756
 
  friend class ::PragmaOnceUnitState;
62757
 
  friend class ::PragmaOnce;
62758
 
  friend class ::CCExprResolve;
62759
 
  friend class ::CExprResolve;
62760
 
 
62761
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62762
 
 
62763
 
public:
62764
 
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
62765
 
  static const char *NodeId ();
62766
 
  const char *NodeName () const { return NodeId (); }
62767
 
};
62768
 
 
62769
 
 
62770
 
#line 62771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62771
 
} // closed Puma
62772
 
class WinIfExists;
62773
 
class WinImportHandler;
62774
 
class WinMacros;
62775
 
class CMatchSyntax;
62776
 
class ExtGnu;
62777
 
class ExtAC;
62778
 
class ExtACBuilderCoupling;
62779
 
class ExtACSyntaxCoupling;
62780
 
class ExtACTree;
62781
 
class ExtACKeywords;
62782
 
class WinAsm;
62783
 
class WinDeclSpecs;
62784
 
class WinMemberExplSpec;
62785
 
class WinTypeKeywords;
62786
 
class PragmaOnceUnitState;
62787
 
class PragmaOnce;
62788
 
class CCExprResolve;
62789
 
class CExprResolve;
62790
 
namespace Puma {
62791
 
 
62792
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62793
 
class CT_AnyExtension : public CTree, public CSemValue {
62794
 
#line 62795 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62795
 
  friend class ::WinIfExists;
62796
 
  friend class ::WinImportHandler;
62797
 
  friend class ::WinMacros;
62798
 
  friend class ::CMatchSyntax;
62799
 
  friend class ::ExtGnu;
62800
 
  friend class ::ExtAC;
62801
 
  friend class ::ExtACBuilderCoupling;
62802
 
  friend class ::ExtACSyntaxCoupling;
62803
 
  friend class ::ExtACTree;
62804
 
  friend class ::ExtACKeywords;
62805
 
  friend class ::WinAsm;
62806
 
  friend class ::WinDeclSpecs;
62807
 
  friend class ::WinMemberExplSpec;
62808
 
  friend class ::WinTypeKeywords;
62809
 
  friend class ::PragmaOnceUnitState;
62810
 
  friend class ::PragmaOnce;
62811
 
  friend class ::CCExprResolve;
62812
 
  friend class ::CExprResolve;
62813
 
 
62814
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62815
 
 
62816
 
  CTree *sons[5]; // open, string, comma, cond, close
62817
 
 
62818
 
public:
62819
 
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
62820
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
62821
 
  }
62822
 
  static const char *NodeId ();
62823
 
  const char *NodeName () const { return NodeId (); }
62824
 
  int Sons () const { return CTree::Sons (sons, 5); }
62825
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
62826
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62827
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
62828
 
  }
62829
 
  CTree *Condition () const { return sons[3]; }
62830
 
  CT_Token *String () const { return (CT_Token*)sons[1]; }
62831
 
  const char *Name () const { 
62832
 
    return value ? value->StrLiteral ()->String () : (const char*)0; }
62833
 
 
62834
 
  CExprValue *Value () const { return value; }
62835
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
62836
 
};
62837
 
 
62838
 
 
62839
 
#line 62840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62840
 
} // closed Puma
62841
 
class WinIfExists;
62842
 
class WinImportHandler;
62843
 
class WinMacros;
62844
 
class CMatchSyntax;
62845
 
class ExtGnu;
62846
 
class ExtAC;
62847
 
class ExtACBuilderCoupling;
62848
 
class ExtACSyntaxCoupling;
62849
 
class ExtACTree;
62850
 
class ExtACKeywords;
62851
 
class WinAsm;
62852
 
class WinDeclSpecs;
62853
 
class WinMemberExplSpec;
62854
 
class WinTypeKeywords;
62855
 
class PragmaOnceUnitState;
62856
 
class PragmaOnce;
62857
 
class CCExprResolve;
62858
 
class CExprResolve;
62859
 
namespace Puma {
62860
 
 
62861
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62862
 
class CT_AnyCondition : public CTree {
62863
 
#line 62864 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62864
 
  friend class ::WinIfExists;
62865
 
  friend class ::WinImportHandler;
62866
 
  friend class ::WinMacros;
62867
 
  friend class ::CMatchSyntax;
62868
 
  friend class ::ExtGnu;
62869
 
  friend class ::ExtAC;
62870
 
  friend class ::ExtACBuilderCoupling;
62871
 
  friend class ::ExtACSyntaxCoupling;
62872
 
  friend class ::ExtACTree;
62873
 
  friend class ::ExtACKeywords;
62874
 
  friend class ::WinAsm;
62875
 
  friend class ::WinDeclSpecs;
62876
 
  friend class ::WinMemberExplSpec;
62877
 
  friend class ::WinTypeKeywords;
62878
 
  friend class ::PragmaOnceUnitState;
62879
 
  friend class ::PragmaOnce;
62880
 
  friend class ::CCExprResolve;
62881
 
  friend class ::CExprResolve;
62882
 
 
62883
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62884
 
 
62885
 
  CTree *sons[3]; // arg1, arg2, arg3
62886
 
 
62887
 
public:
62888
 
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
62889
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
62890
 
  }
62891
 
  static const char *NodeId ();
62892
 
  const char *NodeName () const { return NodeId (); }
62893
 
  int Sons () const { return CTree::Sons (sons, 3); }
62894
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
62895
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62896
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
62897
 
  }
62898
 
};
62899
 
 
62900
 
 
62901
 
} // namespace Puma
62902
 
 
62903
 
#endif /* __CTree_h__ */
62904
 
 
62905
 
#line 62906 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62906
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
62907
 
 
62908
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
62909
 
 
62910
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
62911
 
 
62912
 
#line 62913 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62913
 
 
62914
 
#line 5 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
62915
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
62916
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
62917
 
 
62918
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
62919
 
// This file is part of PUMA.
62920
 
// Copyright (C) 1999-2003  The PUMA developer team.
62921
 
//                                                                
62922
 
// This program is free software;  you can redistribute it and/or 
62923
 
// modify it under the terms of the GNU General Public License as 
62924
 
// published by the Free Software Foundation; either version 2 of 
62925
 
// the License, or (at your option) any later version.            
62926
 
//                                                                
62927
 
// This program is distributed in the hope that it will be useful,
62928
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
62929
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
62930
 
// GNU General Public License for more details.                   
62931
 
//                                                                
62932
 
// You should have received a copy of the GNU General Public      
62933
 
// License along with this program; if not, write to the Free     
62934
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
62935
 
// MA  02111-1307  USA                                            
62936
 
 
62937
 
#ifndef __gnu_c_tree_h__
62938
 
#define __gnu_c_tree_h__
62939
 
 
62940
 
namespace Puma {
62941
 
 
62942
 
// Syntax tree node hierarchy:
62943
 
class   CT_GnuAsmDef;        // derived from CT_AsmDef
62944
 
class   CT_GnuAsmOperand;    // derived from CTree
62945
 
class     CT_GnuAsmOperands; // derived from CT_List
62946
 
class     CT_GnuAsmClobbers; // derived from CT_List
62947
 
class   CT_GnuStatementExpr; // derived from CT_Expression
62948
 
 
62949
 
} // namespace Puma
62950
 
 
62951
 
#include "Puma/CTree.h"
62952
 
 
62953
 
namespace Puma {
62954
 
 
62955
 
 
62956
 
 
62957
 
#line 62958 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62958
 
} // closed Puma
62959
 
class WinIfExists;
62960
 
class WinImportHandler;
62961
 
class WinMacros;
62962
 
class CMatchSyntax;
62963
 
class ExtGnu;
62964
 
class ExtAC;
62965
 
class ExtACBuilderCoupling;
62966
 
class ExtACSyntaxCoupling;
62967
 
class ExtACTree;
62968
 
class ExtACKeywords;
62969
 
class WinAsm;
62970
 
class WinDeclSpecs;
62971
 
class WinMemberExplSpec;
62972
 
class WinTypeKeywords;
62973
 
class PragmaOnceUnitState;
62974
 
class PragmaOnce;
62975
 
class CCExprResolve;
62976
 
class CExprResolve;
62977
 
namespace Puma {
62978
 
 
62979
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
62980
 
class CT_GnuAsmDef : public CT_AsmDef {
62981
 
#line 62982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
62982
 
  friend class ::WinIfExists;
62983
 
  friend class ::WinImportHandler;
62984
 
  friend class ::WinMacros;
62985
 
  friend class ::CMatchSyntax;
62986
 
  friend class ::ExtGnu;
62987
 
  friend class ::ExtAC;
62988
 
  friend class ::ExtACBuilderCoupling;
62989
 
  friend class ::ExtACSyntaxCoupling;
62990
 
  friend class ::ExtACTree;
62991
 
  friend class ::ExtACKeywords;
62992
 
  friend class ::WinAsm;
62993
 
  friend class ::WinDeclSpecs;
62994
 
  friend class ::WinMemberExplSpec;
62995
 
  friend class ::WinTypeKeywords;
62996
 
  friend class ::PragmaOnceUnitState;
62997
 
  friend class ::PragmaOnce;
62998
 
  friend class ::CCExprResolve;
62999
 
  friend class ::CExprResolve;
63000
 
 
63001
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
63002
 
 
63003
 
  CTree *_cvqual;
63004
 
  CTree *_operands0;
63005
 
  CTree *_operands1;
63006
 
  CTree *_clobbers;
63007
 
 
63008
 
public:
63009
 
 
63010
 
  CT_GnuAsmDef (CTree *a, CTree *cv, CTree *o, CTree *s, 
63011
 
                CTree *op0, CTree *op1, CTree *cl, CTree *c, CTree *sc) :
63012
 
    CT_AsmDef (a, o, s, c, sc) {
63013
 
      _cvqual = cv; _operands0 = op0; _operands1 = op1; _clobbers = cl;
63014
 
  }
63015
 
 
63016
 
  static const char *NodeId ();
63017
 
  const char *NodeName () const { return NodeId (); }  
63018
 
 
63019
 
  virtual int Sons () const {
63020
 
    return 5 +
63021
 
           (_cvqual ? 1 : 0) +
63022
 
           (_operands0 ? 1 : 0) +
63023
 
           (_operands1 ? 1 : 0) +
63024
 
           (_clobbers ? 1 : 0);
63025
 
  }
63026
 
 
63027
 
  virtual CTree *Son (int n) const {
63028
 
    int have_cv = _cvqual ? 1 : 0;
63029
 
    int gnu_sons = Sons () - have_cv - 5;
63030
 
    int gnu_first = 3 + have_cv;
63031
 
    if (n == 0) return CT_AsmDef::Son (0);
63032
 
    else if (n == 1 && _cvqual) return _cvqual;
63033
 
    else if ((n == 1 && !_cvqual) || (n == 2 && _cvqual))
63034
 
       return CT_AsmDef::Son (1);
63035
 
    else if ((n == 2 && !_cvqual) || (n == 3 && _cvqual))
63036
 
       return CT_AsmDef::Son (2);
63037
 
    else if (n == gnu_first && gnu_sons >= 1) return _operands0;
63038
 
    else if (n == gnu_first + 1 && gnu_sons >= 2) return _operands1;
63039
 
    else if (n == gnu_first + 2 && gnu_sons >= 3) return _clobbers;
63040
 
    else if (n == Sons () - 2)
63041
 
       return CT_AsmDef::Son (3);
63042
 
    else if (n == Sons () - 1)
63043
 
       return CT_AsmDef::Son (4);
63044
 
    else return (CTree*)0;
63045
 
  }
63046
 
 
63047
 
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {
63048
 
    if (old_son == _cvqual) _cvqual = new_son;
63049
 
    else if (old_son == _operands0) _operands0 = new_son;
63050
 
    else if (old_son == _operands1) _operands1 = new_son;
63051
 
    else if (old_son == _clobbers) _clobbers = new_son;
63052
 
    else CT_AsmDef::ReplaceSon (old_son, new_son);
63053
 
  }
63054
 
};
63055
 
 
63056
 
 
63057
 
#line 63058 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63058
 
} // closed Puma
63059
 
class WinIfExists;
63060
 
class WinImportHandler;
63061
 
class WinMacros;
63062
 
class CMatchSyntax;
63063
 
class ExtGnu;
63064
 
class ExtAC;
63065
 
class ExtACBuilderCoupling;
63066
 
class ExtACSyntaxCoupling;
63067
 
class ExtACTree;
63068
 
class ExtACKeywords;
63069
 
class WinAsm;
63070
 
class WinDeclSpecs;
63071
 
class WinMemberExplSpec;
63072
 
class WinTypeKeywords;
63073
 
class PragmaOnceUnitState;
63074
 
class PragmaOnce;
63075
 
class CCExprResolve;
63076
 
class CExprResolve;
63077
 
namespace Puma {
63078
 
 
63079
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
63080
 
class CT_GnuAsmOperand : public CTree {
63081
 
#line 63082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63082
 
  friend class ::WinIfExists;
63083
 
  friend class ::WinImportHandler;
63084
 
  friend class ::WinMacros;
63085
 
  friend class ::CMatchSyntax;
63086
 
  friend class ::ExtGnu;
63087
 
  friend class ::ExtAC;
63088
 
  friend class ::ExtACBuilderCoupling;
63089
 
  friend class ::ExtACSyntaxCoupling;
63090
 
  friend class ::ExtACTree;
63091
 
  friend class ::ExtACKeywords;
63092
 
  friend class ::WinAsm;
63093
 
  friend class ::WinDeclSpecs;
63094
 
  friend class ::WinMemberExplSpec;
63095
 
  friend class ::WinTypeKeywords;
63096
 
  friend class ::PragmaOnceUnitState;
63097
 
  friend class ::PragmaOnce;
63098
 
  friend class ::CCExprResolve;
63099
 
  friend class ::CExprResolve;
63100
 
 
63101
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
63102
 
 
63103
 
  CTree *_string;
63104
 
  CTree *_open;   // CT_Token
63105
 
  CTree *_expr;
63106
 
  CTree *_close;  // CT_Token
63107
 
 
63108
 
public:
63109
 
  CT_GnuAsmOperand (CTree *s, CTree *o, CTree *e, CTree *c) :
63110
 
    _string (s), _open (o), _expr (e), _close (c) {}
63111
 
  static const char *NodeId ();
63112
 
  const char *NodeName () const { return NodeId (); } 
63113
 
  int Sons () const { return 4; }
63114
 
  CTree *Son (int n) const {
63115
 
    switch (n) {
63116
 
      case 0: return _string;
63117
 
      case 1: return _open;
63118
 
      case 2: return _expr;
63119
 
      case 3: return _close;
63120
 
      default: return (CTree*)0;
63121
 
    }
63122
 
  }
63123
 
  CT_Expression *Expr () const { return (CT_Expression*)_expr; }
63124
 
  CT_String *String () const { return (CT_String*)_string; }
63125
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
63126
 
    if (old_son == _expr) _expr = new_son;
63127
 
    else if (old_son == _string) _string = new_son;
63128
 
    else if (old_son == _open) _open = new_son;
63129
 
    else if (old_son == _close) _close = new_son;
63130
 
  }
63131
 
};
63132
 
 
63133
 
 
63134
 
#line 63135 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63135
 
} // closed Puma
63136
 
class WinIfExists;
63137
 
class WinImportHandler;
63138
 
class WinMacros;
63139
 
class CMatchSyntax;
63140
 
class ExtGnu;
63141
 
class ExtAC;
63142
 
class ExtACBuilderCoupling;
63143
 
class ExtACSyntaxCoupling;
63144
 
class ExtACTree;
63145
 
class ExtACKeywords;
63146
 
class WinAsm;
63147
 
class WinDeclSpecs;
63148
 
class WinMemberExplSpec;
63149
 
class WinTypeKeywords;
63150
 
class PragmaOnceUnitState;
63151
 
class PragmaOnce;
63152
 
class CCExprResolve;
63153
 
class CExprResolve;
63154
 
namespace Puma {
63155
 
 
63156
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
63157
 
class CT_GnuAsmOperands : public CT_List {
63158
 
#line 63159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63159
 
  friend class ::WinIfExists;
63160
 
  friend class ::WinImportHandler;
63161
 
  friend class ::WinMacros;
63162
 
  friend class ::CMatchSyntax;
63163
 
  friend class ::ExtGnu;
63164
 
  friend class ::ExtAC;
63165
 
  friend class ::ExtACBuilderCoupling;
63166
 
  friend class ::ExtACSyntaxCoupling;
63167
 
  friend class ::ExtACTree;
63168
 
  friend class ::ExtACKeywords;
63169
 
  friend class ::WinAsm;
63170
 
  friend class ::WinDeclSpecs;
63171
 
  friend class ::WinMemberExplSpec;
63172
 
  friend class ::WinTypeKeywords;
63173
 
  friend class ::PragmaOnceUnitState;
63174
 
  friend class ::PragmaOnce;
63175
 
  friend class ::CCExprResolve;
63176
 
  friend class ::CExprResolve;
63177
 
 
63178
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
63179
 
 
63180
 
public:
63181
 
  CT_GnuAsmOperands () { AddProperties (OPEN | SEPARATORS); }
63182
 
  static const char *NodeId ();
63183
 
  const char *NodeName () const { return NodeId (); }  
63184
 
};
63185
 
 
63186
 
 
63187
 
#line 63188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63188
 
} // closed Puma
63189
 
class WinIfExists;
63190
 
class WinImportHandler;
63191
 
class WinMacros;
63192
 
class CMatchSyntax;
63193
 
class ExtGnu;
63194
 
class ExtAC;
63195
 
class ExtACBuilderCoupling;
63196
 
class ExtACSyntaxCoupling;
63197
 
class ExtACTree;
63198
 
class ExtACKeywords;
63199
 
class WinAsm;
63200
 
class WinDeclSpecs;
63201
 
class WinMemberExplSpec;
63202
 
class WinTypeKeywords;
63203
 
class PragmaOnceUnitState;
63204
 
class PragmaOnce;
63205
 
class CCExprResolve;
63206
 
class CExprResolve;
63207
 
namespace Puma {
63208
 
 
63209
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
63210
 
class CT_GnuAsmClobbers : public CT_List {
63211
 
#line 63212 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63212
 
  friend class ::WinIfExists;
63213
 
  friend class ::WinImportHandler;
63214
 
  friend class ::WinMacros;
63215
 
  friend class ::CMatchSyntax;
63216
 
  friend class ::ExtGnu;
63217
 
  friend class ::ExtAC;
63218
 
  friend class ::ExtACBuilderCoupling;
63219
 
  friend class ::ExtACSyntaxCoupling;
63220
 
  friend class ::ExtACTree;
63221
 
  friend class ::ExtACKeywords;
63222
 
  friend class ::WinAsm;
63223
 
  friend class ::WinDeclSpecs;
63224
 
  friend class ::WinMemberExplSpec;
63225
 
  friend class ::WinTypeKeywords;
63226
 
  friend class ::PragmaOnceUnitState;
63227
 
  friend class ::PragmaOnce;
63228
 
  friend class ::CCExprResolve;
63229
 
  friend class ::CExprResolve;
63230
 
 
63231
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
63232
 
 
63233
 
public:
63234
 
  CT_GnuAsmClobbers () { AddProperties (OPEN | SEPARATORS); }
63235
 
  static const char *NodeId ();
63236
 
  const char *NodeName () const { return NodeId (); }  
63237
 
};
63238
 
 
63239
 
/*****************************************************************************/
63240
 
/*                                                                           */
63241
 
/*                              Expressions                                  */
63242
 
/*                                                                           */
63243
 
/*****************************************************************************/
63244
 
 
63245
 
 
63246
 
#line 63247 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63247
 
} // closed Puma
63248
 
class WinIfExists;
63249
 
class WinImportHandler;
63250
 
class WinMacros;
63251
 
class CMatchSyntax;
63252
 
class ExtGnu;
63253
 
class ExtAC;
63254
 
class ExtACBuilderCoupling;
63255
 
class ExtACSyntaxCoupling;
63256
 
class ExtACTree;
63257
 
class ExtACKeywords;
63258
 
class WinAsm;
63259
 
class WinDeclSpecs;
63260
 
class WinMemberExplSpec;
63261
 
class WinTypeKeywords;
63262
 
class PragmaOnceUnitState;
63263
 
class PragmaOnce;
63264
 
class CCExprResolve;
63265
 
class CExprResolve;
63266
 
namespace Puma {
63267
 
 
63268
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
63269
 
class CT_GnuStatementExpr : public CT_Expression {
63270
 
#line 63271 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63271
 
  friend class ::WinIfExists;
63272
 
  friend class ::WinImportHandler;
63273
 
  friend class ::WinMacros;
63274
 
  friend class ::CMatchSyntax;
63275
 
  friend class ::ExtGnu;
63276
 
  friend class ::ExtAC;
63277
 
  friend class ::ExtACBuilderCoupling;
63278
 
  friend class ::ExtACSyntaxCoupling;
63279
 
  friend class ::ExtACTree;
63280
 
  friend class ::ExtACKeywords;
63281
 
  friend class ::WinAsm;
63282
 
  friend class ::WinDeclSpecs;
63283
 
  friend class ::WinMemberExplSpec;
63284
 
  friend class ::WinTypeKeywords;
63285
 
  friend class ::PragmaOnceUnitState;
63286
 
  friend class ::PragmaOnce;
63287
 
  friend class ::CCExprResolve;
63288
 
  friend class ::CExprResolve;
63289
 
 
63290
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
63291
 
 
63292
 
  CTree *_open;
63293
 
  CTree *_stmt;
63294
 
  CTree *_close;
63295
 
public:
63296
 
  CT_GnuStatementExpr (CTree *o, CTree *s, CTree *c) :
63297
 
    _open (o), _stmt (s), _close (c) {}
63298
 
  static const char *NodeId ();
63299
 
  const char *NodeName () const { return NodeId (); }  
63300
 
  int Sons () const { return 3; }
63301
 
  CTree *Son (int n) const {
63302
 
    switch (n) {
63303
 
      case 0: return _open;
63304
 
      case 1: return _stmt;
63305
 
      case 2: return _close;
63306
 
      default: return (CTree*)0;
63307
 
    }
63308
 
  }
63309
 
  CT_CmpdStmt *CmpdStmt () const { return (CT_CmpdStmt*)Son (1); }
63310
 
   private:
63311
 
  typedef CT_GnuStatementExpr CCExprResolveExpr;
63312
 
 
63313
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
63314
 
 public :
63315
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
63316
 
  typedef CT_GnuStatementExpr CExprResolveExpr;
63317
 
 
63318
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
63319
 
 public :
63320
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
63321
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
63322
 
};
63323
 
 
63324
 
/*****************************************************************************/
63325
 
/*                                                                           */
63326
 
/*                         Declaration specifiers                            */
63327
 
/*                                                                           */
63328
 
/*****************************************************************************/
63329
 
 
63330
 
// typeof(expr) or typeof(named type) feature
63331
 
 
63332
 
#line 63333 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63333
 
} // closed Puma
63334
 
class WinIfExists;
63335
 
class WinImportHandler;
63336
 
class WinMacros;
63337
 
class CMatchSyntax;
63338
 
class ExtGnu;
63339
 
class ExtAC;
63340
 
class ExtACBuilderCoupling;
63341
 
class ExtACSyntaxCoupling;
63342
 
class ExtACTree;
63343
 
class ExtACKeywords;
63344
 
class WinAsm;
63345
 
class WinDeclSpecs;
63346
 
class WinMemberExplSpec;
63347
 
class WinTypeKeywords;
63348
 
class PragmaOnceUnitState;
63349
 
class PragmaOnce;
63350
 
class CCExprResolve;
63351
 
class CExprResolve;
63352
 
namespace Puma {
63353
 
 
63354
 
#line 171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
63355
 
class CT_GnuTypeof : public CT_DeclSpec, public CSemValue {
63356
 
#line 63357 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63357
 
  friend class ::WinIfExists;
63358
 
  friend class ::WinImportHandler;
63359
 
  friend class ::WinMacros;
63360
 
  friend class ::CMatchSyntax;
63361
 
  friend class ::ExtGnu;
63362
 
  friend class ::ExtAC;
63363
 
  friend class ::ExtACBuilderCoupling;
63364
 
  friend class ::ExtACSyntaxCoupling;
63365
 
  friend class ::ExtACTree;
63366
 
  friend class ::ExtACKeywords;
63367
 
  friend class ::WinAsm;
63368
 
  friend class ::WinDeclSpecs;
63369
 
  friend class ::WinMemberExplSpec;
63370
 
  friend class ::WinTypeKeywords;
63371
 
  friend class ::PragmaOnceUnitState;
63372
 
  friend class ::PragmaOnce;
63373
 
  friend class ::CCExprResolve;
63374
 
  friend class ::CExprResolve;
63375
 
 
63376
 
#line 171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
63377
 
 
63378
 
  CTree *sons[5]; // key, open, type, close, expr
63379
 
 
63380
 
public:
63381
 
  CT_GnuTypeof (CTree *k, CTree *o, CTree *t, CTree *c) {
63382
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
63383
 
  }
63384
 
  CT_GnuTypeof (CTree *k, CTree *e) {
63385
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
63386
 
  }
63387
 
  static const char *NodeId ();
63388
 
  const char *NodeName () const { return NodeId (); }
63389
 
  int Sons () const { return CTree::Sons (sons, 5); }
63390
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
63391
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63392
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
63393
 
  }
63394
 
  CTree *Expr () const { return sons[4]; }
63395
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
63396
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
63397
 
  CTypeInfo *Type () const { return type; }
63398
 
};
63399
 
 
63400
 
} // namespace Puma
63401
 
 
63402
 
#endif /* __gnu_c_tree_h__ */
63403
 
 
63404
 
#line 63405 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63405
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
63406
 
 
63407
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
63408
 
 
63409
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/WinCTree.h"
63410
 
// This file is part of PUMA.
63411
 
// Copyright (C) 1999-2003  The PUMA developer team.
63412
 
//                                                                
63413
 
// This program is free software;  you can redistribute it and/or 
63414
 
// modify it under the terms of the GNU General Public License as 
63415
 
// published by the Free Software Foundation; either version 2 of 
63416
 
// the License, or (at your option) any later version.            
63417
 
//                                                                
63418
 
// This program is distributed in the hope that it will be useful,
63419
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
63420
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
63421
 
// GNU General Public License for more details.                   
63422
 
//                                                                
63423
 
// You should have received a copy of the GNU General Public      
63424
 
// License along with this program; if not, write to the Free     
63425
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
63426
 
// MA  02111-1307  USA                                            
63427
 
 
63428
 
#ifndef __win_c_tree_h__
63429
 
#define __win_c_tree_h__
63430
 
 
63431
 
namespace Puma {
63432
 
 
63433
 
 
63434
 
// Syntax tree node hierarchy:
63435
 
class CTree;
63436
 
class   CT_Statement;
63437
 
class     CT_AsmBlock;
63438
 
 
63439
 
 
63440
 
} // namespace Puma
63441
 
 
63442
 
 
63443
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63444
 
 
63445
 
#line 63446 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63446
 
 
63447
 
#ifndef __ac_fwd_ExtACTree__
63448
 
#define __ac_fwd_ExtACTree__
63449
 
class ExtACTree;
63450
 
namespace AC {
63451
 
  template <class JoinPoint>
63452
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
63453
 
  template <class JoinPoint>
63454
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
63455
 
}
63456
 
#endif
63457
 
 
63458
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
63459
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
63460
 
#endif
63461
 
 
63462
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63463
 
 
63464
 
#line 63465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63465
 
 
63466
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63467
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
63468
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
63469
 
 
63470
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63471
 
// This file is part of PUMA.
63472
 
// Copyright (C) 1999-2003  The PUMA developer team.
63473
 
//                                                                
63474
 
// This program is free software;  you can redistribute it and/or 
63475
 
// modify it under the terms of the GNU General Public License as 
63476
 
// published by the Free Software Foundation; either version 2 of 
63477
 
// the License, or (at your option) any later version.            
63478
 
//                                                                
63479
 
// This program is distributed in the hope that it will be useful,
63480
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
63481
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
63482
 
// GNU General Public License for more details.                   
63483
 
//                                                                
63484
 
// You should have received a copy of the GNU General Public      
63485
 
// License along with this program; if not, write to the Free     
63486
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
63487
 
// MA  02111-1307  USA                                            
63488
 
 
63489
 
#ifndef __CTree_h__
63490
 
#define __CTree_h__
63491
 
 
63492
 
namespace Puma {
63493
 
 
63494
 
 
63495
 
// Syntax tree node hierarchy:
63496
 
class CTree;
63497
 
class   CT_Statement;          
63498
 
class     CT_LabelStmt;
63499
 
class     CT_IfStmt;
63500
 
class     CT_IfElseStmt;
63501
 
class     CT_SwitchStmt;
63502
 
class     CT_BreakStmt;
63503
 
class     CT_ExprStmt;
63504
 
class     CT_WhileStmt;
63505
 
class     CT_DoStmt;
63506
 
class     CT_ForStmt;
63507
 
class     CT_ContinueStmt;
63508
 
class     CT_ReturnStmt;
63509
 
class     CT_GotoStmt;
63510
 
class     CT_DeclStmt;
63511
 
class     CT_CaseStmt;
63512
 
class     CT_DefaultStmt;
63513
 
class     CT_TryStmt;
63514
 
class   CT_Expression;
63515
 
class     CT_ThrowExpr;
63516
 
class     CT_NewExpr;
63517
 
class     CT_DeleteExpr;
63518
 
class     CT_ConstructExpr;
63519
 
class     CT_Integer;
63520
 
class     CT_Character;
63521
 
class       CT_WideCharacter;
63522
 
class     CT_Float;
63523
 
class     CT_Bool;
63524
 
class     CT_BracedExpr;
63525
 
class     CT_BinaryExpr;
63526
 
class       CT_MembPtrExpr;
63527
 
class         CT_MembRefExpr;
63528
 
class     CT_UnaryExpr;
63529
 
class       CT_PostfixExpr;
63530
 
class       CT_AddrExpr;
63531
 
class       CT_DerefExpr;
63532
 
class     CT_IfThenExpr;
63533
 
class     CT_CmpdLiteral;
63534
 
class     CT_IndexExpr;
63535
 
class     CT_CallExpr;
63536
 
class     CT_CastExpr;
63537
 
class     CT_StaticCast;
63538
 
class       CT_ConstCast;
63539
 
class       CT_ReintCast;
63540
 
class       CT_DynamicCast;
63541
 
class     CT_TypeidExpr;
63542
 
class     CT_SizeofExpr;
63543
 
class     CT_MembDesignator;
63544
 
class     CT_IndexDesignator;
63545
 
class     CT_ImplicitCast;
63546
 
class   CT_DeclSpec;
63547
 
class     CT_PrimDeclSpec;
63548
 
class     CT_NamedType;
63549
 
class     CT_ClassSpec;
63550
 
class       CT_UnionSpec;
63551
 
class       CT_EnumSpec;
63552
 
class     CT_ExceptionSpec;
63553
 
class   CT_Declarator;
63554
 
class     CT_InitDeclarator;
63555
 
class     CT_BracedDeclarator;
63556
 
class     CT_ArrayDeclarator;
63557
 
class     CT_FctDeclarator;
63558
 
class     CT_RefDeclarator;
63559
 
class     CT_PtrDeclarator;
63560
 
class     CT_MembPtrDeclarator;
63561
 
class     CT_BitFieldDeclarator;
63562
 
class   CT_Decl;
63563
 
class     CT_ObjDecl;
63564
 
class     CT_ArgDecl;
63565
 
class     CT_AccessDecl;
63566
 
class       CT_UsingDecl;
63567
 
class     CT_FctDef;
63568
 
class     CT_AsmDef;
63569
 
class     CT_EnumDef;
63570
 
class     CT_ClassDef;
63571
 
class       CT_UnionDef;
63572
 
class     CT_Enumerator;
63573
 
class     CT_LinkageSpec;
63574
 
class     CT_Handler;
63575
 
class     CT_TemplateDecl;
63576
 
class     CT_TemplateParamDecl;
63577
 
class       CT_TypeParamDecl;
63578
 
class       CT_NonTypeParamDecl;
63579
 
class     CT_NamespaceDef;
63580
 
class     CT_NamespaceAliasDef;
63581
 
class     CT_UsingDirective;
63582
 
class   CT_List;
63583
 
class     CT_CmpdStmt;
63584
 
class     CT_DeclSpecSeq;
63585
 
class     CT_HandlerSeq;
63586
 
class     CT_DesignatorSeq;
63587
 
class     CT_DeclList;
63588
 
class       CT_Program;
63589
 
class       CT_ArgDeclList;
63590
 
class         CT_ArgNameList;
63591
 
class       CT_ArgDeclSeq;
63592
 
class       CT_MembList;
63593
 
class     CT_ExprList;
63594
 
class     CT_DeclaratorList;
63595
 
class     CT_BaseSpecList;
63596
 
class     CT_MembInitList;
63597
 
class     CT_SimpleName;
63598
 
class       CT_SpecialName;
63599
 
class         CT_PrivateName;
63600
 
class         CT_OperatorName;
63601
 
class         CT_DestructorName;
63602
 
class         CT_ConversionName;
63603
 
class         CT_TemplateName;
63604
 
class       CT_QualName;
63605
 
class         CT_RootQualName;
63606
 
class     CT_String;
63607
 
class       CT_WideString;
63608
 
class     CT_TemplateParamList;
63609
 
class     CT_TemplateArgList;
63610
 
class   CT_Token;
63611
 
class   CT_Error;
63612
 
class   CT_Condition;
63613
 
class   CT_BaseSpec;
63614
 
class   CT_AccessSpec;
63615
 
class   CT_ArrayDelimiter;
63616
 
class   CT_Any;
63617
 
class   CT_AnyList;
63618
 
class   CT_AnyExtension;
63619
 
class   CT_AnyCondition;
63620
 
 
63621
 
 
63622
 
} // namespace Puma
63623
 
 
63624
 
#include "Puma/ErrorSeverity.h"
63625
 
#include "Puma/CSemObject.h"
63626
 
#include "Puma/CSemScope.h"
63627
 
#include "Puma/CSemValue.h"
63628
 
#include "Puma/CExprValue.h"
63629
 
#include "Puma/CStrLiteral.h"
63630
 
#include "Puma/CTypeInfo.h"
63631
 
#include "Puma/Printable.h"
63632
 
#include "Puma/CTokens.h"
63633
 
#include "Puma/Token.h"
63634
 
 
63635
 
#include <iostream>
63636
 
#include <string.h>
63637
 
using namespace std;
63638
 
 
63639
 
namespace Puma {
63640
 
 
63641
 
 
63642
 
class ErrorStream;
63643
 
class CObjectInfo;
63644
 
class CStructure;
63645
 
 
63646
 
/*****************************************************************************/
63647
 
/*                                                                           */
63648
 
/*                    S y n t a x  t r e e  n o d e s                        */
63649
 
/*                                                                           */
63650
 
/*****************************************************************************/
63651
 
 
63652
 
 
63653
 
#line 63654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63654
 
} // closed Puma
63655
 
class WinIfExists;
63656
 
class WinImportHandler;
63657
 
class WinMacros;
63658
 
class CMatchSyntax;
63659
 
class ExtGnu;
63660
 
class ExtAC;
63661
 
class ExtACBuilderCoupling;
63662
 
class ExtACSyntaxCoupling;
63663
 
class ExtACTree;
63664
 
class ExtACKeywords;
63665
 
class WinAsm;
63666
 
class WinDeclSpecs;
63667
 
class WinMemberExplSpec;
63668
 
class WinTypeKeywords;
63669
 
class PragmaOnceUnitState;
63670
 
class PragmaOnce;
63671
 
class CCExprResolve;
63672
 
class CExprResolve;
63673
 
namespace Puma {
63674
 
 
63675
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63676
 
class CTree {
63677
 
#line 63678 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63678
 
  friend class ::WinIfExists;
63679
 
  friend class ::WinImportHandler;
63680
 
  friend class ::WinMacros;
63681
 
  friend class ::CMatchSyntax;
63682
 
  friend class ::ExtGnu;
63683
 
  friend class ::ExtAC;
63684
 
  friend class ::ExtACBuilderCoupling;
63685
 
  friend class ::ExtACSyntaxCoupling;
63686
 
  friend class ::ExtACTree;
63687
 
  friend class ::ExtACKeywords;
63688
 
  friend class ::WinAsm;
63689
 
  friend class ::WinDeclSpecs;
63690
 
  friend class ::WinMemberExplSpec;
63691
 
  friend class ::WinTypeKeywords;
63692
 
  friend class ::PragmaOnceUnitState;
63693
 
  friend class ::PragmaOnce;
63694
 
  friend class ::CCExprResolve;
63695
 
  friend class ::CExprResolve;
63696
 
 
63697
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63698
 
 
63699
 
public:
63700
 
  /*DEBUG*/static int alloc;
63701
 
  /*DEBUG*/static int release;
63702
 
 
63703
 
protected:
63704
 
  CTree *Son (CTree * const *, int, int) const;
63705
 
  int Sons (CTree * const *, int) const;
63706
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
63707
 
  
63708
 
protected:
63709
 
  CTree () { /*DEBUG*/alloc++; }
63710
 
 
63711
 
public:
63712
 
  virtual ~CTree () { /*DEBUG*/release++; }
63713
 
  virtual int Sons () const = 0;
63714
 
  virtual CTree *Son (int n) const { return (CTree*)0; }
63715
 
  virtual const char *NodeName () const = 0;
63716
 
  virtual Token *token () const;
63717
 
  virtual Token *end_token () const;
63718
 
  virtual CT_Token *token_node () const;
63719
 
  virtual CT_Token *end_token_node () const;
63720
 
  virtual void ReplaceSon (CTree *, CTree *) {}
63721
 
 
63722
 
public: // semantic information
63723
 
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
63724
 
  virtual CExprValue *Value () const { return (CExprValue*)0; }
63725
 
  
63726
 
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
63727
 
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
63728
 
  
63729
 
public: // node classification function
63730
 
  virtual CT_SimpleName *IsSimpleName () { return 0; }
63731
 
  virtual CT_Declarator *IsDeclarator () { return 0; }
63732
 
   private:
63733
 
  typedef CTree CCExprResolveCTree;
63734
 
 
63735
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
63736
 
 public :
63737
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
63738
 
  typedef CTree CExprResolveCTree;
63739
 
 
63740
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
63741
 
 public :
63742
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
63743
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63744
 
};
63745
 
 
63746
 
 
63747
 
#line 63748 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63748
 
} // closed Puma
63749
 
class WinIfExists;
63750
 
class WinImportHandler;
63751
 
class WinMacros;
63752
 
class CMatchSyntax;
63753
 
class ExtGnu;
63754
 
class ExtAC;
63755
 
class ExtACBuilderCoupling;
63756
 
class ExtACSyntaxCoupling;
63757
 
class ExtACTree;
63758
 
class ExtACKeywords;
63759
 
class WinAsm;
63760
 
class WinDeclSpecs;
63761
 
class WinMemberExplSpec;
63762
 
class WinTypeKeywords;
63763
 
class PragmaOnceUnitState;
63764
 
class PragmaOnce;
63765
 
class CCExprResolve;
63766
 
class CExprResolve;
63767
 
namespace Puma {
63768
 
 
63769
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63770
 
class CT_Error : public CTree {
63771
 
#line 63772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63772
 
  friend class ::WinIfExists;
63773
 
  friend class ::WinImportHandler;
63774
 
  friend class ::WinMacros;
63775
 
  friend class ::CMatchSyntax;
63776
 
  friend class ::ExtGnu;
63777
 
  friend class ::ExtAC;
63778
 
  friend class ::ExtACBuilderCoupling;
63779
 
  friend class ::ExtACSyntaxCoupling;
63780
 
  friend class ::ExtACTree;
63781
 
  friend class ::ExtACKeywords;
63782
 
  friend class ::WinAsm;
63783
 
  friend class ::WinDeclSpecs;
63784
 
  friend class ::WinMemberExplSpec;
63785
 
  friend class ::WinTypeKeywords;
63786
 
  friend class ::PragmaOnceUnitState;
63787
 
  friend class ::PragmaOnce;
63788
 
  friend class ::CCExprResolve;
63789
 
  friend class ::CExprResolve;
63790
 
 
63791
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63792
 
 
63793
 
public:
63794
 
  static const char *NodeId ();
63795
 
  const char *NodeName () const { return NodeId (); }
63796
 
  int Sons () const { return 0; }
63797
 
};
63798
 
 
63799
 
 
63800
 
#line 63801 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63801
 
} // closed Puma
63802
 
class WinIfExists;
63803
 
class WinImportHandler;
63804
 
class WinMacros;
63805
 
class CMatchSyntax;
63806
 
class ExtGnu;
63807
 
class ExtAC;
63808
 
class ExtACBuilderCoupling;
63809
 
class ExtACSyntaxCoupling;
63810
 
class ExtACTree;
63811
 
class ExtACKeywords;
63812
 
class WinAsm;
63813
 
class WinDeclSpecs;
63814
 
class WinMemberExplSpec;
63815
 
class WinTypeKeywords;
63816
 
class PragmaOnceUnitState;
63817
 
class PragmaOnce;
63818
 
class CCExprResolve;
63819
 
class CExprResolve;
63820
 
namespace Puma {
63821
 
 
63822
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63823
 
class CT_Token : public CTree {
63824
 
#line 63825 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63825
 
  friend class ::WinIfExists;
63826
 
  friend class ::WinImportHandler;
63827
 
  friend class ::WinMacros;
63828
 
  friend class ::CMatchSyntax;
63829
 
  friend class ::ExtGnu;
63830
 
  friend class ::ExtAC;
63831
 
  friend class ::ExtACBuilderCoupling;
63832
 
  friend class ::ExtACSyntaxCoupling;
63833
 
  friend class ::ExtACTree;
63834
 
  friend class ::ExtACKeywords;
63835
 
  friend class ::WinAsm;
63836
 
  friend class ::WinDeclSpecs;
63837
 
  friend class ::WinMemberExplSpec;
63838
 
  friend class ::WinTypeKeywords;
63839
 
  friend class ::PragmaOnceUnitState;
63840
 
  friend class ::PragmaOnce;
63841
 
  friend class ::CCExprResolve;
63842
 
  friend class ::CExprResolve;
63843
 
 
63844
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63845
 
 
63846
 
  Token *_token;
63847
 
  unsigned long int _number;
63848
 
  
63849
 
public:
63850
 
  CT_Token (Token *t, unsigned long int n = 0) : 
63851
 
    _token (t), _number (n) {}
63852
 
  static const char *NodeId ();
63853
 
  const char *NodeName () const { return NodeId (); }
63854
 
  int Sons () const { return 0; }
63855
 
  Token *token () const { return _token; }
63856
 
  Token *end_token () const { return _token; }
63857
 
  CT_Token *token_node () const { return (CT_Token*)this; }
63858
 
  CT_Token *end_token_node () const { return (CT_Token*)this; }
63859
 
  void Number (unsigned long int n) { _number = n; }
63860
 
  unsigned long int Number () const { return _number; }
63861
 
  // special new / delete with reusing memory
63862
 
  void *operator new (size_t);
63863
 
  void  operator delete (void *);
63864
 
};
63865
 
 
63866
 
/*****************************************************************************/
63867
 
/*                                                                           */
63868
 
/*                              List nodes                                   */
63869
 
/*                                                                           */
63870
 
/*****************************************************************************/
63871
 
 
63872
 
 
63873
 
#line 63874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63874
 
} // closed Puma
63875
 
class WinIfExists;
63876
 
class WinImportHandler;
63877
 
class WinMacros;
63878
 
class CMatchSyntax;
63879
 
class ExtGnu;
63880
 
class ExtAC;
63881
 
class ExtACBuilderCoupling;
63882
 
class ExtACSyntaxCoupling;
63883
 
class ExtACTree;
63884
 
class ExtACKeywords;
63885
 
class WinAsm;
63886
 
class WinDeclSpecs;
63887
 
class WinMemberExplSpec;
63888
 
class WinTypeKeywords;
63889
 
class PragmaOnceUnitState;
63890
 
class PragmaOnce;
63891
 
class CCExprResolve;
63892
 
class CExprResolve;
63893
 
namespace Puma {
63894
 
 
63895
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63896
 
class CT_List : public CTree {
63897
 
#line 63898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63898
 
  friend class ::WinIfExists;
63899
 
  friend class ::WinImportHandler;
63900
 
  friend class ::WinMacros;
63901
 
  friend class ::CMatchSyntax;
63902
 
  friend class ::ExtGnu;
63903
 
  friend class ::ExtAC;
63904
 
  friend class ::ExtACBuilderCoupling;
63905
 
  friend class ::ExtACSyntaxCoupling;
63906
 
  friend class ::ExtACTree;
63907
 
  friend class ::ExtACKeywords;
63908
 
  friend class ::WinAsm;
63909
 
  friend class ::WinDeclSpecs;
63910
 
  friend class ::WinMemberExplSpec;
63911
 
  friend class ::WinTypeKeywords;
63912
 
  friend class ::PragmaOnceUnitState;
63913
 
  friend class ::PragmaOnce;
63914
 
  friend class ::CCExprResolve;
63915
 
  friend class ::CExprResolve;
63916
 
 
63917
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63918
 
 
63919
 
  Array<CTree*> _sons;
63920
 
  int _properties;
63921
 
 
63922
 
protected:
63923
 
  CT_List(int size = 5, int incr = 5, int props = 0) : 
63924
 
    _sons (size, incr), _properties (props) {}
63925
 
 
63926
 
public:
63927
 
  enum {
63928
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
63929
 
    CLOSE = 2,
63930
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
63931
 
    SEPARATORS = 4,   // the list has separators like ','
63932
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
63933
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
63934
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
63935
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
63936
 
  };
63937
 
 
63938
 
  int Entries () const;
63939
 
  CTree *Entry (int no) const;
63940
 
  int Sons () const { return _sons.length (); }
63941
 
  CTree *Son (int n) const { return _sons.lookup (n); }
63942
 
  int GetProperties () const { return _properties; }
63943
 
  void AddProperties (int p) { _properties |= p; }
63944
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
63945
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
63946
 
  void InsertSon (CTree *, CTree *);  // before given son
63947
 
  void ReplaceSon (CTree *, CTree *);
63948
 
  void RemoveSon (CTree *);
63949
 
  void InsertSon (int idx, CTree *s)
63950
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
63951
 
  void ReplaceSon (int idx, CTree *s) 
63952
 
   { if (idx < Sons ()) _sons[idx] = s; }
63953
 
  void RemoveSon (int idx) 
63954
 
   { if (idx < Sons ()) _sons.remove (idx); }
63955
 
};
63956
 
 
63957
 
 
63958
 
#line 63959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63959
 
} // closed Puma
63960
 
class WinIfExists;
63961
 
class WinImportHandler;
63962
 
class WinMacros;
63963
 
class CMatchSyntax;
63964
 
class ExtGnu;
63965
 
class ExtAC;
63966
 
class ExtACBuilderCoupling;
63967
 
class ExtACSyntaxCoupling;
63968
 
class ExtACTree;
63969
 
class ExtACKeywords;
63970
 
class WinAsm;
63971
 
class WinDeclSpecs;
63972
 
class WinMemberExplSpec;
63973
 
class WinTypeKeywords;
63974
 
class PragmaOnceUnitState;
63975
 
class PragmaOnce;
63976
 
class CCExprResolve;
63977
 
class CExprResolve;
63978
 
namespace Puma {
63979
 
 
63980
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63981
 
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
63982
 
#line 63983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
63983
 
  friend class ::WinIfExists;
63984
 
  friend class ::WinImportHandler;
63985
 
  friend class ::WinMacros;
63986
 
  friend class ::CMatchSyntax;
63987
 
  friend class ::ExtGnu;
63988
 
  friend class ::ExtAC;
63989
 
  friend class ::ExtACBuilderCoupling;
63990
 
  friend class ::ExtACSyntaxCoupling;
63991
 
  friend class ::ExtACTree;
63992
 
  friend class ::ExtACKeywords;
63993
 
  friend class ::WinAsm;
63994
 
  friend class ::WinDeclSpecs;
63995
 
  friend class ::WinMemberExplSpec;
63996
 
  friend class ::WinTypeKeywords;
63997
 
  friend class ::PragmaOnceUnitState;
63998
 
  friend class ::PragmaOnce;
63999
 
  friend class ::CCExprResolve;
64000
 
  friend class ::CExprResolve;
64001
 
 
64002
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64003
 
 
64004
 
public:
64005
 
  CT_ExprList () { AddProperties (SEPARATORS); }
64006
 
  static const char *NodeId ();
64007
 
  const char *NodeName () const { return NodeId (); }
64008
 
 
64009
 
  CTypeInfo *Type () const { return type; }
64010
 
  CExprValue *Value () const { return value; }
64011
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
64012
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
64013
 
};
64014
 
 
64015
 
 
64016
 
#line 64017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64017
 
} // closed Puma
64018
 
class WinIfExists;
64019
 
class WinImportHandler;
64020
 
class WinMacros;
64021
 
class CMatchSyntax;
64022
 
class ExtGnu;
64023
 
class ExtAC;
64024
 
class ExtACBuilderCoupling;
64025
 
class ExtACSyntaxCoupling;
64026
 
class ExtACTree;
64027
 
class ExtACKeywords;
64028
 
class WinAsm;
64029
 
class WinDeclSpecs;
64030
 
class WinMemberExplSpec;
64031
 
class WinTypeKeywords;
64032
 
class PragmaOnceUnitState;
64033
 
class PragmaOnce;
64034
 
class CCExprResolve;
64035
 
class CExprResolve;
64036
 
namespace Puma {
64037
 
 
64038
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64039
 
class CT_DeclaratorList : public CT_List {
64040
 
#line 64041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64041
 
  friend class ::WinIfExists;
64042
 
  friend class ::WinImportHandler;
64043
 
  friend class ::WinMacros;
64044
 
  friend class ::CMatchSyntax;
64045
 
  friend class ::ExtGnu;
64046
 
  friend class ::ExtAC;
64047
 
  friend class ::ExtACBuilderCoupling;
64048
 
  friend class ::ExtACSyntaxCoupling;
64049
 
  friend class ::ExtACTree;
64050
 
  friend class ::ExtACKeywords;
64051
 
  friend class ::WinAsm;
64052
 
  friend class ::WinDeclSpecs;
64053
 
  friend class ::WinMemberExplSpec;
64054
 
  friend class ::WinTypeKeywords;
64055
 
  friend class ::PragmaOnceUnitState;
64056
 
  friend class ::PragmaOnce;
64057
 
  friend class ::CCExprResolve;
64058
 
  friend class ::CExprResolve;
64059
 
 
64060
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64061
 
 
64062
 
public:
64063
 
  static const char *NodeId ();
64064
 
  const char *NodeName () const { return NodeId (); }
64065
 
};
64066
 
 
64067
 
 
64068
 
#line 64069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64069
 
} // closed Puma
64070
 
class WinIfExists;
64071
 
class WinImportHandler;
64072
 
class WinMacros;
64073
 
class CMatchSyntax;
64074
 
class ExtGnu;
64075
 
class ExtAC;
64076
 
class ExtACBuilderCoupling;
64077
 
class ExtACSyntaxCoupling;
64078
 
class ExtACTree;
64079
 
class ExtACKeywords;
64080
 
class WinAsm;
64081
 
class WinDeclSpecs;
64082
 
class WinMemberExplSpec;
64083
 
class WinTypeKeywords;
64084
 
class PragmaOnceUnitState;
64085
 
class PragmaOnce;
64086
 
class CCExprResolve;
64087
 
class CExprResolve;
64088
 
namespace Puma {
64089
 
 
64090
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64091
 
class CT_EnumeratorList : public CT_List {
64092
 
#line 64093 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64093
 
  friend class ::WinIfExists;
64094
 
  friend class ::WinImportHandler;
64095
 
  friend class ::WinMacros;
64096
 
  friend class ::CMatchSyntax;
64097
 
  friend class ::ExtGnu;
64098
 
  friend class ::ExtAC;
64099
 
  friend class ::ExtACBuilderCoupling;
64100
 
  friend class ::ExtACSyntaxCoupling;
64101
 
  friend class ::ExtACTree;
64102
 
  friend class ::ExtACKeywords;
64103
 
  friend class ::WinAsm;
64104
 
  friend class ::WinDeclSpecs;
64105
 
  friend class ::WinMemberExplSpec;
64106
 
  friend class ::WinTypeKeywords;
64107
 
  friend class ::PragmaOnceUnitState;
64108
 
  friend class ::PragmaOnce;
64109
 
  friend class ::CCExprResolve;
64110
 
  friend class ::CExprResolve;
64111
 
 
64112
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64113
 
 
64114
 
public:
64115
 
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
64116
 
  static const char *NodeId ();
64117
 
  const char *NodeName () const { return NodeId (); }
64118
 
};
64119
 
   
64120
 
 
64121
 
#line 64122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64122
 
} // closed Puma
64123
 
class WinIfExists;
64124
 
class WinImportHandler;
64125
 
class WinMacros;
64126
 
class CMatchSyntax;
64127
 
class ExtGnu;
64128
 
class ExtAC;
64129
 
class ExtACBuilderCoupling;
64130
 
class ExtACSyntaxCoupling;
64131
 
class ExtACTree;
64132
 
class ExtACKeywords;
64133
 
class WinAsm;
64134
 
class WinDeclSpecs;
64135
 
class WinMemberExplSpec;
64136
 
class WinTypeKeywords;
64137
 
class PragmaOnceUnitState;
64138
 
class PragmaOnce;
64139
 
class CCExprResolve;
64140
 
class CExprResolve;
64141
 
namespace Puma {
64142
 
 
64143
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64144
 
class CT_DeclList : public CT_List {
64145
 
#line 64146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64146
 
  friend class ::WinIfExists;
64147
 
  friend class ::WinImportHandler;
64148
 
  friend class ::WinMacros;
64149
 
  friend class ::CMatchSyntax;
64150
 
  friend class ::ExtGnu;
64151
 
  friend class ::ExtAC;
64152
 
  friend class ::ExtACBuilderCoupling;
64153
 
  friend class ::ExtACSyntaxCoupling;
64154
 
  friend class ::ExtACTree;
64155
 
  friend class ::ExtACKeywords;
64156
 
  friend class ::WinAsm;
64157
 
  friend class ::WinDeclSpecs;
64158
 
  friend class ::WinMemberExplSpec;
64159
 
  friend class ::WinTypeKeywords;
64160
 
  friend class ::PragmaOnceUnitState;
64161
 
  friend class ::PragmaOnce;
64162
 
  friend class ::CCExprResolve;
64163
 
  friend class ::CExprResolve;
64164
 
 
64165
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64166
 
 
64167
 
public:
64168
 
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
64169
 
  static const char *NodeId ();
64170
 
  const char *NodeName () const { return NodeId (); }
64171
 
  void Linkage (CT_LinkageSpec *l);
64172
 
};
64173
 
 
64174
 
 
64175
 
#line 64176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64176
 
} // closed Puma
64177
 
class WinIfExists;
64178
 
class WinImportHandler;
64179
 
class WinMacros;
64180
 
class CMatchSyntax;
64181
 
class ExtGnu;
64182
 
class ExtAC;
64183
 
class ExtACBuilderCoupling;
64184
 
class ExtACSyntaxCoupling;
64185
 
class ExtACTree;
64186
 
class ExtACKeywords;
64187
 
class WinAsm;
64188
 
class WinDeclSpecs;
64189
 
class WinMemberExplSpec;
64190
 
class WinTypeKeywords;
64191
 
class PragmaOnceUnitState;
64192
 
class PragmaOnce;
64193
 
class CCExprResolve;
64194
 
class CExprResolve;
64195
 
namespace Puma {
64196
 
 
64197
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64198
 
class CT_DeclSpecSeq : public CT_List {
64199
 
#line 64200 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64200
 
  friend class ::WinIfExists;
64201
 
  friend class ::WinImportHandler;
64202
 
  friend class ::WinMacros;
64203
 
  friend class ::CMatchSyntax;
64204
 
  friend class ::ExtGnu;
64205
 
  friend class ::ExtAC;
64206
 
  friend class ::ExtACBuilderCoupling;
64207
 
  friend class ::ExtACSyntaxCoupling;
64208
 
  friend class ::ExtACTree;
64209
 
  friend class ::ExtACKeywords;
64210
 
  friend class ::WinAsm;
64211
 
  friend class ::WinDeclSpecs;
64212
 
  friend class ::WinMemberExplSpec;
64213
 
  friend class ::WinTypeKeywords;
64214
 
  friend class ::PragmaOnceUnitState;
64215
 
  friend class ::PragmaOnce;
64216
 
  friend class ::CCExprResolve;
64217
 
  friend class ::CExprResolve;
64218
 
 
64219
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64220
 
 
64221
 
public:
64222
 
  static const char *NodeId ();
64223
 
  const char *NodeName () const { return NodeId (); }
64224
 
};
64225
 
 
64226
 
 
64227
 
#line 64228 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64228
 
} // closed Puma
64229
 
class WinIfExists;
64230
 
class WinImportHandler;
64231
 
class WinMacros;
64232
 
class CMatchSyntax;
64233
 
class ExtGnu;
64234
 
class ExtAC;
64235
 
class ExtACBuilderCoupling;
64236
 
class ExtACSyntaxCoupling;
64237
 
class ExtACTree;
64238
 
class ExtACKeywords;
64239
 
class WinAsm;
64240
 
class WinDeclSpecs;
64241
 
class WinMemberExplSpec;
64242
 
class WinTypeKeywords;
64243
 
class PragmaOnceUnitState;
64244
 
class PragmaOnce;
64245
 
class CCExprResolve;
64246
 
class CExprResolve;
64247
 
namespace Puma {
64248
 
 
64249
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64250
 
class CT_CmpdStmt : public CT_List, public CSemScope {
64251
 
#line 64252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64252
 
  friend class ::WinIfExists;
64253
 
  friend class ::WinImportHandler;
64254
 
  friend class ::WinMacros;
64255
 
  friend class ::CMatchSyntax;
64256
 
  friend class ::ExtGnu;
64257
 
  friend class ::ExtAC;
64258
 
  friend class ::ExtACBuilderCoupling;
64259
 
  friend class ::ExtACSyntaxCoupling;
64260
 
  friend class ::ExtACTree;
64261
 
  friend class ::ExtACKeywords;
64262
 
  friend class ::WinAsm;
64263
 
  friend class ::WinDeclSpecs;
64264
 
  friend class ::WinMemberExplSpec;
64265
 
  friend class ::WinTypeKeywords;
64266
 
  friend class ::PragmaOnceUnitState;
64267
 
  friend class ::PragmaOnce;
64268
 
  friend class ::CCExprResolve;
64269
 
  friend class ::CExprResolve;
64270
 
 
64271
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64272
 
 
64273
 
public:
64274
 
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
64275
 
  static const char *NodeId ();
64276
 
  const char *NodeName () const { return NodeId (); }
64277
 
};
64278
 
 
64279
 
 
64280
 
#line 64281 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64281
 
} // closed Puma
64282
 
class WinIfExists;
64283
 
class WinImportHandler;
64284
 
class WinMacros;
64285
 
class CMatchSyntax;
64286
 
class ExtGnu;
64287
 
class ExtAC;
64288
 
class ExtACBuilderCoupling;
64289
 
class ExtACSyntaxCoupling;
64290
 
class ExtACTree;
64291
 
class ExtACKeywords;
64292
 
class WinAsm;
64293
 
class WinDeclSpecs;
64294
 
class WinMemberExplSpec;
64295
 
class WinTypeKeywords;
64296
 
class PragmaOnceUnitState;
64297
 
class PragmaOnce;
64298
 
class CCExprResolve;
64299
 
class CExprResolve;
64300
 
namespace Puma {
64301
 
 
64302
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64303
 
class CT_HandlerSeq : public CT_List {
64304
 
#line 64305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64305
 
  friend class ::WinIfExists;
64306
 
  friend class ::WinImportHandler;
64307
 
  friend class ::WinMacros;
64308
 
  friend class ::CMatchSyntax;
64309
 
  friend class ::ExtGnu;
64310
 
  friend class ::ExtAC;
64311
 
  friend class ::ExtACBuilderCoupling;
64312
 
  friend class ::ExtACSyntaxCoupling;
64313
 
  friend class ::ExtACTree;
64314
 
  friend class ::ExtACKeywords;
64315
 
  friend class ::WinAsm;
64316
 
  friend class ::WinDeclSpecs;
64317
 
  friend class ::WinMemberExplSpec;
64318
 
  friend class ::WinTypeKeywords;
64319
 
  friend class ::PragmaOnceUnitState;
64320
 
  friend class ::PragmaOnce;
64321
 
  friend class ::CCExprResolve;
64322
 
  friend class ::CExprResolve;
64323
 
 
64324
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64325
 
 
64326
 
public:
64327
 
  static const char *NodeId ();
64328
 
  const char *NodeName () const { return NodeId (); }
64329
 
};
64330
 
 
64331
 
 
64332
 
#line 64333 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64333
 
} // closed Puma
64334
 
class WinIfExists;
64335
 
class WinImportHandler;
64336
 
class WinMacros;
64337
 
class CMatchSyntax;
64338
 
class ExtGnu;
64339
 
class ExtAC;
64340
 
class ExtACBuilderCoupling;
64341
 
class ExtACSyntaxCoupling;
64342
 
class ExtACTree;
64343
 
class ExtACKeywords;
64344
 
class WinAsm;
64345
 
class WinDeclSpecs;
64346
 
class WinMemberExplSpec;
64347
 
class WinTypeKeywords;
64348
 
class PragmaOnceUnitState;
64349
 
class PragmaOnce;
64350
 
class CCExprResolve;
64351
 
class CExprResolve;
64352
 
namespace Puma {
64353
 
 
64354
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64355
 
class CT_TemplateParamList : public CT_List, public CSemScope {
64356
 
#line 64357 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64357
 
  friend class ::WinIfExists;
64358
 
  friend class ::WinImportHandler;
64359
 
  friend class ::WinMacros;
64360
 
  friend class ::CMatchSyntax;
64361
 
  friend class ::ExtGnu;
64362
 
  friend class ::ExtAC;
64363
 
  friend class ::ExtACBuilderCoupling;
64364
 
  friend class ::ExtACSyntaxCoupling;
64365
 
  friend class ::ExtACTree;
64366
 
  friend class ::ExtACKeywords;
64367
 
  friend class ::WinAsm;
64368
 
  friend class ::WinDeclSpecs;
64369
 
  friend class ::WinMemberExplSpec;
64370
 
  friend class ::WinTypeKeywords;
64371
 
  friend class ::PragmaOnceUnitState;
64372
 
  friend class ::PragmaOnce;
64373
 
  friend class ::CCExprResolve;
64374
 
  friend class ::CExprResolve;
64375
 
 
64376
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64377
 
 
64378
 
public:
64379
 
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
64380
 
  static const char *NodeId ();
64381
 
  const char *NodeName () const { return NodeId (); }
64382
 
};
64383
 
 
64384
 
 
64385
 
#line 64386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64386
 
} // closed Puma
64387
 
class WinIfExists;
64388
 
class WinImportHandler;
64389
 
class WinMacros;
64390
 
class CMatchSyntax;
64391
 
class ExtGnu;
64392
 
class ExtAC;
64393
 
class ExtACBuilderCoupling;
64394
 
class ExtACSyntaxCoupling;
64395
 
class ExtACTree;
64396
 
class ExtACKeywords;
64397
 
class WinAsm;
64398
 
class WinDeclSpecs;
64399
 
class WinMemberExplSpec;
64400
 
class WinTypeKeywords;
64401
 
class PragmaOnceUnitState;
64402
 
class PragmaOnce;
64403
 
class CCExprResolve;
64404
 
class CExprResolve;
64405
 
namespace Puma {
64406
 
 
64407
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64408
 
class CT_TemplateArgList : public CT_List {
64409
 
#line 64410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64410
 
  friend class ::WinIfExists;
64411
 
  friend class ::WinImportHandler;
64412
 
  friend class ::WinMacros;
64413
 
  friend class ::CMatchSyntax;
64414
 
  friend class ::ExtGnu;
64415
 
  friend class ::ExtAC;
64416
 
  friend class ::ExtACBuilderCoupling;
64417
 
  friend class ::ExtACSyntaxCoupling;
64418
 
  friend class ::ExtACTree;
64419
 
  friend class ::ExtACKeywords;
64420
 
  friend class ::WinAsm;
64421
 
  friend class ::WinDeclSpecs;
64422
 
  friend class ::WinMemberExplSpec;
64423
 
  friend class ::WinTypeKeywords;
64424
 
  friend class ::PragmaOnceUnitState;
64425
 
  friend class ::PragmaOnce;
64426
 
  friend class ::CCExprResolve;
64427
 
  friend class ::CExprResolve;
64428
 
 
64429
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64430
 
 
64431
 
public:
64432
 
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
64433
 
  static const char *NodeId ();
64434
 
  const char *NodeName () const { return NodeId (); }
64435
 
};
64436
 
 
64437
 
/*****************************************************************************/
64438
 
/*                                                                           */
64439
 
/*                              Expressions                                  */
64440
 
/*                                                                           */
64441
 
/*****************************************************************************/
64442
 
 
64443
 
 
64444
 
#line 64445 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64445
 
} // closed Puma
64446
 
class WinIfExists;
64447
 
class WinImportHandler;
64448
 
class WinMacros;
64449
 
class CMatchSyntax;
64450
 
class ExtGnu;
64451
 
class ExtAC;
64452
 
class ExtACBuilderCoupling;
64453
 
class ExtACSyntaxCoupling;
64454
 
class ExtACTree;
64455
 
class ExtACKeywords;
64456
 
class WinAsm;
64457
 
class WinDeclSpecs;
64458
 
class WinMemberExplSpec;
64459
 
class WinTypeKeywords;
64460
 
class PragmaOnceUnitState;
64461
 
class PragmaOnce;
64462
 
class CCExprResolve;
64463
 
class CExprResolve;
64464
 
namespace Puma {
64465
 
 
64466
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64467
 
class CT_Expression : public CTree, public CSemValue {
64468
 
#line 64469 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64469
 
  friend class ::WinIfExists;
64470
 
  friend class ::WinImportHandler;
64471
 
  friend class ::WinMacros;
64472
 
  friend class ::CMatchSyntax;
64473
 
  friend class ::ExtGnu;
64474
 
  friend class ::ExtAC;
64475
 
  friend class ::ExtACBuilderCoupling;
64476
 
  friend class ::ExtACSyntaxCoupling;
64477
 
  friend class ::ExtACTree;
64478
 
  friend class ::ExtACKeywords;
64479
 
  friend class ::WinAsm;
64480
 
  friend class ::WinDeclSpecs;
64481
 
  friend class ::WinMemberExplSpec;
64482
 
  friend class ::WinTypeKeywords;
64483
 
  friend class ::PragmaOnceUnitState;
64484
 
  friend class ::PragmaOnce;
64485
 
  friend class ::CCExprResolve;
64486
 
  friend class ::CExprResolve;
64487
 
 
64488
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64489
 
 
64490
 
protected:
64491
 
  CT_Expression () {}
64492
 
 
64493
 
public:
64494
 
  static const char *NodeId ();
64495
 
  const char *NodeName () const { return NodeId (); }
64496
 
  CTypeInfo *Type () const { return type; }
64497
 
  CExprValue *Value () const { return value; }
64498
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
64499
 
   private:
64500
 
  typedef CT_Expression CCExprResolveExpr;
64501
 
 
64502
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
64503
 
 public :
64504
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
64505
 
  typedef CT_Expression CExprResolveExpr;
64506
 
 
64507
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
64508
 
 public :
64509
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
64510
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64511
 
};
64512
 
 
64513
 
 
64514
 
#line 64515 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64515
 
} // closed Puma
64516
 
class WinIfExists;
64517
 
class WinImportHandler;
64518
 
class WinMacros;
64519
 
class CMatchSyntax;
64520
 
class ExtGnu;
64521
 
class ExtAC;
64522
 
class ExtACBuilderCoupling;
64523
 
class ExtACSyntaxCoupling;
64524
 
class ExtACTree;
64525
 
class ExtACKeywords;
64526
 
class WinAsm;
64527
 
class WinDeclSpecs;
64528
 
class WinMemberExplSpec;
64529
 
class WinTypeKeywords;
64530
 
class PragmaOnceUnitState;
64531
 
class PragmaOnce;
64532
 
class CCExprResolve;
64533
 
class CExprResolve;
64534
 
namespace Puma {
64535
 
 
64536
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64537
 
class CT_String : public CT_List, public CSemValue {
64538
 
#line 64539 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64539
 
  friend class ::WinIfExists;
64540
 
  friend class ::WinImportHandler;
64541
 
  friend class ::WinMacros;
64542
 
  friend class ::CMatchSyntax;
64543
 
  friend class ::ExtGnu;
64544
 
  friend class ::ExtAC;
64545
 
  friend class ::ExtACBuilderCoupling;
64546
 
  friend class ::ExtACSyntaxCoupling;
64547
 
  friend class ::ExtACTree;
64548
 
  friend class ::ExtACKeywords;
64549
 
  friend class ::WinAsm;
64550
 
  friend class ::WinDeclSpecs;
64551
 
  friend class ::WinMemberExplSpec;
64552
 
  friend class ::WinTypeKeywords;
64553
 
  friend class ::PragmaOnceUnitState;
64554
 
  friend class ::PragmaOnce;
64555
 
  friend class ::CCExprResolve;
64556
 
  friend class ::CExprResolve;
64557
 
 
64558
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64559
 
 
64560
 
public:
64561
 
  CT_String (int size) : CT_List (size, 1) {}
64562
 
  static const char *NodeId ();
64563
 
  const char *NodeName () const { return NodeId (); }
64564
 
 
64565
 
  CTypeInfo *Type () const { return type; }
64566
 
  CExprValue *Value () const { return value; }
64567
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
64568
 
   private:
64569
 
  typedef CT_String CCExprResolveExpr;
64570
 
 
64571
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
64572
 
 public :
64573
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
64574
 
  typedef CT_String CExprResolveExpr;
64575
 
 
64576
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
64577
 
 public :
64578
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
64579
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64580
 
};
64581
 
 
64582
 
 
64583
 
#line 64584 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64584
 
} // closed Puma
64585
 
class WinIfExists;
64586
 
class WinImportHandler;
64587
 
class WinMacros;
64588
 
class CMatchSyntax;
64589
 
class ExtGnu;
64590
 
class ExtAC;
64591
 
class ExtACBuilderCoupling;
64592
 
class ExtACSyntaxCoupling;
64593
 
class ExtACTree;
64594
 
class ExtACKeywords;
64595
 
class WinAsm;
64596
 
class WinDeclSpecs;
64597
 
class WinMemberExplSpec;
64598
 
class WinTypeKeywords;
64599
 
class PragmaOnceUnitState;
64600
 
class PragmaOnce;
64601
 
class CCExprResolve;
64602
 
class CExprResolve;
64603
 
namespace Puma {
64604
 
 
64605
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64606
 
class CT_WideString : public CT_String {
64607
 
#line 64608 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64608
 
  friend class ::WinIfExists;
64609
 
  friend class ::WinImportHandler;
64610
 
  friend class ::WinMacros;
64611
 
  friend class ::CMatchSyntax;
64612
 
  friend class ::ExtGnu;
64613
 
  friend class ::ExtAC;
64614
 
  friend class ::ExtACBuilderCoupling;
64615
 
  friend class ::ExtACSyntaxCoupling;
64616
 
  friend class ::ExtACTree;
64617
 
  friend class ::ExtACKeywords;
64618
 
  friend class ::WinAsm;
64619
 
  friend class ::WinDeclSpecs;
64620
 
  friend class ::WinMemberExplSpec;
64621
 
  friend class ::WinTypeKeywords;
64622
 
  friend class ::PragmaOnceUnitState;
64623
 
  friend class ::PragmaOnce;
64624
 
  friend class ::CCExprResolve;
64625
 
  friend class ::CExprResolve;
64626
 
 
64627
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64628
 
 
64629
 
public:
64630
 
  CT_WideString (int size) : CT_String (size) {}
64631
 
  static const char *NodeId ();
64632
 
  const char *NodeName () const { return NodeId (); }
64633
 
   private:
64634
 
  typedef CT_WideString CCExprResolveExpr;
64635
 
 
64636
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
64637
 
 public :
64638
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
64639
 
  typedef CT_WideString CExprResolveExpr;
64640
 
 
64641
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
64642
 
 public :
64643
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
64644
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64645
 
};
64646
 
 
64647
 
 
64648
 
#line 64649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64649
 
} // closed Puma
64650
 
class WinIfExists;
64651
 
class WinImportHandler;
64652
 
class WinMacros;
64653
 
class CMatchSyntax;
64654
 
class ExtGnu;
64655
 
class ExtAC;
64656
 
class ExtACBuilderCoupling;
64657
 
class ExtACSyntaxCoupling;
64658
 
class ExtACTree;
64659
 
class ExtACKeywords;
64660
 
class WinAsm;
64661
 
class WinDeclSpecs;
64662
 
class WinMemberExplSpec;
64663
 
class WinTypeKeywords;
64664
 
class PragmaOnceUnitState;
64665
 
class PragmaOnce;
64666
 
class CCExprResolve;
64667
 
class CExprResolve;
64668
 
namespace Puma {
64669
 
 
64670
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64671
 
class CT_Integer : public CT_Expression {
64672
 
#line 64673 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64673
 
  friend class ::WinIfExists;
64674
 
  friend class ::WinImportHandler;
64675
 
  friend class ::WinMacros;
64676
 
  friend class ::CMatchSyntax;
64677
 
  friend class ::ExtGnu;
64678
 
  friend class ::ExtAC;
64679
 
  friend class ::ExtACBuilderCoupling;
64680
 
  friend class ::ExtACSyntaxCoupling;
64681
 
  friend class ::ExtACTree;
64682
 
  friend class ::ExtACKeywords;
64683
 
  friend class ::WinAsm;
64684
 
  friend class ::WinDeclSpecs;
64685
 
  friend class ::WinMemberExplSpec;
64686
 
  friend class ::WinTypeKeywords;
64687
 
  friend class ::PragmaOnceUnitState;
64688
 
  friend class ::PragmaOnce;
64689
 
  friend class ::CCExprResolve;
64690
 
  friend class ::CExprResolve;
64691
 
 
64692
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64693
 
 
64694
 
  CTree *_value;  // CT_Token
64695
 
 
64696
 
public:
64697
 
  CT_Integer (CTree *t) : _value (t) {}
64698
 
  static const char *NodeId ();
64699
 
  const char *NodeName () const { return NodeId (); }
64700
 
  int Sons () const { return _value ? 1 : 0; }
64701
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
64702
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
64703
 
   { if (old_son == _value) _value = new_son; }
64704
 
   private:
64705
 
  typedef CT_Integer CCExprResolveExpr;
64706
 
 
64707
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
64708
 
 public :
64709
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
64710
 
  typedef CT_Integer CExprResolveExpr;
64711
 
 
64712
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
64713
 
 public :
64714
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
64715
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64716
 
};
64717
 
 
64718
 
 
64719
 
#line 64720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64720
 
} // closed Puma
64721
 
class WinIfExists;
64722
 
class WinImportHandler;
64723
 
class WinMacros;
64724
 
class CMatchSyntax;
64725
 
class ExtGnu;
64726
 
class ExtAC;
64727
 
class ExtACBuilderCoupling;
64728
 
class ExtACSyntaxCoupling;
64729
 
class ExtACTree;
64730
 
class ExtACKeywords;
64731
 
class WinAsm;
64732
 
class WinDeclSpecs;
64733
 
class WinMemberExplSpec;
64734
 
class WinTypeKeywords;
64735
 
class PragmaOnceUnitState;
64736
 
class PragmaOnce;
64737
 
class CCExprResolve;
64738
 
class CExprResolve;
64739
 
namespace Puma {
64740
 
 
64741
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64742
 
class CT_Character : public CT_Expression {
64743
 
#line 64744 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64744
 
  friend class ::WinIfExists;
64745
 
  friend class ::WinImportHandler;
64746
 
  friend class ::WinMacros;
64747
 
  friend class ::CMatchSyntax;
64748
 
  friend class ::ExtGnu;
64749
 
  friend class ::ExtAC;
64750
 
  friend class ::ExtACBuilderCoupling;
64751
 
  friend class ::ExtACSyntaxCoupling;
64752
 
  friend class ::ExtACTree;
64753
 
  friend class ::ExtACKeywords;
64754
 
  friend class ::WinAsm;
64755
 
  friend class ::WinDeclSpecs;
64756
 
  friend class ::WinMemberExplSpec;
64757
 
  friend class ::WinTypeKeywords;
64758
 
  friend class ::PragmaOnceUnitState;
64759
 
  friend class ::PragmaOnce;
64760
 
  friend class ::CCExprResolve;
64761
 
  friend class ::CExprResolve;
64762
 
 
64763
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64764
 
 
64765
 
  CTree *_value;  // CT_Token
64766
 
 
64767
 
public:
64768
 
  CT_Character (CTree *t) : _value (t) {}
64769
 
  static const char *NodeId ();
64770
 
  const char *NodeName () const { return NodeId (); }
64771
 
  int Sons () const { return 1; }
64772
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
64773
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
64774
 
   { if (old_son == _value) _value = new_son; }
64775
 
   private:
64776
 
  typedef CT_Character CCExprResolveExpr;
64777
 
 
64778
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
64779
 
 public :
64780
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
64781
 
  typedef CT_Character CExprResolveExpr;
64782
 
 
64783
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
64784
 
 public :
64785
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
64786
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64787
 
};
64788
 
 
64789
 
 
64790
 
#line 64791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64791
 
} // closed Puma
64792
 
class WinIfExists;
64793
 
class WinImportHandler;
64794
 
class WinMacros;
64795
 
class CMatchSyntax;
64796
 
class ExtGnu;
64797
 
class ExtAC;
64798
 
class ExtACBuilderCoupling;
64799
 
class ExtACSyntaxCoupling;
64800
 
class ExtACTree;
64801
 
class ExtACKeywords;
64802
 
class WinAsm;
64803
 
class WinDeclSpecs;
64804
 
class WinMemberExplSpec;
64805
 
class WinTypeKeywords;
64806
 
class PragmaOnceUnitState;
64807
 
class PragmaOnce;
64808
 
class CCExprResolve;
64809
 
class CExprResolve;
64810
 
namespace Puma {
64811
 
 
64812
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64813
 
class CT_WideCharacter : public CT_Character {
64814
 
#line 64815 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64815
 
  friend class ::WinIfExists;
64816
 
  friend class ::WinImportHandler;
64817
 
  friend class ::WinMacros;
64818
 
  friend class ::CMatchSyntax;
64819
 
  friend class ::ExtGnu;
64820
 
  friend class ::ExtAC;
64821
 
  friend class ::ExtACBuilderCoupling;
64822
 
  friend class ::ExtACSyntaxCoupling;
64823
 
  friend class ::ExtACTree;
64824
 
  friend class ::ExtACKeywords;
64825
 
  friend class ::WinAsm;
64826
 
  friend class ::WinDeclSpecs;
64827
 
  friend class ::WinMemberExplSpec;
64828
 
  friend class ::WinTypeKeywords;
64829
 
  friend class ::PragmaOnceUnitState;
64830
 
  friend class ::PragmaOnce;
64831
 
  friend class ::CCExprResolve;
64832
 
  friend class ::CExprResolve;
64833
 
 
64834
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64835
 
 
64836
 
  CTree *_value;  // CT_Token
64837
 
 
64838
 
public:
64839
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
64840
 
  static const char *NodeId ();
64841
 
  const char *NodeName () const { return NodeId (); }
64842
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
64843
 
   { if (old_son == _value) _value = new_son; }
64844
 
   private:
64845
 
  typedef CT_WideCharacter CCExprResolveExpr;
64846
 
 
64847
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
64848
 
 public :
64849
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
64850
 
  typedef CT_WideCharacter CExprResolveExpr;
64851
 
 
64852
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
64853
 
 public :
64854
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
64855
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64856
 
};
64857
 
 
64858
 
 
64859
 
#line 64860 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64860
 
} // closed Puma
64861
 
class WinIfExists;
64862
 
class WinImportHandler;
64863
 
class WinMacros;
64864
 
class CMatchSyntax;
64865
 
class ExtGnu;
64866
 
class ExtAC;
64867
 
class ExtACBuilderCoupling;
64868
 
class ExtACSyntaxCoupling;
64869
 
class ExtACTree;
64870
 
class ExtACKeywords;
64871
 
class WinAsm;
64872
 
class WinDeclSpecs;
64873
 
class WinMemberExplSpec;
64874
 
class WinTypeKeywords;
64875
 
class PragmaOnceUnitState;
64876
 
class PragmaOnce;
64877
 
class CCExprResolve;
64878
 
class CExprResolve;
64879
 
namespace Puma {
64880
 
 
64881
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64882
 
class CT_Float : public CT_Expression {
64883
 
#line 64884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64884
 
  friend class ::WinIfExists;
64885
 
  friend class ::WinImportHandler;
64886
 
  friend class ::WinMacros;
64887
 
  friend class ::CMatchSyntax;
64888
 
  friend class ::ExtGnu;
64889
 
  friend class ::ExtAC;
64890
 
  friend class ::ExtACBuilderCoupling;
64891
 
  friend class ::ExtACSyntaxCoupling;
64892
 
  friend class ::ExtACTree;
64893
 
  friend class ::ExtACKeywords;
64894
 
  friend class ::WinAsm;
64895
 
  friend class ::WinDeclSpecs;
64896
 
  friend class ::WinMemberExplSpec;
64897
 
  friend class ::WinTypeKeywords;
64898
 
  friend class ::PragmaOnceUnitState;
64899
 
  friend class ::PragmaOnce;
64900
 
  friend class ::CCExprResolve;
64901
 
  friend class ::CExprResolve;
64902
 
 
64903
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64904
 
 
64905
 
  CTree *_value;  // CT_Token
64906
 
 
64907
 
public:
64908
 
  CT_Float (CTree *t) : _value (t) {}
64909
 
  static const char *NodeId ();
64910
 
  const char *NodeName () const { return NodeId (); }
64911
 
  int Sons () const { return 1; }
64912
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
64913
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
64914
 
   { if (old_son == _value) _value = new_son; }
64915
 
   private:
64916
 
  typedef CT_Float CCExprResolveExpr;
64917
 
 
64918
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
64919
 
 public :
64920
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
64921
 
  typedef CT_Float CExprResolveExpr;
64922
 
 
64923
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
64924
 
 public :
64925
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
64926
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64927
 
};
64928
 
 
64929
 
 
64930
 
#line 64931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64931
 
} // closed Puma
64932
 
class WinIfExists;
64933
 
class WinImportHandler;
64934
 
class WinMacros;
64935
 
class CMatchSyntax;
64936
 
class ExtGnu;
64937
 
class ExtAC;
64938
 
class ExtACBuilderCoupling;
64939
 
class ExtACSyntaxCoupling;
64940
 
class ExtACTree;
64941
 
class ExtACKeywords;
64942
 
class WinAsm;
64943
 
class WinDeclSpecs;
64944
 
class WinMemberExplSpec;
64945
 
class WinTypeKeywords;
64946
 
class PragmaOnceUnitState;
64947
 
class PragmaOnce;
64948
 
class CCExprResolve;
64949
 
class CExprResolve;
64950
 
namespace Puma {
64951
 
 
64952
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64953
 
class CT_Bool : public CT_Expression {
64954
 
#line 64955 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
64955
 
  friend class ::WinIfExists;
64956
 
  friend class ::WinImportHandler;
64957
 
  friend class ::WinMacros;
64958
 
  friend class ::CMatchSyntax;
64959
 
  friend class ::ExtGnu;
64960
 
  friend class ::ExtAC;
64961
 
  friend class ::ExtACBuilderCoupling;
64962
 
  friend class ::ExtACSyntaxCoupling;
64963
 
  friend class ::ExtACTree;
64964
 
  friend class ::ExtACKeywords;
64965
 
  friend class ::WinAsm;
64966
 
  friend class ::WinDeclSpecs;
64967
 
  friend class ::WinMemberExplSpec;
64968
 
  friend class ::WinTypeKeywords;
64969
 
  friend class ::PragmaOnceUnitState;
64970
 
  friend class ::PragmaOnce;
64971
 
  friend class ::CCExprResolve;
64972
 
  friend class ::CExprResolve;
64973
 
 
64974
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64975
 
 
64976
 
  CTree *_value;  // CT_Token
64977
 
 
64978
 
public:
64979
 
  CT_Bool (CTree *t) : _value (t) {}
64980
 
  static const char *NodeId ();
64981
 
  const char *NodeName () const { return NodeId (); }
64982
 
  int Sons () const { return 1; }
64983
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
64984
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
64985
 
   { if (old_son == _value) _value = new_son; }
64986
 
   private:
64987
 
  typedef CT_Bool CCExprResolveExpr;
64988
 
 
64989
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
64990
 
 public :
64991
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
64992
 
  typedef CT_Bool CExprResolveExpr;
64993
 
 
64994
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
64995
 
 public :
64996
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
64997
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64998
 
};
64999
 
 
65000
 
 
65001
 
#line 65002 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65002
 
} // closed Puma
65003
 
class WinIfExists;
65004
 
class WinImportHandler;
65005
 
class WinMacros;
65006
 
class CMatchSyntax;
65007
 
class ExtGnu;
65008
 
class ExtAC;
65009
 
class ExtACBuilderCoupling;
65010
 
class ExtACSyntaxCoupling;
65011
 
class ExtACTree;
65012
 
class ExtACKeywords;
65013
 
class WinAsm;
65014
 
class WinDeclSpecs;
65015
 
class WinMemberExplSpec;
65016
 
class WinTypeKeywords;
65017
 
class PragmaOnceUnitState;
65018
 
class PragmaOnce;
65019
 
class CCExprResolve;
65020
 
class CExprResolve;
65021
 
namespace Puma {
65022
 
 
65023
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65024
 
class CT_BracedExpr : public CT_Expression {
65025
 
#line 65026 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65026
 
  friend class ::WinIfExists;
65027
 
  friend class ::WinImportHandler;
65028
 
  friend class ::WinMacros;
65029
 
  friend class ::CMatchSyntax;
65030
 
  friend class ::ExtGnu;
65031
 
  friend class ::ExtAC;
65032
 
  friend class ::ExtACBuilderCoupling;
65033
 
  friend class ::ExtACSyntaxCoupling;
65034
 
  friend class ::ExtACTree;
65035
 
  friend class ::ExtACKeywords;
65036
 
  friend class ::WinAsm;
65037
 
  friend class ::WinDeclSpecs;
65038
 
  friend class ::WinMemberExplSpec;
65039
 
  friend class ::WinTypeKeywords;
65040
 
  friend class ::PragmaOnceUnitState;
65041
 
  friend class ::PragmaOnce;
65042
 
  friend class ::CCExprResolve;
65043
 
  friend class ::CExprResolve;
65044
 
 
65045
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65046
 
 
65047
 
  CTree *sons[3]; // open, expr, close
65048
 
 
65049
 
public:
65050
 
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
65051
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
65052
 
  }
65053
 
  static const char *NodeId ();
65054
 
  const char *NodeName () const { return NodeId (); }
65055
 
  int Sons () const { return 3; }
65056
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
65057
 
  CTree *Expr () const { return sons[1]; }
65058
 
  CTypeInfo *Type () const { return Expr ()->Type (); }
65059
 
  CExprValue *Value () const { return Expr ()->Value (); }
65060
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
65061
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
65062
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
65063
 
  }
65064
 
   private:
65065
 
  typedef CT_BracedExpr CCExprResolveExpr;
65066
 
 
65067
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65068
 
 public :
65069
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
65070
 
  typedef CT_BracedExpr CExprResolveExpr;
65071
 
 
65072
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65073
 
 public :
65074
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65075
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65076
 
};
65077
 
 
65078
 
 
65079
 
#line 65080 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65080
 
} // closed Puma
65081
 
class WinIfExists;
65082
 
class WinImportHandler;
65083
 
class WinMacros;
65084
 
class CMatchSyntax;
65085
 
class ExtGnu;
65086
 
class ExtAC;
65087
 
class ExtACBuilderCoupling;
65088
 
class ExtACSyntaxCoupling;
65089
 
class ExtACTree;
65090
 
class ExtACKeywords;
65091
 
class WinAsm;
65092
 
class WinDeclSpecs;
65093
 
class WinMemberExplSpec;
65094
 
class WinTypeKeywords;
65095
 
class PragmaOnceUnitState;
65096
 
class PragmaOnce;
65097
 
class CCExprResolve;
65098
 
class CExprResolve;
65099
 
namespace Puma {
65100
 
 
65101
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65102
 
class CT_SimpleName : public CT_List, public Printable, 
65103
 
                      public CSemValue, public CSemObject {
65104
 
#line 65105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65105
 
  friend class ::WinIfExists;
65106
 
  friend class ::WinImportHandler;
65107
 
  friend class ::WinMacros;
65108
 
  friend class ::CMatchSyntax;
65109
 
  friend class ::ExtGnu;
65110
 
  friend class ::ExtAC;
65111
 
  friend class ::ExtACBuilderCoupling;
65112
 
  friend class ::ExtACSyntaxCoupling;
65113
 
  friend class ::ExtACTree;
65114
 
  friend class ::ExtACKeywords;
65115
 
  friend class ::WinAsm;
65116
 
  friend class ::WinDeclSpecs;
65117
 
  friend class ::WinMemberExplSpec;
65118
 
  friend class ::WinTypeKeywords;
65119
 
  friend class ::PragmaOnceUnitState;
65120
 
  friend class ::PragmaOnce;
65121
 
  friend class ::CCExprResolve;
65122
 
  friend class ::CExprResolve;
65123
 
 
65124
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65125
 
 
65126
 
protected:
65127
 
  CT_SimpleName (int size) : CT_List (size, 1) {}
65128
 
  CT_SimpleName (int size, int properties) : 
65129
 
    CT_List (size, 2, properties) {}
65130
 
  
65131
 
public:
65132
 
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
65133
 
  static const char *NodeId ();
65134
 
  const char *NodeName () const { return NodeId (); }
65135
 
  virtual const char *Text () const 
65136
 
   { return Son (Sons ()-1)->token ()->text (); }
65137
 
  virtual void print (ostream &os) const { os << Text (); }
65138
 
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
65139
 
  CTypeInfo *Type () const { return type; }
65140
 
  CExprValue *Value () const { return value; }
65141
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
65142
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
65143
 
  // special new / delete with reusing memory
65144
 
  void *operator new (size_t);
65145
 
  void  operator delete (void *);
65146
 
  // classification function
65147
 
  virtual CT_SimpleName *IsSimpleName () { return this; }  
65148
 
   private:
65149
 
  typedef CT_SimpleName CCExprResolveExpr;
65150
 
 
65151
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65152
 
 public :
65153
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
65154
 
  typedef CT_SimpleName CExprResolveExpr;
65155
 
 
65156
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65157
 
 public :
65158
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65159
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65160
 
};
65161
 
 
65162
 
 
65163
 
#line 65164 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65164
 
} // closed Puma
65165
 
class WinIfExists;
65166
 
class WinImportHandler;
65167
 
class WinMacros;
65168
 
class CMatchSyntax;
65169
 
class ExtGnu;
65170
 
class ExtAC;
65171
 
class ExtACBuilderCoupling;
65172
 
class ExtACSyntaxCoupling;
65173
 
class ExtACTree;
65174
 
class ExtACKeywords;
65175
 
class WinAsm;
65176
 
class WinDeclSpecs;
65177
 
class WinMemberExplSpec;
65178
 
class WinTypeKeywords;
65179
 
class PragmaOnceUnitState;
65180
 
class PragmaOnce;
65181
 
class CCExprResolve;
65182
 
class CExprResolve;
65183
 
namespace Puma {
65184
 
 
65185
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65186
 
class CT_SpecialName : public CT_SimpleName {
65187
 
#line 65188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65188
 
  friend class ::WinIfExists;
65189
 
  friend class ::WinImportHandler;
65190
 
  friend class ::WinMacros;
65191
 
  friend class ::CMatchSyntax;
65192
 
  friend class ::ExtGnu;
65193
 
  friend class ::ExtAC;
65194
 
  friend class ::ExtACBuilderCoupling;
65195
 
  friend class ::ExtACSyntaxCoupling;
65196
 
  friend class ::ExtACTree;
65197
 
  friend class ::ExtACKeywords;
65198
 
  friend class ::WinAsm;
65199
 
  friend class ::WinDeclSpecs;
65200
 
  friend class ::WinMemberExplSpec;
65201
 
  friend class ::WinTypeKeywords;
65202
 
  friend class ::PragmaOnceUnitState;
65203
 
  friend class ::PragmaOnce;
65204
 
  friend class ::CCExprResolve;
65205
 
  friend class ::CExprResolve;
65206
 
 
65207
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65208
 
 
65209
 
  char *_name;
65210
 
  
65211
 
protected:
65212
 
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
65213
 
  
65214
 
public:
65215
 
  ~CT_SpecialName () { if (_name) delete[] _name; }
65216
 
  const char *Text () const { return _name; }
65217
 
  void Name (const char *n) { 
65218
 
    if (n) { 
65219
 
      _name = new char[strlen(n) + 1];
65220
 
      strcpy (_name,n);
65221
 
    }
65222
 
  }
65223
 
  // special new / delete with reusing memory
65224
 
  void *operator new (size_t);
65225
 
  void  operator delete (void *);
65226
 
   private:
65227
 
  typedef CT_SpecialName CCExprResolveExpr;
65228
 
 
65229
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65230
 
 public :
65231
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
65232
 
  typedef CT_SpecialName CExprResolveExpr;
65233
 
 
65234
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65235
 
 public :
65236
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65237
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65238
 
};
65239
 
 
65240
 
 
65241
 
#line 65242 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65242
 
} // closed Puma
65243
 
class WinIfExists;
65244
 
class WinImportHandler;
65245
 
class WinMacros;
65246
 
class CMatchSyntax;
65247
 
class ExtGnu;
65248
 
class ExtAC;
65249
 
class ExtACBuilderCoupling;
65250
 
class ExtACSyntaxCoupling;
65251
 
class ExtACTree;
65252
 
class ExtACKeywords;
65253
 
class WinAsm;
65254
 
class WinDeclSpecs;
65255
 
class WinMemberExplSpec;
65256
 
class WinTypeKeywords;
65257
 
class PragmaOnceUnitState;
65258
 
class PragmaOnce;
65259
 
class CCExprResolve;
65260
 
class CExprResolve;
65261
 
namespace Puma {
65262
 
 
65263
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65264
 
class CT_PrivateName : public CT_SpecialName {
65265
 
#line 65266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65266
 
  friend class ::WinIfExists;
65267
 
  friend class ::WinImportHandler;
65268
 
  friend class ::WinMacros;
65269
 
  friend class ::CMatchSyntax;
65270
 
  friend class ::ExtGnu;
65271
 
  friend class ::ExtAC;
65272
 
  friend class ::ExtACBuilderCoupling;
65273
 
  friend class ::ExtACSyntaxCoupling;
65274
 
  friend class ::ExtACTree;
65275
 
  friend class ::ExtACKeywords;
65276
 
  friend class ::WinAsm;
65277
 
  friend class ::WinDeclSpecs;
65278
 
  friend class ::WinMemberExplSpec;
65279
 
  friend class ::WinTypeKeywords;
65280
 
  friend class ::PragmaOnceUnitState;
65281
 
  friend class ::PragmaOnce;
65282
 
  friend class ::CCExprResolve;
65283
 
  friend class ::CExprResolve;
65284
 
 
65285
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65286
 
 
65287
 
public:
65288
 
  CT_PrivateName (const char *n) { Name (n); }
65289
 
  static const char *NodeId ();
65290
 
  const char *NodeName () const { return NodeId (); }
65291
 
  int Sons () const { return 0; }
65292
 
  CTree *Son (int n) const { return (CTree*)0; }
65293
 
  // special new / delete with reusing memory
65294
 
  void *operator new (size_t);
65295
 
  void  operator delete (void *);
65296
 
   private:
65297
 
  typedef CT_PrivateName CCExprResolveExpr;
65298
 
 
65299
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65300
 
 public :
65301
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
65302
 
  typedef CT_PrivateName CExprResolveExpr;
65303
 
 
65304
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65305
 
 public :
65306
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65307
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65308
 
};
65309
 
 
65310
 
 
65311
 
#line 65312 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65312
 
} // closed Puma
65313
 
class WinIfExists;
65314
 
class WinImportHandler;
65315
 
class WinMacros;
65316
 
class CMatchSyntax;
65317
 
class ExtGnu;
65318
 
class ExtAC;
65319
 
class ExtACBuilderCoupling;
65320
 
class ExtACSyntaxCoupling;
65321
 
class ExtACTree;
65322
 
class ExtACKeywords;
65323
 
class WinAsm;
65324
 
class WinDeclSpecs;
65325
 
class WinMemberExplSpec;
65326
 
class WinTypeKeywords;
65327
 
class PragmaOnceUnitState;
65328
 
class PragmaOnce;
65329
 
class CCExprResolve;
65330
 
class CExprResolve;
65331
 
namespace Puma {
65332
 
 
65333
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65334
 
class CT_DestructorName : public CT_SpecialName {
65335
 
#line 65336 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65336
 
  friend class ::WinIfExists;
65337
 
  friend class ::WinImportHandler;
65338
 
  friend class ::WinMacros;
65339
 
  friend class ::CMatchSyntax;
65340
 
  friend class ::ExtGnu;
65341
 
  friend class ::ExtAC;
65342
 
  friend class ::ExtACBuilderCoupling;
65343
 
  friend class ::ExtACSyntaxCoupling;
65344
 
  friend class ::ExtACTree;
65345
 
  friend class ::ExtACKeywords;
65346
 
  friend class ::WinAsm;
65347
 
  friend class ::WinDeclSpecs;
65348
 
  friend class ::WinMemberExplSpec;
65349
 
  friend class ::WinTypeKeywords;
65350
 
  friend class ::PragmaOnceUnitState;
65351
 
  friend class ::PragmaOnce;
65352
 
  friend class ::CCExprResolve;
65353
 
  friend class ::CExprResolve;
65354
 
 
65355
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65356
 
 
65357
 
public:
65358
 
  CT_DestructorName (CTree *, CTree *);
65359
 
  static const char *NodeId ();
65360
 
  const char *NodeName () const { return NodeId (); }
65361
 
  // special new / delete with reusing memory
65362
 
  void *operator new (size_t);
65363
 
  void  operator delete (void *);
65364
 
   private:
65365
 
  typedef CT_DestructorName CCExprResolveExpr;
65366
 
 
65367
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65368
 
 public :
65369
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
65370
 
  typedef CT_DestructorName CExprResolveExpr;
65371
 
 
65372
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65373
 
 public :
65374
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65375
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65376
 
};
65377
 
 
65378
 
 
65379
 
#line 65380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65380
 
} // closed Puma
65381
 
class WinIfExists;
65382
 
class WinImportHandler;
65383
 
class WinMacros;
65384
 
class CMatchSyntax;
65385
 
class ExtGnu;
65386
 
class ExtAC;
65387
 
class ExtACBuilderCoupling;
65388
 
class ExtACSyntaxCoupling;
65389
 
class ExtACTree;
65390
 
class ExtACKeywords;
65391
 
class WinAsm;
65392
 
class WinDeclSpecs;
65393
 
class WinMemberExplSpec;
65394
 
class WinTypeKeywords;
65395
 
class PragmaOnceUnitState;
65396
 
class PragmaOnce;
65397
 
class CCExprResolve;
65398
 
class CExprResolve;
65399
 
namespace Puma {
65400
 
 
65401
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65402
 
class CT_TemplateName : public CT_SpecialName {
65403
 
#line 65404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65404
 
  friend class ::WinIfExists;
65405
 
  friend class ::WinImportHandler;
65406
 
  friend class ::WinMacros;
65407
 
  friend class ::CMatchSyntax;
65408
 
  friend class ::ExtGnu;
65409
 
  friend class ::ExtAC;
65410
 
  friend class ::ExtACBuilderCoupling;
65411
 
  friend class ::ExtACSyntaxCoupling;
65412
 
  friend class ::ExtACTree;
65413
 
  friend class ::ExtACKeywords;
65414
 
  friend class ::WinAsm;
65415
 
  friend class ::WinDeclSpecs;
65416
 
  friend class ::WinMemberExplSpec;
65417
 
  friend class ::WinTypeKeywords;
65418
 
  friend class ::PragmaOnceUnitState;
65419
 
  friend class ::PragmaOnce;
65420
 
  friend class ::CCExprResolve;
65421
 
  friend class ::CExprResolve;
65422
 
 
65423
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65424
 
 
65425
 
public:
65426
 
  CT_TemplateName (CTree *n, CTree *a) 
65427
 
   { AddSon (n); AddSon (a); }
65428
 
  static const char *NodeId ();
65429
 
  const char *NodeName () const { return NodeId (); }
65430
 
  CT_TemplateArgList *Arguments () const 
65431
 
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
65432
 
  CT_SimpleName *TemplateName () const 
65433
 
   { return (CT_SimpleName*)Son (Sons ()-2); }
65434
 
  // may change in the future
65435
 
  const char *Text () const { return TemplateName ()->Text (); }
65436
 
  // special new / delete with reusing memory
65437
 
  void *operator new (size_t);
65438
 
  void  operator delete (void *);
65439
 
   private:
65440
 
  typedef CT_TemplateName CCExprResolveExpr;
65441
 
 
65442
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65443
 
 public :
65444
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
65445
 
  typedef CT_TemplateName CExprResolveExpr;
65446
 
 
65447
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65448
 
 public :
65449
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65450
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65451
 
};
65452
 
 
65453
 
 
65454
 
#line 65455 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65455
 
} // closed Puma
65456
 
class WinIfExists;
65457
 
class WinImportHandler;
65458
 
class WinMacros;
65459
 
class CMatchSyntax;
65460
 
class ExtGnu;
65461
 
class ExtAC;
65462
 
class ExtACBuilderCoupling;
65463
 
class ExtACSyntaxCoupling;
65464
 
class ExtACTree;
65465
 
class ExtACKeywords;
65466
 
class WinAsm;
65467
 
class WinDeclSpecs;
65468
 
class WinMemberExplSpec;
65469
 
class WinTypeKeywords;
65470
 
class PragmaOnceUnitState;
65471
 
class PragmaOnce;
65472
 
class CCExprResolve;
65473
 
class CExprResolve;
65474
 
namespace Puma {
65475
 
 
65476
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65477
 
class CT_OperatorName : public CT_SpecialName {
65478
 
#line 65479 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65479
 
  friend class ::WinIfExists;
65480
 
  friend class ::WinImportHandler;
65481
 
  friend class ::WinMacros;
65482
 
  friend class ::CMatchSyntax;
65483
 
  friend class ::ExtGnu;
65484
 
  friend class ::ExtAC;
65485
 
  friend class ::ExtACBuilderCoupling;
65486
 
  friend class ::ExtACSyntaxCoupling;
65487
 
  friend class ::ExtACTree;
65488
 
  friend class ::ExtACKeywords;
65489
 
  friend class ::WinAsm;
65490
 
  friend class ::WinDeclSpecs;
65491
 
  friend class ::WinMemberExplSpec;
65492
 
  friend class ::WinTypeKeywords;
65493
 
  friend class ::PragmaOnceUnitState;
65494
 
  friend class ::PragmaOnce;
65495
 
  friend class ::CCExprResolve;
65496
 
  friend class ::CExprResolve;
65497
 
 
65498
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65499
 
 
65500
 
  int _oper;
65501
 
 
65502
 
public:
65503
 
  enum { // complex operators
65504
 
    FCT_CALL = -100,
65505
 
    SUBSCRIPT,
65506
 
    NEW_ARRAY,
65507
 
    DEL_ARRAY
65508
 
  };
65509
 
 
65510
 
public:
65511
 
  CT_OperatorName (CTree *);
65512
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
65513
 
  static const char *NodeId ();
65514
 
  const char *NodeName () const { return NodeId (); }
65515
 
  int Operator () const { return _oper; }
65516
 
  // special new / delete with reusing memory
65517
 
  void *operator new (size_t);
65518
 
  void  operator delete (void *);
65519
 
   private:
65520
 
  typedef CT_OperatorName CCExprResolveExpr;
65521
 
 
65522
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65523
 
 public :
65524
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
65525
 
  typedef CT_OperatorName CExprResolveExpr;
65526
 
 
65527
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65528
 
 public :
65529
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65530
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65531
 
};
65532
 
 
65533
 
 
65534
 
#line 65535 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65535
 
} // closed Puma
65536
 
class WinIfExists;
65537
 
class WinImportHandler;
65538
 
class WinMacros;
65539
 
class CMatchSyntax;
65540
 
class ExtGnu;
65541
 
class ExtAC;
65542
 
class ExtACBuilderCoupling;
65543
 
class ExtACSyntaxCoupling;
65544
 
class ExtACTree;
65545
 
class ExtACKeywords;
65546
 
class WinAsm;
65547
 
class WinDeclSpecs;
65548
 
class WinMemberExplSpec;
65549
 
class WinTypeKeywords;
65550
 
class PragmaOnceUnitState;
65551
 
class PragmaOnce;
65552
 
class CCExprResolve;
65553
 
class CExprResolve;
65554
 
namespace Puma {
65555
 
 
65556
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65557
 
class CT_ConversionName : public CT_SpecialName {
65558
 
#line 65559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65559
 
  friend class ::WinIfExists;
65560
 
  friend class ::WinImportHandler;
65561
 
  friend class ::WinMacros;
65562
 
  friend class ::CMatchSyntax;
65563
 
  friend class ::ExtGnu;
65564
 
  friend class ::ExtAC;
65565
 
  friend class ::ExtACBuilderCoupling;
65566
 
  friend class ::ExtACSyntaxCoupling;
65567
 
  friend class ::ExtACTree;
65568
 
  friend class ::ExtACKeywords;
65569
 
  friend class ::WinAsm;
65570
 
  friend class ::WinDeclSpecs;
65571
 
  friend class ::WinMemberExplSpec;
65572
 
  friend class ::WinTypeKeywords;
65573
 
  friend class ::PragmaOnceUnitState;
65574
 
  friend class ::PragmaOnce;
65575
 
  friend class ::CCExprResolve;
65576
 
  friend class ::CExprResolve;
65577
 
 
65578
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65579
 
 
65580
 
public:
65581
 
  CT_ConversionName (CTree *, CTree *);
65582
 
  static const char *NodeId ();
65583
 
  const char *NodeName () const { return NodeId (); }
65584
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
65585
 
  // special new / delete with reusing memory
65586
 
  void *operator new (size_t);
65587
 
  void  operator delete (void *);
65588
 
   private:
65589
 
  typedef CT_ConversionName CCExprResolveExpr;
65590
 
 
65591
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65592
 
 public :
65593
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
65594
 
  typedef CT_ConversionName CExprResolveExpr;
65595
 
 
65596
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65597
 
 public :
65598
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65599
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65600
 
};
65601
 
 
65602
 
 
65603
 
#line 65604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65604
 
} // closed Puma
65605
 
class WinIfExists;
65606
 
class WinImportHandler;
65607
 
class WinMacros;
65608
 
class CMatchSyntax;
65609
 
class ExtGnu;
65610
 
class ExtAC;
65611
 
class ExtACBuilderCoupling;
65612
 
class ExtACSyntaxCoupling;
65613
 
class ExtACTree;
65614
 
class ExtACKeywords;
65615
 
class WinAsm;
65616
 
class WinDeclSpecs;
65617
 
class WinMemberExplSpec;
65618
 
class WinTypeKeywords;
65619
 
class PragmaOnceUnitState;
65620
 
class PragmaOnce;
65621
 
class CCExprResolve;
65622
 
class CExprResolve;
65623
 
namespace Puma {
65624
 
 
65625
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65626
 
class CT_QualName : public CT_SimpleName {
65627
 
#line 65628 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65628
 
  friend class ::WinIfExists;
65629
 
  friend class ::WinImportHandler;
65630
 
  friend class ::WinMacros;
65631
 
  friend class ::CMatchSyntax;
65632
 
  friend class ::ExtGnu;
65633
 
  friend class ::ExtAC;
65634
 
  friend class ::ExtACBuilderCoupling;
65635
 
  friend class ::ExtACSyntaxCoupling;
65636
 
  friend class ::ExtACTree;
65637
 
  friend class ::ExtACKeywords;
65638
 
  friend class ::WinAsm;
65639
 
  friend class ::WinDeclSpecs;
65640
 
  friend class ::WinMemberExplSpec;
65641
 
  friend class ::WinTypeKeywords;
65642
 
  friend class ::PragmaOnceUnitState;
65643
 
  friend class ::PragmaOnce;
65644
 
  friend class ::CCExprResolve;
65645
 
  friend class ::CExprResolve;
65646
 
 
65647
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65648
 
 
65649
 
public:
65650
 
  CT_QualName (int size = 3) : 
65651
 
    CT_SimpleName (size, CT_List::SEPARATORS) {}
65652
 
  static const char *NodeId ();
65653
 
  const char *NodeName () const { return NodeId (); }
65654
 
  void print (ostream &) const;
65655
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
65656
 
  const char *Text () const { return Name ()->Text (); }
65657
 
  CTypeInfo *Type () const { return Name ()->Type (); }
65658
 
  CExprValue *Value () const { return Name ()->Value (); }
65659
 
  CSemValue *SemValue () const { return Name ()->SemValue (); }
65660
 
  CSemObject *SemObject () const { return Name ()->SemObject (); }
65661
 
  // special new / delete with reusing memory
65662
 
  void *operator new (size_t);
65663
 
  void  operator delete (void *);
65664
 
   private:
65665
 
  typedef CT_QualName CCExprResolveExpr;
65666
 
 
65667
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65668
 
 public :
65669
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
65670
 
  typedef CT_QualName CExprResolveExpr;
65671
 
 
65672
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65673
 
 public :
65674
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65675
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65676
 
};
65677
 
 
65678
 
 
65679
 
#line 65680 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65680
 
} // closed Puma
65681
 
class WinIfExists;
65682
 
class WinImportHandler;
65683
 
class WinMacros;
65684
 
class CMatchSyntax;
65685
 
class ExtGnu;
65686
 
class ExtAC;
65687
 
class ExtACBuilderCoupling;
65688
 
class ExtACSyntaxCoupling;
65689
 
class ExtACTree;
65690
 
class ExtACKeywords;
65691
 
class WinAsm;
65692
 
class WinDeclSpecs;
65693
 
class WinMemberExplSpec;
65694
 
class WinTypeKeywords;
65695
 
class PragmaOnceUnitState;
65696
 
class PragmaOnce;
65697
 
class CCExprResolve;
65698
 
class CExprResolve;
65699
 
namespace Puma {
65700
 
 
65701
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65702
 
class CT_RootQualName : public CT_QualName {
65703
 
#line 65704 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65704
 
  friend class ::WinIfExists;
65705
 
  friend class ::WinImportHandler;
65706
 
  friend class ::WinMacros;
65707
 
  friend class ::CMatchSyntax;
65708
 
  friend class ::ExtGnu;
65709
 
  friend class ::ExtAC;
65710
 
  friend class ::ExtACBuilderCoupling;
65711
 
  friend class ::ExtACSyntaxCoupling;
65712
 
  friend class ::ExtACTree;
65713
 
  friend class ::ExtACKeywords;
65714
 
  friend class ::WinAsm;
65715
 
  friend class ::WinDeclSpecs;
65716
 
  friend class ::WinMemberExplSpec;
65717
 
  friend class ::WinTypeKeywords;
65718
 
  friend class ::PragmaOnceUnitState;
65719
 
  friend class ::PragmaOnce;
65720
 
  friend class ::CCExprResolve;
65721
 
  friend class ::CExprResolve;
65722
 
 
65723
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65724
 
 
65725
 
public:
65726
 
  CT_RootQualName (int size = 2) : 
65727
 
    CT_QualName (size) { AddProperties (INTRO); }
65728
 
  static const char *NodeId ();
65729
 
  const char *NodeName () const { return NodeId (); }
65730
 
  // special new / delete with reusing memory
65731
 
  void *operator new (size_t);
65732
 
  void  operator delete (void *);
65733
 
   private:
65734
 
  typedef CT_RootQualName CCExprResolveExpr;
65735
 
 
65736
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65737
 
 public :
65738
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
65739
 
  typedef CT_RootQualName CExprResolveExpr;
65740
 
 
65741
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65742
 
 public :
65743
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65744
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65745
 
};
65746
 
 
65747
 
 
65748
 
#line 65749 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65749
 
} // closed Puma
65750
 
class WinIfExists;
65751
 
class WinImportHandler;
65752
 
class WinMacros;
65753
 
class CMatchSyntax;
65754
 
class ExtGnu;
65755
 
class ExtAC;
65756
 
class ExtACBuilderCoupling;
65757
 
class ExtACSyntaxCoupling;
65758
 
class ExtACTree;
65759
 
class ExtACKeywords;
65760
 
class WinAsm;
65761
 
class WinDeclSpecs;
65762
 
class WinMemberExplSpec;
65763
 
class WinTypeKeywords;
65764
 
class PragmaOnceUnitState;
65765
 
class PragmaOnce;
65766
 
class CCExprResolve;
65767
 
class CExprResolve;
65768
 
namespace Puma {
65769
 
 
65770
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65771
 
class CT_BinaryExpr : public CT_Expression {
65772
 
#line 65773 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65773
 
  friend class ::WinIfExists;
65774
 
  friend class ::WinImportHandler;
65775
 
  friend class ::WinMacros;
65776
 
  friend class ::CMatchSyntax;
65777
 
  friend class ::ExtGnu;
65778
 
  friend class ::ExtAC;
65779
 
  friend class ::ExtACBuilderCoupling;
65780
 
  friend class ::ExtACSyntaxCoupling;
65781
 
  friend class ::ExtACTree;
65782
 
  friend class ::ExtACKeywords;
65783
 
  friend class ::WinAsm;
65784
 
  friend class ::WinDeclSpecs;
65785
 
  friend class ::WinMemberExplSpec;
65786
 
  friend class ::WinTypeKeywords;
65787
 
  friend class ::PragmaOnceUnitState;
65788
 
  friend class ::PragmaOnce;
65789
 
  friend class ::CCExprResolve;
65790
 
  friend class ::CExprResolve;
65791
 
 
65792
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65793
 
 
65794
 
  CTree *sons[3]; // expr, oper, expr
65795
 
 
65796
 
public:
65797
 
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
65798
 
    sons[0] = l; sons[1] = o; sons[2] = r;
65799
 
  }
65800
 
  static const char *NodeId ();
65801
 
  const char *NodeName () const { return NodeId (); }
65802
 
  int Sons () const { return 3; }
65803
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
65804
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
65805
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
65806
 
  }
65807
 
   private:
65808
 
  typedef CT_BinaryExpr CCExprResolveExpr;
65809
 
 
65810
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65811
 
 public :
65812
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
65813
 
  typedef CT_BinaryExpr CExprResolveExpr;
65814
 
 
65815
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65816
 
 public :
65817
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65818
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65819
 
};
65820
 
 
65821
 
 
65822
 
#line 65823 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65823
 
} // closed Puma
65824
 
class WinIfExists;
65825
 
class WinImportHandler;
65826
 
class WinMacros;
65827
 
class CMatchSyntax;
65828
 
class ExtGnu;
65829
 
class ExtAC;
65830
 
class ExtACBuilderCoupling;
65831
 
class ExtACSyntaxCoupling;
65832
 
class ExtACTree;
65833
 
class ExtACKeywords;
65834
 
class WinAsm;
65835
 
class WinDeclSpecs;
65836
 
class WinMemberExplSpec;
65837
 
class WinTypeKeywords;
65838
 
class PragmaOnceUnitState;
65839
 
class PragmaOnce;
65840
 
class CCExprResolve;
65841
 
class CExprResolve;
65842
 
namespace Puma {
65843
 
 
65844
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65845
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
65846
 
#line 65847 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65847
 
  friend class ::WinIfExists;
65848
 
  friend class ::WinImportHandler;
65849
 
  friend class ::WinMacros;
65850
 
  friend class ::CMatchSyntax;
65851
 
  friend class ::ExtGnu;
65852
 
  friend class ::ExtAC;
65853
 
  friend class ::ExtACBuilderCoupling;
65854
 
  friend class ::ExtACSyntaxCoupling;
65855
 
  friend class ::ExtACTree;
65856
 
  friend class ::ExtACKeywords;
65857
 
  friend class ::WinAsm;
65858
 
  friend class ::WinDeclSpecs;
65859
 
  friend class ::WinMemberExplSpec;
65860
 
  friend class ::WinTypeKeywords;
65861
 
  friend class ::PragmaOnceUnitState;
65862
 
  friend class ::PragmaOnce;
65863
 
  friend class ::CCExprResolve;
65864
 
  friend class ::CExprResolve;
65865
 
 
65866
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65867
 
 
65868
 
public:
65869
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
65870
 
    CT_BinaryExpr (e, o, i) {}
65871
 
  static const char *NodeId ();
65872
 
  const char *NodeName () const { return NodeId (); }
65873
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
65874
 
   private:
65875
 
  typedef CT_MembPtrExpr CCExprResolveExpr;
65876
 
 
65877
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65878
 
 public :
65879
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
65880
 
  typedef CT_MembPtrExpr CExprResolveExpr;
65881
 
 
65882
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65883
 
 public :
65884
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65885
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65886
 
};
65887
 
 
65888
 
 
65889
 
#line 65890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65890
 
} // closed Puma
65891
 
class WinIfExists;
65892
 
class WinImportHandler;
65893
 
class WinMacros;
65894
 
class CMatchSyntax;
65895
 
class ExtGnu;
65896
 
class ExtAC;
65897
 
class ExtACBuilderCoupling;
65898
 
class ExtACSyntaxCoupling;
65899
 
class ExtACTree;
65900
 
class ExtACKeywords;
65901
 
class WinAsm;
65902
 
class WinDeclSpecs;
65903
 
class WinMemberExplSpec;
65904
 
class WinTypeKeywords;
65905
 
class PragmaOnceUnitState;
65906
 
class PragmaOnce;
65907
 
class CCExprResolve;
65908
 
class CExprResolve;
65909
 
namespace Puma {
65910
 
 
65911
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65912
 
class CT_MembRefExpr : public CT_MembPtrExpr {
65913
 
#line 65914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65914
 
  friend class ::WinIfExists;
65915
 
  friend class ::WinImportHandler;
65916
 
  friend class ::WinMacros;
65917
 
  friend class ::CMatchSyntax;
65918
 
  friend class ::ExtGnu;
65919
 
  friend class ::ExtAC;
65920
 
  friend class ::ExtACBuilderCoupling;
65921
 
  friend class ::ExtACSyntaxCoupling;
65922
 
  friend class ::ExtACTree;
65923
 
  friend class ::ExtACKeywords;
65924
 
  friend class ::WinAsm;
65925
 
  friend class ::WinDeclSpecs;
65926
 
  friend class ::WinMemberExplSpec;
65927
 
  friend class ::WinTypeKeywords;
65928
 
  friend class ::PragmaOnceUnitState;
65929
 
  friend class ::PragmaOnce;
65930
 
  friend class ::CCExprResolve;
65931
 
  friend class ::CExprResolve;
65932
 
 
65933
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65934
 
 
65935
 
public:
65936
 
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
65937
 
    CT_MembPtrExpr (e, o, i) {}
65938
 
  static const char *NodeId ();
65939
 
  const char *NodeName () const { return NodeId (); }
65940
 
   private:
65941
 
  typedef CT_MembRefExpr CCExprResolveExpr;
65942
 
 
65943
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65944
 
 public :
65945
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
65946
 
  typedef CT_MembRefExpr CExprResolveExpr;
65947
 
 
65948
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65949
 
 public :
65950
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65951
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65952
 
};
65953
 
 
65954
 
 
65955
 
#line 65956 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65956
 
} // closed Puma
65957
 
class WinIfExists;
65958
 
class WinImportHandler;
65959
 
class WinMacros;
65960
 
class CMatchSyntax;
65961
 
class ExtGnu;
65962
 
class ExtAC;
65963
 
class ExtACBuilderCoupling;
65964
 
class ExtACSyntaxCoupling;
65965
 
class ExtACTree;
65966
 
class ExtACKeywords;
65967
 
class WinAsm;
65968
 
class WinDeclSpecs;
65969
 
class WinMemberExplSpec;
65970
 
class WinTypeKeywords;
65971
 
class PragmaOnceUnitState;
65972
 
class PragmaOnce;
65973
 
class CCExprResolve;
65974
 
class CExprResolve;
65975
 
namespace Puma {
65976
 
 
65977
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65978
 
class CT_UnaryExpr : public CT_Expression {
65979
 
#line 65980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
65980
 
  friend class ::WinIfExists;
65981
 
  friend class ::WinImportHandler;
65982
 
  friend class ::WinMacros;
65983
 
  friend class ::CMatchSyntax;
65984
 
  friend class ::ExtGnu;
65985
 
  friend class ::ExtAC;
65986
 
  friend class ::ExtACBuilderCoupling;
65987
 
  friend class ::ExtACSyntaxCoupling;
65988
 
  friend class ::ExtACTree;
65989
 
  friend class ::ExtACKeywords;
65990
 
  friend class ::WinAsm;
65991
 
  friend class ::WinDeclSpecs;
65992
 
  friend class ::WinMemberExplSpec;
65993
 
  friend class ::WinTypeKeywords;
65994
 
  friend class ::PragmaOnceUnitState;
65995
 
  friend class ::PragmaOnce;
65996
 
  friend class ::CCExprResolve;
65997
 
  friend class ::CExprResolve;
65998
 
 
65999
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66000
 
 
66001
 
  CTree *sons[2]; // oper, expr
66002
 
 
66003
 
public:
66004
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
66005
 
  static const char *NodeId ();
66006
 
  const char *NodeName () const { return NodeId (); }
66007
 
  int Sons () const { return 2; }
66008
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
66009
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66010
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
66011
 
  }
66012
 
  CTree *Expr () const { return sons[1]; }
66013
 
   private:
66014
 
  typedef CT_UnaryExpr CCExprResolveExpr;
66015
 
 
66016
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66017
 
 public :
66018
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
66019
 
  typedef CT_UnaryExpr CExprResolveExpr;
66020
 
 
66021
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66022
 
 public :
66023
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66024
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66025
 
};
66026
 
 
66027
 
 
66028
 
#line 66029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66029
 
} // closed Puma
66030
 
class WinIfExists;
66031
 
class WinImportHandler;
66032
 
class WinMacros;
66033
 
class CMatchSyntax;
66034
 
class ExtGnu;
66035
 
class ExtAC;
66036
 
class ExtACBuilderCoupling;
66037
 
class ExtACSyntaxCoupling;
66038
 
class ExtACTree;
66039
 
class ExtACKeywords;
66040
 
class WinAsm;
66041
 
class WinDeclSpecs;
66042
 
class WinMemberExplSpec;
66043
 
class WinTypeKeywords;
66044
 
class PragmaOnceUnitState;
66045
 
class PragmaOnce;
66046
 
class CCExprResolve;
66047
 
class CExprResolve;
66048
 
namespace Puma {
66049
 
 
66050
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66051
 
class CT_PostfixExpr : public CT_UnaryExpr {
66052
 
#line 66053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66053
 
  friend class ::WinIfExists;
66054
 
  friend class ::WinImportHandler;
66055
 
  friend class ::WinMacros;
66056
 
  friend class ::CMatchSyntax;
66057
 
  friend class ::ExtGnu;
66058
 
  friend class ::ExtAC;
66059
 
  friend class ::ExtACBuilderCoupling;
66060
 
  friend class ::ExtACSyntaxCoupling;
66061
 
  friend class ::ExtACTree;
66062
 
  friend class ::ExtACKeywords;
66063
 
  friend class ::WinAsm;
66064
 
  friend class ::WinDeclSpecs;
66065
 
  friend class ::WinMemberExplSpec;
66066
 
  friend class ::WinTypeKeywords;
66067
 
  friend class ::PragmaOnceUnitState;
66068
 
  friend class ::PragmaOnce;
66069
 
  friend class ::CCExprResolve;
66070
 
  friend class ::CExprResolve;
66071
 
 
66072
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66073
 
 
66074
 
public:
66075
 
  CT_PostfixExpr (CTree *e, CTree *o) :
66076
 
    CT_UnaryExpr (e, o) {}
66077
 
  static const char *NodeId ();
66078
 
  const char *NodeName () const { return NodeId (); }
66079
 
   private:
66080
 
  typedef CT_PostfixExpr CCExprResolveExpr;
66081
 
 
66082
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66083
 
 public :
66084
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
66085
 
  typedef CT_PostfixExpr CExprResolveExpr;
66086
 
 
66087
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66088
 
 public :
66089
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66090
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66091
 
};
66092
 
 
66093
 
 
66094
 
#line 66095 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66095
 
} // closed Puma
66096
 
class WinIfExists;
66097
 
class WinImportHandler;
66098
 
class WinMacros;
66099
 
class CMatchSyntax;
66100
 
class ExtGnu;
66101
 
class ExtAC;
66102
 
class ExtACBuilderCoupling;
66103
 
class ExtACSyntaxCoupling;
66104
 
class ExtACTree;
66105
 
class ExtACKeywords;
66106
 
class WinAsm;
66107
 
class WinDeclSpecs;
66108
 
class WinMemberExplSpec;
66109
 
class WinTypeKeywords;
66110
 
class PragmaOnceUnitState;
66111
 
class PragmaOnce;
66112
 
class CCExprResolve;
66113
 
class CExprResolve;
66114
 
namespace Puma {
66115
 
 
66116
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66117
 
class CT_AddrExpr : public CT_UnaryExpr {
66118
 
#line 66119 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66119
 
  friend class ::WinIfExists;
66120
 
  friend class ::WinImportHandler;
66121
 
  friend class ::WinMacros;
66122
 
  friend class ::CMatchSyntax;
66123
 
  friend class ::ExtGnu;
66124
 
  friend class ::ExtAC;
66125
 
  friend class ::ExtACBuilderCoupling;
66126
 
  friend class ::ExtACSyntaxCoupling;
66127
 
  friend class ::ExtACTree;
66128
 
  friend class ::ExtACKeywords;
66129
 
  friend class ::WinAsm;
66130
 
  friend class ::WinDeclSpecs;
66131
 
  friend class ::WinMemberExplSpec;
66132
 
  friend class ::WinTypeKeywords;
66133
 
  friend class ::PragmaOnceUnitState;
66134
 
  friend class ::PragmaOnce;
66135
 
  friend class ::CCExprResolve;
66136
 
  friend class ::CExprResolve;
66137
 
 
66138
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66139
 
 
66140
 
public:
66141
 
  CT_AddrExpr (CTree *o, CTree *e) :
66142
 
    CT_UnaryExpr (o, e) {}
66143
 
  static const char *NodeId ();
66144
 
  const char *NodeName () const { return NodeId (); }
66145
 
   private:
66146
 
  typedef CT_AddrExpr CCExprResolveExpr;
66147
 
 
66148
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66149
 
 public :
66150
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
66151
 
  typedef CT_AddrExpr CExprResolveExpr;
66152
 
 
66153
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66154
 
 public :
66155
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66156
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66157
 
};
66158
 
 
66159
 
 
66160
 
#line 66161 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66161
 
} // closed Puma
66162
 
class WinIfExists;
66163
 
class WinImportHandler;
66164
 
class WinMacros;
66165
 
class CMatchSyntax;
66166
 
class ExtGnu;
66167
 
class ExtAC;
66168
 
class ExtACBuilderCoupling;
66169
 
class ExtACSyntaxCoupling;
66170
 
class ExtACTree;
66171
 
class ExtACKeywords;
66172
 
class WinAsm;
66173
 
class WinDeclSpecs;
66174
 
class WinMemberExplSpec;
66175
 
class WinTypeKeywords;
66176
 
class PragmaOnceUnitState;
66177
 
class PragmaOnce;
66178
 
class CCExprResolve;
66179
 
class CExprResolve;
66180
 
namespace Puma {
66181
 
 
66182
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66183
 
class CT_DerefExpr : public CT_UnaryExpr {
66184
 
#line 66185 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66185
 
  friend class ::WinIfExists;
66186
 
  friend class ::WinImportHandler;
66187
 
  friend class ::WinMacros;
66188
 
  friend class ::CMatchSyntax;
66189
 
  friend class ::ExtGnu;
66190
 
  friend class ::ExtAC;
66191
 
  friend class ::ExtACBuilderCoupling;
66192
 
  friend class ::ExtACSyntaxCoupling;
66193
 
  friend class ::ExtACTree;
66194
 
  friend class ::ExtACKeywords;
66195
 
  friend class ::WinAsm;
66196
 
  friend class ::WinDeclSpecs;
66197
 
  friend class ::WinMemberExplSpec;
66198
 
  friend class ::WinTypeKeywords;
66199
 
  friend class ::PragmaOnceUnitState;
66200
 
  friend class ::PragmaOnce;
66201
 
  friend class ::CCExprResolve;
66202
 
  friend class ::CExprResolve;
66203
 
 
66204
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66205
 
 
66206
 
public:
66207
 
  CT_DerefExpr (CTree *o, CTree *e) :
66208
 
    CT_UnaryExpr (o, e) {}
66209
 
  static const char *NodeId ();
66210
 
  const char *NodeName () const { return NodeId (); }
66211
 
   private:
66212
 
  typedef CT_DerefExpr CCExprResolveExpr;
66213
 
 
66214
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66215
 
 public :
66216
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
66217
 
  typedef CT_DerefExpr CExprResolveExpr;
66218
 
 
66219
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66220
 
 public :
66221
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66222
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66223
 
};
66224
 
 
66225
 
 
66226
 
#line 66227 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66227
 
} // closed Puma
66228
 
class WinIfExists;
66229
 
class WinImportHandler;
66230
 
class WinMacros;
66231
 
class CMatchSyntax;
66232
 
class ExtGnu;
66233
 
class ExtAC;
66234
 
class ExtACBuilderCoupling;
66235
 
class ExtACSyntaxCoupling;
66236
 
class ExtACTree;
66237
 
class ExtACKeywords;
66238
 
class WinAsm;
66239
 
class WinDeclSpecs;
66240
 
class WinMemberExplSpec;
66241
 
class WinTypeKeywords;
66242
 
class PragmaOnceUnitState;
66243
 
class PragmaOnce;
66244
 
class CCExprResolve;
66245
 
class CExprResolve;
66246
 
namespace Puma {
66247
 
 
66248
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66249
 
class CT_DeleteExpr : public CT_Expression, public CSemObject {
66250
 
#line 66251 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66251
 
  friend class ::WinIfExists;
66252
 
  friend class ::WinImportHandler;
66253
 
  friend class ::WinMacros;
66254
 
  friend class ::CMatchSyntax;
66255
 
  friend class ::ExtGnu;
66256
 
  friend class ::ExtAC;
66257
 
  friend class ::ExtACBuilderCoupling;
66258
 
  friend class ::ExtACSyntaxCoupling;
66259
 
  friend class ::ExtACTree;
66260
 
  friend class ::ExtACKeywords;
66261
 
  friend class ::WinAsm;
66262
 
  friend class ::WinDeclSpecs;
66263
 
  friend class ::WinMemberExplSpec;
66264
 
  friend class ::WinTypeKeywords;
66265
 
  friend class ::PragmaOnceUnitState;
66266
 
  friend class ::PragmaOnce;
66267
 
  friend class ::CCExprResolve;
66268
 
  friend class ::CExprResolve;
66269
 
 
66270
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66271
 
 
66272
 
  CTree *sons[2]; // oper, expr
66273
 
 
66274
 
public:
66275
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
66276
 
  static const char *NodeId ();
66277
 
  const char *NodeName () const { return NodeId (); }
66278
 
  int Sons () const { return 2; }
66279
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
66280
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66281
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
66282
 
  }
66283
 
  CTree *Expr () const { return sons[1]; }
66284
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
66285
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
66286
 
   private:
66287
 
  typedef CT_DeleteExpr CCExprResolveExpr;
66288
 
 
66289
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66290
 
 public :
66291
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
66292
 
  typedef CT_DeleteExpr CExprResolveExpr;
66293
 
 
66294
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66295
 
 public :
66296
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66297
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66298
 
};
66299
 
 
66300
 
 
66301
 
#line 66302 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66302
 
} // closed Puma
66303
 
class WinIfExists;
66304
 
class WinImportHandler;
66305
 
class WinMacros;
66306
 
class CMatchSyntax;
66307
 
class ExtGnu;
66308
 
class ExtAC;
66309
 
class ExtACBuilderCoupling;
66310
 
class ExtACSyntaxCoupling;
66311
 
class ExtACTree;
66312
 
class ExtACKeywords;
66313
 
class WinAsm;
66314
 
class WinDeclSpecs;
66315
 
class WinMemberExplSpec;
66316
 
class WinTypeKeywords;
66317
 
class PragmaOnceUnitState;
66318
 
class PragmaOnce;
66319
 
class CCExprResolve;
66320
 
class CExprResolve;
66321
 
namespace Puma {
66322
 
 
66323
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66324
 
class CT_NewExpr : public CT_Expression, public CSemObject {
66325
 
#line 66326 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66326
 
  friend class ::WinIfExists;
66327
 
  friend class ::WinImportHandler;
66328
 
  friend class ::WinMacros;
66329
 
  friend class ::CMatchSyntax;
66330
 
  friend class ::ExtGnu;
66331
 
  friend class ::ExtAC;
66332
 
  friend class ::ExtACBuilderCoupling;
66333
 
  friend class ::ExtACSyntaxCoupling;
66334
 
  friend class ::ExtACTree;
66335
 
  friend class ::ExtACKeywords;
66336
 
  friend class ::WinAsm;
66337
 
  friend class ::WinDeclSpecs;
66338
 
  friend class ::WinMemberExplSpec;
66339
 
  friend class ::WinTypeKeywords;
66340
 
  friend class ::PragmaOnceUnitState;
66341
 
  friend class ::PragmaOnce;
66342
 
  friend class ::CCExprResolve;
66343
 
  friend class ::CExprResolve;
66344
 
 
66345
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66346
 
 
66347
 
  CTree *sons[6]; // oper, placement, open, type, close, init
66348
 
 
66349
 
public:
66350
 
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
66351
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
66352
 
  }
66353
 
  static const char *NodeId ();
66354
 
  const char *NodeName () const { return NodeId (); }
66355
 
  int Sons () const { return CTree::Sons (sons, 6); }
66356
 
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
66357
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66358
 
    CTree::ReplaceSon (sons, 6, old_son, new_son);
66359
 
  }
66360
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
66361
 
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
66362
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
66363
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
66364
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
66365
 
   private:
66366
 
  typedef CT_NewExpr CCExprResolveExpr;
66367
 
 
66368
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66369
 
 public :
66370
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
66371
 
  typedef CT_NewExpr CExprResolveExpr;
66372
 
 
66373
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66374
 
 public :
66375
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66376
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66377
 
};
66378
 
 
66379
 
 
66380
 
#line 66381 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66381
 
} // closed Puma
66382
 
class WinIfExists;
66383
 
class WinImportHandler;
66384
 
class WinMacros;
66385
 
class CMatchSyntax;
66386
 
class ExtGnu;
66387
 
class ExtAC;
66388
 
class ExtACBuilderCoupling;
66389
 
class ExtACSyntaxCoupling;
66390
 
class ExtACTree;
66391
 
class ExtACKeywords;
66392
 
class WinAsm;
66393
 
class WinDeclSpecs;
66394
 
class WinMemberExplSpec;
66395
 
class WinTypeKeywords;
66396
 
class PragmaOnceUnitState;
66397
 
class PragmaOnce;
66398
 
class CCExprResolve;
66399
 
class CExprResolve;
66400
 
namespace Puma {
66401
 
 
66402
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66403
 
class CT_IfThenExpr : public CT_Expression {
66404
 
#line 66405 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66405
 
  friend class ::WinIfExists;
66406
 
  friend class ::WinImportHandler;
66407
 
  friend class ::WinMacros;
66408
 
  friend class ::CMatchSyntax;
66409
 
  friend class ::ExtGnu;
66410
 
  friend class ::ExtAC;
66411
 
  friend class ::ExtACBuilderCoupling;
66412
 
  friend class ::ExtACSyntaxCoupling;
66413
 
  friend class ::ExtACTree;
66414
 
  friend class ::ExtACKeywords;
66415
 
  friend class ::WinAsm;
66416
 
  friend class ::WinDeclSpecs;
66417
 
  friend class ::WinMemberExplSpec;
66418
 
  friend class ::WinTypeKeywords;
66419
 
  friend class ::PragmaOnceUnitState;
66420
 
  friend class ::PragmaOnce;
66421
 
  friend class ::CCExprResolve;
66422
 
  friend class ::CExprResolve;
66423
 
 
66424
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66425
 
 
66426
 
  CTree *sons[5]; // cond, oper, left, colon, right
66427
 
 
66428
 
public:
66429
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
66430
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
66431
 
  }
66432
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
66433
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
66434
 
  }
66435
 
  static const char *NodeId ();
66436
 
  const char *NodeName () const { return NodeId (); }
66437
 
  int Sons () const { return CTree::Sons (sons, 5); }
66438
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
66439
 
  CTree *Condition () const { return sons[0]; }
66440
 
  CTree *LeftOperand () const { return sons[2]; }
66441
 
  CTree *RightOperand () const { return sons[4]; }
66442
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66443
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
66444
 
  }
66445
 
   private:
66446
 
  typedef CT_IfThenExpr CCExprResolveExpr;
66447
 
 
66448
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66449
 
 public :
66450
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
66451
 
  typedef CT_IfThenExpr CExprResolveExpr;
66452
 
 
66453
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66454
 
 public :
66455
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66456
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66457
 
};
66458
 
 
66459
 
 
66460
 
#line 66461 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66461
 
} // closed Puma
66462
 
class WinIfExists;
66463
 
class WinImportHandler;
66464
 
class WinMacros;
66465
 
class CMatchSyntax;
66466
 
class ExtGnu;
66467
 
class ExtAC;
66468
 
class ExtACBuilderCoupling;
66469
 
class ExtACSyntaxCoupling;
66470
 
class ExtACTree;
66471
 
class ExtACKeywords;
66472
 
class WinAsm;
66473
 
class WinDeclSpecs;
66474
 
class WinMemberExplSpec;
66475
 
class WinTypeKeywords;
66476
 
class PragmaOnceUnitState;
66477
 
class PragmaOnce;
66478
 
class CCExprResolve;
66479
 
class CExprResolve;
66480
 
namespace Puma {
66481
 
 
66482
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66483
 
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
66484
 
#line 66485 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66485
 
  friend class ::WinIfExists;
66486
 
  friend class ::WinImportHandler;
66487
 
  friend class ::WinMacros;
66488
 
  friend class ::CMatchSyntax;
66489
 
  friend class ::ExtGnu;
66490
 
  friend class ::ExtAC;
66491
 
  friend class ::ExtACBuilderCoupling;
66492
 
  friend class ::ExtACSyntaxCoupling;
66493
 
  friend class ::ExtACTree;
66494
 
  friend class ::ExtACKeywords;
66495
 
  friend class ::WinAsm;
66496
 
  friend class ::WinDeclSpecs;
66497
 
  friend class ::WinMemberExplSpec;
66498
 
  friend class ::WinTypeKeywords;
66499
 
  friend class ::PragmaOnceUnitState;
66500
 
  friend class ::PragmaOnce;
66501
 
  friend class ::CCExprResolve;
66502
 
  friend class ::CExprResolve;
66503
 
 
66504
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66505
 
 
66506
 
  CTree *sons[4]; // open, type, close, init
66507
 
 
66508
 
public:
66509
 
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
66510
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
66511
 
  }
66512
 
  static const char *NodeId ();
66513
 
  const char *NodeName () const { return NodeId (); }
66514
 
  int Sons () const { return 4; }
66515
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
66516
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66517
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
66518
 
  }
66519
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
66520
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
66521
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
66522
 
   private:
66523
 
  typedef CT_CmpdLiteral CCExprResolveExpr;
66524
 
 
66525
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66526
 
 public :
66527
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
66528
 
  typedef CT_CmpdLiteral CExprResolveExpr;
66529
 
 
66530
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66531
 
 public :
66532
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66533
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66534
 
};
66535
 
 
66536
 
 
66537
 
#line 66538 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66538
 
} // closed Puma
66539
 
class WinIfExists;
66540
 
class WinImportHandler;
66541
 
class WinMacros;
66542
 
class CMatchSyntax;
66543
 
class ExtGnu;
66544
 
class ExtAC;
66545
 
class ExtACBuilderCoupling;
66546
 
class ExtACSyntaxCoupling;
66547
 
class ExtACTree;
66548
 
class ExtACKeywords;
66549
 
class WinAsm;
66550
 
class WinDeclSpecs;
66551
 
class WinMemberExplSpec;
66552
 
class WinTypeKeywords;
66553
 
class PragmaOnceUnitState;
66554
 
class PragmaOnce;
66555
 
class CCExprResolve;
66556
 
class CExprResolve;
66557
 
namespace Puma {
66558
 
 
66559
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66560
 
class CT_ConstructExpr : public CT_Expression, public CSemObject {
66561
 
#line 66562 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66562
 
  friend class ::WinIfExists;
66563
 
  friend class ::WinImportHandler;
66564
 
  friend class ::WinMacros;
66565
 
  friend class ::CMatchSyntax;
66566
 
  friend class ::ExtGnu;
66567
 
  friend class ::ExtAC;
66568
 
  friend class ::ExtACBuilderCoupling;
66569
 
  friend class ::ExtACSyntaxCoupling;
66570
 
  friend class ::ExtACTree;
66571
 
  friend class ::ExtACKeywords;
66572
 
  friend class ::WinAsm;
66573
 
  friend class ::WinDeclSpecs;
66574
 
  friend class ::WinMemberExplSpec;
66575
 
  friend class ::WinTypeKeywords;
66576
 
  friend class ::PragmaOnceUnitState;
66577
 
  friend class ::PragmaOnce;
66578
 
  friend class ::CCExprResolve;
66579
 
  friend class ::CExprResolve;
66580
 
 
66581
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66582
 
 
66583
 
  CTree *sons[2]; // type, init
66584
 
 
66585
 
public:
66586
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
66587
 
  static const char *NodeId ();
66588
 
  const char *NodeName () const { return NodeId (); }
66589
 
  int Sons () const { return 2; }
66590
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
66591
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66592
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
66593
 
  }
66594
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
66595
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
66596
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
66597
 
   private:
66598
 
  typedef CT_ConstructExpr CCExprResolveExpr;
66599
 
 
66600
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66601
 
 public :
66602
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
66603
 
  typedef CT_ConstructExpr CExprResolveExpr;
66604
 
 
66605
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66606
 
 public :
66607
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66608
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66609
 
};
66610
 
 
66611
 
 
66612
 
#line 66613 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66613
 
} // closed Puma
66614
 
class WinIfExists;
66615
 
class WinImportHandler;
66616
 
class WinMacros;
66617
 
class CMatchSyntax;
66618
 
class ExtGnu;
66619
 
class ExtAC;
66620
 
class ExtACBuilderCoupling;
66621
 
class ExtACSyntaxCoupling;
66622
 
class ExtACTree;
66623
 
class ExtACKeywords;
66624
 
class WinAsm;
66625
 
class WinDeclSpecs;
66626
 
class WinMemberExplSpec;
66627
 
class WinTypeKeywords;
66628
 
class PragmaOnceUnitState;
66629
 
class PragmaOnce;
66630
 
class CCExprResolve;
66631
 
class CExprResolve;
66632
 
namespace Puma {
66633
 
 
66634
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66635
 
class CT_ThrowExpr : public CT_Expression {
66636
 
#line 66637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66637
 
  friend class ::WinIfExists;
66638
 
  friend class ::WinImportHandler;
66639
 
  friend class ::WinMacros;
66640
 
  friend class ::CMatchSyntax;
66641
 
  friend class ::ExtGnu;
66642
 
  friend class ::ExtAC;
66643
 
  friend class ::ExtACBuilderCoupling;
66644
 
  friend class ::ExtACSyntaxCoupling;
66645
 
  friend class ::ExtACTree;
66646
 
  friend class ::ExtACKeywords;
66647
 
  friend class ::WinAsm;
66648
 
  friend class ::WinDeclSpecs;
66649
 
  friend class ::WinMemberExplSpec;
66650
 
  friend class ::WinTypeKeywords;
66651
 
  friend class ::PragmaOnceUnitState;
66652
 
  friend class ::PragmaOnce;
66653
 
  friend class ::CCExprResolve;
66654
 
  friend class ::CExprResolve;
66655
 
 
66656
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66657
 
 
66658
 
  CTree *sons[2]; // throw, expr
66659
 
 
66660
 
public:
66661
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
66662
 
  static const char *NodeId ();
66663
 
  const char *NodeName () const { return NodeId (); }
66664
 
  int Sons () const { return CTree::Sons (sons, 2); }
66665
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
66666
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66667
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
66668
 
  }
66669
 
  CTree *Expr () const { return sons[1]; }
66670
 
   private:
66671
 
  typedef CT_ThrowExpr CCExprResolveExpr;
66672
 
 
66673
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66674
 
 public :
66675
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
66676
 
  typedef CT_ThrowExpr CExprResolveExpr;
66677
 
 
66678
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66679
 
 public :
66680
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66681
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66682
 
};
66683
 
 
66684
 
 
66685
 
#line 66686 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66686
 
} // closed Puma
66687
 
class WinIfExists;
66688
 
class WinImportHandler;
66689
 
class WinMacros;
66690
 
class CMatchSyntax;
66691
 
class ExtGnu;
66692
 
class ExtAC;
66693
 
class ExtACBuilderCoupling;
66694
 
class ExtACSyntaxCoupling;
66695
 
class ExtACTree;
66696
 
class ExtACKeywords;
66697
 
class WinAsm;
66698
 
class WinDeclSpecs;
66699
 
class WinMemberExplSpec;
66700
 
class WinTypeKeywords;
66701
 
class PragmaOnceUnitState;
66702
 
class PragmaOnce;
66703
 
class CCExprResolve;
66704
 
class CExprResolve;
66705
 
namespace Puma {
66706
 
 
66707
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66708
 
class CT_IndexExpr : public CT_Expression {
66709
 
#line 66710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66710
 
  friend class ::WinIfExists;
66711
 
  friend class ::WinImportHandler;
66712
 
  friend class ::WinMacros;
66713
 
  friend class ::CMatchSyntax;
66714
 
  friend class ::ExtGnu;
66715
 
  friend class ::ExtAC;
66716
 
  friend class ::ExtACBuilderCoupling;
66717
 
  friend class ::ExtACSyntaxCoupling;
66718
 
  friend class ::ExtACTree;
66719
 
  friend class ::ExtACKeywords;
66720
 
  friend class ::WinAsm;
66721
 
  friend class ::WinDeclSpecs;
66722
 
  friend class ::WinMemberExplSpec;
66723
 
  friend class ::WinTypeKeywords;
66724
 
  friend class ::PragmaOnceUnitState;
66725
 
  friend class ::PragmaOnce;
66726
 
  friend class ::CCExprResolve;
66727
 
  friend class ::CExprResolve;
66728
 
 
66729
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66730
 
 
66731
 
  CTree *sons[4]; // expr, open, index, close
66732
 
 
66733
 
public:
66734
 
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
66735
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
66736
 
  }
66737
 
  static const char *NodeId ();
66738
 
  const char *NodeName () const { return NodeId (); }
66739
 
  int Sons () const { return 4; }
66740
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
66741
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66742
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
66743
 
  }
66744
 
   private:
66745
 
  typedef CT_IndexExpr CCExprResolveExpr;
66746
 
 
66747
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66748
 
 public :
66749
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
66750
 
  typedef CT_IndexExpr CExprResolveExpr;
66751
 
 
66752
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66753
 
 public :
66754
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66755
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66756
 
};
66757
 
 
66758
 
 
66759
 
#line 66760 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66760
 
} // closed Puma
66761
 
class WinIfExists;
66762
 
class WinImportHandler;
66763
 
class WinMacros;
66764
 
class CMatchSyntax;
66765
 
class ExtGnu;
66766
 
class ExtAC;
66767
 
class ExtACBuilderCoupling;
66768
 
class ExtACSyntaxCoupling;
66769
 
class ExtACTree;
66770
 
class ExtACKeywords;
66771
 
class WinAsm;
66772
 
class WinDeclSpecs;
66773
 
class WinMemberExplSpec;
66774
 
class WinTypeKeywords;
66775
 
class PragmaOnceUnitState;
66776
 
class PragmaOnce;
66777
 
class CCExprResolve;
66778
 
class CExprResolve;
66779
 
namespace Puma {
66780
 
 
66781
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66782
 
class CT_CallExpr : public CT_Expression, public CSemObject {
66783
 
#line 66784 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66784
 
  friend class ::WinIfExists;
66785
 
  friend class ::WinImportHandler;
66786
 
  friend class ::WinMacros;
66787
 
  friend class ::CMatchSyntax;
66788
 
  friend class ::ExtGnu;
66789
 
  friend class ::ExtAC;
66790
 
  friend class ::ExtACBuilderCoupling;
66791
 
  friend class ::ExtACSyntaxCoupling;
66792
 
  friend class ::ExtACTree;
66793
 
  friend class ::ExtACKeywords;
66794
 
  friend class ::WinAsm;
66795
 
  friend class ::WinDeclSpecs;
66796
 
  friend class ::WinMemberExplSpec;
66797
 
  friend class ::WinTypeKeywords;
66798
 
  friend class ::PragmaOnceUnitState;
66799
 
  friend class ::PragmaOnce;
66800
 
  friend class ::CCExprResolve;
66801
 
  friend class ::CExprResolve;
66802
 
 
66803
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66804
 
 
66805
 
  CTree *sons[2]; // expr, args
66806
 
 
66807
 
public:
66808
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
66809
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
66810
 
  static const char *NodeId ();
66811
 
  const char *NodeName () const { return NodeId (); }
66812
 
  int Sons () const { return CTree::Sons (sons, 2); }
66813
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
66814
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66815
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
66816
 
  }
66817
 
  CTree *Expr () const { return sons[0]; }
66818
 
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
66819
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
66820
 
   private:
66821
 
  typedef CT_CallExpr CCExprResolveExpr;
66822
 
 
66823
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66824
 
 public :
66825
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
66826
 
  typedef CT_CallExpr CExprResolveExpr;
66827
 
 
66828
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66829
 
 public :
66830
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66831
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66832
 
};
66833
 
 
66834
 
 
66835
 
#line 66836 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66836
 
} // closed Puma
66837
 
class WinIfExists;
66838
 
class WinImportHandler;
66839
 
class WinMacros;
66840
 
class CMatchSyntax;
66841
 
class ExtGnu;
66842
 
class ExtAC;
66843
 
class ExtACBuilderCoupling;
66844
 
class ExtACSyntaxCoupling;
66845
 
class ExtACTree;
66846
 
class ExtACKeywords;
66847
 
class WinAsm;
66848
 
class WinDeclSpecs;
66849
 
class WinMemberExplSpec;
66850
 
class WinTypeKeywords;
66851
 
class PragmaOnceUnitState;
66852
 
class PragmaOnce;
66853
 
class CCExprResolve;
66854
 
class CExprResolve;
66855
 
namespace Puma {
66856
 
 
66857
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66858
 
class CT_CastExpr : public CT_Expression {
66859
 
#line 66860 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66860
 
  friend class ::WinIfExists;
66861
 
  friend class ::WinImportHandler;
66862
 
  friend class ::WinMacros;
66863
 
  friend class ::CMatchSyntax;
66864
 
  friend class ::ExtGnu;
66865
 
  friend class ::ExtAC;
66866
 
  friend class ::ExtACBuilderCoupling;
66867
 
  friend class ::ExtACSyntaxCoupling;
66868
 
  friend class ::ExtACTree;
66869
 
  friend class ::ExtACKeywords;
66870
 
  friend class ::WinAsm;
66871
 
  friend class ::WinDeclSpecs;
66872
 
  friend class ::WinMemberExplSpec;
66873
 
  friend class ::WinTypeKeywords;
66874
 
  friend class ::PragmaOnceUnitState;
66875
 
  friend class ::PragmaOnce;
66876
 
  friend class ::CCExprResolve;
66877
 
  friend class ::CExprResolve;
66878
 
 
66879
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66880
 
 
66881
 
  CTree *sons[4]; // open, type, close, expr
66882
 
 
66883
 
public:
66884
 
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
66885
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
66886
 
  }
66887
 
  static const char *NodeId ();
66888
 
  const char *NodeName () const { return NodeId (); }
66889
 
  int Sons () const { return 4; }
66890
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
66891
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66892
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
66893
 
  }
66894
 
  CTree *Expr () const { return sons[3]; }
66895
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
66896
 
   private:
66897
 
  typedef CT_CastExpr CCExprResolveExpr;
66898
 
 
66899
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66900
 
 public :
66901
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
66902
 
  typedef CT_CastExpr CExprResolveExpr;
66903
 
 
66904
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66905
 
 public :
66906
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66907
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66908
 
};
66909
 
 
66910
 
 
66911
 
#line 66912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66912
 
} // closed Puma
66913
 
class WinIfExists;
66914
 
class WinImportHandler;
66915
 
class WinMacros;
66916
 
class CMatchSyntax;
66917
 
class ExtGnu;
66918
 
class ExtAC;
66919
 
class ExtACBuilderCoupling;
66920
 
class ExtACSyntaxCoupling;
66921
 
class ExtACTree;
66922
 
class ExtACKeywords;
66923
 
class WinAsm;
66924
 
class WinDeclSpecs;
66925
 
class WinMemberExplSpec;
66926
 
class WinTypeKeywords;
66927
 
class PragmaOnceUnitState;
66928
 
class PragmaOnce;
66929
 
class CCExprResolve;
66930
 
class CExprResolve;
66931
 
namespace Puma {
66932
 
 
66933
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66934
 
class CT_StaticCast : public CT_Expression {
66935
 
#line 66936 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66936
 
  friend class ::WinIfExists;
66937
 
  friend class ::WinImportHandler;
66938
 
  friend class ::WinMacros;
66939
 
  friend class ::CMatchSyntax;
66940
 
  friend class ::ExtGnu;
66941
 
  friend class ::ExtAC;
66942
 
  friend class ::ExtACBuilderCoupling;
66943
 
  friend class ::ExtACSyntaxCoupling;
66944
 
  friend class ::ExtACTree;
66945
 
  friend class ::ExtACKeywords;
66946
 
  friend class ::WinAsm;
66947
 
  friend class ::WinDeclSpecs;
66948
 
  friend class ::WinMemberExplSpec;
66949
 
  friend class ::WinTypeKeywords;
66950
 
  friend class ::PragmaOnceUnitState;
66951
 
  friend class ::PragmaOnce;
66952
 
  friend class ::CCExprResolve;
66953
 
  friend class ::CExprResolve;
66954
 
 
66955
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66956
 
 
66957
 
  CTree *sons[5]; // cast, open, type, close, expr
66958
 
 
66959
 
public:
66960
 
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
66961
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
66962
 
  }
66963
 
  static const char *NodeId ();
66964
 
  const char *NodeName () const { return NodeId (); }
66965
 
  int Sons () const { return 5; }
66966
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
66967
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66968
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
66969
 
  }
66970
 
  CTree *Expr () const { return sons[4]; }
66971
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
66972
 
   private:
66973
 
  typedef CT_StaticCast CCExprResolveExpr;
66974
 
 
66975
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66976
 
 public :
66977
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
66978
 
  typedef CT_StaticCast CExprResolveExpr;
66979
 
 
66980
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66981
 
 public :
66982
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66983
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66984
 
};
66985
 
 
66986
 
 
66987
 
#line 66988 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
66988
 
} // closed Puma
66989
 
class WinIfExists;
66990
 
class WinImportHandler;
66991
 
class WinMacros;
66992
 
class CMatchSyntax;
66993
 
class ExtGnu;
66994
 
class ExtAC;
66995
 
class ExtACBuilderCoupling;
66996
 
class ExtACSyntaxCoupling;
66997
 
class ExtACTree;
66998
 
class ExtACKeywords;
66999
 
class WinAsm;
67000
 
class WinDeclSpecs;
67001
 
class WinMemberExplSpec;
67002
 
class WinTypeKeywords;
67003
 
class PragmaOnceUnitState;
67004
 
class PragmaOnce;
67005
 
class CCExprResolve;
67006
 
class CExprResolve;
67007
 
namespace Puma {
67008
 
 
67009
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67010
 
class CT_ConstCast : public CT_StaticCast {
67011
 
#line 67012 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67012
 
  friend class ::WinIfExists;
67013
 
  friend class ::WinImportHandler;
67014
 
  friend class ::WinMacros;
67015
 
  friend class ::CMatchSyntax;
67016
 
  friend class ::ExtGnu;
67017
 
  friend class ::ExtAC;
67018
 
  friend class ::ExtACBuilderCoupling;
67019
 
  friend class ::ExtACSyntaxCoupling;
67020
 
  friend class ::ExtACTree;
67021
 
  friend class ::ExtACKeywords;
67022
 
  friend class ::WinAsm;
67023
 
  friend class ::WinDeclSpecs;
67024
 
  friend class ::WinMemberExplSpec;
67025
 
  friend class ::WinTypeKeywords;
67026
 
  friend class ::PragmaOnceUnitState;
67027
 
  friend class ::PragmaOnce;
67028
 
  friend class ::CCExprResolve;
67029
 
  friend class ::CExprResolve;
67030
 
 
67031
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67032
 
 
67033
 
public:
67034
 
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
67035
 
    CT_StaticCast (cst, o, t, c, e) {}
67036
 
  static const char *NodeId ();
67037
 
  const char *NodeName () const { return NodeId (); }
67038
 
   private:
67039
 
  typedef CT_ConstCast CCExprResolveExpr;
67040
 
 
67041
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67042
 
 public :
67043
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
67044
 
  typedef CT_ConstCast CExprResolveExpr;
67045
 
 
67046
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67047
 
 public :
67048
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67049
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67050
 
};
67051
 
 
67052
 
 
67053
 
#line 67054 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67054
 
} // closed Puma
67055
 
class WinIfExists;
67056
 
class WinImportHandler;
67057
 
class WinMacros;
67058
 
class CMatchSyntax;
67059
 
class ExtGnu;
67060
 
class ExtAC;
67061
 
class ExtACBuilderCoupling;
67062
 
class ExtACSyntaxCoupling;
67063
 
class ExtACTree;
67064
 
class ExtACKeywords;
67065
 
class WinAsm;
67066
 
class WinDeclSpecs;
67067
 
class WinMemberExplSpec;
67068
 
class WinTypeKeywords;
67069
 
class PragmaOnceUnitState;
67070
 
class PragmaOnce;
67071
 
class CCExprResolve;
67072
 
class CExprResolve;
67073
 
namespace Puma {
67074
 
 
67075
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67076
 
class CT_ReintCast : public CT_StaticCast {
67077
 
#line 67078 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67078
 
  friend class ::WinIfExists;
67079
 
  friend class ::WinImportHandler;
67080
 
  friend class ::WinMacros;
67081
 
  friend class ::CMatchSyntax;
67082
 
  friend class ::ExtGnu;
67083
 
  friend class ::ExtAC;
67084
 
  friend class ::ExtACBuilderCoupling;
67085
 
  friend class ::ExtACSyntaxCoupling;
67086
 
  friend class ::ExtACTree;
67087
 
  friend class ::ExtACKeywords;
67088
 
  friend class ::WinAsm;
67089
 
  friend class ::WinDeclSpecs;
67090
 
  friend class ::WinMemberExplSpec;
67091
 
  friend class ::WinTypeKeywords;
67092
 
  friend class ::PragmaOnceUnitState;
67093
 
  friend class ::PragmaOnce;
67094
 
  friend class ::CCExprResolve;
67095
 
  friend class ::CExprResolve;
67096
 
 
67097
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67098
 
 
67099
 
public:
67100
 
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
67101
 
    CT_StaticCast (cst, o, t, c, e) {}
67102
 
  static const char *NodeId ();
67103
 
  const char *NodeName () const { return NodeId (); }
67104
 
   private:
67105
 
  typedef CT_ReintCast CCExprResolveExpr;
67106
 
 
67107
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67108
 
 public :
67109
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
67110
 
  typedef CT_ReintCast CExprResolveExpr;
67111
 
 
67112
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67113
 
 public :
67114
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67115
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67116
 
};
67117
 
 
67118
 
 
67119
 
#line 67120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67120
 
} // closed Puma
67121
 
class WinIfExists;
67122
 
class WinImportHandler;
67123
 
class WinMacros;
67124
 
class CMatchSyntax;
67125
 
class ExtGnu;
67126
 
class ExtAC;
67127
 
class ExtACBuilderCoupling;
67128
 
class ExtACSyntaxCoupling;
67129
 
class ExtACTree;
67130
 
class ExtACKeywords;
67131
 
class WinAsm;
67132
 
class WinDeclSpecs;
67133
 
class WinMemberExplSpec;
67134
 
class WinTypeKeywords;
67135
 
class PragmaOnceUnitState;
67136
 
class PragmaOnce;
67137
 
class CCExprResolve;
67138
 
class CExprResolve;
67139
 
namespace Puma {
67140
 
 
67141
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67142
 
class CT_DynamicCast : public CT_StaticCast {
67143
 
#line 67144 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67144
 
  friend class ::WinIfExists;
67145
 
  friend class ::WinImportHandler;
67146
 
  friend class ::WinMacros;
67147
 
  friend class ::CMatchSyntax;
67148
 
  friend class ::ExtGnu;
67149
 
  friend class ::ExtAC;
67150
 
  friend class ::ExtACBuilderCoupling;
67151
 
  friend class ::ExtACSyntaxCoupling;
67152
 
  friend class ::ExtACTree;
67153
 
  friend class ::ExtACKeywords;
67154
 
  friend class ::WinAsm;
67155
 
  friend class ::WinDeclSpecs;
67156
 
  friend class ::WinMemberExplSpec;
67157
 
  friend class ::WinTypeKeywords;
67158
 
  friend class ::PragmaOnceUnitState;
67159
 
  friend class ::PragmaOnce;
67160
 
  friend class ::CCExprResolve;
67161
 
  friend class ::CExprResolve;
67162
 
 
67163
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67164
 
 
67165
 
public:
67166
 
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
67167
 
    CT_StaticCast (cst, o, t, c, e) {}
67168
 
  static const char *NodeId ();
67169
 
  const char *NodeName () const { return NodeId (); }
67170
 
   private:
67171
 
  typedef CT_DynamicCast CCExprResolveExpr;
67172
 
 
67173
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67174
 
 public :
67175
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
67176
 
  typedef CT_DynamicCast CExprResolveExpr;
67177
 
 
67178
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67179
 
 public :
67180
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67181
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67182
 
};
67183
 
 
67184
 
 
67185
 
#line 67186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67186
 
} // closed Puma
67187
 
class WinIfExists;
67188
 
class WinImportHandler;
67189
 
class WinMacros;
67190
 
class CMatchSyntax;
67191
 
class ExtGnu;
67192
 
class ExtAC;
67193
 
class ExtACBuilderCoupling;
67194
 
class ExtACSyntaxCoupling;
67195
 
class ExtACTree;
67196
 
class ExtACKeywords;
67197
 
class WinAsm;
67198
 
class WinDeclSpecs;
67199
 
class WinMemberExplSpec;
67200
 
class WinTypeKeywords;
67201
 
class PragmaOnceUnitState;
67202
 
class PragmaOnce;
67203
 
class CCExprResolve;
67204
 
class CExprResolve;
67205
 
namespace Puma {
67206
 
 
67207
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67208
 
class CT_ImplicitCast : public CT_Expression {
67209
 
#line 67210 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67210
 
  friend class ::WinIfExists;
67211
 
  friend class ::WinImportHandler;
67212
 
  friend class ::WinMacros;
67213
 
  friend class ::CMatchSyntax;
67214
 
  friend class ::ExtGnu;
67215
 
  friend class ::ExtAC;
67216
 
  friend class ::ExtACBuilderCoupling;
67217
 
  friend class ::ExtACSyntaxCoupling;
67218
 
  friend class ::ExtACTree;
67219
 
  friend class ::ExtACKeywords;
67220
 
  friend class ::WinAsm;
67221
 
  friend class ::WinDeclSpecs;
67222
 
  friend class ::WinMemberExplSpec;
67223
 
  friend class ::WinTypeKeywords;
67224
 
  friend class ::PragmaOnceUnitState;
67225
 
  friend class ::PragmaOnce;
67226
 
  friend class ::CCExprResolve;
67227
 
  friend class ::CExprResolve;
67228
 
 
67229
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67230
 
 
67231
 
  CTree *_expr; // casted expression
67232
 
 
67233
 
public:
67234
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
67235
 
  static const char *NodeId ();
67236
 
  const char *NodeName () const { return NodeId (); }
67237
 
  int Sons () const { return 1; }
67238
 
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
67239
 
  CTree *Expr () const { return _expr; }
67240
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
67241
 
   { if (old_son == _expr) _expr = new_son; }
67242
 
   private:
67243
 
  typedef CT_ImplicitCast CCExprResolveExpr;
67244
 
 
67245
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67246
 
 public :
67247
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
67248
 
  typedef CT_ImplicitCast CExprResolveExpr;
67249
 
 
67250
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67251
 
 public :
67252
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67253
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67254
 
};
67255
 
 
67256
 
 
67257
 
#line 67258 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67258
 
} // closed Puma
67259
 
class WinIfExists;
67260
 
class WinImportHandler;
67261
 
class WinMacros;
67262
 
class CMatchSyntax;
67263
 
class ExtGnu;
67264
 
class ExtAC;
67265
 
class ExtACBuilderCoupling;
67266
 
class ExtACSyntaxCoupling;
67267
 
class ExtACTree;
67268
 
class ExtACKeywords;
67269
 
class WinAsm;
67270
 
class WinDeclSpecs;
67271
 
class WinMemberExplSpec;
67272
 
class WinTypeKeywords;
67273
 
class PragmaOnceUnitState;
67274
 
class PragmaOnce;
67275
 
class CCExprResolve;
67276
 
class CExprResolve;
67277
 
namespace Puma {
67278
 
 
67279
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67280
 
class CT_TypeidExpr : public CT_Expression {
67281
 
#line 67282 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67282
 
  friend class ::WinIfExists;
67283
 
  friend class ::WinImportHandler;
67284
 
  friend class ::WinMacros;
67285
 
  friend class ::CMatchSyntax;
67286
 
  friend class ::ExtGnu;
67287
 
  friend class ::ExtAC;
67288
 
  friend class ::ExtACBuilderCoupling;
67289
 
  friend class ::ExtACSyntaxCoupling;
67290
 
  friend class ::ExtACTree;
67291
 
  friend class ::ExtACKeywords;
67292
 
  friend class ::WinAsm;
67293
 
  friend class ::WinDeclSpecs;
67294
 
  friend class ::WinMemberExplSpec;
67295
 
  friend class ::WinTypeKeywords;
67296
 
  friend class ::PragmaOnceUnitState;
67297
 
  friend class ::PragmaOnce;
67298
 
  friend class ::CCExprResolve;
67299
 
  friend class ::CExprResolve;
67300
 
 
67301
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67302
 
 
67303
 
  CTree *sons[4]; // typeid, open, type_id/expr, close
67304
 
 
67305
 
public:
67306
 
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
67307
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
67308
 
  }
67309
 
  static const char *NodeId ();
67310
 
  const char *NodeName () const { return NodeId (); }
67311
 
  int Sons () const { return 4; }
67312
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
67313
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67314
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
67315
 
  }
67316
 
  CTree *Arg () const { return sons[2]; }
67317
 
   private:
67318
 
  typedef CT_TypeidExpr CCExprResolveExpr;
67319
 
 
67320
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67321
 
 public :
67322
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
67323
 
  typedef CT_TypeidExpr CExprResolveExpr;
67324
 
 
67325
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67326
 
 public :
67327
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67328
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67329
 
};
67330
 
 
67331
 
 
67332
 
#line 67333 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67333
 
} // closed Puma
67334
 
class WinIfExists;
67335
 
class WinImportHandler;
67336
 
class WinMacros;
67337
 
class CMatchSyntax;
67338
 
class ExtGnu;
67339
 
class ExtAC;
67340
 
class ExtACBuilderCoupling;
67341
 
class ExtACSyntaxCoupling;
67342
 
class ExtACTree;
67343
 
class ExtACKeywords;
67344
 
class WinAsm;
67345
 
class WinDeclSpecs;
67346
 
class WinMemberExplSpec;
67347
 
class WinTypeKeywords;
67348
 
class PragmaOnceUnitState;
67349
 
class PragmaOnce;
67350
 
class CCExprResolve;
67351
 
class CExprResolve;
67352
 
namespace Puma {
67353
 
 
67354
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67355
 
class CT_SizeofExpr : public CT_Expression {
67356
 
#line 67357 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67357
 
  friend class ::WinIfExists;
67358
 
  friend class ::WinImportHandler;
67359
 
  friend class ::WinMacros;
67360
 
  friend class ::CMatchSyntax;
67361
 
  friend class ::ExtGnu;
67362
 
  friend class ::ExtAC;
67363
 
  friend class ::ExtACBuilderCoupling;
67364
 
  friend class ::ExtACSyntaxCoupling;
67365
 
  friend class ::ExtACTree;
67366
 
  friend class ::ExtACKeywords;
67367
 
  friend class ::WinAsm;
67368
 
  friend class ::WinDeclSpecs;
67369
 
  friend class ::WinMemberExplSpec;
67370
 
  friend class ::WinTypeKeywords;
67371
 
  friend class ::PragmaOnceUnitState;
67372
 
  friend class ::PragmaOnce;
67373
 
  friend class ::CCExprResolve;
67374
 
  friend class ::CExprResolve;
67375
 
 
67376
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67377
 
 
67378
 
  CTree *sons[5]; // key, open, type, close, expr
67379
 
 
67380
 
public:
67381
 
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
67382
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
67383
 
  }
67384
 
  CT_SizeofExpr (CTree *k, CTree *e) {
67385
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
67386
 
  }
67387
 
  static const char *NodeId ();
67388
 
  const char *NodeName () const { return NodeId (); }
67389
 
  int Sons () const { return CTree::Sons (sons, 5); }
67390
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
67391
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67392
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
67393
 
  }
67394
 
  CTree *Expr () const { return sons[4]; }
67395
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
67396
 
   private:
67397
 
  typedef CT_SizeofExpr CCExprResolveExpr;
67398
 
 
67399
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67400
 
 public :
67401
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
67402
 
  typedef CT_SizeofExpr CExprResolveExpr;
67403
 
 
67404
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67405
 
 public :
67406
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67407
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67408
 
};
67409
 
 
67410
 
 
67411
 
#line 67412 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67412
 
} // closed Puma
67413
 
class WinIfExists;
67414
 
class WinImportHandler;
67415
 
class WinMacros;
67416
 
class CMatchSyntax;
67417
 
class ExtGnu;
67418
 
class ExtAC;
67419
 
class ExtACBuilderCoupling;
67420
 
class ExtACSyntaxCoupling;
67421
 
class ExtACTree;
67422
 
class ExtACKeywords;
67423
 
class WinAsm;
67424
 
class WinDeclSpecs;
67425
 
class WinMemberExplSpec;
67426
 
class WinTypeKeywords;
67427
 
class PragmaOnceUnitState;
67428
 
class PragmaOnce;
67429
 
class CCExprResolve;
67430
 
class CExprResolve;
67431
 
namespace Puma {
67432
 
 
67433
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67434
 
class CT_IndexDesignator : public CT_Expression {
67435
 
#line 67436 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67436
 
  friend class ::WinIfExists;
67437
 
  friend class ::WinImportHandler;
67438
 
  friend class ::WinMacros;
67439
 
  friend class ::CMatchSyntax;
67440
 
  friend class ::ExtGnu;
67441
 
  friend class ::ExtAC;
67442
 
  friend class ::ExtACBuilderCoupling;
67443
 
  friend class ::ExtACSyntaxCoupling;
67444
 
  friend class ::ExtACTree;
67445
 
  friend class ::ExtACKeywords;
67446
 
  friend class ::WinAsm;
67447
 
  friend class ::WinDeclSpecs;
67448
 
  friend class ::WinMemberExplSpec;
67449
 
  friend class ::WinTypeKeywords;
67450
 
  friend class ::PragmaOnceUnitState;
67451
 
  friend class ::PragmaOnce;
67452
 
  friend class ::CCExprResolve;
67453
 
  friend class ::CExprResolve;
67454
 
 
67455
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67456
 
 
67457
 
  CTree *sons[3]; // open, index, close
67458
 
 
67459
 
public:
67460
 
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
67461
 
    sons[0] = o; sons[1] = i; sons[2] = c;
67462
 
  }
67463
 
  static const char *NodeId ();
67464
 
  const char *NodeName () const { return NodeId (); }
67465
 
  int Sons () const { return 3; }
67466
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
67467
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67468
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
67469
 
  }
67470
 
   private:
67471
 
  typedef CT_IndexDesignator CCExprResolveExpr;
67472
 
 
67473
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67474
 
 public :
67475
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
67476
 
  typedef CT_IndexDesignator CExprResolveExpr;
67477
 
 
67478
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67479
 
 public :
67480
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67481
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67482
 
};
67483
 
 
67484
 
 
67485
 
#line 67486 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67486
 
} // closed Puma
67487
 
class WinIfExists;
67488
 
class WinImportHandler;
67489
 
class WinMacros;
67490
 
class CMatchSyntax;
67491
 
class ExtGnu;
67492
 
class ExtAC;
67493
 
class ExtACBuilderCoupling;
67494
 
class ExtACSyntaxCoupling;
67495
 
class ExtACTree;
67496
 
class ExtACKeywords;
67497
 
class WinAsm;
67498
 
class WinDeclSpecs;
67499
 
class WinMemberExplSpec;
67500
 
class WinTypeKeywords;
67501
 
class PragmaOnceUnitState;
67502
 
class PragmaOnce;
67503
 
class CCExprResolve;
67504
 
class CExprResolve;
67505
 
namespace Puma {
67506
 
 
67507
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67508
 
class CT_MembDesignator : public CT_Expression {
67509
 
#line 67510 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67510
 
  friend class ::WinIfExists;
67511
 
  friend class ::WinImportHandler;
67512
 
  friend class ::WinMacros;
67513
 
  friend class ::CMatchSyntax;
67514
 
  friend class ::ExtGnu;
67515
 
  friend class ::ExtAC;
67516
 
  friend class ::ExtACBuilderCoupling;
67517
 
  friend class ::ExtACSyntaxCoupling;
67518
 
  friend class ::ExtACTree;
67519
 
  friend class ::ExtACKeywords;
67520
 
  friend class ::WinAsm;
67521
 
  friend class ::WinDeclSpecs;
67522
 
  friend class ::WinMemberExplSpec;
67523
 
  friend class ::WinTypeKeywords;
67524
 
  friend class ::PragmaOnceUnitState;
67525
 
  friend class ::PragmaOnce;
67526
 
  friend class ::CCExprResolve;
67527
 
  friend class ::CExprResolve;
67528
 
 
67529
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67530
 
 
67531
 
  CTree *sons[2]; // dot, member
67532
 
 
67533
 
public:
67534
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
67535
 
  static const char *NodeId ();
67536
 
  const char *NodeName () const { return NodeId (); }
67537
 
  int Sons () const { return 2; }
67538
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
67539
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67540
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
67541
 
  }
67542
 
   private:
67543
 
  typedef CT_MembDesignator CCExprResolveExpr;
67544
 
 
67545
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67546
 
 public :
67547
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
67548
 
  typedef CT_MembDesignator CExprResolveExpr;
67549
 
 
67550
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67551
 
 public :
67552
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67553
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67554
 
};
67555
 
 
67556
 
 
67557
 
#line 67558 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67558
 
} // closed Puma
67559
 
class WinIfExists;
67560
 
class WinImportHandler;
67561
 
class WinMacros;
67562
 
class CMatchSyntax;
67563
 
class ExtGnu;
67564
 
class ExtAC;
67565
 
class ExtACBuilderCoupling;
67566
 
class ExtACSyntaxCoupling;
67567
 
class ExtACTree;
67568
 
class ExtACKeywords;
67569
 
class WinAsm;
67570
 
class WinDeclSpecs;
67571
 
class WinMemberExplSpec;
67572
 
class WinTypeKeywords;
67573
 
class PragmaOnceUnitState;
67574
 
class PragmaOnce;
67575
 
class CCExprResolve;
67576
 
class CExprResolve;
67577
 
namespace Puma {
67578
 
 
67579
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67580
 
class CT_DesignatorSeq : public CT_List, public CSemValue {
67581
 
#line 67582 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67582
 
  friend class ::WinIfExists;
67583
 
  friend class ::WinImportHandler;
67584
 
  friend class ::WinMacros;
67585
 
  friend class ::CMatchSyntax;
67586
 
  friend class ::ExtGnu;
67587
 
  friend class ::ExtAC;
67588
 
  friend class ::ExtACBuilderCoupling;
67589
 
  friend class ::ExtACSyntaxCoupling;
67590
 
  friend class ::ExtACTree;
67591
 
  friend class ::ExtACKeywords;
67592
 
  friend class ::WinAsm;
67593
 
  friend class ::WinDeclSpecs;
67594
 
  friend class ::WinMemberExplSpec;
67595
 
  friend class ::WinTypeKeywords;
67596
 
  friend class ::PragmaOnceUnitState;
67597
 
  friend class ::PragmaOnce;
67598
 
  friend class ::CCExprResolve;
67599
 
  friend class ::CExprResolve;
67600
 
 
67601
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67602
 
 
67603
 
public:
67604
 
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
67605
 
  static const char *NodeId ();
67606
 
  const char *NodeName () const { return NodeId (); }
67607
 
 
67608
 
  CTypeInfo *Type () const { return type; }
67609
 
  CExprValue *Value () const { return value; }
67610
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
67611
 
};
67612
 
 
67613
 
/*****************************************************************************/
67614
 
/*                                                                           */
67615
 
/*                         Declaration specifiers                            */
67616
 
/*                                                                           */
67617
 
/*****************************************************************************/
67618
 
 
67619
 
 
67620
 
#line 67621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67621
 
} // closed Puma
67622
 
class WinIfExists;
67623
 
class WinImportHandler;
67624
 
class WinMacros;
67625
 
class CMatchSyntax;
67626
 
class ExtGnu;
67627
 
class ExtAC;
67628
 
class ExtACBuilderCoupling;
67629
 
class ExtACSyntaxCoupling;
67630
 
class ExtACTree;
67631
 
class ExtACKeywords;
67632
 
class WinAsm;
67633
 
class WinDeclSpecs;
67634
 
class WinMemberExplSpec;
67635
 
class WinTypeKeywords;
67636
 
class PragmaOnceUnitState;
67637
 
class PragmaOnce;
67638
 
class CCExprResolve;
67639
 
class CExprResolve;
67640
 
namespace Puma {
67641
 
 
67642
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67643
 
class CT_DeclSpec : public CTree {
67644
 
#line 67645 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67645
 
  friend class ::WinIfExists;
67646
 
  friend class ::WinImportHandler;
67647
 
  friend class ::WinMacros;
67648
 
  friend class ::CMatchSyntax;
67649
 
  friend class ::ExtGnu;
67650
 
  friend class ::ExtAC;
67651
 
  friend class ::ExtACBuilderCoupling;
67652
 
  friend class ::ExtACSyntaxCoupling;
67653
 
  friend class ::ExtACTree;
67654
 
  friend class ::ExtACKeywords;
67655
 
  friend class ::WinAsm;
67656
 
  friend class ::WinDeclSpecs;
67657
 
  friend class ::WinMemberExplSpec;
67658
 
  friend class ::WinTypeKeywords;
67659
 
  friend class ::PragmaOnceUnitState;
67660
 
  friend class ::PragmaOnce;
67661
 
  friend class ::CCExprResolve;
67662
 
  friend class ::CExprResolve;
67663
 
 
67664
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67665
 
 
67666
 
protected:
67667
 
  CT_DeclSpec () {}
67668
 
};
67669
 
 
67670
 
 
67671
 
#line 67672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67672
 
} // closed Puma
67673
 
class WinIfExists;
67674
 
class WinImportHandler;
67675
 
class WinMacros;
67676
 
class CMatchSyntax;
67677
 
class ExtGnu;
67678
 
class ExtAC;
67679
 
class ExtACBuilderCoupling;
67680
 
class ExtACSyntaxCoupling;
67681
 
class ExtACTree;
67682
 
class ExtACKeywords;
67683
 
class WinAsm;
67684
 
class WinDeclSpecs;
67685
 
class WinMemberExplSpec;
67686
 
class WinTypeKeywords;
67687
 
class PragmaOnceUnitState;
67688
 
class PragmaOnce;
67689
 
class CCExprResolve;
67690
 
class CExprResolve;
67691
 
namespace Puma {
67692
 
 
67693
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67694
 
class CT_PrimDeclSpec : public CT_DeclSpec {
67695
 
#line 67696 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67696
 
  friend class ::WinIfExists;
67697
 
  friend class ::WinImportHandler;
67698
 
  friend class ::WinMacros;
67699
 
  friend class ::CMatchSyntax;
67700
 
  friend class ::ExtGnu;
67701
 
  friend class ::ExtAC;
67702
 
  friend class ::ExtACBuilderCoupling;
67703
 
  friend class ::ExtACSyntaxCoupling;
67704
 
  friend class ::ExtACTree;
67705
 
  friend class ::ExtACKeywords;
67706
 
  friend class ::WinAsm;
67707
 
  friend class ::WinDeclSpecs;
67708
 
  friend class ::WinMemberExplSpec;
67709
 
  friend class ::WinTypeKeywords;
67710
 
  friend class ::PragmaOnceUnitState;
67711
 
  friend class ::PragmaOnce;
67712
 
  friend class ::CCExprResolve;
67713
 
  friend class ::CExprResolve;
67714
 
 
67715
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67716
 
 
67717
 
public:
67718
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
67719
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
67720
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
67721
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
67722
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
67723
 
              // AspectC++ specific type specifier
67724
 
              PDS_UNKNOWN_T,
67725
 
              // Win specific declaration specifiers
67726
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
67727
 
              PDS_UNKNOWN, PDS_NUM };
67728
 
 
67729
 
private:
67730
 
  Type _type;
67731
 
  CT_Token *_token;
67732
 
 
67733
 
  void determine_type ();
67734
 
 
67735
 
public:
67736
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
67737
 
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
67738
 
  static const char *NodeId ();
67739
 
  const char *NodeName () const { return NodeId (); }
67740
 
  int Sons () const { return _token ? 1 : 0; }
67741
 
  CTree *Son (int n) const 
67742
 
   { return (n == 0) ? _token : (CTree*)0; }
67743
 
  const char *SpecText () const 
67744
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
67745
 
  Type SpecType () const { return _type; }
67746
 
  static const int NumTypes = PDS_NUM;
67747
 
};
67748
 
 
67749
 
 
67750
 
#line 67751 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67751
 
} // closed Puma
67752
 
class WinIfExists;
67753
 
class WinImportHandler;
67754
 
class WinMacros;
67755
 
class CMatchSyntax;
67756
 
class ExtGnu;
67757
 
class ExtAC;
67758
 
class ExtACBuilderCoupling;
67759
 
class ExtACSyntaxCoupling;
67760
 
class ExtACTree;
67761
 
class ExtACKeywords;
67762
 
class WinAsm;
67763
 
class WinDeclSpecs;
67764
 
class WinMemberExplSpec;
67765
 
class WinTypeKeywords;
67766
 
class PragmaOnceUnitState;
67767
 
class PragmaOnce;
67768
 
class CCExprResolve;
67769
 
class CExprResolve;
67770
 
namespace Puma {
67771
 
 
67772
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67773
 
class CT_NamedType : public CT_DeclSpec, public CSemObject {
67774
 
#line 67775 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67775
 
  friend class ::WinIfExists;
67776
 
  friend class ::WinImportHandler;
67777
 
  friend class ::WinMacros;
67778
 
  friend class ::CMatchSyntax;
67779
 
  friend class ::ExtGnu;
67780
 
  friend class ::ExtAC;
67781
 
  friend class ::ExtACBuilderCoupling;
67782
 
  friend class ::ExtACSyntaxCoupling;
67783
 
  friend class ::ExtACTree;
67784
 
  friend class ::ExtACKeywords;
67785
 
  friend class ::WinAsm;
67786
 
  friend class ::WinDeclSpecs;
67787
 
  friend class ::WinMemberExplSpec;
67788
 
  friend class ::WinTypeKeywords;
67789
 
  friend class ::PragmaOnceUnitState;
67790
 
  friend class ::PragmaOnce;
67791
 
  friend class ::CCExprResolve;
67792
 
  friend class ::CExprResolve;
67793
 
 
67794
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67795
 
 
67796
 
  CTree *sons[2]; // declspecs, declarator
67797
 
 
67798
 
public:
67799
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
67800
 
  static const char *NodeId ();
67801
 
  const char *NodeName () const { return NodeId (); }
67802
 
  int Sons () const { return CTree::Sons (sons, 2); }
67803
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
67804
 
  CTree *Declarator () const { return sons[1]; }
67805
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67806
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
67807
 
  }
67808
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
67809
 
};
67810
 
      
67811
 
 
67812
 
#line 67813 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67813
 
} // closed Puma
67814
 
class WinIfExists;
67815
 
class WinImportHandler;
67816
 
class WinMacros;
67817
 
class CMatchSyntax;
67818
 
class ExtGnu;
67819
 
class ExtAC;
67820
 
class ExtACBuilderCoupling;
67821
 
class ExtACSyntaxCoupling;
67822
 
class ExtACTree;
67823
 
class ExtACKeywords;
67824
 
class WinAsm;
67825
 
class WinDeclSpecs;
67826
 
class WinMemberExplSpec;
67827
 
class WinTypeKeywords;
67828
 
class PragmaOnceUnitState;
67829
 
class PragmaOnce;
67830
 
class CCExprResolve;
67831
 
class CExprResolve;
67832
 
namespace Puma {
67833
 
 
67834
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67835
 
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
67836
 
#line 67837 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67837
 
  friend class ::WinIfExists;
67838
 
  friend class ::WinImportHandler;
67839
 
  friend class ::WinMacros;
67840
 
  friend class ::CMatchSyntax;
67841
 
  friend class ::ExtGnu;
67842
 
  friend class ::ExtAC;
67843
 
  friend class ::ExtACBuilderCoupling;
67844
 
  friend class ::ExtACSyntaxCoupling;
67845
 
  friend class ::ExtACTree;
67846
 
  friend class ::ExtACKeywords;
67847
 
  friend class ::WinAsm;
67848
 
  friend class ::WinDeclSpecs;
67849
 
  friend class ::WinMemberExplSpec;
67850
 
  friend class ::WinTypeKeywords;
67851
 
  friend class ::PragmaOnceUnitState;
67852
 
  friend class ::PragmaOnce;
67853
 
  friend class ::CCExprResolve;
67854
 
  friend class ::CExprResolve;
67855
 
 
67856
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67857
 
 
67858
 
  CTree *sons[2]; // key, name
67859
 
  
67860
 
public:
67861
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
67862
 
  static const char *NodeId ();
67863
 
  const char *NodeName () const { return NodeId (); }
67864
 
  int Sons () const { return 2; }
67865
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
67866
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
67867
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
67868
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67869
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
67870
 
  }
67871
 
};
67872
 
 
67873
 
 
67874
 
#line 67875 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67875
 
} // closed Puma
67876
 
class WinIfExists;
67877
 
class WinImportHandler;
67878
 
class WinMacros;
67879
 
class CMatchSyntax;
67880
 
class ExtGnu;
67881
 
class ExtAC;
67882
 
class ExtACBuilderCoupling;
67883
 
class ExtACSyntaxCoupling;
67884
 
class ExtACTree;
67885
 
class ExtACKeywords;
67886
 
class WinAsm;
67887
 
class WinDeclSpecs;
67888
 
class WinMemberExplSpec;
67889
 
class WinTypeKeywords;
67890
 
class PragmaOnceUnitState;
67891
 
class PragmaOnce;
67892
 
class CCExprResolve;
67893
 
class CExprResolve;
67894
 
namespace Puma {
67895
 
 
67896
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67897
 
class CT_UnionSpec : public CT_ClassSpec {
67898
 
#line 67899 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67899
 
  friend class ::WinIfExists;
67900
 
  friend class ::WinImportHandler;
67901
 
  friend class ::WinMacros;
67902
 
  friend class ::CMatchSyntax;
67903
 
  friend class ::ExtGnu;
67904
 
  friend class ::ExtAC;
67905
 
  friend class ::ExtACBuilderCoupling;
67906
 
  friend class ::ExtACSyntaxCoupling;
67907
 
  friend class ::ExtACTree;
67908
 
  friend class ::ExtACKeywords;
67909
 
  friend class ::WinAsm;
67910
 
  friend class ::WinDeclSpecs;
67911
 
  friend class ::WinMemberExplSpec;
67912
 
  friend class ::WinTypeKeywords;
67913
 
  friend class ::PragmaOnceUnitState;
67914
 
  friend class ::PragmaOnce;
67915
 
  friend class ::CCExprResolve;
67916
 
  friend class ::CExprResolve;
67917
 
 
67918
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67919
 
 
67920
 
public:
67921
 
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
67922
 
  static const char *NodeId ();
67923
 
  const char *NodeName () const { return NodeId (); }
67924
 
};
67925
 
 
67926
 
 
67927
 
#line 67928 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67928
 
} // closed Puma
67929
 
class WinIfExists;
67930
 
class WinImportHandler;
67931
 
class WinMacros;
67932
 
class CMatchSyntax;
67933
 
class ExtGnu;
67934
 
class ExtAC;
67935
 
class ExtACBuilderCoupling;
67936
 
class ExtACSyntaxCoupling;
67937
 
class ExtACTree;
67938
 
class ExtACKeywords;
67939
 
class WinAsm;
67940
 
class WinDeclSpecs;
67941
 
class WinMemberExplSpec;
67942
 
class WinTypeKeywords;
67943
 
class PragmaOnceUnitState;
67944
 
class PragmaOnce;
67945
 
class CCExprResolve;
67946
 
class CExprResolve;
67947
 
namespace Puma {
67948
 
 
67949
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67950
 
class CT_EnumSpec : public CT_ClassSpec {
67951
 
#line 67952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67952
 
  friend class ::WinIfExists;
67953
 
  friend class ::WinImportHandler;
67954
 
  friend class ::WinMacros;
67955
 
  friend class ::CMatchSyntax;
67956
 
  friend class ::ExtGnu;
67957
 
  friend class ::ExtAC;
67958
 
  friend class ::ExtACBuilderCoupling;
67959
 
  friend class ::ExtACSyntaxCoupling;
67960
 
  friend class ::ExtACTree;
67961
 
  friend class ::ExtACKeywords;
67962
 
  friend class ::WinAsm;
67963
 
  friend class ::WinDeclSpecs;
67964
 
  friend class ::WinMemberExplSpec;
67965
 
  friend class ::WinTypeKeywords;
67966
 
  friend class ::PragmaOnceUnitState;
67967
 
  friend class ::PragmaOnce;
67968
 
  friend class ::CCExprResolve;
67969
 
  friend class ::CExprResolve;
67970
 
 
67971
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67972
 
 
67973
 
public:
67974
 
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
67975
 
  static const char *NodeId ();
67976
 
  const char *NodeName () const { return NodeId (); }
67977
 
};
67978
 
 
67979
 
 
67980
 
#line 67981 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
67981
 
} // closed Puma
67982
 
class WinIfExists;
67983
 
class WinImportHandler;
67984
 
class WinMacros;
67985
 
class CMatchSyntax;
67986
 
class ExtGnu;
67987
 
class ExtAC;
67988
 
class ExtACBuilderCoupling;
67989
 
class ExtACSyntaxCoupling;
67990
 
class ExtACTree;
67991
 
class ExtACKeywords;
67992
 
class WinAsm;
67993
 
class WinDeclSpecs;
67994
 
class WinMemberExplSpec;
67995
 
class WinTypeKeywords;
67996
 
class PragmaOnceUnitState;
67997
 
class PragmaOnce;
67998
 
class CCExprResolve;
67999
 
class CExprResolve;
68000
 
namespace Puma {
68001
 
 
68002
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68003
 
class CT_ExceptionSpec : public CT_DeclSpec {
68004
 
#line 68005 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68005
 
  friend class ::WinIfExists;
68006
 
  friend class ::WinImportHandler;
68007
 
  friend class ::WinMacros;
68008
 
  friend class ::CMatchSyntax;
68009
 
  friend class ::ExtGnu;
68010
 
  friend class ::ExtAC;
68011
 
  friend class ::ExtACBuilderCoupling;
68012
 
  friend class ::ExtACSyntaxCoupling;
68013
 
  friend class ::ExtACTree;
68014
 
  friend class ::ExtACKeywords;
68015
 
  friend class ::WinAsm;
68016
 
  friend class ::WinDeclSpecs;
68017
 
  friend class ::WinMemberExplSpec;
68018
 
  friend class ::WinTypeKeywords;
68019
 
  friend class ::PragmaOnceUnitState;
68020
 
  friend class ::PragmaOnce;
68021
 
  friend class ::CCExprResolve;
68022
 
  friend class ::CExprResolve;
68023
 
 
68024
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68025
 
 
68026
 
  CTree *sons[2]; // throw, type_id_list
68027
 
  
68028
 
public:
68029
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
68030
 
  static const char *NodeId ();
68031
 
  const char *NodeName () const { return NodeId (); }
68032
 
  int Sons () const { return 2; }
68033
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
68034
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
68035
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68036
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
68037
 
  }
68038
 
};
68039
 
 
68040
 
/*****************************************************************************/
68041
 
/*                                                                           */
68042
 
/*                              Declarations                                 */
68043
 
/*                                                                           */
68044
 
/*****************************************************************************/
68045
 
 
68046
 
 
68047
 
#line 68048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68048
 
} // closed Puma
68049
 
class WinIfExists;
68050
 
class WinImportHandler;
68051
 
class WinMacros;
68052
 
class CMatchSyntax;
68053
 
class ExtGnu;
68054
 
class ExtAC;
68055
 
class ExtACBuilderCoupling;
68056
 
class ExtACSyntaxCoupling;
68057
 
class ExtACTree;
68058
 
class ExtACKeywords;
68059
 
class WinAsm;
68060
 
class WinDeclSpecs;
68061
 
class WinMemberExplSpec;
68062
 
class WinTypeKeywords;
68063
 
class PragmaOnceUnitState;
68064
 
class PragmaOnce;
68065
 
class CCExprResolve;
68066
 
class CExprResolve;
68067
 
namespace Puma {
68068
 
 
68069
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68070
 
class CT_Decl : public CTree {
68071
 
#line 68072 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68072
 
  friend class ::WinIfExists;
68073
 
  friend class ::WinImportHandler;
68074
 
  friend class ::WinMacros;
68075
 
  friend class ::CMatchSyntax;
68076
 
  friend class ::ExtGnu;
68077
 
  friend class ::ExtAC;
68078
 
  friend class ::ExtACBuilderCoupling;
68079
 
  friend class ::ExtACSyntaxCoupling;
68080
 
  friend class ::ExtACTree;
68081
 
  friend class ::ExtACKeywords;
68082
 
  friend class ::WinAsm;
68083
 
  friend class ::WinDeclSpecs;
68084
 
  friend class ::WinMemberExplSpec;
68085
 
  friend class ::WinTypeKeywords;
68086
 
  friend class ::PragmaOnceUnitState;
68087
 
  friend class ::PragmaOnce;
68088
 
  friend class ::CCExprResolve;
68089
 
  friend class ::CExprResolve;
68090
 
 
68091
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68092
 
 
68093
 
  CT_LinkageSpec *_linkage;
68094
 
protected:
68095
 
  CT_Decl () : _linkage (0) {}
68096
 
public:
68097
 
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
68098
 
  CT_LinkageSpec *Linkage () const { return _linkage; }
68099
 
};
68100
 
 
68101
 
 
68102
 
#line 68103 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68103
 
} // closed Puma
68104
 
class WinIfExists;
68105
 
class WinImportHandler;
68106
 
class WinMacros;
68107
 
class CMatchSyntax;
68108
 
class ExtGnu;
68109
 
class ExtAC;
68110
 
class ExtACBuilderCoupling;
68111
 
class ExtACSyntaxCoupling;
68112
 
class ExtACTree;
68113
 
class ExtACKeywords;
68114
 
class WinAsm;
68115
 
class WinDeclSpecs;
68116
 
class WinMemberExplSpec;
68117
 
class WinTypeKeywords;
68118
 
class PragmaOnceUnitState;
68119
 
class PragmaOnce;
68120
 
class CCExprResolve;
68121
 
class CExprResolve;
68122
 
namespace Puma {
68123
 
 
68124
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68125
 
class CT_Program : public CT_DeclList, public CSemScope {
68126
 
#line 68127 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68127
 
  friend class ::WinIfExists;
68128
 
  friend class ::WinImportHandler;
68129
 
  friend class ::WinMacros;
68130
 
  friend class ::CMatchSyntax;
68131
 
  friend class ::ExtGnu;
68132
 
  friend class ::ExtAC;
68133
 
  friend class ::ExtACBuilderCoupling;
68134
 
  friend class ::ExtACSyntaxCoupling;
68135
 
  friend class ::ExtACTree;
68136
 
  friend class ::ExtACKeywords;
68137
 
  friend class ::WinAsm;
68138
 
  friend class ::WinDeclSpecs;
68139
 
  friend class ::WinMemberExplSpec;
68140
 
  friend class ::WinTypeKeywords;
68141
 
  friend class ::PragmaOnceUnitState;
68142
 
  friend class ::PragmaOnce;
68143
 
  friend class ::CCExprResolve;
68144
 
  friend class ::CExprResolve;
68145
 
 
68146
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68147
 
 
68148
 
public:
68149
 
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
68150
 
  static const char *NodeId ();
68151
 
  const char *NodeName () const { return NodeId (); }
68152
 
};
68153
 
   
68154
 
 
68155
 
#line 68156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68156
 
} // closed Puma
68157
 
class WinIfExists;
68158
 
class WinImportHandler;
68159
 
class WinMacros;
68160
 
class CMatchSyntax;
68161
 
class ExtGnu;
68162
 
class ExtAC;
68163
 
class ExtACBuilderCoupling;
68164
 
class ExtACSyntaxCoupling;
68165
 
class ExtACTree;
68166
 
class ExtACKeywords;
68167
 
class WinAsm;
68168
 
class WinDeclSpecs;
68169
 
class WinMemberExplSpec;
68170
 
class WinTypeKeywords;
68171
 
class PragmaOnceUnitState;
68172
 
class PragmaOnce;
68173
 
class CCExprResolve;
68174
 
class CExprResolve;
68175
 
namespace Puma {
68176
 
 
68177
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68178
 
class CT_ObjDecl : public CT_Decl {
68179
 
#line 68180 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68180
 
  friend class ::WinIfExists;
68181
 
  friend class ::WinImportHandler;
68182
 
  friend class ::WinMacros;
68183
 
  friend class ::CMatchSyntax;
68184
 
  friend class ::ExtGnu;
68185
 
  friend class ::ExtAC;
68186
 
  friend class ::ExtACBuilderCoupling;
68187
 
  friend class ::ExtACSyntaxCoupling;
68188
 
  friend class ::ExtACTree;
68189
 
  friend class ::ExtACKeywords;
68190
 
  friend class ::WinAsm;
68191
 
  friend class ::WinDeclSpecs;
68192
 
  friend class ::WinMemberExplSpec;
68193
 
  friend class ::WinTypeKeywords;
68194
 
  friend class ::PragmaOnceUnitState;
68195
 
  friend class ::PragmaOnce;
68196
 
  friend class ::CCExprResolve;
68197
 
  friend class ::CExprResolve;
68198
 
 
68199
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68200
 
 
68201
 
  CTree *sons[3]; // declspecs, declarators, colon
68202
 
 
68203
 
public:
68204
 
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
68205
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
68206
 
  }
68207
 
  static const char *NodeId ();
68208
 
  const char *NodeName () const { return NodeId (); }
68209
 
  int Sons () const { return 3; }
68210
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
68211
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
68212
 
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
68213
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68214
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
68215
 
  }
68216
 
};
68217
 
 
68218
 
 
68219
 
#line 68220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68220
 
} // closed Puma
68221
 
class WinIfExists;
68222
 
class WinImportHandler;
68223
 
class WinMacros;
68224
 
class CMatchSyntax;
68225
 
class ExtGnu;
68226
 
class ExtAC;
68227
 
class ExtACBuilderCoupling;
68228
 
class ExtACSyntaxCoupling;
68229
 
class ExtACTree;
68230
 
class ExtACKeywords;
68231
 
class WinAsm;
68232
 
class WinDeclSpecs;
68233
 
class WinMemberExplSpec;
68234
 
class WinTypeKeywords;
68235
 
class PragmaOnceUnitState;
68236
 
class PragmaOnce;
68237
 
class CCExprResolve;
68238
 
class CExprResolve;
68239
 
namespace Puma {
68240
 
 
68241
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68242
 
class CT_TemplateDecl : public CT_Decl, public CSemScope {
68243
 
#line 68244 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68244
 
  friend class ::WinIfExists;
68245
 
  friend class ::WinImportHandler;
68246
 
  friend class ::WinMacros;
68247
 
  friend class ::CMatchSyntax;
68248
 
  friend class ::ExtGnu;
68249
 
  friend class ::ExtAC;
68250
 
  friend class ::ExtACBuilderCoupling;
68251
 
  friend class ::ExtACSyntaxCoupling;
68252
 
  friend class ::ExtACTree;
68253
 
  friend class ::ExtACKeywords;
68254
 
  friend class ::WinAsm;
68255
 
  friend class ::WinDeclSpecs;
68256
 
  friend class ::WinMemberExplSpec;
68257
 
  friend class ::WinTypeKeywords;
68258
 
  friend class ::PragmaOnceUnitState;
68259
 
  friend class ::PragmaOnce;
68260
 
  friend class ::CCExprResolve;
68261
 
  friend class ::CExprResolve;
68262
 
 
68263
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68264
 
 
68265
 
  CTree *sons[3]; // export, param_list, decl
68266
 
 
68267
 
public:
68268
 
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
68269
 
    sons[0] = e; sons[1] = p; sons[2] = d;
68270
 
  }
68271
 
  static const char *NodeId ();
68272
 
  const char *NodeName () const { return NodeId (); }
68273
 
  int Sons () const { return CTree::Sons (sons, 3); }
68274
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
68275
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68276
 
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
68277
 
  }
68278
 
  CTree *Export () const { return sons[0]; }
68279
 
  CT_TemplateParamList *Parameters () const { 
68280
 
    return (CT_TemplateParamList*)sons[1]; 
68281
 
  }
68282
 
  CTree *Declaration () const { return sons[2]; }
68283
 
};
68284
 
 
68285
 
 
68286
 
#line 68287 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68287
 
} // closed Puma
68288
 
class WinIfExists;
68289
 
class WinImportHandler;
68290
 
class WinMacros;
68291
 
class CMatchSyntax;
68292
 
class ExtGnu;
68293
 
class ExtAC;
68294
 
class ExtACBuilderCoupling;
68295
 
class ExtACSyntaxCoupling;
68296
 
class ExtACTree;
68297
 
class ExtACKeywords;
68298
 
class WinAsm;
68299
 
class WinDeclSpecs;
68300
 
class WinMemberExplSpec;
68301
 
class WinTypeKeywords;
68302
 
class PragmaOnceUnitState;
68303
 
class PragmaOnce;
68304
 
class CCExprResolve;
68305
 
class CExprResolve;
68306
 
namespace Puma {
68307
 
 
68308
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68309
 
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
68310
 
#line 68311 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68311
 
  friend class ::WinIfExists;
68312
 
  friend class ::WinImportHandler;
68313
 
  friend class ::WinMacros;
68314
 
  friend class ::CMatchSyntax;
68315
 
  friend class ::ExtGnu;
68316
 
  friend class ::ExtAC;
68317
 
  friend class ::ExtACBuilderCoupling;
68318
 
  friend class ::ExtACSyntaxCoupling;
68319
 
  friend class ::ExtACTree;
68320
 
  friend class ::ExtACKeywords;
68321
 
  friend class ::WinAsm;
68322
 
  friend class ::WinDeclSpecs;
68323
 
  friend class ::WinMemberExplSpec;
68324
 
  friend class ::WinTypeKeywords;
68325
 
  friend class ::PragmaOnceUnitState;
68326
 
  friend class ::PragmaOnce;
68327
 
  friend class ::CCExprResolve;
68328
 
  friend class ::CExprResolve;
68329
 
 
68330
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68331
 
 
68332
 
protected:
68333
 
  CT_TemplateParamDecl () {}
68334
 
  
68335
 
public:
68336
 
  virtual CT_ExprList *DefaultArgument () const = 0;
68337
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
68338
 
};
68339
 
 
68340
 
 
68341
 
#line 68342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68342
 
} // closed Puma
68343
 
class WinIfExists;
68344
 
class WinImportHandler;
68345
 
class WinMacros;
68346
 
class CMatchSyntax;
68347
 
class ExtGnu;
68348
 
class ExtAC;
68349
 
class ExtACBuilderCoupling;
68350
 
class ExtACSyntaxCoupling;
68351
 
class ExtACTree;
68352
 
class ExtACKeywords;
68353
 
class WinAsm;
68354
 
class WinDeclSpecs;
68355
 
class WinMemberExplSpec;
68356
 
class WinTypeKeywords;
68357
 
class PragmaOnceUnitState;
68358
 
class PragmaOnce;
68359
 
class CCExprResolve;
68360
 
class CExprResolve;
68361
 
namespace Puma {
68362
 
 
68363
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68364
 
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
68365
 
#line 68366 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68366
 
  friend class ::WinIfExists;
68367
 
  friend class ::WinImportHandler;
68368
 
  friend class ::WinMacros;
68369
 
  friend class ::CMatchSyntax;
68370
 
  friend class ::ExtGnu;
68371
 
  friend class ::ExtAC;
68372
 
  friend class ::ExtACBuilderCoupling;
68373
 
  friend class ::ExtACSyntaxCoupling;
68374
 
  friend class ::ExtACTree;
68375
 
  friend class ::ExtACKeywords;
68376
 
  friend class ::WinAsm;
68377
 
  friend class ::WinDeclSpecs;
68378
 
  friend class ::WinMemberExplSpec;
68379
 
  friend class ::WinTypeKeywords;
68380
 
  friend class ::PragmaOnceUnitState;
68381
 
  friend class ::PragmaOnce;
68382
 
  friend class ::CCExprResolve;
68383
 
  friend class ::CExprResolve;
68384
 
 
68385
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68386
 
 
68387
 
  CTree *sons[3]; // declspecs, declarator, init
68388
 
 
68389
 
public:
68390
 
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
68391
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
68392
 
  }
68393
 
  static const char *NodeId ();
68394
 
  const char *NodeName () const { return NodeId (); }
68395
 
  int Sons () const { return CTree::Sons (sons, 3); }
68396
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
68397
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
68398
 
  CTree *Declarator () const { return sons[1]; }
68399
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
68400
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
68401
 
  void Initializer (CTree *i) { sons[2] = i; }
68402
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68403
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
68404
 
  }
68405
 
};
68406
 
 
68407
 
 
68408
 
#line 68409 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68409
 
} // closed Puma
68410
 
class WinIfExists;
68411
 
class WinImportHandler;
68412
 
class WinMacros;
68413
 
class CMatchSyntax;
68414
 
class ExtGnu;
68415
 
class ExtAC;
68416
 
class ExtACBuilderCoupling;
68417
 
class ExtACSyntaxCoupling;
68418
 
class ExtACTree;
68419
 
class ExtACKeywords;
68420
 
class WinAsm;
68421
 
class WinDeclSpecs;
68422
 
class WinMemberExplSpec;
68423
 
class WinTypeKeywords;
68424
 
class PragmaOnceUnitState;
68425
 
class PragmaOnce;
68426
 
class CCExprResolve;
68427
 
class CExprResolve;
68428
 
namespace Puma {
68429
 
 
68430
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68431
 
class CT_TypeParamDecl : public CT_TemplateParamDecl {
68432
 
#line 68433 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68433
 
  friend class ::WinIfExists;
68434
 
  friend class ::WinImportHandler;
68435
 
  friend class ::WinMacros;
68436
 
  friend class ::CMatchSyntax;
68437
 
  friend class ::ExtGnu;
68438
 
  friend class ::ExtAC;
68439
 
  friend class ::ExtACBuilderCoupling;
68440
 
  friend class ::ExtACSyntaxCoupling;
68441
 
  friend class ::ExtACTree;
68442
 
  friend class ::ExtACKeywords;
68443
 
  friend class ::WinAsm;
68444
 
  friend class ::WinDeclSpecs;
68445
 
  friend class ::WinMemberExplSpec;
68446
 
  friend class ::WinTypeKeywords;
68447
 
  friend class ::PragmaOnceUnitState;
68448
 
  friend class ::PragmaOnce;
68449
 
  friend class ::CCExprResolve;
68450
 
  friend class ::CExprResolve;
68451
 
 
68452
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68453
 
 
68454
 
  CTree *sons[4]; // params, key, id, init
68455
 
 
68456
 
public:
68457
 
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
68458
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
68459
 
  }
68460
 
  static const char *NodeId ();
68461
 
  const char *NodeName () const { return NodeId (); }
68462
 
  int Sons () const { return CTree::Sons (sons, 4); }
68463
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
68464
 
  CT_TemplateParamList *Parameters () const { 
68465
 
    return (CT_TemplateParamList*)sons[0]; 
68466
 
  }
68467
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
68468
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
68469
 
  void Initializer (CTree *i) { sons[3] = i; }
68470
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68471
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
68472
 
  }
68473
 
};
68474
 
 
68475
 
 
68476
 
#line 68477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68477
 
} // closed Puma
68478
 
class WinIfExists;
68479
 
class WinImportHandler;
68480
 
class WinMacros;
68481
 
class CMatchSyntax;
68482
 
class ExtGnu;
68483
 
class ExtAC;
68484
 
class ExtACBuilderCoupling;
68485
 
class ExtACSyntaxCoupling;
68486
 
class ExtACTree;
68487
 
class ExtACKeywords;
68488
 
class WinAsm;
68489
 
class WinDeclSpecs;
68490
 
class WinMemberExplSpec;
68491
 
class WinTypeKeywords;
68492
 
class PragmaOnceUnitState;
68493
 
class PragmaOnce;
68494
 
class CCExprResolve;
68495
 
class CExprResolve;
68496
 
namespace Puma {
68497
 
 
68498
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68499
 
class CT_EnumDef : public CT_Decl, public CSemObject {
68500
 
#line 68501 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68501
 
  friend class ::WinIfExists;
68502
 
  friend class ::WinImportHandler;
68503
 
  friend class ::WinMacros;
68504
 
  friend class ::CMatchSyntax;
68505
 
  friend class ::ExtGnu;
68506
 
  friend class ::ExtAC;
68507
 
  friend class ::ExtACBuilderCoupling;
68508
 
  friend class ::ExtACSyntaxCoupling;
68509
 
  friend class ::ExtACTree;
68510
 
  friend class ::ExtACKeywords;
68511
 
  friend class ::WinAsm;
68512
 
  friend class ::WinDeclSpecs;
68513
 
  friend class ::WinMemberExplSpec;
68514
 
  friend class ::WinTypeKeywords;
68515
 
  friend class ::PragmaOnceUnitState;
68516
 
  friend class ::PragmaOnce;
68517
 
  friend class ::CCExprResolve;
68518
 
  friend class ::CExprResolve;
68519
 
 
68520
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68521
 
 
68522
 
  CTree *sons[3]; // key, name, enumerators
68523
 
 
68524
 
public:
68525
 
  CT_EnumDef (CTree *k, CTree *n) {
68526
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
68527
 
  }
68528
 
  static const char *NodeId ();
68529
 
  const char *NodeName () const { return NodeId (); }
68530
 
  int Sons () const { return CTree::Sons (sons, 3); }
68531
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
68532
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
68533
 
  void Enumerators (CTree *el) { sons[2] = el; }
68534
 
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
68535
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68536
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
68537
 
  }
68538
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
68539
 
};
68540
 
 
68541
 
 
68542
 
#line 68543 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68543
 
} // closed Puma
68544
 
class WinIfExists;
68545
 
class WinImportHandler;
68546
 
class WinMacros;
68547
 
class CMatchSyntax;
68548
 
class ExtGnu;
68549
 
class ExtAC;
68550
 
class ExtACBuilderCoupling;
68551
 
class ExtACSyntaxCoupling;
68552
 
class ExtACTree;
68553
 
class ExtACKeywords;
68554
 
class WinAsm;
68555
 
class WinDeclSpecs;
68556
 
class WinMemberExplSpec;
68557
 
class WinTypeKeywords;
68558
 
class PragmaOnceUnitState;
68559
 
class PragmaOnce;
68560
 
class CCExprResolve;
68561
 
class CExprResolve;
68562
 
namespace Puma {
68563
 
 
68564
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68565
 
class CT_Enumerator : public CT_Decl, public CSemObject {
68566
 
#line 68567 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68567
 
  friend class ::WinIfExists;
68568
 
  friend class ::WinImportHandler;
68569
 
  friend class ::WinMacros;
68570
 
  friend class ::CMatchSyntax;
68571
 
  friend class ::ExtGnu;
68572
 
  friend class ::ExtAC;
68573
 
  friend class ::ExtACBuilderCoupling;
68574
 
  friend class ::ExtACSyntaxCoupling;
68575
 
  friend class ::ExtACTree;
68576
 
  friend class ::ExtACKeywords;
68577
 
  friend class ::WinAsm;
68578
 
  friend class ::WinDeclSpecs;
68579
 
  friend class ::WinMemberExplSpec;
68580
 
  friend class ::WinTypeKeywords;
68581
 
  friend class ::PragmaOnceUnitState;
68582
 
  friend class ::PragmaOnce;
68583
 
  friend class ::CCExprResolve;
68584
 
  friend class ::CExprResolve;
68585
 
 
68586
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68587
 
 
68588
 
  CTree *sons[2]; // name, init
68589
 
 
68590
 
public:
68591
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
68592
 
  static const char *NodeId ();
68593
 
  const char *NodeName () const { return NodeId (); }
68594
 
  int Sons () const { return CTree::Sons (sons, 2); }
68595
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
68596
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
68597
 
  void Initializer (CTree *i) { sons[1] = i; }
68598
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
68599
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68600
 
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
68601
 
  }
68602
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
68603
 
};
68604
 
 
68605
 
 
68606
 
#line 68607 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68607
 
} // closed Puma
68608
 
class WinIfExists;
68609
 
class WinImportHandler;
68610
 
class WinMacros;
68611
 
class CMatchSyntax;
68612
 
class ExtGnu;
68613
 
class ExtAC;
68614
 
class ExtACBuilderCoupling;
68615
 
class ExtACSyntaxCoupling;
68616
 
class ExtACTree;
68617
 
class ExtACKeywords;
68618
 
class WinAsm;
68619
 
class WinDeclSpecs;
68620
 
class WinMemberExplSpec;
68621
 
class WinTypeKeywords;
68622
 
class PragmaOnceUnitState;
68623
 
class PragmaOnce;
68624
 
class CCExprResolve;
68625
 
class CExprResolve;
68626
 
namespace Puma {
68627
 
 
68628
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68629
 
class CT_FctDef : public CT_Decl, public CSemObject {
68630
 
#line 68631 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68631
 
  friend class ::WinIfExists;
68632
 
  friend class ::WinImportHandler;
68633
 
  friend class ::WinMacros;
68634
 
  friend class ::CMatchSyntax;
68635
 
  friend class ::ExtGnu;
68636
 
  friend class ::ExtAC;
68637
 
  friend class ::ExtACBuilderCoupling;
68638
 
  friend class ::ExtACSyntaxCoupling;
68639
 
  friend class ::ExtACTree;
68640
 
  friend class ::ExtACKeywords;
68641
 
  friend class ::WinAsm;
68642
 
  friend class ::WinDeclSpecs;
68643
 
  friend class ::WinMemberExplSpec;
68644
 
  friend class ::WinTypeKeywords;
68645
 
  friend class ::PragmaOnceUnitState;
68646
 
  friend class ::PragmaOnce;
68647
 
  friend class ::CCExprResolve;
68648
 
  friend class ::CExprResolve;
68649
 
 
68650
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68651
 
 
68652
 
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
68653
 
 
68654
 
public:
68655
 
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
68656
 
             CTree *b, CTree *hs) {
68657
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
68658
 
    sons[5] = b; sons[6] = hs; 
68659
 
  }
68660
 
  static const char *NodeId ();
68661
 
  const char *NodeName () const { return NodeId (); }
68662
 
  int Sons () const { return CTree::Sons (sons, 7); }
68663
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
68664
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
68665
 
  CTree *Declarator () const { return sons[1]; }
68666
 
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
68667
 
  CTree *CtorInit () const { return sons[3]; }
68668
 
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
68669
 
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
68670
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
68671
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
68672
 
  void CtorInit (CTree *i) { sons[3] = i; }
68673
 
  void Body (CTree *b) { sons[5] = b; }
68674
 
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
68675
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
68676
 
  }
68677
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68678
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
68679
 
  }
68680
 
};
68681
 
 
68682
 
 
68683
 
#line 68684 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68684
 
} // closed Puma
68685
 
class WinIfExists;
68686
 
class WinImportHandler;
68687
 
class WinMacros;
68688
 
class CMatchSyntax;
68689
 
class ExtGnu;
68690
 
class ExtAC;
68691
 
class ExtACBuilderCoupling;
68692
 
class ExtACSyntaxCoupling;
68693
 
class ExtACTree;
68694
 
class ExtACKeywords;
68695
 
class WinAsm;
68696
 
class WinDeclSpecs;
68697
 
class WinMemberExplSpec;
68698
 
class WinTypeKeywords;
68699
 
class PragmaOnceUnitState;
68700
 
class PragmaOnce;
68701
 
class CCExprResolve;
68702
 
class CExprResolve;
68703
 
namespace Puma {
68704
 
 
68705
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68706
 
class CT_AsmDef : public CT_Decl {
68707
 
#line 68708 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68708
 
  friend class ::WinIfExists;
68709
 
  friend class ::WinImportHandler;
68710
 
  friend class ::WinMacros;
68711
 
  friend class ::CMatchSyntax;
68712
 
  friend class ::ExtGnu;
68713
 
  friend class ::ExtAC;
68714
 
  friend class ::ExtACBuilderCoupling;
68715
 
  friend class ::ExtACSyntaxCoupling;
68716
 
  friend class ::ExtACTree;
68717
 
  friend class ::ExtACKeywords;
68718
 
  friend class ::WinAsm;
68719
 
  friend class ::WinDeclSpecs;
68720
 
  friend class ::WinMemberExplSpec;
68721
 
  friend class ::WinTypeKeywords;
68722
 
  friend class ::PragmaOnceUnitState;
68723
 
  friend class ::PragmaOnce;
68724
 
  friend class ::CCExprResolve;
68725
 
  friend class ::CExprResolve;
68726
 
 
68727
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68728
 
 
68729
 
  CTree *sons[5]; // asm, open, str, close, semi_colon
68730
 
 
68731
 
public:
68732
 
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
68733
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
68734
 
  }
68735
 
  static const char *NodeId ();
68736
 
  const char *NodeName () const { return NodeId (); }
68737
 
  int Sons () const { return 5; }
68738
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
68739
 
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
68740
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68741
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
68742
 
  }
68743
 
};
68744
 
 
68745
 
 
68746
 
#line 68747 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68747
 
} // closed Puma
68748
 
class WinIfExists;
68749
 
class WinImportHandler;
68750
 
class WinMacros;
68751
 
class CMatchSyntax;
68752
 
class ExtGnu;
68753
 
class ExtAC;
68754
 
class ExtACBuilderCoupling;
68755
 
class ExtACSyntaxCoupling;
68756
 
class ExtACTree;
68757
 
class ExtACKeywords;
68758
 
class WinAsm;
68759
 
class WinDeclSpecs;
68760
 
class WinMemberExplSpec;
68761
 
class WinTypeKeywords;
68762
 
class PragmaOnceUnitState;
68763
 
class PragmaOnce;
68764
 
class CCExprResolve;
68765
 
class CExprResolve;
68766
 
namespace Puma {
68767
 
 
68768
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68769
 
class CT_Handler : public CT_Decl, public CSemScope {
68770
 
#line 68771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68771
 
  friend class ::WinIfExists;
68772
 
  friend class ::WinImportHandler;
68773
 
  friend class ::WinMacros;
68774
 
  friend class ::CMatchSyntax;
68775
 
  friend class ::ExtGnu;
68776
 
  friend class ::ExtAC;
68777
 
  friend class ::ExtACBuilderCoupling;
68778
 
  friend class ::ExtACSyntaxCoupling;
68779
 
  friend class ::ExtACTree;
68780
 
  friend class ::ExtACKeywords;
68781
 
  friend class ::WinAsm;
68782
 
  friend class ::WinDeclSpecs;
68783
 
  friend class ::WinMemberExplSpec;
68784
 
  friend class ::WinTypeKeywords;
68785
 
  friend class ::PragmaOnceUnitState;
68786
 
  friend class ::PragmaOnce;
68787
 
  friend class ::CCExprResolve;
68788
 
  friend class ::CExprResolve;
68789
 
 
68790
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68791
 
 
68792
 
  CTree *sons[3]; // catch, exception_decl, stmt
68793
 
 
68794
 
public:
68795
 
  CT_Handler (CTree *c, CTree *e, CTree *s) {
68796
 
    sons[0] = c; sons[1] = e; sons[2] = s;
68797
 
  }
68798
 
  static const char *NodeId ();
68799
 
  const char *NodeName () const { return NodeId (); }
68800
 
  int Sons () const { return 3; }
68801
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
68802
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
68803
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
68804
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68805
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
68806
 
  }
68807
 
};
68808
 
 
68809
 
 
68810
 
#line 68811 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68811
 
} // closed Puma
68812
 
class WinIfExists;
68813
 
class WinImportHandler;
68814
 
class WinMacros;
68815
 
class CMatchSyntax;
68816
 
class ExtGnu;
68817
 
class ExtAC;
68818
 
class ExtACBuilderCoupling;
68819
 
class ExtACSyntaxCoupling;
68820
 
class ExtACTree;
68821
 
class ExtACKeywords;
68822
 
class WinAsm;
68823
 
class WinDeclSpecs;
68824
 
class WinMemberExplSpec;
68825
 
class WinTypeKeywords;
68826
 
class PragmaOnceUnitState;
68827
 
class PragmaOnce;
68828
 
class CCExprResolve;
68829
 
class CExprResolve;
68830
 
namespace Puma {
68831
 
 
68832
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68833
 
class CT_LinkageSpec : public CT_Decl {
68834
 
#line 68835 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68835
 
  friend class ::WinIfExists;
68836
 
  friend class ::WinImportHandler;
68837
 
  friend class ::WinMacros;
68838
 
  friend class ::CMatchSyntax;
68839
 
  friend class ::ExtGnu;
68840
 
  friend class ::ExtAC;
68841
 
  friend class ::ExtACBuilderCoupling;
68842
 
  friend class ::ExtACSyntaxCoupling;
68843
 
  friend class ::ExtACTree;
68844
 
  friend class ::ExtACKeywords;
68845
 
  friend class ::WinAsm;
68846
 
  friend class ::WinDeclSpecs;
68847
 
  friend class ::WinMemberExplSpec;
68848
 
  friend class ::WinTypeKeywords;
68849
 
  friend class ::PragmaOnceUnitState;
68850
 
  friend class ::PragmaOnce;
68851
 
  friend class ::CCExprResolve;
68852
 
  friend class ::CExprResolve;
68853
 
 
68854
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68855
 
 
68856
 
  CTree *sons[5]; // extern, str, open, decls, close
68857
 
 
68858
 
public:
68859
 
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
68860
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
68861
 
    if (isList ())
68862
 
      ((CT_DeclList*)Decls ())->Linkage (this);
68863
 
    else
68864
 
      ((CT_Decl*)Decls ())->Linkage (this);
68865
 
  }
68866
 
  static const char *NodeId ();
68867
 
  const char *NodeName () const { return NodeId (); }
68868
 
  int Sons () const { return CTree::Sons (sons, 5); }
68869
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
68870
 
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
68871
 
  CTree *Decls () const { return sons[3]; }
68872
 
  bool isList () const {
68873
 
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
68874
 
  }
68875
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68876
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
68877
 
  }
68878
 
};
68879
 
 
68880
 
 
68881
 
#line 68882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68882
 
} // closed Puma
68883
 
class WinIfExists;
68884
 
class WinImportHandler;
68885
 
class WinMacros;
68886
 
class CMatchSyntax;
68887
 
class ExtGnu;
68888
 
class ExtAC;
68889
 
class ExtACBuilderCoupling;
68890
 
class ExtACSyntaxCoupling;
68891
 
class ExtACTree;
68892
 
class ExtACKeywords;
68893
 
class WinAsm;
68894
 
class WinDeclSpecs;
68895
 
class WinMemberExplSpec;
68896
 
class WinTypeKeywords;
68897
 
class PragmaOnceUnitState;
68898
 
class PragmaOnce;
68899
 
class CCExprResolve;
68900
 
class CExprResolve;
68901
 
namespace Puma {
68902
 
 
68903
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68904
 
class CT_ArgDecl : public CT_Decl, public CSemObject {
68905
 
#line 68906 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68906
 
  friend class ::WinIfExists;
68907
 
  friend class ::WinImportHandler;
68908
 
  friend class ::WinMacros;
68909
 
  friend class ::CMatchSyntax;
68910
 
  friend class ::ExtGnu;
68911
 
  friend class ::ExtAC;
68912
 
  friend class ::ExtACBuilderCoupling;
68913
 
  friend class ::ExtACSyntaxCoupling;
68914
 
  friend class ::ExtACTree;
68915
 
  friend class ::ExtACKeywords;
68916
 
  friend class ::WinAsm;
68917
 
  friend class ::WinDeclSpecs;
68918
 
  friend class ::WinMemberExplSpec;
68919
 
  friend class ::WinTypeKeywords;
68920
 
  friend class ::PragmaOnceUnitState;
68921
 
  friend class ::PragmaOnce;
68922
 
  friend class ::CCExprResolve;
68923
 
  friend class ::CExprResolve;
68924
 
 
68925
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68926
 
 
68927
 
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
68928
 
 
68929
 
public:
68930
 
  CT_ArgDecl (CTree *dsl, CTree *d) {
68931
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
68932
 
  }
68933
 
  CT_ArgDecl (CTree *ellipsis) {
68934
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
68935
 
  }
68936
 
  static const char *NodeId ();
68937
 
  const char *NodeName () const { return NodeId (); }
68938
 
  int Sons () const { return CTree::Sons (sons, 4); }
68939
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
68940
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
68941
 
  CTree *Declarator () const { return sons[1]; }
68942
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
68943
 
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
68944
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
68945
 
  void Initializer (CTree *i) { sons[2] = i; }
68946
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68947
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
68948
 
  }
68949
 
};
68950
 
 
68951
 
 
68952
 
#line 68953 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68953
 
} // closed Puma
68954
 
class WinIfExists;
68955
 
class WinImportHandler;
68956
 
class WinMacros;
68957
 
class CMatchSyntax;
68958
 
class ExtGnu;
68959
 
class ExtAC;
68960
 
class ExtACBuilderCoupling;
68961
 
class ExtACSyntaxCoupling;
68962
 
class ExtACTree;
68963
 
class ExtACKeywords;
68964
 
class WinAsm;
68965
 
class WinDeclSpecs;
68966
 
class WinMemberExplSpec;
68967
 
class WinTypeKeywords;
68968
 
class PragmaOnceUnitState;
68969
 
class PragmaOnce;
68970
 
class CCExprResolve;
68971
 
class CExprResolve;
68972
 
namespace Puma {
68973
 
 
68974
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68975
 
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
68976
 
#line 68977 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
68977
 
  friend class ::WinIfExists;
68978
 
  friend class ::WinImportHandler;
68979
 
  friend class ::WinMacros;
68980
 
  friend class ::CMatchSyntax;
68981
 
  friend class ::ExtGnu;
68982
 
  friend class ::ExtAC;
68983
 
  friend class ::ExtACBuilderCoupling;
68984
 
  friend class ::ExtACSyntaxCoupling;
68985
 
  friend class ::ExtACTree;
68986
 
  friend class ::ExtACKeywords;
68987
 
  friend class ::WinAsm;
68988
 
  friend class ::WinDeclSpecs;
68989
 
  friend class ::WinMemberExplSpec;
68990
 
  friend class ::WinTypeKeywords;
68991
 
  friend class ::PragmaOnceUnitState;
68992
 
  friend class ::PragmaOnce;
68993
 
  friend class ::CCExprResolve;
68994
 
  friend class ::CExprResolve;
68995
 
 
68996
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68997
 
 
68998
 
public:
68999
 
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
69000
 
   CT_DeclList (size, 2) { AddProperties (props); }
69001
 
  static const char *NodeId ();
69002
 
  const char *NodeName () const { return NodeId (); }
69003
 
};
69004
 
 
69005
 
 
69006
 
#line 69007 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69007
 
} // closed Puma
69008
 
class WinIfExists;
69009
 
class WinImportHandler;
69010
 
class WinMacros;
69011
 
class CMatchSyntax;
69012
 
class ExtGnu;
69013
 
class ExtAC;
69014
 
class ExtACBuilderCoupling;
69015
 
class ExtACSyntaxCoupling;
69016
 
class ExtACTree;
69017
 
class ExtACKeywords;
69018
 
class WinAsm;
69019
 
class WinDeclSpecs;
69020
 
class WinMemberExplSpec;
69021
 
class WinTypeKeywords;
69022
 
class PragmaOnceUnitState;
69023
 
class PragmaOnce;
69024
 
class CCExprResolve;
69025
 
class CExprResolve;
69026
 
namespace Puma {
69027
 
 
69028
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69029
 
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
69030
 
#line 69031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69031
 
  friend class ::WinIfExists;
69032
 
  friend class ::WinImportHandler;
69033
 
  friend class ::WinMacros;
69034
 
  friend class ::CMatchSyntax;
69035
 
  friend class ::ExtGnu;
69036
 
  friend class ::ExtAC;
69037
 
  friend class ::ExtACBuilderCoupling;
69038
 
  friend class ::ExtACSyntaxCoupling;
69039
 
  friend class ::ExtACTree;
69040
 
  friend class ::ExtACKeywords;
69041
 
  friend class ::WinAsm;
69042
 
  friend class ::WinDeclSpecs;
69043
 
  friend class ::WinMemberExplSpec;
69044
 
  friend class ::WinTypeKeywords;
69045
 
  friend class ::PragmaOnceUnitState;
69046
 
  friend class ::PragmaOnce;
69047
 
  friend class ::CCExprResolve;
69048
 
  friend class ::CExprResolve;
69049
 
 
69050
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69051
 
 
69052
 
public:
69053
 
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
69054
 
  static const char *NodeId ();
69055
 
  const char *NodeName () const { return NodeId (); }
69056
 
};
69057
 
 
69058
 
 
69059
 
#line 69060 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69060
 
} // closed Puma
69061
 
class WinIfExists;
69062
 
class WinImportHandler;
69063
 
class WinMacros;
69064
 
class CMatchSyntax;
69065
 
class ExtGnu;
69066
 
class ExtAC;
69067
 
class ExtACBuilderCoupling;
69068
 
class ExtACSyntaxCoupling;
69069
 
class ExtACTree;
69070
 
class ExtACKeywords;
69071
 
class WinAsm;
69072
 
class WinDeclSpecs;
69073
 
class WinMemberExplSpec;
69074
 
class WinTypeKeywords;
69075
 
class PragmaOnceUnitState;
69076
 
class PragmaOnce;
69077
 
class CCExprResolve;
69078
 
class CExprResolve;
69079
 
namespace Puma {
69080
 
 
69081
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69082
 
class CT_ArgNameList : public CT_ArgDeclList {
69083
 
#line 69084 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69084
 
  friend class ::WinIfExists;
69085
 
  friend class ::WinImportHandler;
69086
 
  friend class ::WinMacros;
69087
 
  friend class ::CMatchSyntax;
69088
 
  friend class ::ExtGnu;
69089
 
  friend class ::ExtAC;
69090
 
  friend class ::ExtACBuilderCoupling;
69091
 
  friend class ::ExtACSyntaxCoupling;
69092
 
  friend class ::ExtACTree;
69093
 
  friend class ::ExtACKeywords;
69094
 
  friend class ::WinAsm;
69095
 
  friend class ::WinDeclSpecs;
69096
 
  friend class ::WinMemberExplSpec;
69097
 
  friend class ::WinTypeKeywords;
69098
 
  friend class ::PragmaOnceUnitState;
69099
 
  friend class ::PragmaOnce;
69100
 
  friend class ::CCExprResolve;
69101
 
  friend class ::CExprResolve;
69102
 
 
69103
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69104
 
 
69105
 
public:
69106
 
  CT_ArgNameList () : CT_ArgDeclList () {}
69107
 
  static const char *NodeId ();
69108
 
  const char *NodeName () const { return NodeId (); }
69109
 
};
69110
 
 
69111
 
 
69112
 
#line 69113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69113
 
} // closed Puma
69114
 
class WinIfExists;
69115
 
class WinImportHandler;
69116
 
class WinMacros;
69117
 
class CMatchSyntax;
69118
 
class ExtGnu;
69119
 
class ExtAC;
69120
 
class ExtACBuilderCoupling;
69121
 
class ExtACSyntaxCoupling;
69122
 
class ExtACTree;
69123
 
class ExtACKeywords;
69124
 
class WinAsm;
69125
 
class WinDeclSpecs;
69126
 
class WinMemberExplSpec;
69127
 
class WinTypeKeywords;
69128
 
class PragmaOnceUnitState;
69129
 
class PragmaOnce;
69130
 
class CCExprResolve;
69131
 
class CExprResolve;
69132
 
namespace Puma {
69133
 
 
69134
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69135
 
class CT_NamespaceDef : public CT_Decl, public CSemObject {
69136
 
#line 69137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69137
 
  friend class ::WinIfExists;
69138
 
  friend class ::WinImportHandler;
69139
 
  friend class ::WinMacros;
69140
 
  friend class ::CMatchSyntax;
69141
 
  friend class ::ExtGnu;
69142
 
  friend class ::ExtAC;
69143
 
  friend class ::ExtACBuilderCoupling;
69144
 
  friend class ::ExtACSyntaxCoupling;
69145
 
  friend class ::ExtACTree;
69146
 
  friend class ::ExtACKeywords;
69147
 
  friend class ::WinAsm;
69148
 
  friend class ::WinDeclSpecs;
69149
 
  friend class ::WinMemberExplSpec;
69150
 
  friend class ::WinTypeKeywords;
69151
 
  friend class ::PragmaOnceUnitState;
69152
 
  friend class ::PragmaOnce;
69153
 
  friend class ::CCExprResolve;
69154
 
  friend class ::CExprResolve;
69155
 
 
69156
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69157
 
 
69158
 
  CTree *sons[3]; // ns, name, members
69159
 
 
69160
 
public:
69161
 
  CT_NamespaceDef (CTree *n, CTree *nm) {
69162
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
69163
 
  }
69164
 
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
69165
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
69166
 
  }
69167
 
  static const char *NodeId ();
69168
 
  const char *NodeName () const { return NodeId (); }
69169
 
  int Sons () const { return CTree::Sons (sons, 3); }
69170
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
69171
 
  void Members (CTree *m) { sons[2] = m; }
69172
 
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
69173
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
69174
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
69175
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69176
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
69177
 
  }
69178
 
};
69179
 
 
69180
 
 
69181
 
#line 69182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69182
 
} // closed Puma
69183
 
class WinIfExists;
69184
 
class WinImportHandler;
69185
 
class WinMacros;
69186
 
class CMatchSyntax;
69187
 
class ExtGnu;
69188
 
class ExtAC;
69189
 
class ExtACBuilderCoupling;
69190
 
class ExtACSyntaxCoupling;
69191
 
class ExtACTree;
69192
 
class ExtACKeywords;
69193
 
class WinAsm;
69194
 
class WinDeclSpecs;
69195
 
class WinMemberExplSpec;
69196
 
class WinTypeKeywords;
69197
 
class PragmaOnceUnitState;
69198
 
class PragmaOnce;
69199
 
class CCExprResolve;
69200
 
class CExprResolve;
69201
 
namespace Puma {
69202
 
 
69203
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69204
 
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
69205
 
#line 69206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69206
 
  friend class ::WinIfExists;
69207
 
  friend class ::WinImportHandler;
69208
 
  friend class ::WinMacros;
69209
 
  friend class ::CMatchSyntax;
69210
 
  friend class ::ExtGnu;
69211
 
  friend class ::ExtAC;
69212
 
  friend class ::ExtACBuilderCoupling;
69213
 
  friend class ::ExtACSyntaxCoupling;
69214
 
  friend class ::ExtACTree;
69215
 
  friend class ::ExtACKeywords;
69216
 
  friend class ::WinAsm;
69217
 
  friend class ::WinDeclSpecs;
69218
 
  friend class ::WinMemberExplSpec;
69219
 
  friend class ::WinTypeKeywords;
69220
 
  friend class ::PragmaOnceUnitState;
69221
 
  friend class ::PragmaOnce;
69222
 
  friend class ::CCExprResolve;
69223
 
  friend class ::CExprResolve;
69224
 
 
69225
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69226
 
 
69227
 
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
69228
 
 
69229
 
public:
69230
 
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
69231
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
69232
 
  }
69233
 
  static const char *NodeId ();
69234
 
  const char *NodeName () const { return NodeId (); }
69235
 
  int Sons () const { return 5; }
69236
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
69237
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
69238
 
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
69239
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
69240
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69241
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
69242
 
  }
69243
 
};
69244
 
 
69245
 
 
69246
 
#line 69247 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69247
 
} // closed Puma
69248
 
class WinIfExists;
69249
 
class WinImportHandler;
69250
 
class WinMacros;
69251
 
class CMatchSyntax;
69252
 
class ExtGnu;
69253
 
class ExtAC;
69254
 
class ExtACBuilderCoupling;
69255
 
class ExtACSyntaxCoupling;
69256
 
class ExtACTree;
69257
 
class ExtACKeywords;
69258
 
class WinAsm;
69259
 
class WinDeclSpecs;
69260
 
class WinMemberExplSpec;
69261
 
class WinTypeKeywords;
69262
 
class PragmaOnceUnitState;
69263
 
class PragmaOnce;
69264
 
class CCExprResolve;
69265
 
class CExprResolve;
69266
 
namespace Puma {
69267
 
 
69268
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69269
 
class CT_UsingDirective : public CT_Decl {
69270
 
#line 69271 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69271
 
  friend class ::WinIfExists;
69272
 
  friend class ::WinImportHandler;
69273
 
  friend class ::WinMacros;
69274
 
  friend class ::CMatchSyntax;
69275
 
  friend class ::ExtGnu;
69276
 
  friend class ::ExtAC;
69277
 
  friend class ::ExtACBuilderCoupling;
69278
 
  friend class ::ExtACSyntaxCoupling;
69279
 
  friend class ::ExtACTree;
69280
 
  friend class ::ExtACKeywords;
69281
 
  friend class ::WinAsm;
69282
 
  friend class ::WinDeclSpecs;
69283
 
  friend class ::WinMemberExplSpec;
69284
 
  friend class ::WinTypeKeywords;
69285
 
  friend class ::PragmaOnceUnitState;
69286
 
  friend class ::PragmaOnce;
69287
 
  friend class ::CCExprResolve;
69288
 
  friend class ::CExprResolve;
69289
 
 
69290
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69291
 
 
69292
 
  CTree *sons[4]; // using, ns, name, semi_colon
69293
 
 
69294
 
public:
69295
 
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
69296
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
69297
 
  }
69298
 
  static const char *NodeId ();
69299
 
  const char *NodeName () const { return NodeId (); }
69300
 
  int Sons () const { return 4; }
69301
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
69302
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
69303
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69304
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
69305
 
  }
69306
 
};
69307
 
 
69308
 
/*****************************************************************************/
69309
 
/*                                                                           */
69310
 
/*                              Declarators                                  */
69311
 
/*                                                                           */
69312
 
/*****************************************************************************/
69313
 
 
69314
 
 
69315
 
#line 69316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69316
 
} // closed Puma
69317
 
class WinIfExists;
69318
 
class WinImportHandler;
69319
 
class WinMacros;
69320
 
class CMatchSyntax;
69321
 
class ExtGnu;
69322
 
class ExtAC;
69323
 
class ExtACBuilderCoupling;
69324
 
class ExtACSyntaxCoupling;
69325
 
class ExtACTree;
69326
 
class ExtACKeywords;
69327
 
class WinAsm;
69328
 
class WinDeclSpecs;
69329
 
class WinMemberExplSpec;
69330
 
class WinTypeKeywords;
69331
 
class PragmaOnceUnitState;
69332
 
class PragmaOnce;
69333
 
class CCExprResolve;
69334
 
class CExprResolve;
69335
 
namespace Puma {
69336
 
 
69337
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69338
 
class CT_Declarator : public CTree {
69339
 
#line 69340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69340
 
  friend class ::WinIfExists;
69341
 
  friend class ::WinImportHandler;
69342
 
  friend class ::WinMacros;
69343
 
  friend class ::CMatchSyntax;
69344
 
  friend class ::ExtGnu;
69345
 
  friend class ::ExtAC;
69346
 
  friend class ::ExtACBuilderCoupling;
69347
 
  friend class ::ExtACSyntaxCoupling;
69348
 
  friend class ::ExtACTree;
69349
 
  friend class ::ExtACKeywords;
69350
 
  friend class ::WinAsm;
69351
 
  friend class ::WinDeclSpecs;
69352
 
  friend class ::WinMemberExplSpec;
69353
 
  friend class ::WinTypeKeywords;
69354
 
  friend class ::PragmaOnceUnitState;
69355
 
  friend class ::PragmaOnce;
69356
 
  friend class ::CCExprResolve;
69357
 
  friend class ::CExprResolve;
69358
 
 
69359
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69360
 
 
69361
 
protected:
69362
 
  CT_Declarator () {}
69363
 
 
69364
 
public:
69365
 
  virtual CTree *Declarator () const = 0;
69366
 
  //classification function
69367
 
  virtual CT_Declarator *IsDeclarator () { return this; }
69368
 
  // locate the name node
69369
 
  CT_SimpleName *Name ();
69370
 
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
69371
 
};
69372
 
 
69373
 
 
69374
 
#line 69375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69375
 
} // closed Puma
69376
 
class WinIfExists;
69377
 
class WinImportHandler;
69378
 
class WinMacros;
69379
 
class CMatchSyntax;
69380
 
class ExtGnu;
69381
 
class ExtAC;
69382
 
class ExtACBuilderCoupling;
69383
 
class ExtACSyntaxCoupling;
69384
 
class ExtACTree;
69385
 
class ExtACKeywords;
69386
 
class WinAsm;
69387
 
class WinDeclSpecs;
69388
 
class WinMemberExplSpec;
69389
 
class WinTypeKeywords;
69390
 
class PragmaOnceUnitState;
69391
 
class PragmaOnce;
69392
 
class CCExprResolve;
69393
 
class CExprResolve;
69394
 
namespace Puma {
69395
 
 
69396
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69397
 
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
69398
 
#line 69399 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69399
 
  friend class ::WinIfExists;
69400
 
  friend class ::WinImportHandler;
69401
 
  friend class ::WinMacros;
69402
 
  friend class ::CMatchSyntax;
69403
 
  friend class ::ExtGnu;
69404
 
  friend class ::ExtAC;
69405
 
  friend class ::ExtACBuilderCoupling;
69406
 
  friend class ::ExtACSyntaxCoupling;
69407
 
  friend class ::ExtACTree;
69408
 
  friend class ::ExtACKeywords;
69409
 
  friend class ::WinAsm;
69410
 
  friend class ::WinDeclSpecs;
69411
 
  friend class ::WinMemberExplSpec;
69412
 
  friend class ::WinTypeKeywords;
69413
 
  friend class ::PragmaOnceUnitState;
69414
 
  friend class ::PragmaOnce;
69415
 
  friend class ::CCExprResolve;
69416
 
  friend class ::CExprResolve;
69417
 
 
69418
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69419
 
 
69420
 
  CTree *sons[2]; // declarator, init
69421
 
  CTree *obj_decl;
69422
 
 
69423
 
public:
69424
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
69425
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
69426
 
  }
69427
 
  static const char *NodeId ();
69428
 
  const char *NodeName () const { return NodeId (); }
69429
 
  int Sons () const { return CTree::Sons (sons, 2); }
69430
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
69431
 
  CTree *Declarator () const { return sons[0]; }
69432
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
69433
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
69434
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
69435
 
  void Initializer (CTree* i) { sons[1] = i; }
69436
 
  void ObjDecl (CTree *od) { obj_decl = od; }
69437
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69438
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
69439
 
  }
69440
 
};
69441
 
 
69442
 
 
69443
 
#line 69444 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69444
 
} // closed Puma
69445
 
class WinIfExists;
69446
 
class WinImportHandler;
69447
 
class WinMacros;
69448
 
class CMatchSyntax;
69449
 
class ExtGnu;
69450
 
class ExtAC;
69451
 
class ExtACBuilderCoupling;
69452
 
class ExtACSyntaxCoupling;
69453
 
class ExtACTree;
69454
 
class ExtACKeywords;
69455
 
class WinAsm;
69456
 
class WinDeclSpecs;
69457
 
class WinMemberExplSpec;
69458
 
class WinTypeKeywords;
69459
 
class PragmaOnceUnitState;
69460
 
class PragmaOnce;
69461
 
class CCExprResolve;
69462
 
class CExprResolve;
69463
 
namespace Puma {
69464
 
 
69465
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69466
 
class CT_BracedDeclarator : public CT_Declarator {
69467
 
#line 69468 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69468
 
  friend class ::WinIfExists;
69469
 
  friend class ::WinImportHandler;
69470
 
  friend class ::WinMacros;
69471
 
  friend class ::CMatchSyntax;
69472
 
  friend class ::ExtGnu;
69473
 
  friend class ::ExtAC;
69474
 
  friend class ::ExtACBuilderCoupling;
69475
 
  friend class ::ExtACSyntaxCoupling;
69476
 
  friend class ::ExtACTree;
69477
 
  friend class ::ExtACKeywords;
69478
 
  friend class ::WinAsm;
69479
 
  friend class ::WinDeclSpecs;
69480
 
  friend class ::WinMemberExplSpec;
69481
 
  friend class ::WinTypeKeywords;
69482
 
  friend class ::PragmaOnceUnitState;
69483
 
  friend class ::PragmaOnce;
69484
 
  friend class ::CCExprResolve;
69485
 
  friend class ::CExprResolve;
69486
 
 
69487
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69488
 
 
69489
 
  CTree *sons[4]; // open, win_specs, declarator, close
69490
 
 
69491
 
public:
69492
 
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
69493
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
69494
 
  }
69495
 
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
69496
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
69497
 
  }
69498
 
  static const char *NodeId ();
69499
 
  const char *NodeName () const { return NodeId (); }
69500
 
  int Sons () const { return CTree::Sons (sons, 4); }
69501
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
69502
 
  CTree *Declarator () const { return sons[2]; }
69503
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69504
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
69505
 
  }
69506
 
};
69507
 
 
69508
 
 
69509
 
#line 69510 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69510
 
} // closed Puma
69511
 
class WinIfExists;
69512
 
class WinImportHandler;
69513
 
class WinMacros;
69514
 
class CMatchSyntax;
69515
 
class ExtGnu;
69516
 
class ExtAC;
69517
 
class ExtACBuilderCoupling;
69518
 
class ExtACSyntaxCoupling;
69519
 
class ExtACTree;
69520
 
class ExtACKeywords;
69521
 
class WinAsm;
69522
 
class WinDeclSpecs;
69523
 
class WinMemberExplSpec;
69524
 
class WinTypeKeywords;
69525
 
class PragmaOnceUnitState;
69526
 
class PragmaOnce;
69527
 
class CCExprResolve;
69528
 
class CExprResolve;
69529
 
namespace Puma {
69530
 
 
69531
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69532
 
class CT_ArrayDelimiter : public CTree {
69533
 
#line 69534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69534
 
  friend class ::WinIfExists;
69535
 
  friend class ::WinImportHandler;
69536
 
  friend class ::WinMacros;
69537
 
  friend class ::CMatchSyntax;
69538
 
  friend class ::ExtGnu;
69539
 
  friend class ::ExtAC;
69540
 
  friend class ::ExtACBuilderCoupling;
69541
 
  friend class ::ExtACSyntaxCoupling;
69542
 
  friend class ::ExtACTree;
69543
 
  friend class ::ExtACKeywords;
69544
 
  friend class ::WinAsm;
69545
 
  friend class ::WinDeclSpecs;
69546
 
  friend class ::WinMemberExplSpec;
69547
 
  friend class ::WinTypeKeywords;
69548
 
  friend class ::PragmaOnceUnitState;
69549
 
  friend class ::PragmaOnce;
69550
 
  friend class ::CCExprResolve;
69551
 
  friend class ::CExprResolve;
69552
 
 
69553
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69554
 
 
69555
 
  CTree *sons[4]; // star, static, quals, expr
69556
 
  bool pos0;
69557
 
 
69558
 
public:
69559
 
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
69560
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
69561
 
  }
69562
 
  static const char *NodeId ();
69563
 
  const char *NodeName () const { return NodeId (); }
69564
 
  int Sons () const { return CTree::Sons (sons, 4); }
69565
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
69566
 
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
69567
 
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
69568
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
69569
 
  CTree *Expr () const { return sons[3]; }
69570
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69571
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
69572
 
  }
69573
 
};
69574
 
 
69575
 
 
69576
 
#line 69577 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69577
 
} // closed Puma
69578
 
class WinIfExists;
69579
 
class WinImportHandler;
69580
 
class WinMacros;
69581
 
class CMatchSyntax;
69582
 
class ExtGnu;
69583
 
class ExtAC;
69584
 
class ExtACBuilderCoupling;
69585
 
class ExtACSyntaxCoupling;
69586
 
class ExtACTree;
69587
 
class ExtACKeywords;
69588
 
class WinAsm;
69589
 
class WinDeclSpecs;
69590
 
class WinMemberExplSpec;
69591
 
class WinTypeKeywords;
69592
 
class PragmaOnceUnitState;
69593
 
class PragmaOnce;
69594
 
class CCExprResolve;
69595
 
class CExprResolve;
69596
 
namespace Puma {
69597
 
 
69598
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69599
 
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
69600
 
#line 69601 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69601
 
  friend class ::WinIfExists;
69602
 
  friend class ::WinImportHandler;
69603
 
  friend class ::WinMacros;
69604
 
  friend class ::CMatchSyntax;
69605
 
  friend class ::ExtGnu;
69606
 
  friend class ::ExtAC;
69607
 
  friend class ::ExtACBuilderCoupling;
69608
 
  friend class ::ExtACSyntaxCoupling;
69609
 
  friend class ::ExtACTree;
69610
 
  friend class ::ExtACKeywords;
69611
 
  friend class ::WinAsm;
69612
 
  friend class ::WinDeclSpecs;
69613
 
  friend class ::WinMemberExplSpec;
69614
 
  friend class ::WinTypeKeywords;
69615
 
  friend class ::PragmaOnceUnitState;
69616
 
  friend class ::PragmaOnce;
69617
 
  friend class ::CCExprResolve;
69618
 
  friend class ::CExprResolve;
69619
 
 
69620
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69621
 
 
69622
 
  CTree *sons[4]; // declarator, open, delim, close
69623
 
 
69624
 
public:
69625
 
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
69626
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
69627
 
  }
69628
 
  static const char *NodeId ();
69629
 
  const char *NodeName () const { return NodeId (); }
69630
 
  int Sons () const { return 4; }
69631
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
69632
 
  CTree *Declarator () const { return sons[0]; }
69633
 
  CT_ArrayDelimiter *Delimiter () const 
69634
 
   { return (CT_ArrayDelimiter*)sons[2]; }
69635
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69636
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
69637
 
  }
69638
 
  CTypeInfo *Type () const { return type; }
69639
 
  CExprValue *Value () const { return value; }
69640
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
69641
 
};
69642
 
 
69643
 
 
69644
 
#line 69645 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69645
 
} // closed Puma
69646
 
class WinIfExists;
69647
 
class WinImportHandler;
69648
 
class WinMacros;
69649
 
class CMatchSyntax;
69650
 
class ExtGnu;
69651
 
class ExtAC;
69652
 
class ExtACBuilderCoupling;
69653
 
class ExtACSyntaxCoupling;
69654
 
class ExtACTree;
69655
 
class ExtACKeywords;
69656
 
class WinAsm;
69657
 
class WinDeclSpecs;
69658
 
class WinMemberExplSpec;
69659
 
class WinTypeKeywords;
69660
 
class PragmaOnceUnitState;
69661
 
class PragmaOnce;
69662
 
class CCExprResolve;
69663
 
class CExprResolve;
69664
 
namespace Puma {
69665
 
 
69666
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69667
 
class CT_FctDeclarator : public CT_Declarator {
69668
 
#line 69669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69669
 
  friend class ::WinIfExists;
69670
 
  friend class ::WinImportHandler;
69671
 
  friend class ::WinMacros;
69672
 
  friend class ::CMatchSyntax;
69673
 
  friend class ::ExtGnu;
69674
 
  friend class ::ExtAC;
69675
 
  friend class ::ExtACBuilderCoupling;
69676
 
  friend class ::ExtACSyntaxCoupling;
69677
 
  friend class ::ExtACTree;
69678
 
  friend class ::ExtACKeywords;
69679
 
  friend class ::WinAsm;
69680
 
  friend class ::WinDeclSpecs;
69681
 
  friend class ::WinMemberExplSpec;
69682
 
  friend class ::WinTypeKeywords;
69683
 
  friend class ::PragmaOnceUnitState;
69684
 
  friend class ::PragmaOnce;
69685
 
  friend class ::CCExprResolve;
69686
 
  friend class ::CExprResolve;
69687
 
 
69688
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69689
 
 
69690
 
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
69691
 
 
69692
 
public:
69693
 
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
69694
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
69695
 
  }
69696
 
  static const char *NodeId ();
69697
 
  const char *NodeName () const { return NodeId (); }
69698
 
  int Sons () const { return CTree::Sons (sons, 4); }
69699
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
69700
 
  CTree *Declarator () const { return sons[0]; }
69701
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
69702
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
69703
 
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
69704
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69705
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
69706
 
  }
69707
 
};
69708
 
 
69709
 
 
69710
 
#line 69711 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69711
 
} // closed Puma
69712
 
class WinIfExists;
69713
 
class WinImportHandler;
69714
 
class WinMacros;
69715
 
class CMatchSyntax;
69716
 
class ExtGnu;
69717
 
class ExtAC;
69718
 
class ExtACBuilderCoupling;
69719
 
class ExtACSyntaxCoupling;
69720
 
class ExtACTree;
69721
 
class ExtACKeywords;
69722
 
class WinAsm;
69723
 
class WinDeclSpecs;
69724
 
class WinMemberExplSpec;
69725
 
class WinTypeKeywords;
69726
 
class PragmaOnceUnitState;
69727
 
class PragmaOnce;
69728
 
class CCExprResolve;
69729
 
class CExprResolve;
69730
 
namespace Puma {
69731
 
 
69732
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69733
 
class CT_RefDeclarator : public CT_Declarator {
69734
 
#line 69735 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69735
 
  friend class ::WinIfExists;
69736
 
  friend class ::WinImportHandler;
69737
 
  friend class ::WinMacros;
69738
 
  friend class ::CMatchSyntax;
69739
 
  friend class ::ExtGnu;
69740
 
  friend class ::ExtAC;
69741
 
  friend class ::ExtACBuilderCoupling;
69742
 
  friend class ::ExtACSyntaxCoupling;
69743
 
  friend class ::ExtACTree;
69744
 
  friend class ::ExtACKeywords;
69745
 
  friend class ::WinAsm;
69746
 
  friend class ::WinDeclSpecs;
69747
 
  friend class ::WinMemberExplSpec;
69748
 
  friend class ::WinTypeKeywords;
69749
 
  friend class ::PragmaOnceUnitState;
69750
 
  friend class ::PragmaOnce;
69751
 
  friend class ::CCExprResolve;
69752
 
  friend class ::CExprResolve;
69753
 
 
69754
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69755
 
 
69756
 
  CTree *sons[2]; // ref, declarator
69757
 
 
69758
 
public:
69759
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
69760
 
  static const char *NodeId ();
69761
 
  const char *NodeName () const { return NodeId (); }
69762
 
  int Sons () const { return 2; }
69763
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
69764
 
  CTree *Declarator () const { return sons[1]; }
69765
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
69766
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
69767
 
  }
69768
 
};
69769
 
 
69770
 
 
69771
 
#line 69772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69772
 
} // closed Puma
69773
 
class WinIfExists;
69774
 
class WinImportHandler;
69775
 
class WinMacros;
69776
 
class CMatchSyntax;
69777
 
class ExtGnu;
69778
 
class ExtAC;
69779
 
class ExtACBuilderCoupling;
69780
 
class ExtACSyntaxCoupling;
69781
 
class ExtACTree;
69782
 
class ExtACKeywords;
69783
 
class WinAsm;
69784
 
class WinDeclSpecs;
69785
 
class WinMemberExplSpec;
69786
 
class WinTypeKeywords;
69787
 
class PragmaOnceUnitState;
69788
 
class PragmaOnce;
69789
 
class CCExprResolve;
69790
 
class CExprResolve;
69791
 
namespace Puma {
69792
 
 
69793
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69794
 
class CT_PtrDeclarator : public CT_Declarator {
69795
 
#line 69796 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69796
 
  friend class ::WinIfExists;
69797
 
  friend class ::WinImportHandler;
69798
 
  friend class ::WinMacros;
69799
 
  friend class ::CMatchSyntax;
69800
 
  friend class ::ExtGnu;
69801
 
  friend class ::ExtAC;
69802
 
  friend class ::ExtACBuilderCoupling;
69803
 
  friend class ::ExtACSyntaxCoupling;
69804
 
  friend class ::ExtACTree;
69805
 
  friend class ::ExtACKeywords;
69806
 
  friend class ::WinAsm;
69807
 
  friend class ::WinDeclSpecs;
69808
 
  friend class ::WinMemberExplSpec;
69809
 
  friend class ::WinTypeKeywords;
69810
 
  friend class ::PragmaOnceUnitState;
69811
 
  friend class ::PragmaOnce;
69812
 
  friend class ::CCExprResolve;
69813
 
  friend class ::CExprResolve;
69814
 
 
69815
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69816
 
 
69817
 
  CTree *sons[3]; // ptr, cv_quals, declarator
69818
 
 
69819
 
public:
69820
 
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
69821
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
69822
 
  }
69823
 
  static const char *NodeId ();
69824
 
  const char *NodeName () const { return NodeId (); }
69825
 
  int Sons () const { return CTree::Sons (sons, 3); }
69826
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
69827
 
  CTree *Declarator () const { return sons[2]; }
69828
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
69829
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69830
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
69831
 
  }
69832
 
};
69833
 
 
69834
 
 
69835
 
#line 69836 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69836
 
} // closed Puma
69837
 
class WinIfExists;
69838
 
class WinImportHandler;
69839
 
class WinMacros;
69840
 
class CMatchSyntax;
69841
 
class ExtGnu;
69842
 
class ExtAC;
69843
 
class ExtACBuilderCoupling;
69844
 
class ExtACSyntaxCoupling;
69845
 
class ExtACTree;
69846
 
class ExtACKeywords;
69847
 
class WinAsm;
69848
 
class WinDeclSpecs;
69849
 
class WinMemberExplSpec;
69850
 
class WinTypeKeywords;
69851
 
class PragmaOnceUnitState;
69852
 
class PragmaOnce;
69853
 
class CCExprResolve;
69854
 
class CExprResolve;
69855
 
namespace Puma {
69856
 
 
69857
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69858
 
class CT_MembPtrDeclarator : public CT_Declarator {
69859
 
#line 69860 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69860
 
  friend class ::WinIfExists;
69861
 
  friend class ::WinImportHandler;
69862
 
  friend class ::WinMacros;
69863
 
  friend class ::CMatchSyntax;
69864
 
  friend class ::ExtGnu;
69865
 
  friend class ::ExtAC;
69866
 
  friend class ::ExtACBuilderCoupling;
69867
 
  friend class ::ExtACSyntaxCoupling;
69868
 
  friend class ::ExtACTree;
69869
 
  friend class ::ExtACKeywords;
69870
 
  friend class ::WinAsm;
69871
 
  friend class ::WinDeclSpecs;
69872
 
  friend class ::WinMemberExplSpec;
69873
 
  friend class ::WinTypeKeywords;
69874
 
  friend class ::PragmaOnceUnitState;
69875
 
  friend class ::PragmaOnce;
69876
 
  friend class ::CCExprResolve;
69877
 
  friend class ::CExprResolve;
69878
 
 
69879
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69880
 
 
69881
 
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
69882
 
 
69883
 
public:
69884
 
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
69885
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
69886
 
  }
69887
 
  static const char *NodeId ();
69888
 
  const char *NodeName () const { return NodeId (); }
69889
 
  int Sons () const { return CTree::Sons (sons, 5); }
69890
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
69891
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
69892
 
  CTree *Declarator () const { return sons[4]; }
69893
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
69894
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69895
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
69896
 
  }
69897
 
};
69898
 
 
69899
 
 
69900
 
#line 69901 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69901
 
} // closed Puma
69902
 
class WinIfExists;
69903
 
class WinImportHandler;
69904
 
class WinMacros;
69905
 
class CMatchSyntax;
69906
 
class ExtGnu;
69907
 
class ExtAC;
69908
 
class ExtACBuilderCoupling;
69909
 
class ExtACSyntaxCoupling;
69910
 
class ExtACTree;
69911
 
class ExtACKeywords;
69912
 
class WinAsm;
69913
 
class WinDeclSpecs;
69914
 
class WinMemberExplSpec;
69915
 
class WinTypeKeywords;
69916
 
class PragmaOnceUnitState;
69917
 
class PragmaOnce;
69918
 
class CCExprResolve;
69919
 
class CExprResolve;
69920
 
namespace Puma {
69921
 
 
69922
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69923
 
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
69924
 
#line 69925 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69925
 
  friend class ::WinIfExists;
69926
 
  friend class ::WinImportHandler;
69927
 
  friend class ::WinMacros;
69928
 
  friend class ::CMatchSyntax;
69929
 
  friend class ::ExtGnu;
69930
 
  friend class ::ExtAC;
69931
 
  friend class ::ExtACBuilderCoupling;
69932
 
  friend class ::ExtACSyntaxCoupling;
69933
 
  friend class ::ExtACTree;
69934
 
  friend class ::ExtACKeywords;
69935
 
  friend class ::WinAsm;
69936
 
  friend class ::WinDeclSpecs;
69937
 
  friend class ::WinMemberExplSpec;
69938
 
  friend class ::WinTypeKeywords;
69939
 
  friend class ::PragmaOnceUnitState;
69940
 
  friend class ::PragmaOnce;
69941
 
  friend class ::CCExprResolve;
69942
 
  friend class ::CExprResolve;
69943
 
 
69944
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69945
 
 
69946
 
  CTree *sons[3]; // declarator, colon, expr
69947
 
 
69948
 
public:
69949
 
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
69950
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
69951
 
  }
69952
 
  static const char *NodeId ();
69953
 
  const char *NodeName () const { return NodeId (); }
69954
 
  int Sons () const { return CTree::Sons (sons, 3); }
69955
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
69956
 
  CTree *Declarator () const { return sons[0]; }
69957
 
  CTree *Expr () const { return sons[2]; }
69958
 
  void FieldSize (CTree *s) { sons[2] = s; }
69959
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
69960
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69961
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
69962
 
  }
69963
 
};
69964
 
 
69965
 
/*****************************************************************************/
69966
 
/*                                                                           */
69967
 
/*                              Statements                                   */
69968
 
/*                                                                           */
69969
 
/*****************************************************************************/
69970
 
 
69971
 
 
69972
 
#line 69973 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69973
 
} // closed Puma
69974
 
class WinIfExists;
69975
 
class WinImportHandler;
69976
 
class WinMacros;
69977
 
class CMatchSyntax;
69978
 
class ExtGnu;
69979
 
class ExtAC;
69980
 
class ExtACBuilderCoupling;
69981
 
class ExtACSyntaxCoupling;
69982
 
class ExtACTree;
69983
 
class ExtACKeywords;
69984
 
class WinAsm;
69985
 
class WinDeclSpecs;
69986
 
class WinMemberExplSpec;
69987
 
class WinTypeKeywords;
69988
 
class PragmaOnceUnitState;
69989
 
class PragmaOnce;
69990
 
class CCExprResolve;
69991
 
class CExprResolve;
69992
 
namespace Puma {
69993
 
 
69994
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
69995
 
class CT_Statement : public CTree {
69996
 
#line 69997 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
69997
 
  friend class ::WinIfExists;
69998
 
  friend class ::WinImportHandler;
69999
 
  friend class ::WinMacros;
70000
 
  friend class ::CMatchSyntax;
70001
 
  friend class ::ExtGnu;
70002
 
  friend class ::ExtAC;
70003
 
  friend class ::ExtACBuilderCoupling;
70004
 
  friend class ::ExtACSyntaxCoupling;
70005
 
  friend class ::ExtACTree;
70006
 
  friend class ::ExtACKeywords;
70007
 
  friend class ::WinAsm;
70008
 
  friend class ::WinDeclSpecs;
70009
 
  friend class ::WinMemberExplSpec;
70010
 
  friend class ::WinTypeKeywords;
70011
 
  friend class ::PragmaOnceUnitState;
70012
 
  friend class ::PragmaOnce;
70013
 
  friend class ::CCExprResolve;
70014
 
  friend class ::CExprResolve;
70015
 
 
70016
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70017
 
 
70018
 
protected:
70019
 
  CT_Statement () {}
70020
 
};
70021
 
 
70022
 
 
70023
 
#line 70024 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70024
 
} // closed Puma
70025
 
class WinIfExists;
70026
 
class WinImportHandler;
70027
 
class WinMacros;
70028
 
class CMatchSyntax;
70029
 
class ExtGnu;
70030
 
class ExtAC;
70031
 
class ExtACBuilderCoupling;
70032
 
class ExtACSyntaxCoupling;
70033
 
class ExtACTree;
70034
 
class ExtACKeywords;
70035
 
class WinAsm;
70036
 
class WinDeclSpecs;
70037
 
class WinMemberExplSpec;
70038
 
class WinTypeKeywords;
70039
 
class PragmaOnceUnitState;
70040
 
class PragmaOnce;
70041
 
class CCExprResolve;
70042
 
class CExprResolve;
70043
 
namespace Puma {
70044
 
 
70045
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70046
 
class CT_LabelStmt : public CT_Statement {
70047
 
#line 70048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70048
 
  friend class ::WinIfExists;
70049
 
  friend class ::WinImportHandler;
70050
 
  friend class ::WinMacros;
70051
 
  friend class ::CMatchSyntax;
70052
 
  friend class ::ExtGnu;
70053
 
  friend class ::ExtAC;
70054
 
  friend class ::ExtACBuilderCoupling;
70055
 
  friend class ::ExtACSyntaxCoupling;
70056
 
  friend class ::ExtACTree;
70057
 
  friend class ::ExtACKeywords;
70058
 
  friend class ::WinAsm;
70059
 
  friend class ::WinDeclSpecs;
70060
 
  friend class ::WinMemberExplSpec;
70061
 
  friend class ::WinTypeKeywords;
70062
 
  friend class ::PragmaOnceUnitState;
70063
 
  friend class ::PragmaOnce;
70064
 
  friend class ::CCExprResolve;
70065
 
  friend class ::CExprResolve;
70066
 
 
70067
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70068
 
 
70069
 
  CTree *sons[3]; // id, colon, stmt
70070
 
 
70071
 
public:
70072
 
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
70073
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
70074
 
  }
70075
 
  static const char *NodeId ();
70076
 
  const char *NodeName () const { return NodeId (); }
70077
 
  int Sons () const { return 3; }
70078
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
70079
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
70080
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
70081
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70082
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
70083
 
  }
70084
 
};
70085
 
 
70086
 
 
70087
 
#line 70088 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70088
 
} // closed Puma
70089
 
class WinIfExists;
70090
 
class WinImportHandler;
70091
 
class WinMacros;
70092
 
class CMatchSyntax;
70093
 
class ExtGnu;
70094
 
class ExtAC;
70095
 
class ExtACBuilderCoupling;
70096
 
class ExtACSyntaxCoupling;
70097
 
class ExtACTree;
70098
 
class ExtACKeywords;
70099
 
class WinAsm;
70100
 
class WinDeclSpecs;
70101
 
class WinMemberExplSpec;
70102
 
class WinTypeKeywords;
70103
 
class PragmaOnceUnitState;
70104
 
class PragmaOnce;
70105
 
class CCExprResolve;
70106
 
class CExprResolve;
70107
 
namespace Puma {
70108
 
 
70109
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70110
 
class CT_DefaultStmt : public CT_Statement {
70111
 
#line 70112 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70112
 
  friend class ::WinIfExists;
70113
 
  friend class ::WinImportHandler;
70114
 
  friend class ::WinMacros;
70115
 
  friend class ::CMatchSyntax;
70116
 
  friend class ::ExtGnu;
70117
 
  friend class ::ExtAC;
70118
 
  friend class ::ExtACBuilderCoupling;
70119
 
  friend class ::ExtACSyntaxCoupling;
70120
 
  friend class ::ExtACTree;
70121
 
  friend class ::ExtACKeywords;
70122
 
  friend class ::WinAsm;
70123
 
  friend class ::WinDeclSpecs;
70124
 
  friend class ::WinMemberExplSpec;
70125
 
  friend class ::WinTypeKeywords;
70126
 
  friend class ::PragmaOnceUnitState;
70127
 
  friend class ::PragmaOnce;
70128
 
  friend class ::CCExprResolve;
70129
 
  friend class ::CExprResolve;
70130
 
 
70131
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70132
 
 
70133
 
  CTree *sons[3]; // keyword, colon, stmt
70134
 
 
70135
 
public:
70136
 
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
70137
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
70138
 
  }
70139
 
  static const char *NodeId ();
70140
 
  const char *NodeName () const { return NodeId (); }
70141
 
  int Sons () const { return 3; }
70142
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
70143
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
70144
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70145
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
70146
 
  }
70147
 
};
70148
 
 
70149
 
 
70150
 
#line 70151 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70151
 
} // closed Puma
70152
 
class WinIfExists;
70153
 
class WinImportHandler;
70154
 
class WinMacros;
70155
 
class CMatchSyntax;
70156
 
class ExtGnu;
70157
 
class ExtAC;
70158
 
class ExtACBuilderCoupling;
70159
 
class ExtACSyntaxCoupling;
70160
 
class ExtACTree;
70161
 
class ExtACKeywords;
70162
 
class WinAsm;
70163
 
class WinDeclSpecs;
70164
 
class WinMemberExplSpec;
70165
 
class WinTypeKeywords;
70166
 
class PragmaOnceUnitState;
70167
 
class PragmaOnce;
70168
 
class CCExprResolve;
70169
 
class CExprResolve;
70170
 
namespace Puma {
70171
 
 
70172
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70173
 
class CT_TryStmt : public CT_Statement {
70174
 
#line 70175 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70175
 
  friend class ::WinIfExists;
70176
 
  friend class ::WinImportHandler;
70177
 
  friend class ::WinMacros;
70178
 
  friend class ::CMatchSyntax;
70179
 
  friend class ::ExtGnu;
70180
 
  friend class ::ExtAC;
70181
 
  friend class ::ExtACBuilderCoupling;
70182
 
  friend class ::ExtACSyntaxCoupling;
70183
 
  friend class ::ExtACTree;
70184
 
  friend class ::ExtACKeywords;
70185
 
  friend class ::WinAsm;
70186
 
  friend class ::WinDeclSpecs;
70187
 
  friend class ::WinMemberExplSpec;
70188
 
  friend class ::WinTypeKeywords;
70189
 
  friend class ::PragmaOnceUnitState;
70190
 
  friend class ::PragmaOnce;
70191
 
  friend class ::CCExprResolve;
70192
 
  friend class ::CExprResolve;
70193
 
 
70194
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70195
 
 
70196
 
  CTree *sons[3]; // try, stmt, handlers
70197
 
 
70198
 
public:
70199
 
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
70200
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
70201
 
  }
70202
 
  static const char *NodeId ();
70203
 
  const char *NodeName () const { return NodeId (); }
70204
 
  int Sons () const { return 3; }
70205
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
70206
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
70207
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
70208
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70209
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
70210
 
  }
70211
 
};
70212
 
 
70213
 
 
70214
 
#line 70215 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70215
 
} // closed Puma
70216
 
class WinIfExists;
70217
 
class WinImportHandler;
70218
 
class WinMacros;
70219
 
class CMatchSyntax;
70220
 
class ExtGnu;
70221
 
class ExtAC;
70222
 
class ExtACBuilderCoupling;
70223
 
class ExtACSyntaxCoupling;
70224
 
class ExtACTree;
70225
 
class ExtACKeywords;
70226
 
class WinAsm;
70227
 
class WinDeclSpecs;
70228
 
class WinMemberExplSpec;
70229
 
class WinTypeKeywords;
70230
 
class PragmaOnceUnitState;
70231
 
class PragmaOnce;
70232
 
class CCExprResolve;
70233
 
class CExprResolve;
70234
 
namespace Puma {
70235
 
 
70236
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70237
 
class CT_CaseStmt : public CT_Statement {
70238
 
#line 70239 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70239
 
  friend class ::WinIfExists;
70240
 
  friend class ::WinImportHandler;
70241
 
  friend class ::WinMacros;
70242
 
  friend class ::CMatchSyntax;
70243
 
  friend class ::ExtGnu;
70244
 
  friend class ::ExtAC;
70245
 
  friend class ::ExtACBuilderCoupling;
70246
 
  friend class ::ExtACSyntaxCoupling;
70247
 
  friend class ::ExtACTree;
70248
 
  friend class ::ExtACKeywords;
70249
 
  friend class ::WinAsm;
70250
 
  friend class ::WinDeclSpecs;
70251
 
  friend class ::WinMemberExplSpec;
70252
 
  friend class ::WinTypeKeywords;
70253
 
  friend class ::PragmaOnceUnitState;
70254
 
  friend class ::PragmaOnce;
70255
 
  friend class ::CCExprResolve;
70256
 
  friend class ::CExprResolve;
70257
 
 
70258
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70259
 
 
70260
 
  CTree *sons[4]; // keyword, expr, colon, stmt
70261
 
 
70262
 
public:
70263
 
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
70264
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
70265
 
  }
70266
 
  static const char *NodeId ();
70267
 
  const char *NodeName () const { return NodeId (); }
70268
 
  int Sons () const { return 4; }
70269
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
70270
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
70271
 
  CTree *Expr () const { return sons[1]; }
70272
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70273
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
70274
 
  }
70275
 
};
70276
 
 
70277
 
 
70278
 
#line 70279 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70279
 
} // closed Puma
70280
 
class WinIfExists;
70281
 
class WinImportHandler;
70282
 
class WinMacros;
70283
 
class CMatchSyntax;
70284
 
class ExtGnu;
70285
 
class ExtAC;
70286
 
class ExtACBuilderCoupling;
70287
 
class ExtACSyntaxCoupling;
70288
 
class ExtACTree;
70289
 
class ExtACKeywords;
70290
 
class WinAsm;
70291
 
class WinDeclSpecs;
70292
 
class WinMemberExplSpec;
70293
 
class WinTypeKeywords;
70294
 
class PragmaOnceUnitState;
70295
 
class PragmaOnce;
70296
 
class CCExprResolve;
70297
 
class CExprResolve;
70298
 
namespace Puma {
70299
 
 
70300
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70301
 
class CT_ExprStmt : public CT_Statement {
70302
 
#line 70303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70303
 
  friend class ::WinIfExists;
70304
 
  friend class ::WinImportHandler;
70305
 
  friend class ::WinMacros;
70306
 
  friend class ::CMatchSyntax;
70307
 
  friend class ::ExtGnu;
70308
 
  friend class ::ExtAC;
70309
 
  friend class ::ExtACBuilderCoupling;
70310
 
  friend class ::ExtACSyntaxCoupling;
70311
 
  friend class ::ExtACTree;
70312
 
  friend class ::ExtACKeywords;
70313
 
  friend class ::WinAsm;
70314
 
  friend class ::WinDeclSpecs;
70315
 
  friend class ::WinMemberExplSpec;
70316
 
  friend class ::WinTypeKeywords;
70317
 
  friend class ::PragmaOnceUnitState;
70318
 
  friend class ::PragmaOnce;
70319
 
  friend class ::CCExprResolve;
70320
 
  friend class ::CExprResolve;
70321
 
 
70322
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70323
 
 
70324
 
  CTree *sons[2]; // expr, semi_colon
70325
 
 
70326
 
public:
70327
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
70328
 
  static const char *NodeId ();
70329
 
  const char *NodeName () const { return NodeId (); }
70330
 
  int Sons () const { return CTree::Sons (sons, 2); }
70331
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
70332
 
  CTree *Expr () const { return sons[0]; }
70333
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70334
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
70335
 
  }
70336
 
};
70337
 
 
70338
 
 
70339
 
#line 70340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70340
 
} // closed Puma
70341
 
class WinIfExists;
70342
 
class WinImportHandler;
70343
 
class WinMacros;
70344
 
class CMatchSyntax;
70345
 
class ExtGnu;
70346
 
class ExtAC;
70347
 
class ExtACBuilderCoupling;
70348
 
class ExtACSyntaxCoupling;
70349
 
class ExtACTree;
70350
 
class ExtACKeywords;
70351
 
class WinAsm;
70352
 
class WinDeclSpecs;
70353
 
class WinMemberExplSpec;
70354
 
class WinTypeKeywords;
70355
 
class PragmaOnceUnitState;
70356
 
class PragmaOnce;
70357
 
class CCExprResolve;
70358
 
class CExprResolve;
70359
 
namespace Puma {
70360
 
 
70361
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70362
 
class CT_DeclStmt : public CT_Statement {
70363
 
#line 70364 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70364
 
  friend class ::WinIfExists;
70365
 
  friend class ::WinImportHandler;
70366
 
  friend class ::WinMacros;
70367
 
  friend class ::CMatchSyntax;
70368
 
  friend class ::ExtGnu;
70369
 
  friend class ::ExtAC;
70370
 
  friend class ::ExtACBuilderCoupling;
70371
 
  friend class ::ExtACSyntaxCoupling;
70372
 
  friend class ::ExtACTree;
70373
 
  friend class ::ExtACKeywords;
70374
 
  friend class ::WinAsm;
70375
 
  friend class ::WinDeclSpecs;
70376
 
  friend class ::WinMemberExplSpec;
70377
 
  friend class ::WinTypeKeywords;
70378
 
  friend class ::PragmaOnceUnitState;
70379
 
  friend class ::PragmaOnce;
70380
 
  friend class ::CCExprResolve;
70381
 
  friend class ::CExprResolve;
70382
 
 
70383
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70384
 
 
70385
 
  CTree *_decl;
70386
 
 
70387
 
public:
70388
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
70389
 
  static const char *NodeId ();
70390
 
  const char *NodeName () const { return NodeId (); }
70391
 
  int Sons () const { return 1; }
70392
 
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
70393
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
70394
 
   { if (old_son == _decl) _decl = new_son; }
70395
 
};
70396
 
 
70397
 
 
70398
 
#line 70399 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70399
 
} // closed Puma
70400
 
class WinIfExists;
70401
 
class WinImportHandler;
70402
 
class WinMacros;
70403
 
class CMatchSyntax;
70404
 
class ExtGnu;
70405
 
class ExtAC;
70406
 
class ExtACBuilderCoupling;
70407
 
class ExtACSyntaxCoupling;
70408
 
class ExtACTree;
70409
 
class ExtACKeywords;
70410
 
class WinAsm;
70411
 
class WinDeclSpecs;
70412
 
class WinMemberExplSpec;
70413
 
class WinTypeKeywords;
70414
 
class PragmaOnceUnitState;
70415
 
class PragmaOnce;
70416
 
class CCExprResolve;
70417
 
class CExprResolve;
70418
 
namespace Puma {
70419
 
 
70420
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70421
 
class CT_SwitchStmt : public CT_Statement, public CSemScope {
70422
 
#line 70423 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70423
 
  friend class ::WinIfExists;
70424
 
  friend class ::WinImportHandler;
70425
 
  friend class ::WinMacros;
70426
 
  friend class ::CMatchSyntax;
70427
 
  friend class ::ExtGnu;
70428
 
  friend class ::ExtAC;
70429
 
  friend class ::ExtACBuilderCoupling;
70430
 
  friend class ::ExtACSyntaxCoupling;
70431
 
  friend class ::ExtACTree;
70432
 
  friend class ::ExtACKeywords;
70433
 
  friend class ::WinAsm;
70434
 
  friend class ::WinDeclSpecs;
70435
 
  friend class ::WinMemberExplSpec;
70436
 
  friend class ::WinTypeKeywords;
70437
 
  friend class ::PragmaOnceUnitState;
70438
 
  friend class ::PragmaOnce;
70439
 
  friend class ::CCExprResolve;
70440
 
  friend class ::CExprResolve;
70441
 
 
70442
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70443
 
 
70444
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
70445
 
 
70446
 
public:
70447
 
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
70448
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
70449
 
  }
70450
 
  static const char *NodeId ();
70451
 
  const char *NodeName () const { return NodeId (); }
70452
 
  int Sons () const { return 5; }
70453
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
70454
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
70455
 
  CTree *Condition () const { return sons[2]; }
70456
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70457
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
70458
 
  }
70459
 
};
70460
 
 
70461
 
 
70462
 
#line 70463 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70463
 
} // closed Puma
70464
 
class WinIfExists;
70465
 
class WinImportHandler;
70466
 
class WinMacros;
70467
 
class CMatchSyntax;
70468
 
class ExtGnu;
70469
 
class ExtAC;
70470
 
class ExtACBuilderCoupling;
70471
 
class ExtACSyntaxCoupling;
70472
 
class ExtACTree;
70473
 
class ExtACKeywords;
70474
 
class WinAsm;
70475
 
class WinDeclSpecs;
70476
 
class WinMemberExplSpec;
70477
 
class WinTypeKeywords;
70478
 
class PragmaOnceUnitState;
70479
 
class PragmaOnce;
70480
 
class CCExprResolve;
70481
 
class CExprResolve;
70482
 
namespace Puma {
70483
 
 
70484
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70485
 
class CT_IfStmt : public CT_Statement, public CSemScope {
70486
 
#line 70487 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70487
 
  friend class ::WinIfExists;
70488
 
  friend class ::WinImportHandler;
70489
 
  friend class ::WinMacros;
70490
 
  friend class ::CMatchSyntax;
70491
 
  friend class ::ExtGnu;
70492
 
  friend class ::ExtAC;
70493
 
  friend class ::ExtACBuilderCoupling;
70494
 
  friend class ::ExtACSyntaxCoupling;
70495
 
  friend class ::ExtACTree;
70496
 
  friend class ::ExtACKeywords;
70497
 
  friend class ::WinAsm;
70498
 
  friend class ::WinDeclSpecs;
70499
 
  friend class ::WinMemberExplSpec;
70500
 
  friend class ::WinTypeKeywords;
70501
 
  friend class ::PragmaOnceUnitState;
70502
 
  friend class ::PragmaOnce;
70503
 
  friend class ::CCExprResolve;
70504
 
  friend class ::CExprResolve;
70505
 
 
70506
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70507
 
 
70508
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
70509
 
 
70510
 
public:
70511
 
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
70512
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
70513
 
  }
70514
 
  static const char *NodeId ();
70515
 
  const char *NodeName () const { return NodeId (); }
70516
 
  int Sons () const { return 5; }
70517
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
70518
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
70519
 
  CTree *Condition () const { return sons[2]; }
70520
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70521
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
70522
 
  }
70523
 
};
70524
 
 
70525
 
 
70526
 
#line 70527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70527
 
} // closed Puma
70528
 
class WinIfExists;
70529
 
class WinImportHandler;
70530
 
class WinMacros;
70531
 
class CMatchSyntax;
70532
 
class ExtGnu;
70533
 
class ExtAC;
70534
 
class ExtACBuilderCoupling;
70535
 
class ExtACSyntaxCoupling;
70536
 
class ExtACTree;
70537
 
class ExtACKeywords;
70538
 
class WinAsm;
70539
 
class WinDeclSpecs;
70540
 
class WinMemberExplSpec;
70541
 
class WinTypeKeywords;
70542
 
class PragmaOnceUnitState;
70543
 
class PragmaOnce;
70544
 
class CCExprResolve;
70545
 
class CExprResolve;
70546
 
namespace Puma {
70547
 
 
70548
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70549
 
class CT_IfElseStmt : public CT_Statement, public CSemScope {
70550
 
#line 70551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70551
 
  friend class ::WinIfExists;
70552
 
  friend class ::WinImportHandler;
70553
 
  friend class ::WinMacros;
70554
 
  friend class ::CMatchSyntax;
70555
 
  friend class ::ExtGnu;
70556
 
  friend class ::ExtAC;
70557
 
  friend class ::ExtACBuilderCoupling;
70558
 
  friend class ::ExtACSyntaxCoupling;
70559
 
  friend class ::ExtACTree;
70560
 
  friend class ::ExtACKeywords;
70561
 
  friend class ::WinAsm;
70562
 
  friend class ::WinDeclSpecs;
70563
 
  friend class ::WinMemberExplSpec;
70564
 
  friend class ::WinTypeKeywords;
70565
 
  friend class ::PragmaOnceUnitState;
70566
 
  friend class ::PragmaOnce;
70567
 
  friend class ::CCExprResolve;
70568
 
  friend class ::CExprResolve;
70569
 
 
70570
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70571
 
 
70572
 
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
70573
 
 
70574
 
public:
70575
 
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
70576
 
                 CTree *is, CTree *e, CTree *es) {
70577
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
70578
 
    sons[5] = e; sons[6] = es; 
70579
 
  }
70580
 
  static const char *NodeId ();
70581
 
  const char *NodeName () const { return NodeId (); }
70582
 
  int Sons () const { return 7; }
70583
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
70584
 
  CTree *Condition () const { return sons[2]; }
70585
 
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
70586
 
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
70587
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70588
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
70589
 
  }
70590
 
};
70591
 
 
70592
 
 
70593
 
#line 70594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70594
 
} // closed Puma
70595
 
class WinIfExists;
70596
 
class WinImportHandler;
70597
 
class WinMacros;
70598
 
class CMatchSyntax;
70599
 
class ExtGnu;
70600
 
class ExtAC;
70601
 
class ExtACBuilderCoupling;
70602
 
class ExtACSyntaxCoupling;
70603
 
class ExtACTree;
70604
 
class ExtACKeywords;
70605
 
class WinAsm;
70606
 
class WinDeclSpecs;
70607
 
class WinMemberExplSpec;
70608
 
class WinTypeKeywords;
70609
 
class PragmaOnceUnitState;
70610
 
class PragmaOnce;
70611
 
class CCExprResolve;
70612
 
class CExprResolve;
70613
 
namespace Puma {
70614
 
 
70615
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70616
 
class CT_BreakStmt : public CT_Statement {
70617
 
#line 70618 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70618
 
  friend class ::WinIfExists;
70619
 
  friend class ::WinImportHandler;
70620
 
  friend class ::WinMacros;
70621
 
  friend class ::CMatchSyntax;
70622
 
  friend class ::ExtGnu;
70623
 
  friend class ::ExtAC;
70624
 
  friend class ::ExtACBuilderCoupling;
70625
 
  friend class ::ExtACSyntaxCoupling;
70626
 
  friend class ::ExtACTree;
70627
 
  friend class ::ExtACKeywords;
70628
 
  friend class ::WinAsm;
70629
 
  friend class ::WinDeclSpecs;
70630
 
  friend class ::WinMemberExplSpec;
70631
 
  friend class ::WinTypeKeywords;
70632
 
  friend class ::PragmaOnceUnitState;
70633
 
  friend class ::PragmaOnce;
70634
 
  friend class ::CCExprResolve;
70635
 
  friend class ::CExprResolve;
70636
 
 
70637
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70638
 
 
70639
 
  CTree *sons[2]; // key, semi_colon
70640
 
 
70641
 
public:
70642
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
70643
 
  static const char *NodeId ();
70644
 
  const char *NodeName () const { return NodeId (); }
70645
 
  int Sons () const { return 2; }
70646
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
70647
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70648
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
70649
 
  }
70650
 
};
70651
 
 
70652
 
 
70653
 
#line 70654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70654
 
} // closed Puma
70655
 
class WinIfExists;
70656
 
class WinImportHandler;
70657
 
class WinMacros;
70658
 
class CMatchSyntax;
70659
 
class ExtGnu;
70660
 
class ExtAC;
70661
 
class ExtACBuilderCoupling;
70662
 
class ExtACSyntaxCoupling;
70663
 
class ExtACTree;
70664
 
class ExtACKeywords;
70665
 
class WinAsm;
70666
 
class WinDeclSpecs;
70667
 
class WinMemberExplSpec;
70668
 
class WinTypeKeywords;
70669
 
class PragmaOnceUnitState;
70670
 
class PragmaOnce;
70671
 
class CCExprResolve;
70672
 
class CExprResolve;
70673
 
namespace Puma {
70674
 
 
70675
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70676
 
class CT_ContinueStmt : public CT_Statement {
70677
 
#line 70678 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70678
 
  friend class ::WinIfExists;
70679
 
  friend class ::WinImportHandler;
70680
 
  friend class ::WinMacros;
70681
 
  friend class ::CMatchSyntax;
70682
 
  friend class ::ExtGnu;
70683
 
  friend class ::ExtAC;
70684
 
  friend class ::ExtACBuilderCoupling;
70685
 
  friend class ::ExtACSyntaxCoupling;
70686
 
  friend class ::ExtACTree;
70687
 
  friend class ::ExtACKeywords;
70688
 
  friend class ::WinAsm;
70689
 
  friend class ::WinDeclSpecs;
70690
 
  friend class ::WinMemberExplSpec;
70691
 
  friend class ::WinTypeKeywords;
70692
 
  friend class ::PragmaOnceUnitState;
70693
 
  friend class ::PragmaOnce;
70694
 
  friend class ::CCExprResolve;
70695
 
  friend class ::CExprResolve;
70696
 
 
70697
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70698
 
 
70699
 
  CTree *sons[2]; // key, semi_colon
70700
 
 
70701
 
public:
70702
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
70703
 
  static const char *NodeId ();
70704
 
  const char *NodeName () const { return NodeId (); }
70705
 
  int Sons () const { return 2; }
70706
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
70707
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70708
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
70709
 
  }
70710
 
};
70711
 
 
70712
 
 
70713
 
#line 70714 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70714
 
} // closed Puma
70715
 
class WinIfExists;
70716
 
class WinImportHandler;
70717
 
class WinMacros;
70718
 
class CMatchSyntax;
70719
 
class ExtGnu;
70720
 
class ExtAC;
70721
 
class ExtACBuilderCoupling;
70722
 
class ExtACSyntaxCoupling;
70723
 
class ExtACTree;
70724
 
class ExtACKeywords;
70725
 
class WinAsm;
70726
 
class WinDeclSpecs;
70727
 
class WinMemberExplSpec;
70728
 
class WinTypeKeywords;
70729
 
class PragmaOnceUnitState;
70730
 
class PragmaOnce;
70731
 
class CCExprResolve;
70732
 
class CExprResolve;
70733
 
namespace Puma {
70734
 
 
70735
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70736
 
class CT_GotoStmt : public CT_Statement {
70737
 
#line 70738 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70738
 
  friend class ::WinIfExists;
70739
 
  friend class ::WinImportHandler;
70740
 
  friend class ::WinMacros;
70741
 
  friend class ::CMatchSyntax;
70742
 
  friend class ::ExtGnu;
70743
 
  friend class ::ExtAC;
70744
 
  friend class ::ExtACBuilderCoupling;
70745
 
  friend class ::ExtACSyntaxCoupling;
70746
 
  friend class ::ExtACTree;
70747
 
  friend class ::ExtACKeywords;
70748
 
  friend class ::WinAsm;
70749
 
  friend class ::WinDeclSpecs;
70750
 
  friend class ::WinMemberExplSpec;
70751
 
  friend class ::WinTypeKeywords;
70752
 
  friend class ::PragmaOnceUnitState;
70753
 
  friend class ::PragmaOnce;
70754
 
  friend class ::CCExprResolve;
70755
 
  friend class ::CExprResolve;
70756
 
 
70757
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70758
 
 
70759
 
  CTree *sons[3]; // key, label, semi_colon
70760
 
 
70761
 
public:
70762
 
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
70763
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
70764
 
  }
70765
 
  static const char *NodeId ();
70766
 
  const char *NodeName () const { return NodeId (); }
70767
 
  int Sons () const { return 3; }
70768
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
70769
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
70770
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70771
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
70772
 
  }
70773
 
};
70774
 
 
70775
 
 
70776
 
#line 70777 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70777
 
} // closed Puma
70778
 
class WinIfExists;
70779
 
class WinImportHandler;
70780
 
class WinMacros;
70781
 
class CMatchSyntax;
70782
 
class ExtGnu;
70783
 
class ExtAC;
70784
 
class ExtACBuilderCoupling;
70785
 
class ExtACSyntaxCoupling;
70786
 
class ExtACTree;
70787
 
class ExtACKeywords;
70788
 
class WinAsm;
70789
 
class WinDeclSpecs;
70790
 
class WinMemberExplSpec;
70791
 
class WinTypeKeywords;
70792
 
class PragmaOnceUnitState;
70793
 
class PragmaOnce;
70794
 
class CCExprResolve;
70795
 
class CExprResolve;
70796
 
namespace Puma {
70797
 
 
70798
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70799
 
class CT_ReturnStmt : public CT_Statement {
70800
 
#line 70801 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70801
 
  friend class ::WinIfExists;
70802
 
  friend class ::WinImportHandler;
70803
 
  friend class ::WinMacros;
70804
 
  friend class ::CMatchSyntax;
70805
 
  friend class ::ExtGnu;
70806
 
  friend class ::ExtAC;
70807
 
  friend class ::ExtACBuilderCoupling;
70808
 
  friend class ::ExtACSyntaxCoupling;
70809
 
  friend class ::ExtACTree;
70810
 
  friend class ::ExtACKeywords;
70811
 
  friend class ::WinAsm;
70812
 
  friend class ::WinDeclSpecs;
70813
 
  friend class ::WinMemberExplSpec;
70814
 
  friend class ::WinTypeKeywords;
70815
 
  friend class ::PragmaOnceUnitState;
70816
 
  friend class ::PragmaOnce;
70817
 
  friend class ::CCExprResolve;
70818
 
  friend class ::CExprResolve;
70819
 
 
70820
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70821
 
 
70822
 
  CTree *sons[3]; // key, expr, semi_colon
70823
 
 
70824
 
public:
70825
 
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
70826
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
70827
 
  }
70828
 
  static const char *NodeId ();
70829
 
  const char *NodeName () const { return NodeId (); }
70830
 
  int Sons () const { return CTree::Sons (sons, 3); }
70831
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
70832
 
  CTree *Expr () const { return sons[1]; }
70833
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70834
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
70835
 
  }
70836
 
};
70837
 
 
70838
 
 
70839
 
#line 70840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70840
 
} // closed Puma
70841
 
class WinIfExists;
70842
 
class WinImportHandler;
70843
 
class WinMacros;
70844
 
class CMatchSyntax;
70845
 
class ExtGnu;
70846
 
class ExtAC;
70847
 
class ExtACBuilderCoupling;
70848
 
class ExtACSyntaxCoupling;
70849
 
class ExtACTree;
70850
 
class ExtACKeywords;
70851
 
class WinAsm;
70852
 
class WinDeclSpecs;
70853
 
class WinMemberExplSpec;
70854
 
class WinTypeKeywords;
70855
 
class PragmaOnceUnitState;
70856
 
class PragmaOnce;
70857
 
class CCExprResolve;
70858
 
class CExprResolve;
70859
 
namespace Puma {
70860
 
 
70861
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70862
 
class CT_WhileStmt : public CT_Statement, public CSemScope {
70863
 
#line 70864 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70864
 
  friend class ::WinIfExists;
70865
 
  friend class ::WinImportHandler;
70866
 
  friend class ::WinMacros;
70867
 
  friend class ::CMatchSyntax;
70868
 
  friend class ::ExtGnu;
70869
 
  friend class ::ExtAC;
70870
 
  friend class ::ExtACBuilderCoupling;
70871
 
  friend class ::ExtACSyntaxCoupling;
70872
 
  friend class ::ExtACTree;
70873
 
  friend class ::ExtACKeywords;
70874
 
  friend class ::WinAsm;
70875
 
  friend class ::WinDeclSpecs;
70876
 
  friend class ::WinMemberExplSpec;
70877
 
  friend class ::WinTypeKeywords;
70878
 
  friend class ::PragmaOnceUnitState;
70879
 
  friend class ::PragmaOnce;
70880
 
  friend class ::CCExprResolve;
70881
 
  friend class ::CExprResolve;
70882
 
 
70883
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70884
 
 
70885
 
  CTree *sons[5]; // key, open, cond, close, stmt
70886
 
 
70887
 
public:
70888
 
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
70889
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
70890
 
  }
70891
 
  static const char *NodeId ();
70892
 
  const char *NodeName () const { return NodeId (); }
70893
 
  int Sons () const { return 5; }
70894
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
70895
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
70896
 
  CTree *Condition () const { return sons[2]; }
70897
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70898
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
70899
 
  }
70900
 
};
70901
 
 
70902
 
 
70903
 
#line 70904 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70904
 
} // closed Puma
70905
 
class WinIfExists;
70906
 
class WinImportHandler;
70907
 
class WinMacros;
70908
 
class CMatchSyntax;
70909
 
class ExtGnu;
70910
 
class ExtAC;
70911
 
class ExtACBuilderCoupling;
70912
 
class ExtACSyntaxCoupling;
70913
 
class ExtACTree;
70914
 
class ExtACKeywords;
70915
 
class WinAsm;
70916
 
class WinDeclSpecs;
70917
 
class WinMemberExplSpec;
70918
 
class WinTypeKeywords;
70919
 
class PragmaOnceUnitState;
70920
 
class PragmaOnce;
70921
 
class CCExprResolve;
70922
 
class CExprResolve;
70923
 
namespace Puma {
70924
 
 
70925
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70926
 
class CT_DoStmt : public CT_Statement {
70927
 
#line 70928 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70928
 
  friend class ::WinIfExists;
70929
 
  friend class ::WinImportHandler;
70930
 
  friend class ::WinMacros;
70931
 
  friend class ::CMatchSyntax;
70932
 
  friend class ::ExtGnu;
70933
 
  friend class ::ExtAC;
70934
 
  friend class ::ExtACBuilderCoupling;
70935
 
  friend class ::ExtACSyntaxCoupling;
70936
 
  friend class ::ExtACTree;
70937
 
  friend class ::ExtACKeywords;
70938
 
  friend class ::WinAsm;
70939
 
  friend class ::WinDeclSpecs;
70940
 
  friend class ::WinMemberExplSpec;
70941
 
  friend class ::WinTypeKeywords;
70942
 
  friend class ::PragmaOnceUnitState;
70943
 
  friend class ::PragmaOnce;
70944
 
  friend class ::CCExprResolve;
70945
 
  friend class ::CExprResolve;
70946
 
 
70947
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70948
 
 
70949
 
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
70950
 
 
70951
 
public:
70952
 
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
70953
 
             CTree *c, CTree *sc) {
70954
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
70955
 
    sons[5] = c; sons[6] = sc; 
70956
 
  }
70957
 
  static const char *NodeId ();
70958
 
  const char *NodeName () const { return NodeId (); }
70959
 
  int Sons () const { return 7; }
70960
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
70961
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
70962
 
  CTree *Expr () const { return sons[4]; }
70963
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70964
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
70965
 
  }
70966
 
};
70967
 
 
70968
 
 
70969
 
#line 70970 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70970
 
} // closed Puma
70971
 
class WinIfExists;
70972
 
class WinImportHandler;
70973
 
class WinMacros;
70974
 
class CMatchSyntax;
70975
 
class ExtGnu;
70976
 
class ExtAC;
70977
 
class ExtACBuilderCoupling;
70978
 
class ExtACSyntaxCoupling;
70979
 
class ExtACTree;
70980
 
class ExtACKeywords;
70981
 
class WinAsm;
70982
 
class WinDeclSpecs;
70983
 
class WinMemberExplSpec;
70984
 
class WinTypeKeywords;
70985
 
class PragmaOnceUnitState;
70986
 
class PragmaOnce;
70987
 
class CCExprResolve;
70988
 
class CExprResolve;
70989
 
namespace Puma {
70990
 
 
70991
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70992
 
class CT_ForStmt : public CT_Statement, public CSemScope {
70993
 
#line 70994 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
70994
 
  friend class ::WinIfExists;
70995
 
  friend class ::WinImportHandler;
70996
 
  friend class ::WinMacros;
70997
 
  friend class ::CMatchSyntax;
70998
 
  friend class ::ExtGnu;
70999
 
  friend class ::ExtAC;
71000
 
  friend class ::ExtACBuilderCoupling;
71001
 
  friend class ::ExtACSyntaxCoupling;
71002
 
  friend class ::ExtACTree;
71003
 
  friend class ::ExtACKeywords;
71004
 
  friend class ::WinAsm;
71005
 
  friend class ::WinDeclSpecs;
71006
 
  friend class ::WinMemberExplSpec;
71007
 
  friend class ::WinTypeKeywords;
71008
 
  friend class ::PragmaOnceUnitState;
71009
 
  friend class ::PragmaOnce;
71010
 
  friend class ::CCExprResolve;
71011
 
  friend class ::CExprResolve;
71012
 
 
71013
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71014
 
 
71015
 
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
71016
 
 
71017
 
public:
71018
 
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
71019
 
              CTree *e, CTree *c, CTree *stmt) {
71020
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
71021
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
71022
 
  }
71023
 
  static const char *NodeId ();
71024
 
  const char *NodeName () const { return NodeId (); }
71025
 
  int Sons () const { return CTree::Sons (sons, 8); }
71026
 
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
71027
 
  CTree *InitStmt () const { return sons[2]; }
71028
 
  CTree *Condition () const { return sons[3]; }
71029
 
  CTree *Expr () const { return sons[5]; }
71030
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
71031
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71032
 
    CTree::ReplaceSon (sons, 8, old_son, new_son);
71033
 
  }
71034
 
};
71035
 
 
71036
 
 
71037
 
#line 71038 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71038
 
} // closed Puma
71039
 
class WinIfExists;
71040
 
class WinImportHandler;
71041
 
class WinMacros;
71042
 
class CMatchSyntax;
71043
 
class ExtGnu;
71044
 
class ExtAC;
71045
 
class ExtACBuilderCoupling;
71046
 
class ExtACSyntaxCoupling;
71047
 
class ExtACTree;
71048
 
class ExtACKeywords;
71049
 
class WinAsm;
71050
 
class WinDeclSpecs;
71051
 
class WinMemberExplSpec;
71052
 
class WinTypeKeywords;
71053
 
class PragmaOnceUnitState;
71054
 
class PragmaOnce;
71055
 
class CCExprResolve;
71056
 
class CExprResolve;
71057
 
namespace Puma {
71058
 
 
71059
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71060
 
class CT_Condition : public CT_Decl, public CSemObject {
71061
 
#line 71062 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71062
 
  friend class ::WinIfExists;
71063
 
  friend class ::WinImportHandler;
71064
 
  friend class ::WinMacros;
71065
 
  friend class ::CMatchSyntax;
71066
 
  friend class ::ExtGnu;
71067
 
  friend class ::ExtAC;
71068
 
  friend class ::ExtACBuilderCoupling;
71069
 
  friend class ::ExtACSyntaxCoupling;
71070
 
  friend class ::ExtACTree;
71071
 
  friend class ::ExtACKeywords;
71072
 
  friend class ::WinAsm;
71073
 
  friend class ::WinDeclSpecs;
71074
 
  friend class ::WinMemberExplSpec;
71075
 
  friend class ::WinTypeKeywords;
71076
 
  friend class ::PragmaOnceUnitState;
71077
 
  friend class ::PragmaOnce;
71078
 
  friend class ::CCExprResolve;
71079
 
  friend class ::CExprResolve;
71080
 
 
71081
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71082
 
 
71083
 
  CTree *sons[3]; // declspecs, declarator, init
71084
 
 
71085
 
public:
71086
 
  CT_Condition (CTree *dsl, CTree *d) {
71087
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
71088
 
  }
71089
 
  static const char *NodeId ();
71090
 
  const char *NodeName () const { return NodeId (); }
71091
 
  int Sons () const { return CTree::Sons (sons, 3); }
71092
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
71093
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
71094
 
  CTree *Declarator () const { return sons[1]; }
71095
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
71096
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
71097
 
  void Initializer (CTree *i) { sons[2] = i; }
71098
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71099
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
71100
 
  }
71101
 
};
71102
 
 
71103
 
/*****************************************************************************/
71104
 
/*                                                                           */
71105
 
/*                              Classes                                      */
71106
 
/*                                                                           */
71107
 
/*****************************************************************************/
71108
 
 
71109
 
 
71110
 
#line 71111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71111
 
} // closed Puma
71112
 
class WinIfExists;
71113
 
class WinImportHandler;
71114
 
class WinMacros;
71115
 
class CMatchSyntax;
71116
 
class ExtGnu;
71117
 
class ExtAC;
71118
 
class ExtACBuilderCoupling;
71119
 
class ExtACSyntaxCoupling;
71120
 
class ExtACTree;
71121
 
class ExtACKeywords;
71122
 
class WinAsm;
71123
 
class WinDeclSpecs;
71124
 
class WinMemberExplSpec;
71125
 
class WinTypeKeywords;
71126
 
class PragmaOnceUnitState;
71127
 
class PragmaOnce;
71128
 
class CCExprResolve;
71129
 
class CExprResolve;
71130
 
namespace Puma {
71131
 
 
71132
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71133
 
class CT_ClassDef : public CT_Decl, public CSemObject {
71134
 
#line 71135 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71135
 
  friend class ::WinIfExists;
71136
 
  friend class ::WinImportHandler;
71137
 
  friend class ::WinMacros;
71138
 
  friend class ::CMatchSyntax;
71139
 
  friend class ::ExtGnu;
71140
 
  friend class ::ExtAC;
71141
 
  friend class ::ExtACBuilderCoupling;
71142
 
  friend class ::ExtACSyntaxCoupling;
71143
 
  friend class ::ExtACTree;
71144
 
  friend class ::ExtACKeywords;
71145
 
  friend class ::WinAsm;
71146
 
  friend class ::WinDeclSpecs;
71147
 
  friend class ::WinMemberExplSpec;
71148
 
  friend class ::WinTypeKeywords;
71149
 
  friend class ::PragmaOnceUnitState;
71150
 
  friend class ::PragmaOnce;
71151
 
  friend class ::CCExprResolve;
71152
 
  friend class ::CExprResolve;
71153
 
 
71154
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71155
 
 
71156
 
   
71157
 
#line 71158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71158
 
 
71159
 
  struct __ac_wrapper_sons {
71160
 
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
71161
 
    operator A& () { return _data; }
71162
 
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
71163
 
    operator const A& () { return _data; }
71164
 
    operator const A& () const { return _data; }
71165
 
    operator void* () { return _data; }
71166
 
    operator void* () const { return (void*)_data; }
71167
 
    operator const void* () { return _data; }
71168
 
    operator const void* () const { return _data; }
71169
 
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
71170
 
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
71171
 
  } sons
71172
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71173
 
 
71174
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71175
 
; // key, name, bases, members
71176
 
  CTree *obj_decl;
71177
 
 
71178
 
public:
71179
 
  
71180
 
#line 71181 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71181
 
 
71182
 
 
71183
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
71184
 
  typedef void Result;
71185
 
  typedef ::Puma::CT_ClassDef That;
71186
 
  typedef ::Puma::CT_ClassDef Target;
71187
 
  static const int JPID = 4;
71188
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
71189
 
  struct Res {
71190
 
    typedef void Type;
71191
 
    typedef void ReferredType;
71192
 
  };
71193
 
  enum { ARGS = 3 };
71194
 
  template <int I, int DUMMY = 0> struct Arg {
71195
 
    typedef void Type;
71196
 
    typedef void ReferredType;
71197
 
  };
71198
 
  template <int DUMMY> struct Arg<0, DUMMY> {
71199
 
    typedef ::Puma::CTree * Type;
71200
 
    typedef ::Puma::CTree * ReferredType;
71201
 
  };
71202
 
  template <int DUMMY> struct Arg<1, DUMMY> {
71203
 
    typedef ::Puma::CTree * Type;
71204
 
    typedef ::Puma::CTree * ReferredType;
71205
 
  };
71206
 
  template <int DUMMY> struct Arg<2, DUMMY> {
71207
 
    typedef ::Puma::CTree * Type;
71208
 
    typedef ::Puma::CTree * ReferredType;
71209
 
  };
71210
 
 
71211
 
  That *_that;
71212
 
 
71213
 
  inline That *that() {return (That*)_that;}
71214
 
 
71215
 
};
71216
 
 
71217
 
 
71218
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71219
 
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
71220
 
#line 71221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71221
 
{
71222
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
71223
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
71224
 
this->__exec_old_C1(arg0, arg1, arg2);
71225
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
71226
 
 
71227
 
}
71228
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
71229
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71230
 
{
71231
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
71232
 
  }
71233
 
  static const char *NodeId ();
71234
 
  const char *NodeName () const { return NodeId (); }
71235
 
  int Sons () const { return CTree::Sons (sons, 4); }
71236
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
71237
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
71238
 
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
71239
 
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
71240
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
71241
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
71242
 
  void Members (CTree *m) { sons[3] = m; }
71243
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
71244
 
  void ObjDecl (CTree *od) { obj_decl = od; }
71245
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
71246
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
71247
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
71248
 
  }
71249
 
   private:
71250
 
 
71251
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
71252
 
 CTree * _intro_members ;
71253
 
public :
71254
 
CTree * IntroMembers ( ) const { return _intro_members ; }
71255
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
71256
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71257
 
 
71258
 
#line 71259 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71259
 
 
71260
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
71261
 
  typedef void Result;
71262
 
  typedef ::Puma::CT_ClassDef That;
71263
 
  typedef ::Puma::CT_ClassDef Target;
71264
 
  static const int JPID = 4;
71265
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
71266
 
  struct Res {
71267
 
    typedef void Type;
71268
 
    typedef void ReferredType;
71269
 
  };
71270
 
  enum { ARGS = 1 };
71271
 
  template <int I, int DUMMY = 0> struct Arg {
71272
 
    typedef void Type;
71273
 
    typedef void ReferredType;
71274
 
  };
71275
 
  template <int DUMMY> struct Arg<0, DUMMY> {
71276
 
    typedef const ::Puma::CT_ClassDef & Type;
71277
 
    typedef const ::Puma::CT_ClassDef ReferredType;
71278
 
  };
71279
 
 
71280
 
  That *_that;
71281
 
 
71282
 
  inline That *that() {return (That*)_that;}
71283
 
 
71284
 
};
71285
 
 
71286
 
 
71287
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71288
 
 
71289
 
#line 71290 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71290
 
 
71291
 
public:
71292
 
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) {
71293
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
71294
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
71295
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
71296
 
 
71297
 
}
71298
 
 
71299
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71300
 
 
71301
 
#line 71302 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71302
 
 
71303
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
71304
 
  typedef void Result;
71305
 
  typedef ::Puma::CT_ClassDef That;
71306
 
  typedef ::Puma::CT_ClassDef Target;
71307
 
  static const int JPID = 4;
71308
 
  static const AC::JPType JPTYPE = (AC::JPType)32;
71309
 
  struct Res {
71310
 
    typedef void Type;
71311
 
    typedef void ReferredType;
71312
 
  };
71313
 
  enum { ARGS = 0 };
71314
 
  template <int I, int DUMMY = 0> struct Arg {
71315
 
    typedef void Type;
71316
 
    typedef void ReferredType;
71317
 
  };
71318
 
 
71319
 
  That *_that;
71320
 
 
71321
 
  inline That *that() {return (That*)_that;}
71322
 
 
71323
 
};
71324
 
 
71325
 
 
71326
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71327
 
 
71328
 
#line 71329 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71329
 
 
71330
 
public:
71331
 
inline ~CT_ClassDef () {
71332
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
71333
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
71334
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
71335
 
 
71336
 
}
71337
 
 
71338
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71339
 
};
71340
 
      
71341
 
 
71342
 
#line 71343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71343
 
} // closed Puma
71344
 
class WinIfExists;
71345
 
class WinImportHandler;
71346
 
class WinMacros;
71347
 
class CMatchSyntax;
71348
 
class ExtGnu;
71349
 
class ExtAC;
71350
 
class ExtACBuilderCoupling;
71351
 
class ExtACSyntaxCoupling;
71352
 
class ExtACTree;
71353
 
class ExtACKeywords;
71354
 
class WinAsm;
71355
 
class WinDeclSpecs;
71356
 
class WinMemberExplSpec;
71357
 
class WinTypeKeywords;
71358
 
class PragmaOnceUnitState;
71359
 
class PragmaOnce;
71360
 
class CCExprResolve;
71361
 
class CExprResolve;
71362
 
namespace Puma {
71363
 
 
71364
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71365
 
class CT_UnionDef : public CT_ClassDef {
71366
 
#line 71367 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71367
 
  friend class ::WinIfExists;
71368
 
  friend class ::WinImportHandler;
71369
 
  friend class ::WinMacros;
71370
 
  friend class ::CMatchSyntax;
71371
 
  friend class ::ExtGnu;
71372
 
  friend class ::ExtAC;
71373
 
  friend class ::ExtACBuilderCoupling;
71374
 
  friend class ::ExtACSyntaxCoupling;
71375
 
  friend class ::ExtACTree;
71376
 
  friend class ::ExtACKeywords;
71377
 
  friend class ::WinAsm;
71378
 
  friend class ::WinDeclSpecs;
71379
 
  friend class ::WinMemberExplSpec;
71380
 
  friend class ::WinTypeKeywords;
71381
 
  friend class ::PragmaOnceUnitState;
71382
 
  friend class ::PragmaOnce;
71383
 
  friend class ::CCExprResolve;
71384
 
  friend class ::CExprResolve;
71385
 
 
71386
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71387
 
 
71388
 
public:
71389
 
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
71390
 
  static const char *NodeId ();
71391
 
  const char *NodeName () const { return NodeId (); }
71392
 
};
71393
 
      
71394
 
 
71395
 
#line 71396 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71396
 
} // closed Puma
71397
 
class WinIfExists;
71398
 
class WinImportHandler;
71399
 
class WinMacros;
71400
 
class CMatchSyntax;
71401
 
class ExtGnu;
71402
 
class ExtAC;
71403
 
class ExtACBuilderCoupling;
71404
 
class ExtACSyntaxCoupling;
71405
 
class ExtACTree;
71406
 
class ExtACKeywords;
71407
 
class WinAsm;
71408
 
class WinDeclSpecs;
71409
 
class WinMemberExplSpec;
71410
 
class WinTypeKeywords;
71411
 
class PragmaOnceUnitState;
71412
 
class PragmaOnce;
71413
 
class CCExprResolve;
71414
 
class CExprResolve;
71415
 
namespace Puma {
71416
 
 
71417
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71418
 
class CT_MembList : public CT_DeclList, public CSemScope {
71419
 
#line 71420 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71420
 
  friend class ::WinIfExists;
71421
 
  friend class ::WinImportHandler;
71422
 
  friend class ::WinMacros;
71423
 
  friend class ::CMatchSyntax;
71424
 
  friend class ::ExtGnu;
71425
 
  friend class ::ExtAC;
71426
 
  friend class ::ExtACBuilderCoupling;
71427
 
  friend class ::ExtACSyntaxCoupling;
71428
 
  friend class ::ExtACTree;
71429
 
  friend class ::ExtACKeywords;
71430
 
  friend class ::WinAsm;
71431
 
  friend class ::WinDeclSpecs;
71432
 
  friend class ::WinMemberExplSpec;
71433
 
  friend class ::WinTypeKeywords;
71434
 
  friend class ::PragmaOnceUnitState;
71435
 
  friend class ::PragmaOnce;
71436
 
  friend class ::CCExprResolve;
71437
 
  friend class ::CExprResolve;
71438
 
 
71439
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71440
 
 
71441
 
public:
71442
 
  CT_MembList (int size = 10, int incr = 10) : 
71443
 
    CT_DeclList (size, incr) {}
71444
 
  static const char *NodeId ();
71445
 
  const char *NodeName () const { return NodeId (); }
71446
 
};
71447
 
 
71448
 
 
71449
 
#line 71450 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71450
 
} // closed Puma
71451
 
class WinIfExists;
71452
 
class WinImportHandler;
71453
 
class WinMacros;
71454
 
class CMatchSyntax;
71455
 
class ExtGnu;
71456
 
class ExtAC;
71457
 
class ExtACBuilderCoupling;
71458
 
class ExtACSyntaxCoupling;
71459
 
class ExtACTree;
71460
 
class ExtACKeywords;
71461
 
class WinAsm;
71462
 
class WinDeclSpecs;
71463
 
class WinMemberExplSpec;
71464
 
class WinTypeKeywords;
71465
 
class PragmaOnceUnitState;
71466
 
class PragmaOnce;
71467
 
class CCExprResolve;
71468
 
class CExprResolve;
71469
 
namespace Puma {
71470
 
 
71471
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71472
 
class CT_MembInitList : public CT_List, public CSemScope {
71473
 
#line 71474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71474
 
  friend class ::WinIfExists;
71475
 
  friend class ::WinImportHandler;
71476
 
  friend class ::WinMacros;
71477
 
  friend class ::CMatchSyntax;
71478
 
  friend class ::ExtGnu;
71479
 
  friend class ::ExtAC;
71480
 
  friend class ::ExtACBuilderCoupling;
71481
 
  friend class ::ExtACSyntaxCoupling;
71482
 
  friend class ::ExtACTree;
71483
 
  friend class ::ExtACKeywords;
71484
 
  friend class ::WinAsm;
71485
 
  friend class ::WinDeclSpecs;
71486
 
  friend class ::WinMemberExplSpec;
71487
 
  friend class ::WinTypeKeywords;
71488
 
  friend class ::PragmaOnceUnitState;
71489
 
  friend class ::PragmaOnce;
71490
 
  friend class ::CCExprResolve;
71491
 
  friend class ::CExprResolve;
71492
 
 
71493
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71494
 
 
71495
 
public:
71496
 
  CT_MembInitList (int size = 2) : 
71497
 
    CT_List (size, 2, CT_List::OPEN) {}
71498
 
  static const char *NodeId ();
71499
 
  const char *NodeName () const { return NodeId (); }
71500
 
};
71501
 
 
71502
 
 
71503
 
#line 71504 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71504
 
} // closed Puma
71505
 
class WinIfExists;
71506
 
class WinImportHandler;
71507
 
class WinMacros;
71508
 
class CMatchSyntax;
71509
 
class ExtGnu;
71510
 
class ExtAC;
71511
 
class ExtACBuilderCoupling;
71512
 
class ExtACSyntaxCoupling;
71513
 
class ExtACTree;
71514
 
class ExtACKeywords;
71515
 
class WinAsm;
71516
 
class WinDeclSpecs;
71517
 
class WinMemberExplSpec;
71518
 
class WinTypeKeywords;
71519
 
class PragmaOnceUnitState;
71520
 
class PragmaOnce;
71521
 
class CCExprResolve;
71522
 
class CExprResolve;
71523
 
namespace Puma {
71524
 
 
71525
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71526
 
class CT_MembInit : public CT_Expression, public CSemObject {
71527
 
#line 71528 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71528
 
  friend class ::WinIfExists;
71529
 
  friend class ::WinImportHandler;
71530
 
  friend class ::WinMacros;
71531
 
  friend class ::CMatchSyntax;
71532
 
  friend class ::ExtGnu;
71533
 
  friend class ::ExtAC;
71534
 
  friend class ::ExtACBuilderCoupling;
71535
 
  friend class ::ExtACSyntaxCoupling;
71536
 
  friend class ::ExtACTree;
71537
 
  friend class ::ExtACKeywords;
71538
 
  friend class ::WinAsm;
71539
 
  friend class ::WinDeclSpecs;
71540
 
  friend class ::WinMemberExplSpec;
71541
 
  friend class ::WinTypeKeywords;
71542
 
  friend class ::PragmaOnceUnitState;
71543
 
  friend class ::PragmaOnce;
71544
 
  friend class ::CCExprResolve;
71545
 
  friend class ::CExprResolve;
71546
 
 
71547
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71548
 
 
71549
 
  CTree *sons[2]; // name, init
71550
 
 
71551
 
public:
71552
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
71553
 
  static const char *NodeId ();
71554
 
  const char *NodeName () const { return NodeId (); }
71555
 
  int Sons () const { return 2; }
71556
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
71557
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71558
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
71559
 
  }
71560
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
71561
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
71562
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
71563
 
   private:
71564
 
  typedef CT_MembInit CCExprResolveExpr;
71565
 
 
71566
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
71567
 
 public :
71568
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
71569
 
  typedef CT_MembInit CExprResolveExpr;
71570
 
 
71571
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
71572
 
 public :
71573
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
71574
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71575
 
};
71576
 
 
71577
 
 
71578
 
#line 71579 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71579
 
} // closed Puma
71580
 
class WinIfExists;
71581
 
class WinImportHandler;
71582
 
class WinMacros;
71583
 
class CMatchSyntax;
71584
 
class ExtGnu;
71585
 
class ExtAC;
71586
 
class ExtACBuilderCoupling;
71587
 
class ExtACSyntaxCoupling;
71588
 
class ExtACTree;
71589
 
class ExtACKeywords;
71590
 
class WinAsm;
71591
 
class WinDeclSpecs;
71592
 
class WinMemberExplSpec;
71593
 
class WinTypeKeywords;
71594
 
class PragmaOnceUnitState;
71595
 
class PragmaOnce;
71596
 
class CCExprResolve;
71597
 
class CExprResolve;
71598
 
namespace Puma {
71599
 
 
71600
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71601
 
class CT_BaseSpecList : public CT_List {
71602
 
#line 71603 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71603
 
  friend class ::WinIfExists;
71604
 
  friend class ::WinImportHandler;
71605
 
  friend class ::WinMacros;
71606
 
  friend class ::CMatchSyntax;
71607
 
  friend class ::ExtGnu;
71608
 
  friend class ::ExtAC;
71609
 
  friend class ::ExtACBuilderCoupling;
71610
 
  friend class ::ExtACSyntaxCoupling;
71611
 
  friend class ::ExtACTree;
71612
 
  friend class ::ExtACKeywords;
71613
 
  friend class ::WinAsm;
71614
 
  friend class ::WinDeclSpecs;
71615
 
  friend class ::WinMemberExplSpec;
71616
 
  friend class ::WinTypeKeywords;
71617
 
  friend class ::PragmaOnceUnitState;
71618
 
  friend class ::PragmaOnce;
71619
 
  friend class ::CCExprResolve;
71620
 
  friend class ::CExprResolve;
71621
 
 
71622
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71623
 
 
71624
 
public:
71625
 
  CT_BaseSpecList (int size = 2) : 
71626
 
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
71627
 
  static const char *NodeId ();
71628
 
  const char *NodeName () const { return NodeId (); }
71629
 
};
71630
 
 
71631
 
 
71632
 
#line 71633 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71633
 
} // closed Puma
71634
 
class WinIfExists;
71635
 
class WinImportHandler;
71636
 
class WinMacros;
71637
 
class CMatchSyntax;
71638
 
class ExtGnu;
71639
 
class ExtAC;
71640
 
class ExtACBuilderCoupling;
71641
 
class ExtACSyntaxCoupling;
71642
 
class ExtACTree;
71643
 
class ExtACKeywords;
71644
 
class WinAsm;
71645
 
class WinDeclSpecs;
71646
 
class WinMemberExplSpec;
71647
 
class WinTypeKeywords;
71648
 
class PragmaOnceUnitState;
71649
 
class PragmaOnce;
71650
 
class CCExprResolve;
71651
 
class CExprResolve;
71652
 
namespace Puma {
71653
 
 
71654
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71655
 
class CT_AccessSpec : public CTree {
71656
 
#line 71657 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71657
 
  friend class ::WinIfExists;
71658
 
  friend class ::WinImportHandler;
71659
 
  friend class ::WinMacros;
71660
 
  friend class ::CMatchSyntax;
71661
 
  friend class ::ExtGnu;
71662
 
  friend class ::ExtAC;
71663
 
  friend class ::ExtACBuilderCoupling;
71664
 
  friend class ::ExtACSyntaxCoupling;
71665
 
  friend class ::ExtACTree;
71666
 
  friend class ::ExtACKeywords;
71667
 
  friend class ::WinAsm;
71668
 
  friend class ::WinDeclSpecs;
71669
 
  friend class ::WinMemberExplSpec;
71670
 
  friend class ::WinTypeKeywords;
71671
 
  friend class ::PragmaOnceUnitState;
71672
 
  friend class ::PragmaOnce;
71673
 
  friend class ::CCExprResolve;
71674
 
  friend class ::CExprResolve;
71675
 
 
71676
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71677
 
 
71678
 
  CTree *sons[2]; // access, colon
71679
 
 
71680
 
public:
71681
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
71682
 
  static const char *NodeId ();
71683
 
  const char *NodeName () const { return NodeId (); }
71684
 
  int Sons () const { return 2; }
71685
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
71686
 
  int Access () const { return sons[0]->token ()->type (); }
71687
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71688
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
71689
 
  }
71690
 
};
71691
 
 
71692
 
 
71693
 
#line 71694 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71694
 
} // closed Puma
71695
 
class WinIfExists;
71696
 
class WinImportHandler;
71697
 
class WinMacros;
71698
 
class CMatchSyntax;
71699
 
class ExtGnu;
71700
 
class ExtAC;
71701
 
class ExtACBuilderCoupling;
71702
 
class ExtACSyntaxCoupling;
71703
 
class ExtACTree;
71704
 
class ExtACKeywords;
71705
 
class WinAsm;
71706
 
class WinDeclSpecs;
71707
 
class WinMemberExplSpec;
71708
 
class WinTypeKeywords;
71709
 
class PragmaOnceUnitState;
71710
 
class PragmaOnce;
71711
 
class CCExprResolve;
71712
 
class CExprResolve;
71713
 
namespace Puma {
71714
 
 
71715
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71716
 
class CT_BaseSpec : public CTree {
71717
 
#line 71718 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71718
 
  friend class ::WinIfExists;
71719
 
  friend class ::WinImportHandler;
71720
 
  friend class ::WinMacros;
71721
 
  friend class ::CMatchSyntax;
71722
 
  friend class ::ExtGnu;
71723
 
  friend class ::ExtAC;
71724
 
  friend class ::ExtACBuilderCoupling;
71725
 
  friend class ::ExtACSyntaxCoupling;
71726
 
  friend class ::ExtACTree;
71727
 
  friend class ::ExtACKeywords;
71728
 
  friend class ::WinAsm;
71729
 
  friend class ::WinDeclSpecs;
71730
 
  friend class ::WinMemberExplSpec;
71731
 
  friend class ::WinTypeKeywords;
71732
 
  friend class ::PragmaOnceUnitState;
71733
 
  friend class ::PragmaOnce;
71734
 
  friend class ::CCExprResolve;
71735
 
  friend class ::CExprResolve;
71736
 
 
71737
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71738
 
 
71739
 
  CTree *sons[3]; // virtual, access, name
71740
 
 
71741
 
public:
71742
 
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
71743
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
71744
 
  }
71745
 
  static const char *NodeId ();
71746
 
  const char *NodeName () const { return NodeId (); }
71747
 
  int Sons () const { return CTree::Sons (sons, 3); }
71748
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
71749
 
  int Access () const { return sons[1]->token ()->type (); }
71750
 
  CTree *AccessSpec () const { return sons[1]; }
71751
 
  CTree *Virtual () const { return sons[0]; }
71752
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
71753
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71754
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
71755
 
  }
71756
 
};
71757
 
 
71758
 
 
71759
 
#line 71760 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71760
 
} // closed Puma
71761
 
class WinIfExists;
71762
 
class WinImportHandler;
71763
 
class WinMacros;
71764
 
class CMatchSyntax;
71765
 
class ExtGnu;
71766
 
class ExtAC;
71767
 
class ExtACBuilderCoupling;
71768
 
class ExtACSyntaxCoupling;
71769
 
class ExtACTree;
71770
 
class ExtACKeywords;
71771
 
class WinAsm;
71772
 
class WinDeclSpecs;
71773
 
class WinMemberExplSpec;
71774
 
class WinTypeKeywords;
71775
 
class PragmaOnceUnitState;
71776
 
class PragmaOnce;
71777
 
class CCExprResolve;
71778
 
class CExprResolve;
71779
 
namespace Puma {
71780
 
 
71781
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71782
 
class CT_AccessDecl : public CT_Decl {
71783
 
#line 71784 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71784
 
  friend class ::WinIfExists;
71785
 
  friend class ::WinImportHandler;
71786
 
  friend class ::WinMacros;
71787
 
  friend class ::CMatchSyntax;
71788
 
  friend class ::ExtGnu;
71789
 
  friend class ::ExtAC;
71790
 
  friend class ::ExtACBuilderCoupling;
71791
 
  friend class ::ExtACSyntaxCoupling;
71792
 
  friend class ::ExtACTree;
71793
 
  friend class ::ExtACKeywords;
71794
 
  friend class ::WinAsm;
71795
 
  friend class ::WinDeclSpecs;
71796
 
  friend class ::WinMemberExplSpec;
71797
 
  friend class ::WinTypeKeywords;
71798
 
  friend class ::PragmaOnceUnitState;
71799
 
  friend class ::PragmaOnce;
71800
 
  friend class ::CCExprResolve;
71801
 
  friend class ::CExprResolve;
71802
 
 
71803
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71804
 
 
71805
 
  CTree *sons[2]; // name, semi_colon
71806
 
 
71807
 
public:
71808
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
71809
 
  static const char *NodeId ();
71810
 
  const char *NodeName () const { return NodeId (); }
71811
 
  int Sons () const { return 2; }
71812
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
71813
 
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
71814
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71815
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
71816
 
  }
71817
 
};
71818
 
 
71819
 
 
71820
 
#line 71821 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71821
 
} // closed Puma
71822
 
class WinIfExists;
71823
 
class WinImportHandler;
71824
 
class WinMacros;
71825
 
class CMatchSyntax;
71826
 
class ExtGnu;
71827
 
class ExtAC;
71828
 
class ExtACBuilderCoupling;
71829
 
class ExtACSyntaxCoupling;
71830
 
class ExtACTree;
71831
 
class ExtACKeywords;
71832
 
class WinAsm;
71833
 
class WinDeclSpecs;
71834
 
class WinMemberExplSpec;
71835
 
class WinTypeKeywords;
71836
 
class PragmaOnceUnitState;
71837
 
class PragmaOnce;
71838
 
class CCExprResolve;
71839
 
class CExprResolve;
71840
 
namespace Puma {
71841
 
 
71842
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71843
 
class CT_UsingDecl : public CT_AccessDecl {
71844
 
#line 71845 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71845
 
  friend class ::WinIfExists;
71846
 
  friend class ::WinImportHandler;
71847
 
  friend class ::WinMacros;
71848
 
  friend class ::CMatchSyntax;
71849
 
  friend class ::ExtGnu;
71850
 
  friend class ::ExtAC;
71851
 
  friend class ::ExtACBuilderCoupling;
71852
 
  friend class ::ExtACSyntaxCoupling;
71853
 
  friend class ::ExtACTree;
71854
 
  friend class ::ExtACKeywords;
71855
 
  friend class ::WinAsm;
71856
 
  friend class ::WinDeclSpecs;
71857
 
  friend class ::WinMemberExplSpec;
71858
 
  friend class ::WinTypeKeywords;
71859
 
  friend class ::PragmaOnceUnitState;
71860
 
  friend class ::PragmaOnce;
71861
 
  friend class ::CCExprResolve;
71862
 
  friend class ::CExprResolve;
71863
 
 
71864
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71865
 
 
71866
 
  CTree *sons[2]; // using, typename
71867
 
 
71868
 
public:
71869
 
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
71870
 
    sons[0] = u; sons[1] = 0; 
71871
 
  }
71872
 
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
71873
 
    sons[0] = u; sons[1] = t; 
71874
 
  }
71875
 
  static const char *NodeId ();
71876
 
  const char *NodeName () const { return NodeId (); }
71877
 
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
71878
 
  CTree *Son (int n) const {
71879
 
    int num = CTree::Sons (sons, 2);
71880
 
    CTree *result = CTree::Son (sons, 2, n);
71881
 
    return result ? result : CT_AccessDecl::Son (n-num);
71882
 
  }
71883
 
  CTree *Typename () const { return sons[1]; }
71884
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71885
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
71886
 
    CT_AccessDecl::ReplaceSon (old_son, new_son);
71887
 
  }
71888
 
};
71889
 
 
71890
 
/*****************************************************************************/
71891
 
/*                                                                           */
71892
 
/*                              Wildcards                                    */
71893
 
/*                                                                           */
71894
 
/*****************************************************************************/
71895
 
 
71896
 
 
71897
 
#line 71898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71898
 
} // closed Puma
71899
 
class WinIfExists;
71900
 
class WinImportHandler;
71901
 
class WinMacros;
71902
 
class CMatchSyntax;
71903
 
class ExtGnu;
71904
 
class ExtAC;
71905
 
class ExtACBuilderCoupling;
71906
 
class ExtACSyntaxCoupling;
71907
 
class ExtACTree;
71908
 
class ExtACKeywords;
71909
 
class WinAsm;
71910
 
class WinDeclSpecs;
71911
 
class WinMemberExplSpec;
71912
 
class WinTypeKeywords;
71913
 
class PragmaOnceUnitState;
71914
 
class PragmaOnce;
71915
 
class CCExprResolve;
71916
 
class CExprResolve;
71917
 
namespace Puma {
71918
 
 
71919
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71920
 
class CT_Any : public CTree {
71921
 
#line 71922 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71922
 
  friend class ::WinIfExists;
71923
 
  friend class ::WinImportHandler;
71924
 
  friend class ::WinMacros;
71925
 
  friend class ::CMatchSyntax;
71926
 
  friend class ::ExtGnu;
71927
 
  friend class ::ExtAC;
71928
 
  friend class ::ExtACBuilderCoupling;
71929
 
  friend class ::ExtACSyntaxCoupling;
71930
 
  friend class ::ExtACTree;
71931
 
  friend class ::ExtACKeywords;
71932
 
  friend class ::WinAsm;
71933
 
  friend class ::WinDeclSpecs;
71934
 
  friend class ::WinMemberExplSpec;
71935
 
  friend class ::WinTypeKeywords;
71936
 
  friend class ::PragmaOnceUnitState;
71937
 
  friend class ::PragmaOnce;
71938
 
  friend class ::CCExprResolve;
71939
 
  friend class ::CExprResolve;
71940
 
 
71941
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71942
 
 
71943
 
  CTree *sons[2]; // keyword, extension
71944
 
 
71945
 
public:
71946
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
71947
 
  static const char *NodeId ();
71948
 
  const char *NodeName () const { return NodeId (); }
71949
 
  int Sons () const { return CTree::Sons (sons, 2); }
71950
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
71951
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71952
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
71953
 
  }
71954
 
  int AnyType () const { return sons[0]->token ()->type (); }
71955
 
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
71956
 
};
71957
 
 
71958
 
 
71959
 
#line 71960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71960
 
} // closed Puma
71961
 
class WinIfExists;
71962
 
class WinImportHandler;
71963
 
class WinMacros;
71964
 
class CMatchSyntax;
71965
 
class ExtGnu;
71966
 
class ExtAC;
71967
 
class ExtACBuilderCoupling;
71968
 
class ExtACSyntaxCoupling;
71969
 
class ExtACTree;
71970
 
class ExtACKeywords;
71971
 
class WinAsm;
71972
 
class WinDeclSpecs;
71973
 
class WinMemberExplSpec;
71974
 
class WinTypeKeywords;
71975
 
class PragmaOnceUnitState;
71976
 
class PragmaOnce;
71977
 
class CCExprResolve;
71978
 
class CExprResolve;
71979
 
namespace Puma {
71980
 
 
71981
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
71982
 
class CT_AnyList : public CT_Any {
71983
 
#line 71984 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
71984
 
  friend class ::WinIfExists;
71985
 
  friend class ::WinImportHandler;
71986
 
  friend class ::WinMacros;
71987
 
  friend class ::CMatchSyntax;
71988
 
  friend class ::ExtGnu;
71989
 
  friend class ::ExtAC;
71990
 
  friend class ::ExtACBuilderCoupling;
71991
 
  friend class ::ExtACSyntaxCoupling;
71992
 
  friend class ::ExtACTree;
71993
 
  friend class ::ExtACKeywords;
71994
 
  friend class ::WinAsm;
71995
 
  friend class ::WinDeclSpecs;
71996
 
  friend class ::WinMemberExplSpec;
71997
 
  friend class ::WinTypeKeywords;
71998
 
  friend class ::PragmaOnceUnitState;
71999
 
  friend class ::PragmaOnce;
72000
 
  friend class ::CCExprResolve;
72001
 
  friend class ::CExprResolve;
72002
 
 
72003
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
72004
 
 
72005
 
public:
72006
 
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
72007
 
  static const char *NodeId ();
72008
 
  const char *NodeName () const { return NodeId (); }
72009
 
};
72010
 
 
72011
 
 
72012
 
#line 72013 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
72013
 
} // closed Puma
72014
 
class WinIfExists;
72015
 
class WinImportHandler;
72016
 
class WinMacros;
72017
 
class CMatchSyntax;
72018
 
class ExtGnu;
72019
 
class ExtAC;
72020
 
class ExtACBuilderCoupling;
72021
 
class ExtACSyntaxCoupling;
72022
 
class ExtACTree;
72023
 
class ExtACKeywords;
72024
 
class WinAsm;
72025
 
class WinDeclSpecs;
72026
 
class WinMemberExplSpec;
72027
 
class WinTypeKeywords;
72028
 
class PragmaOnceUnitState;
72029
 
class PragmaOnce;
72030
 
class CCExprResolve;
72031
 
class CExprResolve;
72032
 
namespace Puma {
72033
 
 
72034
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
72035
 
class CT_AnyExtension : public CTree, public CSemValue {
72036
 
#line 72037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
72037
 
  friend class ::WinIfExists;
72038
 
  friend class ::WinImportHandler;
72039
 
  friend class ::WinMacros;
72040
 
  friend class ::CMatchSyntax;
72041
 
  friend class ::ExtGnu;
72042
 
  friend class ::ExtAC;
72043
 
  friend class ::ExtACBuilderCoupling;
72044
 
  friend class ::ExtACSyntaxCoupling;
72045
 
  friend class ::ExtACTree;
72046
 
  friend class ::ExtACKeywords;
72047
 
  friend class ::WinAsm;
72048
 
  friend class ::WinDeclSpecs;
72049
 
  friend class ::WinMemberExplSpec;
72050
 
  friend class ::WinTypeKeywords;
72051
 
  friend class ::PragmaOnceUnitState;
72052
 
  friend class ::PragmaOnce;
72053
 
  friend class ::CCExprResolve;
72054
 
  friend class ::CExprResolve;
72055
 
 
72056
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
72057
 
 
72058
 
  CTree *sons[5]; // open, string, comma, cond, close
72059
 
 
72060
 
public:
72061
 
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
72062
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
72063
 
  }
72064
 
  static const char *NodeId ();
72065
 
  const char *NodeName () const { return NodeId (); }
72066
 
  int Sons () const { return CTree::Sons (sons, 5); }
72067
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
72068
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72069
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
72070
 
  }
72071
 
  CTree *Condition () const { return sons[3]; }
72072
 
  CT_Token *String () const { return (CT_Token*)sons[1]; }
72073
 
  const char *Name () const { 
72074
 
    return value ? value->StrLiteral ()->String () : (const char*)0; }
72075
 
 
72076
 
  CExprValue *Value () const { return value; }
72077
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
72078
 
};
72079
 
 
72080
 
 
72081
 
#line 72082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
72082
 
} // closed Puma
72083
 
class WinIfExists;
72084
 
class WinImportHandler;
72085
 
class WinMacros;
72086
 
class CMatchSyntax;
72087
 
class ExtGnu;
72088
 
class ExtAC;
72089
 
class ExtACBuilderCoupling;
72090
 
class ExtACSyntaxCoupling;
72091
 
class ExtACTree;
72092
 
class ExtACKeywords;
72093
 
class WinAsm;
72094
 
class WinDeclSpecs;
72095
 
class WinMemberExplSpec;
72096
 
class WinTypeKeywords;
72097
 
class PragmaOnceUnitState;
72098
 
class PragmaOnce;
72099
 
class CCExprResolve;
72100
 
class CExprResolve;
72101
 
namespace Puma {
72102
 
 
72103
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
72104
 
class CT_AnyCondition : public CTree {
72105
 
#line 72106 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
72106
 
  friend class ::WinIfExists;
72107
 
  friend class ::WinImportHandler;
72108
 
  friend class ::WinMacros;
72109
 
  friend class ::CMatchSyntax;
72110
 
  friend class ::ExtGnu;
72111
 
  friend class ::ExtAC;
72112
 
  friend class ::ExtACBuilderCoupling;
72113
 
  friend class ::ExtACSyntaxCoupling;
72114
 
  friend class ::ExtACTree;
72115
 
  friend class ::ExtACKeywords;
72116
 
  friend class ::WinAsm;
72117
 
  friend class ::WinDeclSpecs;
72118
 
  friend class ::WinMemberExplSpec;
72119
 
  friend class ::WinTypeKeywords;
72120
 
  friend class ::PragmaOnceUnitState;
72121
 
  friend class ::PragmaOnce;
72122
 
  friend class ::CCExprResolve;
72123
 
  friend class ::CExprResolve;
72124
 
 
72125
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
72126
 
 
72127
 
  CTree *sons[3]; // arg1, arg2, arg3
72128
 
 
72129
 
public:
72130
 
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
72131
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
72132
 
  }
72133
 
  static const char *NodeId ();
72134
 
  const char *NodeName () const { return NodeId (); }
72135
 
  int Sons () const { return CTree::Sons (sons, 3); }
72136
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
72137
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72138
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
72139
 
  }
72140
 
};
72141
 
 
72142
 
 
72143
 
} // namespace Puma
72144
 
 
72145
 
#endif /* __CTree_h__ */
72146
 
 
72147
 
#line 72148 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
72148
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
72149
 
 
72150
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
72151
 
 
72152
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/WinCTree.h"
72153
 
namespace Puma {
72154
 
 
72155
 
 
72156
 
 
72157
 
#line 72158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
72158
 
} // closed Puma
72159
 
class WinIfExists;
72160
 
class WinImportHandler;
72161
 
class WinMacros;
72162
 
class CMatchSyntax;
72163
 
class ExtGnu;
72164
 
class ExtAC;
72165
 
class ExtACBuilderCoupling;
72166
 
class ExtACSyntaxCoupling;
72167
 
class ExtACTree;
72168
 
class ExtACKeywords;
72169
 
class WinAsm;
72170
 
class WinDeclSpecs;
72171
 
class WinMemberExplSpec;
72172
 
class WinTypeKeywords;
72173
 
class PragmaOnceUnitState;
72174
 
class PragmaOnce;
72175
 
class CCExprResolve;
72176
 
class CExprResolve;
72177
 
namespace Puma {
72178
 
 
72179
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/WinCTree.h"
72180
 
class CT_AsmBlock : public CT_Statement {
72181
 
#line 72182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
72182
 
  friend class ::WinIfExists;
72183
 
  friend class ::WinImportHandler;
72184
 
  friend class ::WinMacros;
72185
 
  friend class ::CMatchSyntax;
72186
 
  friend class ::ExtGnu;
72187
 
  friend class ::ExtAC;
72188
 
  friend class ::ExtACBuilderCoupling;
72189
 
  friend class ::ExtACSyntaxCoupling;
72190
 
  friend class ::ExtACTree;
72191
 
  friend class ::ExtACKeywords;
72192
 
  friend class ::WinAsm;
72193
 
  friend class ::WinDeclSpecs;
72194
 
  friend class ::WinMemberExplSpec;
72195
 
  friend class ::WinTypeKeywords;
72196
 
  friend class ::PragmaOnceUnitState;
72197
 
  friend class ::PragmaOnce;
72198
 
  friend class ::CCExprResolve;
72199
 
  friend class ::CExprResolve;
72200
 
 
72201
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/WinCTree.h"
72202
 
 
72203
 
  CTree *_key;
72204
 
  CTree *_begin;
72205
 
  CTree *_end;
72206
 
 
72207
 
public:
72208
 
  CT_AsmBlock (CTree *k, CTree *b, CTree *e) :
72209
 
    _key (k), _begin (b), _end (e) {}
72210
 
  static const char *NodeId ();
72211
 
  const char *NodeName () const { return NodeId (); }  
72212
 
  virtual int Sons () const { return 3; }
72213
 
  virtual CTree *Son (int n) const {
72214
 
    switch (n) {
72215
 
      case 0: return _key;
72216
 
      case 1: return _begin;
72217
 
      case 2: return _end;
72218
 
      default: return (CTree*)0;
72219
 
    }
72220
 
  }
72221
 
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {
72222
 
    if (old_son == _key) _key = new_son;
72223
 
    else if (old_son == _begin) _begin = new_son;
72224
 
    else if (old_son == _end) _end = new_son;
72225
 
  }
72226
 
};
72227
 
 
72228
 
 
72229
 
} // namespace Puma
72230
 
 
72231
 
#endif /* __win_c_tree_h__ */
72232
 
 
72233
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72234
 
#include <iomanip>            // hex, setfill, setw
72235
 
using namespace std;
72236
 
 
72237
 
namespace Puma {
72238
 
 
72239
 
 
72240
 
int CTree::alloc = 0;
72241
 
int CTree::release = 0;
72242
 
 
72243
 
CTree *CTree::Son (CTree * const *sons, int max, int num) const {
72244
 
  int cnt = 0;
72245
 
  for (int i = 0; i < max; i++) {
72246
 
    if (sons[i] == (CTree*)0)
72247
 
      continue;
72248
 
    if (cnt == num)
72249
 
      return sons[i];
72250
 
    cnt++;
72251
 
  }
72252
 
  return (CTree*)0;
72253
 
}
72254
 
 
72255
 
int CTree::Sons (CTree * const *sons, int max) const {
72256
 
  int cnt = 0;
72257
 
  for (int i = 0; i < max; i++) {
72258
 
    if (sons[i] == (CTree*)0)
72259
 
      continue;
72260
 
    cnt++;
72261
 
  }
72262
 
  return cnt;
72263
 
}
72264
 
 
72265
 
void CTree::ReplaceSon (CTree * const *sons, int max, CTree *old_son, CTree *new_son) const {
72266
 
  for (int i = 0; i < max; i++)
72267
 
    if (sons[i] == old_son)
72268
 
      ((CTree**)sons)[i] = new_son;
72269
 
}
72270
 
 
72271
 
// find the start token
72272
 
Token* CTree::token () const {
72273
 
  CTree *son;
72274
 
  Token *tok;
72275
 
  unsigned sons = Sons ();
72276
 
 
72277
 
  for (unsigned i = 0; i < sons; i++) {
72278
 
    son = Son (i);
72279
 
    tok = son ? son->token () : (Token*)0;
72280
 
    if (tok)
72281
 
      return tok;
72282
 
  }
72283
 
 
72284
 
  return (Token*)0;
72285
 
}                                                                              
72286
 
 
72287
 
// find the end token
72288
 
Token* CTree::end_token () const {
72289
 
  CTree *son;
72290
 
  Token *tok;
72291
 
  unsigned sons = Sons ();
72292
 
 
72293
 
  for (unsigned i = sons; i > 0; i--) {
72294
 
    son = Son (i-1);
72295
 
    tok = son ? son->end_token () : (Token*)0;
72296
 
    if (tok)
72297
 
      return tok;
72298
 
  }
72299
 
 
72300
 
  return (Token*)0;
72301
 
}
72302
 
 
72303
 
// find the start token node
72304
 
CT_Token *CTree::token_node () const {
72305
 
  CTree *son;
72306
 
  CT_Token *tok;
72307
 
  unsigned sons = Sons ();
72308
 
 
72309
 
  for (unsigned i = 0; i < sons; i++) {
72310
 
    son = Son (i);
72311
 
    tok = son ? son->token_node () : (CT_Token*)0;
72312
 
    if (tok)
72313
 
      return tok;
72314
 
  }
72315
 
 
72316
 
  return (CT_Token*)0;
72317
 
}                                                                              
72318
 
 
72319
 
// find the end token node
72320
 
CT_Token* CTree::end_token_node () const {
72321
 
  CTree *son;
72322
 
  CT_Token *tok;
72323
 
  unsigned sons = Sons ();
72324
 
 
72325
 
  for (unsigned i = sons; i > 0; i--) {
72326
 
    son = Son (i-1);
72327
 
    tok = son ? son->end_token_node () : (CT_Token*)0;
72328
 
    if (tok)
72329
 
      return tok;
72330
 
  }
72331
 
 
72332
 
  return (CT_Token*)0;
72333
 
}
72334
 
 
72335
 
int CT_List::Entries () const {
72336
 
  if (_properties & FORCE_EMPTY) return 0;
72337
 
  int n = _sons.length ();
72338
 
  if (_properties & OPEN) n -= 1;
72339
 
  if (_properties & CLOSE) n -= 1;
72340
 
  if (_properties & INTRO) n -= 1;
72341
 
  if (!(_properties & SEPARATORS)) return n;
72342
 
  if (!(_properties & END_SEP)) n += 1;
72343
 
  if (_properties & NO_LAST_SEP) n += 1;
72344
 
  return n / 2;
72345
 
}
72346
 
 
72347
 
CTree *CT_List::Entry (int no) const {
72348
 
  int n = no;
72349
 
  if (_properties & SEPARATORS) n *= 2;
72350
 
  if (_properties & OPEN) n += 1; // this is also OPEN_CLOSE
72351
 
  if (_properties & INTRO) n += 1;
72352
 
  if (no == Entries () - 1 && (_properties & NO_LAST_SEP)) n -= 1;
72353
 
  return _sons.lookup (n);
72354
 
}
72355
 
 
72356
 
void CT_List::InsertSon (CTree *before_son, CTree *new_son) {
72357
 
  int sons = Sons ();
72358
 
  for (int i = 0; i < sons; i++)
72359
 
    if (Son (i) == before_son) {
72360
 
      _sons.insert (i, new_son);
72361
 
      break;
72362
 
    }
72363
 
}
72364
 
 
72365
 
void CT_List::ReplaceSon (CTree *old_son, CTree *new_son) {
72366
 
  int sons = Sons ();
72367
 
  for (int i = 0; i < sons; i++)
72368
 
    if (Son (i) == old_son) {
72369
 
      _sons[i] = new_son;
72370
 
      break;
72371
 
    }
72372
 
}
72373
 
 
72374
 
void CT_List::RemoveSon (CTree *son) {
72375
 
  int sons = Sons ();
72376
 
  for (int i = 0; i < sons; i++)
72377
 
    if (Son (i) == son) {
72378
 
      _sons.remove (i);
72379
 
      break;
72380
 
    }
72381
 
}
72382
 
 
72383
 
void CT_DeclList::Linkage (CT_LinkageSpec *l) {
72384
 
  for (int e = 0; e < Entries (); e++)
72385
 
    ((CT_Decl*)Entry (e))->Linkage (l);
72386
 
}
72387
 
 
72388
 
void CT_PrimDeclSpec::determine_type () {
72389
 
  switch (_token->token ()->type ()) {
72390
 
    case TOK_FRIEND   : _type = PDS_FRIEND  ; break;
72391
 
    case TOK_TYPEDEF  : _type = PDS_TYPEDEF ; break;
72392
 
    case TOK_AUTO     : _type = PDS_AUTO    ; break;
72393
 
    case TOK_REGISTER : _type = PDS_REGISTER; break;
72394
 
    case TOK_STATIC   : _type = PDS_STATIC  ; break;
72395
 
    case TOK_EXTERN   : _type = PDS_EXTERN  ; break;
72396
 
    case TOK_MUTABLE  : _type = PDS_MUTABLE ; break;
72397
 
    case TOK_INLINE   : _type = PDS_INLINE  ; break;
72398
 
    case TOK_VIRTUAL  : _type = PDS_VIRTUAL ; break;
72399
 
    case TOK_EXPLICIT : _type = PDS_EXPLICIT; break;
72400
 
    case TOK_CONST    : _type = PDS_CONST   ; break;
72401
 
    case TOK_VOLATILE : _type = PDS_VOLATILE; break;
72402
 
    case TOK_CHAR     : _type = PDS_CHAR    ; break;
72403
 
    case TOK_WCHAR_T  : _type = PDS_WCHAR_T ; break;
72404
 
    case TOK_BOOL     : _type = PDS_BOOL    ; break;
72405
 
    case TOK_SHORT    : _type = PDS_SHORT   ; break;
72406
 
    case TOK_INT      : _type = PDS_INT     ; break;
72407
 
    case TOK_LONG     : _type = PDS_LONG    ; break;
72408
 
    case TOK_SIGNED   : _type = PDS_SIGNED  ; break;
72409
 
    case TOK_UNSIGNED : _type = PDS_UNSIGNED; break;
72410
 
    case TOK_FLOAT    : _type = PDS_FLOAT   ; break;
72411
 
    case TOK_DOUBLE   : _type = PDS_DOUBLE  ; break;
72412
 
    case TOK_VOID     : _type = PDS_VOID    ; break;
72413
 
    // AspectC++ specific type specifier
72414
 
    case TOK_UNKNOWN_T: _type = PDS_UNKNOWN_T; break;
72415
 
    // Win specific declaration specifiers 
72416
 
    case TOK_INT64    : _type = PDS_INT64   ; break;
72417
 
    case TOK_CDECL    : _type = PDS_CDECL   ; break;
72418
 
    case TOK_STDCALL  : _type = PDS_STDCALL ; break;
72419
 
    case TOK_FASTCALL : _type = PDS_FASTCALL; break;
72420
 
    default:            _type = PDS_UNKNOWN;
72421
 
  }
72422
 
}
72423
 
 
72424
 
CT_SimpleName *CT_Declarator::Name () {
72425
 
  CT_Declarator *dummy;
72426
 
  return Name (dummy);
72427
 
}
72428
 
 
72429
 
CT_SimpleName *CT_Declarator::Name (CT_Declarator *&last_declarator) {
72430
 
  CT_SimpleName *name = Declarator ()->IsSimpleName ();
72431
 
  if (name) {
72432
 
    last_declarator = this;
72433
 
    return name;
72434
 
  }
72435
 
  else
72436
 
    return ((CT_Declarator*)Declarator ())->Name (last_declarator);
72437
 
}
72438
 
 
72439
 
CT_DestructorName::CT_DestructorName (CTree *t, CTree *n) : 
72440
 
 CT_SpecialName (2) {
72441
 
  AddSon (t); 
72442
 
  AddSon (n); 
72443
 
 
72444
 
  std::ostringstream name;
72445
 
  name << "~" << n->token ()->text () << std::ends;
72446
 
  Name (name.str ().c_str ());
72447
 
}
72448
 
 
72449
 
CT_OperatorName::CT_OperatorName (CTree *op) : CT_SpecialName (1) {
72450
 
  AddSon (op);
72451
 
  _oper = op->token ()->type ();
72452
 
  Name (op->token ()->text ());
72453
 
}
72454
 
 
72455
 
CT_OperatorName::CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c) : 
72456
 
 CT_SpecialName ((f ? 1 : 0) + (op ? 1 : 0) + (o ? 2 : 0)) { 
72457
 
  if (f) AddSon (f); 
72458
 
  if (op) AddSon (op); 
72459
 
  if (o) AddSon (o); 
72460
 
  if (c) AddSon (c); 
72461
 
 
72462
 
  std::ostringstream name;
72463
 
  if (f) name << "operator ";
72464
 
  op = op ? op : o;
72465
 
  int oper = op->token ()->type ();
72466
 
  switch (oper) {
72467
 
    case TOK_NEW: 
72468
 
      if (Sons () > 2) {
72469
 
        _oper = NEW_ARRAY;
72470
 
        name << "new[]";
72471
 
      } else {
72472
 
        _oper = oper;
72473
 
        name << "new";
72474
 
      }
72475
 
      break;
72476
 
    case TOK_DELETE: 
72477
 
      if (Sons () > 2) {
72478
 
        _oper = DEL_ARRAY;
72479
 
        name << "delete[]";
72480
 
      } else {
72481
 
        _oper = oper;
72482
 
        name << "delete";
72483
 
      }
72484
 
      break;
72485
 
    case TOK_OPEN_ROUND: 
72486
 
      _oper = FCT_CALL; 
72487
 
      name << "()";
72488
 
      break;
72489
 
    case TOK_OPEN_SQUARE: 
72490
 
      _oper = SUBSCRIPT; 
72491
 
      name << "[]";
72492
 
      break;
72493
 
    default: 
72494
 
      _oper = oper; 
72495
 
      name << op->token ()->text ();
72496
 
      break;
72497
 
  }
72498
 
  name << std::ends;
72499
 
  Name (name.str ().c_str ());
72500
 
}
72501
 
 
72502
 
CT_ConversionName::CT_ConversionName (CTree *f, CTree *t) : 
72503
 
 CT_SpecialName (2) { 
72504
 
  AddSon (f); 
72505
 
  AddSon (t); 
72506
 
 
72507
 
  std::ostringstream name;
72508
 
  name << "operator ";
72509
 
  TypeName ()->Object ()->TypeInfo ()->TypeText (name);
72510
 
  name << std::ends;
72511
 
  Name (name.str ().c_str ());
72512
 
}
72513
 
 
72514
 
void CT_QualName::print (ostream &os) const { 
72515
 
  int entries = Entries () - 1;
72516
 
  if (NodeName () == CT_RootQualName::NodeId ())
72517
 
    os << "::";
72518
 
  for (int i = 0; i < entries; i++)
72519
 
    os << ((CT_SimpleName*)Entry (i))->Text () << "::";
72520
 
  os << Text (); 
72521
 
}
72522
 
 
72523
 
// static syntax tree node ids
72524
 
 
72525
 
const char *CT_AsmBlock::NodeId () { return "AsmBlock"; }
72526
 
 
72527
 
const char *CT_GnuAsmDef::NodeId () { return "GnuAsmDef"; }
72528
 
const char *CT_GnuAsmOperand::NodeId () { return "GnuAsmOperand"; }
72529
 
const char *CT_GnuAsmOperands::NodeId () { return "GnuAsmOperands"; }
72530
 
const char *CT_GnuAsmClobbers::NodeId () { return "GnuAsmClobbers"; }
72531
 
const char *CT_GnuTypeof::NodeId () { return "GnuTypeof"; }
72532
 
const char *CT_GnuStatementExpr::NodeId () { return "GnuStatementExpr"; }
72533
 
 
72534
 
const char *CT_Error::NodeId () { return "Error"; }
72535
 
const char *CT_Token::NodeId () { return "Token"; }
72536
 
const char *CT_ExprList::NodeId () { return "ExprList"; }
72537
 
const char *CT_DeclaratorList::NodeId () { return "DeclaratorList"; }
72538
 
const char *CT_EnumeratorList::NodeId () { return "EnumeratorList"; }
72539
 
const char *CT_DeclList::NodeId () { return "DeclList"; }
72540
 
const char *CT_DeclSpecSeq::NodeId () { return "DeclSpecSeq"; }
72541
 
const char *CT_CmpdStmt::NodeId () { return "CmpdStmt"; }
72542
 
const char *CT_HandlerSeq::NodeId () { return "HandlerSeq"; }
72543
 
const char *CT_TemplateParamList::NodeId () { return "TemplateParamList"; }
72544
 
const char *CT_TemplateArgList::NodeId () { return "TemplateArgList"; }
72545
 
const char *CT_Expression::NodeId() { return "Expression"; }
72546
 
const char *CT_String::NodeId () { return "String"; }
72547
 
const char *CT_WideString::NodeId () { return "WideString"; }
72548
 
const char *CT_Integer::NodeId () { return "Integer"; }
72549
 
const char *CT_Character::NodeId () { return "Character"; }
72550
 
const char *CT_WideCharacter::NodeId () { return "WideCharacter"; }
72551
 
const char *CT_Float::NodeId () { return "Float"; }
72552
 
const char *CT_Bool::NodeId () { return "Bool"; }
72553
 
const char *CT_BracedExpr::NodeId () { return "BracedExpr"; }
72554
 
const char *CT_SimpleName::NodeId () { return "SimpleName"; }
72555
 
const char *CT_PrivateName::NodeId () { return "PrivateName"; }
72556
 
const char *CT_DestructorName::NodeId () { return "DestructorName"; }
72557
 
const char *CT_TemplateName::NodeId () { return "TemplateName"; }
72558
 
const char *CT_OperatorName::NodeId () { return "OperatorName"; }
72559
 
const char *CT_ConversionName::NodeId () { return "ConversionName"; }
72560
 
const char *CT_QualName::NodeId () { return "QualName"; }
72561
 
const char *CT_RootQualName::NodeId () { return "RootQualName"; }
72562
 
const char *CT_BinaryExpr::NodeId () { return "BinaryExpr"; }
72563
 
const char *CT_MembPtrExpr::NodeId () { return "MembPtrExpr"; }
72564
 
const char *CT_MembRefExpr::NodeId () { return "MembRefExpr"; }
72565
 
const char *CT_UnaryExpr::NodeId () { return "UnaryExpr"; }
72566
 
const char *CT_PostfixExpr::NodeId () { return "PostfixExpr"; }
72567
 
const char *CT_AddrExpr::NodeId () { return "AddrExpr"; }
72568
 
const char *CT_DerefExpr::NodeId () { return "DerefExpr"; }
72569
 
const char *CT_DeleteExpr::NodeId () { return "DeleteExpr"; }
72570
 
const char *CT_NewExpr::NodeId () { return "NewExpr"; }
72571
 
const char *CT_IfThenExpr::NodeId () { return "IfThenExpr"; }
72572
 
const char *CT_CmpdLiteral::NodeId () { return "CmpdLiteral"; }
72573
 
const char *CT_ConstructExpr::NodeId () { return "ConstructExpr"; }
72574
 
const char *CT_ThrowExpr::NodeId () { return "ThrowExpr"; }
72575
 
const char *CT_IndexExpr::NodeId () { return "IndexExpr"; }
72576
 
const char *CT_CallExpr::NodeId () { return "CallExpr"; }
72577
 
const char *CT_CastExpr::NodeId () { return "CastExpr"; }
72578
 
const char *CT_StaticCast::NodeId () { return "StaticCast"; }
72579
 
const char *CT_ConstCast::NodeId () { return "ConstCast"; }
72580
 
const char *CT_ReintCast::NodeId () { return "ReintCast"; }
72581
 
const char *CT_DynamicCast::NodeId () { return "DynamicCast"; }
72582
 
const char *CT_ImplicitCast::NodeId () { return "ImplicitCast"; }
72583
 
const char *CT_TypeidExpr::NodeId () { return "TypeidExpr"; }
72584
 
const char *CT_SizeofExpr::NodeId () { return "SizeofExpr"; }
72585
 
const char *CT_IndexDesignator::NodeId () { return "IndexDesignator"; }
72586
 
const char *CT_MembDesignator::NodeId () { return "MembDesignator"; }
72587
 
const char *CT_DesignatorSeq::NodeId () { return "DesignatorSeq"; }
72588
 
const char *CT_PrimDeclSpec::NodeId () { return "PrimDeclSpec"; }
72589
 
const char *CT_NamedType::NodeId () { return "NamedType"; }
72590
 
const char *CT_ClassSpec::NodeId () { return "ClassSpec"; }
72591
 
const char *CT_UnionSpec::NodeId () { return "UnionSpec"; }
72592
 
const char *CT_EnumSpec::NodeId () { return "EnumSpec"; }
72593
 
const char *CT_ExceptionSpec::NodeId () { return "ExceptionSpec"; }
72594
 
const char *CT_Program::NodeId () { return "Program"; }
72595
 
const char *CT_ObjDecl::NodeId () { return "ObjDecl"; }
72596
 
const char *CT_TemplateDecl::NodeId () { return "TemplateDecl"; }
72597
 
const char *CT_NonTypeParamDecl::NodeId () { return "NonTypeParamDecl"; }
72598
 
const char *CT_TypeParamDecl::NodeId () { return "TypeParamDecl"; }
72599
 
const char *CT_EnumDef::NodeId () { return "EnumDef"; }
72600
 
const char *CT_Enumerator::NodeId () { return "Enumerator"; }
72601
 
const char *CT_FctDef::NodeId () { return "FctDef"; }
72602
 
const char *CT_AsmDef::NodeId () { return "AsmDef"; }
72603
 
const char *CT_Handler::NodeId () { return "Handler"; }
72604
 
const char *CT_LinkageSpec::NodeId () { return "LinkageSpec"; }
72605
 
const char *CT_ArgDecl::NodeId () { return "ArgDecl"; }
72606
 
const char *CT_ArgDeclList::NodeId () { return "ArgDeclList"; }
72607
 
const char *CT_ArgDeclSeq::NodeId () { return "ArgDeclSeq"; }
72608
 
const char *CT_ArgNameList::NodeId () { return "ArgNameList"; }
72609
 
const char *CT_NamespaceDef::NodeId () { return "NamespaceDef"; }
72610
 
const char *CT_NamespaceAliasDef::NodeId () { return "NamespaceAliasDef"; }
72611
 
const char *CT_UsingDirective::NodeId () { return "UsingDirective"; }
72612
 
const char *CT_InitDeclarator::NodeId () { return "InitDeclarator"; }
72613
 
const char *CT_BracedDeclarator::NodeId () { return "BracedDeclarator"; }
72614
 
const char *CT_ArrayDelimiter::NodeId () { return "ArrayDelimiter"; }
72615
 
const char *CT_ArrayDeclarator::NodeId () { return "ArrayDeclarator"; }
72616
 
const char *CT_FctDeclarator::NodeId () { return "FctDeclarator"; }
72617
 
const char *CT_RefDeclarator::NodeId () { return "RefDeclarator"; }
72618
 
const char *CT_PtrDeclarator::NodeId () { return "PtrDeclarator"; }
72619
 
const char *CT_MembPtrDeclarator::NodeId () { return "MembPtrDeclarator"; }
72620
 
const char *CT_BitFieldDeclarator::NodeId () { return "BitFieldDeclarator"; }
72621
 
const char *CT_LabelStmt::NodeId () { return "LabelStmt"; }
72622
 
const char *CT_DefaultStmt::NodeId () { return "DefaultStmt"; }
72623
 
const char *CT_TryStmt::NodeId () { return "TryStmt"; }
72624
 
const char *CT_CaseStmt::NodeId () { return "CaseStmt"; }
72625
 
const char *CT_ExprStmt::NodeId () { return "ExprStmt"; }
72626
 
const char *CT_DeclStmt::NodeId () { return "DeclStmt"; }
72627
 
const char *CT_SwitchStmt::NodeId () { return "SwitchStmt"; }
72628
 
const char *CT_IfStmt::NodeId () { return "IfStmt"; }
72629
 
const char *CT_IfElseStmt::NodeId () { return "IfElseStmt"; }
72630
 
const char *CT_BreakStmt::NodeId () { return "BreakStmt"; }
72631
 
const char *CT_ContinueStmt::NodeId () { return "ContinueStmt"; }
72632
 
const char *CT_GotoStmt::NodeId () { return "GotoStmt"; }
72633
 
const char *CT_ReturnStmt::NodeId () { return "ReturnStmt"; }
72634
 
const char *CT_WhileStmt::NodeId () { return "WhileStmt"; }
72635
 
const char *CT_DoStmt::NodeId () { return "DoStmt"; }
72636
 
const char *CT_ForStmt::NodeId () { return "ForStmt"; }
72637
 
const char *CT_Condition::NodeId () { return "Condition"; }
72638
 
const char *CT_ClassDef::NodeId () { return "ClassDef"; }
72639
 
const char *CT_UnionDef::NodeId () { return "UnionDef"; }
72640
 
const char *CT_MembList::NodeId () { return "MembList"; }
72641
 
const char *CT_MembInitList::NodeId () { return "MembInitList"; }
72642
 
const char *CT_MembInit::NodeId () { return "MembInit"; }
72643
 
const char *CT_BaseSpecList::NodeId () { return "BaseSpecList"; }
72644
 
const char *CT_AccessSpec::NodeId () { return "AccessSpec"; }
72645
 
const char *CT_BaseSpec::NodeId () { return "BaseSpec"; }
72646
 
const char *CT_AccessDecl::NodeId () { return "AccessDecl"; }
72647
 
const char *CT_UsingDecl::NodeId () { return "UsingDecl"; }
72648
 
const char *CT_Any::NodeId () { return "Any"; }
72649
 
const char *CT_AnyList::NodeId () { return "AnyList"; }
72650
 
const char *CT_AnyExtension::NodeId () { return "AnyExtension"; }
72651
 
const char *CT_AnyCondition::NodeId () { return "AnyCondition"; }
72652
 
 
72653
 
 
72654
 
} // namespace Puma
72655
 
 
72656
 
// constant size mempool
72657
 
 
72658
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConstSizeMemPool.h"
72659
 
// This file is part of PUMA.
72660
 
// Copyright (C) 1999-2003  The PUMA developer team.
72661
 
//                                                                
72662
 
// This program is free software;  you can redistribute it and/or 
72663
 
// modify it under the terms of the GNU General Public License as 
72664
 
// published by the Free Software Foundation; either version 2 of 
72665
 
// the License, or (at your option) any later version.            
72666
 
//                                                                
72667
 
// This program is distributed in the hope that it will be useful,
72668
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
72669
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
72670
 
// GNU General Public License for more details.                   
72671
 
//                                                                
72672
 
// You should have received a copy of the GNU General Public      
72673
 
// License along with this program; if not, write to the Free     
72674
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
72675
 
// MA  02111-1307  USA                                            
72676
 
 
72677
 
#ifndef __ConstSizeMemPool_h__
72678
 
#define __ConstSizeMemPool_h__
72679
 
 
72680
 
 
72681
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConstSizeMemPool.h"
72682
 
#include <assert.h>
72683
 
#include <stdlib.h>
72684
 
 
72685
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConstSizeMemPool.h"
72686
 
using namespace std;
72687
 
 
72688
 
#ifdef PROFILE_MEM
72689
 
# include "Puma/RatioCounter.h"
72690
 
#endif
72691
 
 
72692
 
namespace Puma {
72693
 
 
72694
 
 
72695
 
 
72696
 
#line 72697 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
72697
 
} // closed Puma
72698
 
class WinIfExists;
72699
 
class WinImportHandler;
72700
 
class WinMacros;
72701
 
class CMatchSyntax;
72702
 
class ExtGnu;
72703
 
class ExtAC;
72704
 
class ExtACBuilderCoupling;
72705
 
class ExtACSyntaxCoupling;
72706
 
class ExtACTree;
72707
 
class ExtACKeywords;
72708
 
class WinAsm;
72709
 
class WinDeclSpecs;
72710
 
class WinMemberExplSpec;
72711
 
class WinTypeKeywords;
72712
 
class PragmaOnceUnitState;
72713
 
class PragmaOnce;
72714
 
class CCExprResolve;
72715
 
class CExprResolve;
72716
 
namespace Puma {
72717
 
 
72718
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConstSizeMemPool.h"
72719
 
template <int N>
72720
 
class ConstSizeMemPool {
72721
 
#line 72722 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
72722
 
  friend class ::WinIfExists;
72723
 
  friend class ::WinImportHandler;
72724
 
  friend class ::WinMacros;
72725
 
  friend class ::CMatchSyntax;
72726
 
  friend class ::ExtGnu;
72727
 
  friend class ::ExtAC;
72728
 
  friend class ::ExtACBuilderCoupling;
72729
 
  friend class ::ExtACSyntaxCoupling;
72730
 
  friend class ::ExtACTree;
72731
 
  friend class ::ExtACKeywords;
72732
 
  friend class ::WinAsm;
72733
 
  friend class ::WinDeclSpecs;
72734
 
  friend class ::WinMemberExplSpec;
72735
 
  friend class ::WinTypeKeywords;
72736
 
  friend class ::PragmaOnceUnitState;
72737
 
  friend class ::PragmaOnce;
72738
 
  friend class ::CCExprResolve;
72739
 
  friend class ::CExprResolve;
72740
 
 
72741
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConstSizeMemPool.h"
72742
 
 
72743
 
  Chain  m_Trash;
72744
 
#ifdef PROFILE_MEM
72745
 
  RatioCounter m_Ratio;
72746
 
#endif
72747
 
 
72748
 
public:
72749
 
  ConstSizeMemPool ()
72750
 
#ifdef PROFILE_MEM
72751
 
    : m_Ratio (N) 
72752
 
#endif
72753
 
  {}
72754
 
  ~ConstSizeMemPool () {}
72755
 
 
72756
 
  // don't rely on external instances, use singletons
72757
 
  static ConstSizeMemPool &inst() {
72758
 
          static ConstSizeMemPool i;
72759
 
          return i;
72760
 
  }
72761
 
 
72762
 
  void *alloc ();
72763
 
  void free (void *p);
72764
 
   
72765
 
  inline void clean () {
72766
 
    Chain *c = m_Trash.unlink ();
72767
 
    while (c) {
72768
 
      ::free (c);
72769
 
//       ::delete c;
72770
 
      c = m_Trash.unlink ();
72771
 
    }
72772
 
  }
72773
 
};
72774
 
 
72775
 
template <int N>
72776
 
void *ConstSizeMemPool<N>::alloc () {
72777
 
#ifdef PROFILE_MEM
72778
 
    m_Ratio.use++;
72779
 
#endif
72780
 
    void *res = m_Trash.unlink ();
72781
 
    if (res == 0) {
72782
 
      res = ::malloc (N);
72783
 
    }
72784
 
#ifdef PROFILE_MEM
72785
 
    else m_Ratio.reuse++;
72786
 
#endif
72787
 
    return res;
72788
 
  }
72789
 
   
72790
 
template <int N>
72791
 
void ConstSizeMemPool<N>::free (void *p) {
72792
 
  m_Trash.insert ((Chain*)p);
72793
 
}
72794
 
 
72795
 
template<int N> inline void *malloc () 
72796
 
 { return ConstSizeMemPool<N>::inst().alloc(); }
72797
 
template<int N> inline void free (void *p) 
72798
 
 { ConstSizeMemPool<N>::inst().free(p); }
72799
 
template<int N> inline void clean () 
72800
 
 { ConstSizeMemPool<N>::inst().clean(); }
72801
 
 
72802
 
} // namespace Puma
72803
 
 
72804
 
#endif /* __ConstSizeMemPool_h__ */
72805
 
 
72806
 
#line 453 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72807
 
namespace Puma {
72808
 
 
72809
 
 
72810
 
void *CT_Token::operator new (size_t n) {
72811
 
  assert (n == sizeof (CT_Token));
72812
 
  return malloc<sizeof (CT_Token)> ();
72813
 
}
72814
 
void CT_Token::operator delete (void *p) {
72815
 
  free<sizeof (CT_Token)> (p);
72816
 
}
72817
 
 
72818
 
void *CT_SimpleName::operator new (size_t n) {
72819
 
  assert (n == sizeof (CT_SimpleName));
72820
 
  return malloc<sizeof (CT_SimpleName)> ();
72821
 
}
72822
 
void CT_SimpleName::operator delete (void *p) {
72823
 
  free<sizeof (CT_SimpleName)> (p);
72824
 
}
72825
 
 
72826
 
void *CT_SpecialName::operator new (size_t n) {
72827
 
  assert (n == sizeof (CT_SpecialName));
72828
 
  return malloc<sizeof (CT_SpecialName)> ();
72829
 
}
72830
 
void CT_SpecialName::operator delete (void *p) {
72831
 
  free<sizeof (CT_SpecialName)> (p);
72832
 
}
72833
 
 
72834
 
void *CT_PrivateName::operator new (size_t n) {
72835
 
  assert (n == sizeof (CT_PrivateName));
72836
 
  return malloc<sizeof (CT_PrivateName)> ();
72837
 
}
72838
 
void CT_PrivateName::operator delete (void *p) {
72839
 
  free<sizeof (CT_PrivateName)> (p);
72840
 
}
72841
 
 
72842
 
void *CT_OperatorName::operator new (size_t n) {
72843
 
  assert (n == sizeof (CT_OperatorName));
72844
 
  return malloc<sizeof (CT_OperatorName)> ();
72845
 
}
72846
 
void CT_OperatorName::operator delete (void *p) {
72847
 
  free<sizeof (CT_OperatorName)> (p);
72848
 
}
72849
 
 
72850
 
void *CT_DestructorName::operator new (size_t n) {
72851
 
  assert (n == sizeof (CT_DestructorName));
72852
 
  return malloc<sizeof (CT_DestructorName)> ();
72853
 
}
72854
 
void CT_DestructorName::operator delete (void *p) {
72855
 
  free<sizeof (CT_DestructorName)> (p);
72856
 
}
72857
 
 
72858
 
void *CT_ConversionName::operator new (size_t n) {
72859
 
  assert (n == sizeof (CT_ConversionName));
72860
 
  return malloc<sizeof (CT_ConversionName)> ();
72861
 
}
72862
 
void CT_ConversionName::operator delete (void *p) {
72863
 
  free<sizeof (CT_ConversionName)> (p);
72864
 
}
72865
 
 
72866
 
void *CT_TemplateName::operator new (size_t n) {
72867
 
  assert (n == sizeof (CT_TemplateName));
72868
 
  return malloc<sizeof (CT_TemplateName)> ();
72869
 
}
72870
 
void CT_TemplateName::operator delete (void *p) {
72871
 
  free<sizeof (CT_TemplateName)> (p);
72872
 
}
72873
 
 
72874
 
void *CT_QualName::operator new (size_t n) {
72875
 
  assert (n == sizeof (CT_QualName));
72876
 
  return malloc<sizeof (CT_QualName)> ();
72877
 
}
72878
 
void CT_QualName::operator delete (void *p) {
72879
 
  free<sizeof (CT_QualName)> (p);
72880
 
}
72881
 
 
72882
 
void *CT_RootQualName::operator new (size_t n) {
72883
 
  assert (n == sizeof (CT_RootQualName));
72884
 
  return malloc<sizeof (CT_RootQualName)> ();
72885
 
}
72886
 
void CT_RootQualName::operator delete (void *p) {
72887
 
  free<sizeof (CT_RootQualName)> (p);
72888
 
}
72889
 
 
72890
 
 
72891
 
} // namespace Puma
72892
 
 
72893
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
72894
 
CTypeInfo *
72895
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72896
 
 Puma::CT_GnuStatementExpr 
72897
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
72898
 
::resolve (CSemExpr &sem_expr, CTree *base) {
72899
 
    // this call is statically resolved with overload resolution, etc.
72900
 
    return sem_expr.resolve (this, base);
72901
 
  }
72902
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72903
 
 
72904
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
72905
 
CTypeInfo *
72906
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72907
 
 Puma::CT_GnuStatementExpr 
72908
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
72909
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
72910
 
    // this call is statically resolved with overload resolution, etc.
72911
 
    return sem_expr.resolve (this, base);
72912
 
  }
72913
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72914
 
 
72915
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
72916
 
CTypeInfo *
72917
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72918
 
 Puma::CT_MembInit 
72919
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
72920
 
::resolve (CSemExpr &sem_expr, CTree *base) {
72921
 
    // this call is statically resolved with overload resolution, etc.
72922
 
    return sem_expr.resolve (this, base);
72923
 
  }
72924
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72925
 
 
72926
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
72927
 
CTypeInfo *
72928
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72929
 
 Puma::CT_MembInit 
72930
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
72931
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
72932
 
    // this call is statically resolved with overload resolution, etc.
72933
 
    return sem_expr.resolve (this, base);
72934
 
  }
72935
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72936
 
 
72937
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
72938
 
CTypeInfo *
72939
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72940
 
 Puma::CT_MembDesignator 
72941
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
72942
 
::resolve (CSemExpr &sem_expr, CTree *base) {
72943
 
    // this call is statically resolved with overload resolution, etc.
72944
 
    return sem_expr.resolve (this, base);
72945
 
  }
72946
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72947
 
 
72948
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
72949
 
CTypeInfo *
72950
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72951
 
 Puma::CT_MembDesignator 
72952
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
72953
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
72954
 
    // this call is statically resolved with overload resolution, etc.
72955
 
    return sem_expr.resolve (this, base);
72956
 
  }
72957
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72958
 
 
72959
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
72960
 
CTypeInfo *
72961
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72962
 
 Puma::CT_IndexDesignator 
72963
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
72964
 
::resolve (CSemExpr &sem_expr, CTree *base) {
72965
 
    // this call is statically resolved with overload resolution, etc.
72966
 
    return sem_expr.resolve (this, base);
72967
 
  }
72968
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72969
 
 
72970
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
72971
 
CTypeInfo *
72972
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72973
 
 Puma::CT_IndexDesignator 
72974
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
72975
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
72976
 
    // this call is statically resolved with overload resolution, etc.
72977
 
    return sem_expr.resolve (this, base);
72978
 
  }
72979
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72980
 
 
72981
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
72982
 
CTypeInfo *
72983
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72984
 
 Puma::CT_SizeofExpr 
72985
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
72986
 
::resolve (CSemExpr &sem_expr, CTree *base) {
72987
 
    // this call is statically resolved with overload resolution, etc.
72988
 
    return sem_expr.resolve (this, base);
72989
 
  }
72990
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72991
 
 
72992
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
72993
 
CTypeInfo *
72994
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
72995
 
 Puma::CT_SizeofExpr 
72996
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
72997
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
72998
 
    // this call is statically resolved with overload resolution, etc.
72999
 
    return sem_expr.resolve (this, base);
73000
 
  }
73001
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73002
 
 
73003
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73004
 
CTypeInfo *
73005
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73006
 
 Puma::CT_TypeidExpr 
73007
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73008
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73009
 
    // this call is statically resolved with overload resolution, etc.
73010
 
    return sem_expr.resolve (this, base);
73011
 
  }
73012
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73013
 
 
73014
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73015
 
CTypeInfo *
73016
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73017
 
 Puma::CT_TypeidExpr 
73018
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73019
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73020
 
    // this call is statically resolved with overload resolution, etc.
73021
 
    return sem_expr.resolve (this, base);
73022
 
  }
73023
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73024
 
 
73025
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73026
 
CTypeInfo *
73027
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73028
 
 Puma::CT_ImplicitCast 
73029
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73030
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73031
 
    // this call is statically resolved with overload resolution, etc.
73032
 
    return sem_expr.resolve (this, base);
73033
 
  }
73034
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73035
 
 
73036
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73037
 
CTypeInfo *
73038
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73039
 
 Puma::CT_ImplicitCast 
73040
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73041
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73042
 
    // this call is statically resolved with overload resolution, etc.
73043
 
    return sem_expr.resolve (this, base);
73044
 
  }
73045
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73046
 
 
73047
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73048
 
CTypeInfo *
73049
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73050
 
 Puma::CT_DynamicCast 
73051
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73052
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73053
 
    // this call is statically resolved with overload resolution, etc.
73054
 
    return sem_expr.resolve (this, base);
73055
 
  }
73056
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73057
 
 
73058
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73059
 
CTypeInfo *
73060
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73061
 
 Puma::CT_DynamicCast 
73062
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73063
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73064
 
    // this call is statically resolved with overload resolution, etc.
73065
 
    return sem_expr.resolve (this, base);
73066
 
  }
73067
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73068
 
 
73069
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73070
 
CTypeInfo *
73071
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73072
 
 Puma::CT_ReintCast 
73073
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73074
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73075
 
    // this call is statically resolved with overload resolution, etc.
73076
 
    return sem_expr.resolve (this, base);
73077
 
  }
73078
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73079
 
 
73080
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73081
 
CTypeInfo *
73082
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73083
 
 Puma::CT_ReintCast 
73084
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73085
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73086
 
    // this call is statically resolved with overload resolution, etc.
73087
 
    return sem_expr.resolve (this, base);
73088
 
  }
73089
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73090
 
 
73091
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73092
 
CTypeInfo *
73093
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73094
 
 Puma::CT_ConstCast 
73095
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73096
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73097
 
    // this call is statically resolved with overload resolution, etc.
73098
 
    return sem_expr.resolve (this, base);
73099
 
  }
73100
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73101
 
 
73102
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73103
 
CTypeInfo *
73104
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73105
 
 Puma::CT_ConstCast 
73106
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73107
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73108
 
    // this call is statically resolved with overload resolution, etc.
73109
 
    return sem_expr.resolve (this, base);
73110
 
  }
73111
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73112
 
 
73113
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73114
 
CTypeInfo *
73115
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73116
 
 Puma::CT_StaticCast 
73117
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73118
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73119
 
    // this call is statically resolved with overload resolution, etc.
73120
 
    return sem_expr.resolve (this, base);
73121
 
  }
73122
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73123
 
 
73124
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73125
 
CTypeInfo *
73126
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73127
 
 Puma::CT_StaticCast 
73128
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73129
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73130
 
    // this call is statically resolved with overload resolution, etc.
73131
 
    return sem_expr.resolve (this, base);
73132
 
  }
73133
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73134
 
 
73135
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73136
 
CTypeInfo *
73137
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73138
 
 Puma::CT_CastExpr 
73139
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73140
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73141
 
    // this call is statically resolved with overload resolution, etc.
73142
 
    return sem_expr.resolve (this, base);
73143
 
  }
73144
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73145
 
 
73146
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73147
 
CTypeInfo *
73148
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73149
 
 Puma::CT_CastExpr 
73150
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73151
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73152
 
    // this call is statically resolved with overload resolution, etc.
73153
 
    return sem_expr.resolve (this, base);
73154
 
  }
73155
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73156
 
 
73157
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73158
 
CTypeInfo *
73159
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73160
 
 Puma::CT_CallExpr 
73161
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73162
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73163
 
    // this call is statically resolved with overload resolution, etc.
73164
 
    return sem_expr.resolve (this, base);
73165
 
  }
73166
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73167
 
 
73168
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73169
 
CTypeInfo *
73170
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73171
 
 Puma::CT_CallExpr 
73172
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73173
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73174
 
    // this call is statically resolved with overload resolution, etc.
73175
 
    return sem_expr.resolve (this, base);
73176
 
  }
73177
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73178
 
 
73179
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73180
 
CTypeInfo *
73181
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73182
 
 Puma::CT_IndexExpr 
73183
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73184
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73185
 
    // this call is statically resolved with overload resolution, etc.
73186
 
    return sem_expr.resolve (this, base);
73187
 
  }
73188
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73189
 
 
73190
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73191
 
CTypeInfo *
73192
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73193
 
 Puma::CT_IndexExpr 
73194
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73195
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73196
 
    // this call is statically resolved with overload resolution, etc.
73197
 
    return sem_expr.resolve (this, base);
73198
 
  }
73199
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73200
 
 
73201
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73202
 
CTypeInfo *
73203
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73204
 
 Puma::CT_ThrowExpr 
73205
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73206
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73207
 
    // this call is statically resolved with overload resolution, etc.
73208
 
    return sem_expr.resolve (this, base);
73209
 
  }
73210
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73211
 
 
73212
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73213
 
CTypeInfo *
73214
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73215
 
 Puma::CT_ThrowExpr 
73216
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73217
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73218
 
    // this call is statically resolved with overload resolution, etc.
73219
 
    return sem_expr.resolve (this, base);
73220
 
  }
73221
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73222
 
 
73223
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73224
 
CTypeInfo *
73225
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73226
 
 Puma::CT_ConstructExpr 
73227
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73228
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73229
 
    // this call is statically resolved with overload resolution, etc.
73230
 
    return sem_expr.resolve (this, base);
73231
 
  }
73232
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73233
 
 
73234
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73235
 
CTypeInfo *
73236
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73237
 
 Puma::CT_ConstructExpr 
73238
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73239
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73240
 
    // this call is statically resolved with overload resolution, etc.
73241
 
    return sem_expr.resolve (this, base);
73242
 
  }
73243
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73244
 
 
73245
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73246
 
CTypeInfo *
73247
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73248
 
 Puma::CT_CmpdLiteral 
73249
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73250
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73251
 
    // this call is statically resolved with overload resolution, etc.
73252
 
    return sem_expr.resolve (this, base);
73253
 
  }
73254
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73255
 
 
73256
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73257
 
CTypeInfo *
73258
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73259
 
 Puma::CT_CmpdLiteral 
73260
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73261
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73262
 
    // this call is statically resolved with overload resolution, etc.
73263
 
    return sem_expr.resolve (this, base);
73264
 
  }
73265
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73266
 
 
73267
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73268
 
CTypeInfo *
73269
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73270
 
 Puma::CT_IfThenExpr 
73271
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73272
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73273
 
    // this call is statically resolved with overload resolution, etc.
73274
 
    return sem_expr.resolve (this, base);
73275
 
  }
73276
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73277
 
 
73278
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73279
 
CTypeInfo *
73280
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73281
 
 Puma::CT_IfThenExpr 
73282
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73283
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73284
 
    // this call is statically resolved with overload resolution, etc.
73285
 
    return sem_expr.resolve (this, base);
73286
 
  }
73287
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73288
 
 
73289
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73290
 
CTypeInfo *
73291
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73292
 
 Puma::CT_NewExpr 
73293
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73294
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73295
 
    // this call is statically resolved with overload resolution, etc.
73296
 
    return sem_expr.resolve (this, base);
73297
 
  }
73298
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73299
 
 
73300
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73301
 
CTypeInfo *
73302
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73303
 
 Puma::CT_NewExpr 
73304
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73305
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73306
 
    // this call is statically resolved with overload resolution, etc.
73307
 
    return sem_expr.resolve (this, base);
73308
 
  }
73309
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73310
 
 
73311
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73312
 
CTypeInfo *
73313
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73314
 
 Puma::CT_DeleteExpr 
73315
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73316
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73317
 
    // this call is statically resolved with overload resolution, etc.
73318
 
    return sem_expr.resolve (this, base);
73319
 
  }
73320
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73321
 
 
73322
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73323
 
CTypeInfo *
73324
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73325
 
 Puma::CT_DeleteExpr 
73326
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73327
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73328
 
    // this call is statically resolved with overload resolution, etc.
73329
 
    return sem_expr.resolve (this, base);
73330
 
  }
73331
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73332
 
 
73333
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73334
 
CTypeInfo *
73335
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73336
 
 Puma::CT_DerefExpr 
73337
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73338
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73339
 
    // this call is statically resolved with overload resolution, etc.
73340
 
    return sem_expr.resolve (this, base);
73341
 
  }
73342
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73343
 
 
73344
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73345
 
CTypeInfo *
73346
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73347
 
 Puma::CT_DerefExpr 
73348
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73349
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73350
 
    // this call is statically resolved with overload resolution, etc.
73351
 
    return sem_expr.resolve (this, base);
73352
 
  }
73353
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73354
 
 
73355
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73356
 
CTypeInfo *
73357
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73358
 
 Puma::CT_AddrExpr 
73359
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73360
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73361
 
    // this call is statically resolved with overload resolution, etc.
73362
 
    return sem_expr.resolve (this, base);
73363
 
  }
73364
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73365
 
 
73366
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73367
 
CTypeInfo *
73368
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73369
 
 Puma::CT_AddrExpr 
73370
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73371
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73372
 
    // this call is statically resolved with overload resolution, etc.
73373
 
    return sem_expr.resolve (this, base);
73374
 
  }
73375
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73376
 
 
73377
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73378
 
CTypeInfo *
73379
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73380
 
 Puma::CT_PostfixExpr 
73381
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73382
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73383
 
    // this call is statically resolved with overload resolution, etc.
73384
 
    return sem_expr.resolve (this, base);
73385
 
  }
73386
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73387
 
 
73388
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73389
 
CTypeInfo *
73390
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73391
 
 Puma::CT_PostfixExpr 
73392
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73393
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73394
 
    // this call is statically resolved with overload resolution, etc.
73395
 
    return sem_expr.resolve (this, base);
73396
 
  }
73397
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73398
 
 
73399
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73400
 
CTypeInfo *
73401
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73402
 
 Puma::CT_UnaryExpr 
73403
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73404
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73405
 
    // this call is statically resolved with overload resolution, etc.
73406
 
    return sem_expr.resolve (this, base);
73407
 
  }
73408
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73409
 
 
73410
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73411
 
CTypeInfo *
73412
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73413
 
 Puma::CT_UnaryExpr 
73414
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73415
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73416
 
    // this call is statically resolved with overload resolution, etc.
73417
 
    return sem_expr.resolve (this, base);
73418
 
  }
73419
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73420
 
 
73421
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73422
 
CTypeInfo *
73423
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73424
 
 Puma::CT_MembRefExpr 
73425
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73426
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73427
 
    // this call is statically resolved with overload resolution, etc.
73428
 
    return sem_expr.resolve (this, base);
73429
 
  }
73430
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73431
 
 
73432
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73433
 
CTypeInfo *
73434
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73435
 
 Puma::CT_MembRefExpr 
73436
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73437
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73438
 
    // this call is statically resolved with overload resolution, etc.
73439
 
    return sem_expr.resolve (this, base);
73440
 
  }
73441
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73442
 
 
73443
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73444
 
CTypeInfo *
73445
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73446
 
 Puma::CT_MembPtrExpr 
73447
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73448
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73449
 
    // this call is statically resolved with overload resolution, etc.
73450
 
    return sem_expr.resolve (this, base);
73451
 
  }
73452
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73453
 
 
73454
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73455
 
CTypeInfo *
73456
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73457
 
 Puma::CT_MembPtrExpr 
73458
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73459
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73460
 
    // this call is statically resolved with overload resolution, etc.
73461
 
    return sem_expr.resolve (this, base);
73462
 
  }
73463
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73464
 
 
73465
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73466
 
CTypeInfo *
73467
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73468
 
 Puma::CT_BinaryExpr 
73469
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73470
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73471
 
    // this call is statically resolved with overload resolution, etc.
73472
 
    return sem_expr.resolve (this, base);
73473
 
  }
73474
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73475
 
 
73476
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73477
 
CTypeInfo *
73478
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73479
 
 Puma::CT_BinaryExpr 
73480
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73481
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73482
 
    // this call is statically resolved with overload resolution, etc.
73483
 
    return sem_expr.resolve (this, base);
73484
 
  }
73485
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73486
 
 
73487
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73488
 
CTypeInfo *
73489
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73490
 
 Puma::CT_RootQualName 
73491
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73492
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73493
 
    // this call is statically resolved with overload resolution, etc.
73494
 
    return sem_expr.resolve (this, base);
73495
 
  }
73496
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73497
 
 
73498
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73499
 
CTypeInfo *
73500
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73501
 
 Puma::CT_RootQualName 
73502
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73503
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73504
 
    // this call is statically resolved with overload resolution, etc.
73505
 
    return sem_expr.resolve (this, base);
73506
 
  }
73507
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73508
 
 
73509
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73510
 
CTypeInfo *
73511
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73512
 
 Puma::CT_QualName 
73513
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73514
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73515
 
    // this call is statically resolved with overload resolution, etc.
73516
 
    return sem_expr.resolve (this, base);
73517
 
  }
73518
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73519
 
 
73520
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73521
 
CTypeInfo *
73522
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73523
 
 Puma::CT_QualName 
73524
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73525
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73526
 
    // this call is statically resolved with overload resolution, etc.
73527
 
    return sem_expr.resolve (this, base);
73528
 
  }
73529
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73530
 
 
73531
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73532
 
CTypeInfo *
73533
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73534
 
 Puma::CT_ConversionName 
73535
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73536
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73537
 
    // this call is statically resolved with overload resolution, etc.
73538
 
    return sem_expr.resolve (this, base);
73539
 
  }
73540
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73541
 
 
73542
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73543
 
CTypeInfo *
73544
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73545
 
 Puma::CT_ConversionName 
73546
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73547
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73548
 
    // this call is statically resolved with overload resolution, etc.
73549
 
    return sem_expr.resolve (this, base);
73550
 
  }
73551
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73552
 
 
73553
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73554
 
CTypeInfo *
73555
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73556
 
 Puma::CT_OperatorName 
73557
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73558
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73559
 
    // this call is statically resolved with overload resolution, etc.
73560
 
    return sem_expr.resolve (this, base);
73561
 
  }
73562
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73563
 
 
73564
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73565
 
CTypeInfo *
73566
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73567
 
 Puma::CT_OperatorName 
73568
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73569
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73570
 
    // this call is statically resolved with overload resolution, etc.
73571
 
    return sem_expr.resolve (this, base);
73572
 
  }
73573
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73574
 
 
73575
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73576
 
CTypeInfo *
73577
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73578
 
 Puma::CT_TemplateName 
73579
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73580
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73581
 
    // this call is statically resolved with overload resolution, etc.
73582
 
    return sem_expr.resolve (this, base);
73583
 
  }
73584
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73585
 
 
73586
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73587
 
CTypeInfo *
73588
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73589
 
 Puma::CT_TemplateName 
73590
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73591
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73592
 
    // this call is statically resolved with overload resolution, etc.
73593
 
    return sem_expr.resolve (this, base);
73594
 
  }
73595
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73596
 
 
73597
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73598
 
CTypeInfo *
73599
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73600
 
 Puma::CT_DestructorName 
73601
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73602
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73603
 
    // this call is statically resolved with overload resolution, etc.
73604
 
    return sem_expr.resolve (this, base);
73605
 
  }
73606
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73607
 
 
73608
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73609
 
CTypeInfo *
73610
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73611
 
 Puma::CT_DestructorName 
73612
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73613
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73614
 
    // this call is statically resolved with overload resolution, etc.
73615
 
    return sem_expr.resolve (this, base);
73616
 
  }
73617
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73618
 
 
73619
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73620
 
CTypeInfo *
73621
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73622
 
 Puma::CT_PrivateName 
73623
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73624
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73625
 
    // this call is statically resolved with overload resolution, etc.
73626
 
    return sem_expr.resolve (this, base);
73627
 
  }
73628
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73629
 
 
73630
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73631
 
CTypeInfo *
73632
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73633
 
 Puma::CT_PrivateName 
73634
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73635
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73636
 
    // this call is statically resolved with overload resolution, etc.
73637
 
    return sem_expr.resolve (this, base);
73638
 
  }
73639
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73640
 
 
73641
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73642
 
CTypeInfo *
73643
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73644
 
 Puma::CT_SpecialName 
73645
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73646
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73647
 
    // this call is statically resolved with overload resolution, etc.
73648
 
    return sem_expr.resolve (this, base);
73649
 
  }
73650
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73651
 
 
73652
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73653
 
CTypeInfo *
73654
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73655
 
 Puma::CT_SpecialName 
73656
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73657
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73658
 
    // this call is statically resolved with overload resolution, etc.
73659
 
    return sem_expr.resolve (this, base);
73660
 
  }
73661
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73662
 
 
73663
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73664
 
CTypeInfo *
73665
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73666
 
 Puma::CT_SimpleName 
73667
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73668
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73669
 
    // this call is statically resolved with overload resolution, etc.
73670
 
    return sem_expr.resolve (this, base);
73671
 
  }
73672
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73673
 
 
73674
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73675
 
CTypeInfo *
73676
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73677
 
 Puma::CT_SimpleName 
73678
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73679
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73680
 
    // this call is statically resolved with overload resolution, etc.
73681
 
    return sem_expr.resolve (this, base);
73682
 
  }
73683
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73684
 
 
73685
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73686
 
CTypeInfo *
73687
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73688
 
 Puma::CT_BracedExpr 
73689
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73690
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73691
 
    // this call is statically resolved with overload resolution, etc.
73692
 
    return sem_expr.resolve (this, base);
73693
 
  }
73694
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73695
 
 
73696
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73697
 
CTypeInfo *
73698
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73699
 
 Puma::CT_BracedExpr 
73700
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73701
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73702
 
    // this call is statically resolved with overload resolution, etc.
73703
 
    return sem_expr.resolve (this, base);
73704
 
  }
73705
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73706
 
 
73707
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73708
 
CTypeInfo *
73709
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73710
 
 Puma::CT_Bool 
73711
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73712
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73713
 
    // this call is statically resolved with overload resolution, etc.
73714
 
    return sem_expr.resolve (this, base);
73715
 
  }
73716
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73717
 
 
73718
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73719
 
CTypeInfo *
73720
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73721
 
 Puma::CT_Bool 
73722
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73723
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73724
 
    // this call is statically resolved with overload resolution, etc.
73725
 
    return sem_expr.resolve (this, base);
73726
 
  }
73727
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73728
 
 
73729
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73730
 
CTypeInfo *
73731
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73732
 
 Puma::CT_Float 
73733
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73734
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73735
 
    // this call is statically resolved with overload resolution, etc.
73736
 
    return sem_expr.resolve (this, base);
73737
 
  }
73738
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73739
 
 
73740
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73741
 
CTypeInfo *
73742
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73743
 
 Puma::CT_Float 
73744
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73745
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73746
 
    // this call is statically resolved with overload resolution, etc.
73747
 
    return sem_expr.resolve (this, base);
73748
 
  }
73749
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73750
 
 
73751
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73752
 
CTypeInfo *
73753
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73754
 
 Puma::CT_WideCharacter 
73755
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73756
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73757
 
    // this call is statically resolved with overload resolution, etc.
73758
 
    return sem_expr.resolve (this, base);
73759
 
  }
73760
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73761
 
 
73762
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73763
 
CTypeInfo *
73764
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73765
 
 Puma::CT_WideCharacter 
73766
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73767
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73768
 
    // this call is statically resolved with overload resolution, etc.
73769
 
    return sem_expr.resolve (this, base);
73770
 
  }
73771
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73772
 
 
73773
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73774
 
CTypeInfo *
73775
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73776
 
 Puma::CT_Character 
73777
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73778
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73779
 
    // this call is statically resolved with overload resolution, etc.
73780
 
    return sem_expr.resolve (this, base);
73781
 
  }
73782
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73783
 
 
73784
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73785
 
CTypeInfo *
73786
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73787
 
 Puma::CT_Character 
73788
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73789
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73790
 
    // this call is statically resolved with overload resolution, etc.
73791
 
    return sem_expr.resolve (this, base);
73792
 
  }
73793
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73794
 
 
73795
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73796
 
CTypeInfo *
73797
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73798
 
 Puma::CT_Integer 
73799
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73800
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73801
 
    // this call is statically resolved with overload resolution, etc.
73802
 
    return sem_expr.resolve (this, base);
73803
 
  }
73804
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73805
 
 
73806
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73807
 
CTypeInfo *
73808
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73809
 
 Puma::CT_Integer 
73810
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73811
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73812
 
    // this call is statically resolved with overload resolution, etc.
73813
 
    return sem_expr.resolve (this, base);
73814
 
  }
73815
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73816
 
 
73817
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73818
 
CTypeInfo *
73819
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73820
 
 Puma::CT_WideString 
73821
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73822
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73823
 
    // this call is statically resolved with overload resolution, etc.
73824
 
    return sem_expr.resolve (this, base);
73825
 
  }
73826
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73827
 
 
73828
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73829
 
CTypeInfo *
73830
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73831
 
 Puma::CT_WideString 
73832
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73833
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73834
 
    // this call is statically resolved with overload resolution, etc.
73835
 
    return sem_expr.resolve (this, base);
73836
 
  }
73837
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73838
 
 
73839
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73840
 
CTypeInfo *
73841
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73842
 
 Puma::CT_String 
73843
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73844
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73845
 
    // this call is statically resolved with overload resolution, etc.
73846
 
    return sem_expr.resolve (this, base);
73847
 
  }
73848
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73849
 
 
73850
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73851
 
CTypeInfo *
73852
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73853
 
 Puma::CT_String 
73854
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73855
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73856
 
    // this call is statically resolved with overload resolution, etc.
73857
 
    return sem_expr.resolve (this, base);
73858
 
  }
73859
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73860
 
 
73861
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73862
 
CTypeInfo *
73863
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73864
 
 Puma::CT_Expression 
73865
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73866
 
::resolve (CSemExpr &sem_expr, CTree *base) {
73867
 
    // this call is statically resolved with overload resolution, etc.
73868
 
    return sem_expr.resolve (this, base);
73869
 
  }
73870
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73871
 
 
73872
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73873
 
CTypeInfo *
73874
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73875
 
 Puma::CT_Expression 
73876
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73877
 
::resolve (CCSemExpr &sem_expr, CTree *base) {
73878
 
    // this call is statically resolved with overload resolution, etc.
73879
 
    return sem_expr.resolve (this, base);
73880
 
  }
73881
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73882
 
 
73883
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73884
 
CTypeInfo *
73885
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73886
 
 Puma::CTree 
73887
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
73888
 
::resolve(CSemExpr &sem_expr, CTree *base) {
73889
 
    return 0;
73890
 
  }
73891
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73892
 
 
73893
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73894
 
CTypeInfo *
73895
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73896
 
 Puma::CTree 
73897
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
73898
 
::resolve(CCSemExpr &sem_expr, CTree *base) {
73899
 
    return 0;
73900
 
  }
73901
 
#line 537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73902
 
 
73903
 
#line 73904 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CTree.cc"
73904
 
 
73905
 
#ifdef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CTree_cc__
73906
 
/*** begin of aspect includes ***/
73907
 
#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__)
73908
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
93207
#line 7 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93208
#endif
 
93209
 
 
93210
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93211
 
 
93212
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93213
 Puma :: CTypeInfo * Puma::CT_GnuStatementExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93214
 
 
93215
return sem_expr . resolve ( this , base ) ;
 
93216
 
93217
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93218
 Puma :: CTypeInfo * Puma::CT_GnuStatementExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93219
 
 
93220
return sem_expr . resolve ( this , base ) ;
 
93221
}
 
93222
#line 93223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93223
 
 
93224
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93225
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93226
#include "CExprResolveCC.ah"
 
93227
#endif
 
93228
 
 
93229
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93230
 
 
93231
#line 93232 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93232
 
 
93233
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93234
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93235
#include "CCExprResolveCC.ah"
 
93236
#endif
 
93237
 
 
93238
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93239
 
 
93240
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93241
 Puma :: CTypeInfo * Puma::CT_MembInit :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93242
 
 
93243
return sem_expr . resolve ( this , base ) ;
 
93244
 
93245
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93246
 Puma :: CTypeInfo * Puma::CT_MembInit :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93247
 
 
93248
return sem_expr . resolve ( this , base ) ;
 
93249
}
 
93250
#line 93251 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93251
 
 
93252
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93253
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93254
#include "CExprResolveCC.ah"
 
93255
#endif
 
93256
 
 
93257
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93258
 
 
93259
#line 93260 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93260
 
 
93261
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93262
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93263
#include "CCExprResolveCC.ah"
 
93264
#endif
 
93265
 
 
93266
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93267
 
 
93268
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93269
 Puma :: CTypeInfo * Puma::CT_MembDesignator :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93270
 
 
93271
return sem_expr . resolve ( this , base ) ;
 
93272
 
93273
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93274
 Puma :: CTypeInfo * Puma::CT_MembDesignator :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93275
 
 
93276
return sem_expr . resolve ( this , base ) ;
 
93277
}
 
93278
#line 93279 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93279
 
 
93280
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93281
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93282
#include "CExprResolveCC.ah"
 
93283
#endif
 
93284
 
 
93285
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93286
 
 
93287
#line 93288 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93288
 
 
93289
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93290
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93291
#include "CCExprResolveCC.ah"
 
93292
#endif
 
93293
 
 
93294
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93295
 
 
93296
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93297
 Puma :: CTypeInfo * Puma::CT_IndexDesignator :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93298
 
 
93299
return sem_expr . resolve ( this , base ) ;
 
93300
 
93301
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93302
 Puma :: CTypeInfo * Puma::CT_IndexDesignator :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93303
 
 
93304
return sem_expr . resolve ( this , base ) ;
 
93305
}
 
93306
#line 93307 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93307
 
 
93308
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93309
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93310
#include "CExprResolveCC.ah"
 
93311
#endif
 
93312
 
 
93313
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93314
 
 
93315
#line 93316 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93316
 
 
93317
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93318
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93319
#include "CCExprResolveCC.ah"
 
93320
#endif
 
93321
 
 
93322
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93323
 
 
93324
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93325
 Puma :: CTypeInfo * Puma::CT_SizeofExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93326
 
 
93327
return sem_expr . resolve ( this , base ) ;
 
93328
 
93329
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93330
 Puma :: CTypeInfo * Puma::CT_SizeofExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93331
 
 
93332
return sem_expr . resolve ( this , base ) ;
 
93333
}
 
93334
#line 93335 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93335
 
 
93336
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93337
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93338
#include "CExprResolveCC.ah"
 
93339
#endif
 
93340
 
 
93341
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93342
 
 
93343
#line 93344 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93344
 
 
93345
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93346
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93347
#include "CCExprResolveCC.ah"
 
93348
#endif
 
93349
 
 
93350
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93351
 
 
93352
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93353
 Puma :: CTypeInfo * Puma::CT_TypeidExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93354
 
 
93355
return sem_expr . resolve ( this , base ) ;
 
93356
 
93357
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93358
 Puma :: CTypeInfo * Puma::CT_TypeidExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93359
 
 
93360
return sem_expr . resolve ( this , base ) ;
 
93361
}
 
93362
#line 93363 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93363
 
 
93364
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93365
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93366
#include "CExprResolveCC.ah"
 
93367
#endif
 
93368
 
 
93369
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93370
 
 
93371
#line 93372 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93372
 
 
93373
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93374
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93375
#include "CCExprResolveCC.ah"
 
93376
#endif
 
93377
 
 
93378
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93379
 
 
93380
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93381
 Puma :: CTypeInfo * Puma::CT_ImplicitCast :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93382
 
 
93383
return sem_expr . resolve ( this , base ) ;
 
93384
 
93385
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93386
 Puma :: CTypeInfo * Puma::CT_ImplicitCast :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93387
 
 
93388
return sem_expr . resolve ( this , base ) ;
 
93389
}
 
93390
#line 93391 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93391
 
 
93392
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93393
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93394
#include "CExprResolveCC.ah"
 
93395
#endif
 
93396
 
 
93397
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93398
 
 
93399
#line 93400 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93400
 
 
93401
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93402
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93403
#include "CCExprResolveCC.ah"
 
93404
#endif
 
93405
 
 
93406
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93407
 
 
93408
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93409
 Puma :: CTypeInfo * Puma::CT_DynamicCast :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93410
 
 
93411
return sem_expr . resolve ( this , base ) ;
 
93412
 
93413
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93414
 Puma :: CTypeInfo * Puma::CT_DynamicCast :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93415
 
 
93416
return sem_expr . resolve ( this , base ) ;
 
93417
}
 
93418
#line 93419 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93419
 
 
93420
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93421
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93422
#include "CExprResolveCC.ah"
 
93423
#endif
 
93424
 
 
93425
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93426
 
 
93427
#line 93428 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93428
 
 
93429
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93430
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93431
#include "CCExprResolveCC.ah"
 
93432
#endif
 
93433
 
 
93434
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93435
 
 
93436
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93437
 Puma :: CTypeInfo * Puma::CT_ReintCast :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93438
 
 
93439
return sem_expr . resolve ( this , base ) ;
 
93440
 
93441
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93442
 Puma :: CTypeInfo * Puma::CT_ReintCast :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93443
 
 
93444
return sem_expr . resolve ( this , base ) ;
 
93445
}
 
93446
#line 93447 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93447
 
 
93448
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93449
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93450
#include "CExprResolveCC.ah"
 
93451
#endif
 
93452
 
 
93453
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93454
 
 
93455
#line 93456 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93456
 
 
93457
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93458
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93459
#include "CCExprResolveCC.ah"
 
93460
#endif
 
93461
 
 
93462
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93463
 
 
93464
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93465
 Puma :: CTypeInfo * Puma::CT_ConstCast :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93466
 
 
93467
return sem_expr . resolve ( this , base ) ;
 
93468
 
93469
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93470
 Puma :: CTypeInfo * Puma::CT_ConstCast :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93471
 
 
93472
return sem_expr . resolve ( this , base ) ;
 
93473
}
 
93474
#line 93475 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93475
 
 
93476
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93477
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93478
#include "CExprResolveCC.ah"
 
93479
#endif
 
93480
 
 
93481
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93482
 
 
93483
#line 93484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93484
 
 
93485
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93486
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93487
#include "CCExprResolveCC.ah"
 
93488
#endif
 
93489
 
 
93490
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93491
 
 
93492
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93493
 Puma :: CTypeInfo * Puma::CT_StaticCast :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93494
 
 
93495
return sem_expr . resolve ( this , base ) ;
 
93496
 
93497
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93498
 Puma :: CTypeInfo * Puma::CT_StaticCast :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93499
 
 
93500
return sem_expr . resolve ( this , base ) ;
 
93501
}
 
93502
#line 93503 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93503
 
 
93504
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93505
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93506
#include "CExprResolveCC.ah"
 
93507
#endif
 
93508
 
 
93509
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93510
 
 
93511
#line 93512 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93512
 
 
93513
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93514
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93515
#include "CCExprResolveCC.ah"
 
93516
#endif
 
93517
 
 
93518
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93519
 
 
93520
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93521
 Puma :: CTypeInfo * Puma::CT_CastExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93522
 
 
93523
return sem_expr . resolve ( this , base ) ;
 
93524
 
93525
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93526
 Puma :: CTypeInfo * Puma::CT_CastExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93527
 
 
93528
return sem_expr . resolve ( this , base ) ;
 
93529
}
 
93530
#line 93531 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93531
 
 
93532
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93533
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93534
#include "CExprResolveCC.ah"
 
93535
#endif
 
93536
 
 
93537
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93538
 
 
93539
#line 93540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93540
 
 
93541
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93542
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93543
#include "CCExprResolveCC.ah"
 
93544
#endif
 
93545
 
 
93546
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93547
 
 
93548
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93549
 Puma :: CTypeInfo * Puma::CT_CallExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93550
 
 
93551
return sem_expr . resolve ( this , base ) ;
 
93552
 
93553
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93554
 Puma :: CTypeInfo * Puma::CT_CallExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93555
 
 
93556
return sem_expr . resolve ( this , base ) ;
 
93557
}
 
93558
#line 93559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93559
 
 
93560
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93561
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93562
#include "CExprResolveCC.ah"
 
93563
#endif
 
93564
 
 
93565
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93566
 
 
93567
#line 93568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93568
 
 
93569
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93570
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93571
#include "CCExprResolveCC.ah"
 
93572
#endif
 
93573
 
 
93574
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93575
 
 
93576
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93577
 Puma :: CTypeInfo * Puma::CT_IndexExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93578
 
 
93579
return sem_expr . resolve ( this , base ) ;
 
93580
 
93581
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93582
 Puma :: CTypeInfo * Puma::CT_IndexExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93583
 
 
93584
return sem_expr . resolve ( this , base ) ;
 
93585
}
 
93586
#line 93587 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93587
 
 
93588
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93589
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93590
#include "CExprResolveCC.ah"
 
93591
#endif
 
93592
 
 
93593
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93594
 
 
93595
#line 93596 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93596
 
 
93597
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93598
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93599
#include "CCExprResolveCC.ah"
 
93600
#endif
 
93601
 
 
93602
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93603
 
 
93604
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93605
 Puma :: CTypeInfo * Puma::CT_ThrowExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93606
 
 
93607
return sem_expr . resolve ( this , base ) ;
 
93608
 
93609
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93610
 Puma :: CTypeInfo * Puma::CT_ThrowExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93611
 
 
93612
return sem_expr . resolve ( this , base ) ;
 
93613
}
 
93614
#line 93615 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93615
 
 
93616
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93617
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93618
#include "CExprResolveCC.ah"
 
93619
#endif
 
93620
 
 
93621
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93622
 
 
93623
#line 93624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93624
 
 
93625
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93626
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93627
#include "CCExprResolveCC.ah"
 
93628
#endif
 
93629
 
 
93630
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93631
 
 
93632
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93633
 Puma :: CTypeInfo * Puma::CT_ConstructExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93634
 
 
93635
return sem_expr . resolve ( this , base ) ;
 
93636
 
93637
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93638
 Puma :: CTypeInfo * Puma::CT_ConstructExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93639
 
 
93640
return sem_expr . resolve ( this , base ) ;
 
93641
}
 
93642
#line 93643 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93643
 
 
93644
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93645
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93646
#include "CExprResolveCC.ah"
 
93647
#endif
 
93648
 
 
93649
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93650
 
 
93651
#line 93652 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93652
 
 
93653
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93654
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93655
#include "CCExprResolveCC.ah"
 
93656
#endif
 
93657
 
 
93658
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93659
 
 
93660
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93661
 Puma :: CTypeInfo * Puma::CT_CmpdLiteral :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93662
 
 
93663
return sem_expr . resolve ( this , base ) ;
 
93664
 
93665
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93666
 Puma :: CTypeInfo * Puma::CT_CmpdLiteral :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93667
 
 
93668
return sem_expr . resolve ( this , base ) ;
 
93669
}
 
93670
#line 93671 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93671
 
 
93672
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93673
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93674
#include "CExprResolveCC.ah"
 
93675
#endif
 
93676
 
 
93677
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93678
 
 
93679
#line 93680 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93680
 
 
93681
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93682
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93683
#include "CCExprResolveCC.ah"
 
93684
#endif
 
93685
 
 
93686
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93687
 
 
93688
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93689
 Puma :: CTypeInfo * Puma::CT_IfThenExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93690
 
 
93691
return sem_expr . resolve ( this , base ) ;
 
93692
 
93693
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93694
 Puma :: CTypeInfo * Puma::CT_IfThenExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93695
 
 
93696
return sem_expr . resolve ( this , base ) ;
 
93697
}
 
93698
#line 93699 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93699
 
 
93700
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93701
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93702
#include "CExprResolveCC.ah"
 
93703
#endif
 
93704
 
 
93705
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93706
 
 
93707
#line 93708 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93708
 
 
93709
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93710
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93711
#include "CCExprResolveCC.ah"
 
93712
#endif
 
93713
 
 
93714
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93715
 
 
93716
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93717
 Puma :: CTypeInfo * Puma::CT_NewExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93718
 
 
93719
return sem_expr . resolve ( this , base ) ;
 
93720
 
93721
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93722
 Puma :: CTypeInfo * Puma::CT_NewExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93723
 
 
93724
return sem_expr . resolve ( this , base ) ;
 
93725
}
 
93726
#line 93727 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93727
 
 
93728
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93729
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93730
#include "CExprResolveCC.ah"
 
93731
#endif
 
93732
 
 
93733
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93734
 
 
93735
#line 93736 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93736
 
 
93737
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93738
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93739
#include "CCExprResolveCC.ah"
 
93740
#endif
 
93741
 
 
93742
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93743
 
 
93744
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93745
 Puma :: CTypeInfo * Puma::CT_DeleteExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93746
 
 
93747
return sem_expr . resolve ( this , base ) ;
 
93748
 
93749
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93750
 Puma :: CTypeInfo * Puma::CT_DeleteExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93751
 
 
93752
return sem_expr . resolve ( this , base ) ;
 
93753
}
 
93754
#line 93755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93755
 
 
93756
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93757
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93758
#include "CExprResolveCC.ah"
 
93759
#endif
 
93760
 
 
93761
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93762
 
 
93763
#line 93764 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93764
 
 
93765
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93766
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93767
#include "CCExprResolveCC.ah"
 
93768
#endif
 
93769
 
 
93770
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93771
 
 
93772
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93773
 Puma :: CTypeInfo * Puma::CT_DerefExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93774
 
 
93775
return sem_expr . resolve ( this , base ) ;
 
93776
 
93777
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93778
 Puma :: CTypeInfo * Puma::CT_DerefExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93779
 
 
93780
return sem_expr . resolve ( this , base ) ;
 
93781
}
 
93782
#line 93783 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93783
 
 
93784
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93785
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93786
#include "CExprResolveCC.ah"
 
93787
#endif
 
93788
 
 
93789
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93790
 
 
93791
#line 93792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93792
 
 
93793
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93794
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93795
#include "CCExprResolveCC.ah"
 
93796
#endif
 
93797
 
 
93798
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93799
 
 
93800
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93801
 Puma :: CTypeInfo * Puma::CT_AddrExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93802
 
 
93803
return sem_expr . resolve ( this , base ) ;
 
93804
 
93805
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93806
 Puma :: CTypeInfo * Puma::CT_AddrExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93807
 
 
93808
return sem_expr . resolve ( this , base ) ;
 
93809
}
 
93810
#line 93811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93811
 
 
93812
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93813
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93814
#include "CExprResolveCC.ah"
 
93815
#endif
 
93816
 
 
93817
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93818
 
 
93819
#line 93820 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93820
 
 
93821
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93822
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93823
#include "CCExprResolveCC.ah"
 
93824
#endif
 
93825
 
 
93826
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93827
 
 
93828
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93829
 Puma :: CTypeInfo * Puma::CT_PostfixExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93830
 
 
93831
return sem_expr . resolve ( this , base ) ;
 
93832
 
93833
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93834
 Puma :: CTypeInfo * Puma::CT_PostfixExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93835
 
 
93836
return sem_expr . resolve ( this , base ) ;
 
93837
}
 
93838
#line 93839 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93839
 
 
93840
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93841
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93842
#include "CExprResolveCC.ah"
 
93843
#endif
 
93844
 
 
93845
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93846
 
 
93847
#line 93848 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93848
 
 
93849
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93850
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93851
#include "CCExprResolveCC.ah"
 
93852
#endif
 
93853
 
 
93854
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93855
 
 
93856
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93857
 Puma :: CTypeInfo * Puma::CT_UnaryExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93858
 
 
93859
return sem_expr . resolve ( this , base ) ;
 
93860
 
93861
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93862
 Puma :: CTypeInfo * Puma::CT_UnaryExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93863
 
 
93864
return sem_expr . resolve ( this , base ) ;
 
93865
}
 
93866
#line 93867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93867
 
 
93868
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93869
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93870
#include "CExprResolveCC.ah"
 
93871
#endif
 
93872
 
 
93873
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93874
 
 
93875
#line 93876 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93876
 
 
93877
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93878
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93879
#include "CCExprResolveCC.ah"
 
93880
#endif
 
93881
 
 
93882
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93883
 
 
93884
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93885
 Puma :: CTypeInfo * Puma::CT_MembRefExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93886
 
 
93887
return sem_expr . resolve ( this , base ) ;
 
93888
 
93889
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93890
 Puma :: CTypeInfo * Puma::CT_MembRefExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93891
 
 
93892
return sem_expr . resolve ( this , base ) ;
 
93893
}
 
93894
#line 93895 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93895
 
 
93896
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93897
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93898
#include "CExprResolveCC.ah"
 
93899
#endif
 
93900
 
 
93901
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93902
 
 
93903
#line 93904 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93904
 
 
93905
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93906
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93907
#include "CCExprResolveCC.ah"
 
93908
#endif
 
93909
 
 
93910
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93911
 
 
93912
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93913
 Puma :: CTypeInfo * Puma::CT_MembPtrExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93914
 
 
93915
return sem_expr . resolve ( this , base ) ;
 
93916
 
93917
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93918
 Puma :: CTypeInfo * Puma::CT_MembPtrExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93919
 
 
93920
return sem_expr . resolve ( this , base ) ;
 
93921
}
 
93922
#line 93923 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93923
 
 
93924
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93925
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93926
#include "CExprResolveCC.ah"
 
93927
#endif
 
93928
 
 
93929
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93930
 
 
93931
#line 93932 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93932
 
 
93933
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93934
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93935
#include "CCExprResolveCC.ah"
 
93936
#endif
 
93937
 
 
93938
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93939
 
 
93940
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93941
 Puma :: CTypeInfo * Puma::CT_BinaryExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93942
 
 
93943
return sem_expr . resolve ( this , base ) ;
 
93944
 
93945
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93946
 Puma :: CTypeInfo * Puma::CT_BinaryExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93947
 
 
93948
return sem_expr . resolve ( this , base ) ;
 
93949
}
 
93950
#line 93951 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93951
 
 
93952
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93953
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93954
#include "CExprResolveCC.ah"
 
93955
#endif
 
93956
 
 
93957
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93958
 
 
93959
#line 93960 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93960
 
 
93961
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93962
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93963
#include "CCExprResolveCC.ah"
 
93964
#endif
 
93965
 
 
93966
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93967
 
 
93968
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93969
 Puma :: CTypeInfo * Puma::CT_RootQualName :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93970
 
 
93971
return sem_expr . resolve ( this , base ) ;
 
93972
 
93973
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
93974
 Puma :: CTypeInfo * Puma::CT_RootQualName :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
93975
 
 
93976
return sem_expr . resolve ( this , base ) ;
 
93977
}
 
93978
#line 93979 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93979
 
 
93980
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93981
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
93982
#include "CExprResolveCC.ah"
 
93983
#endif
 
93984
 
 
93985
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93986
 
 
93987
#line 93988 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
93988
 
 
93989
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93990
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
93991
#include "CCExprResolveCC.ah"
 
93992
#endif
 
93993
 
 
93994
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
93995
 
 
93996
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
93997
 Puma :: CTypeInfo * Puma::CT_QualName :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
93998
 
 
93999
return sem_expr . resolve ( this , base ) ;
 
94000
 
94001
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94002
 Puma :: CTypeInfo * Puma::CT_QualName :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94003
 
 
94004
return sem_expr . resolve ( this , base ) ;
 
94005
}
 
94006
#line 94007 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94007
 
 
94008
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94009
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94010
#include "CExprResolveCC.ah"
 
94011
#endif
 
94012
 
 
94013
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94014
 
 
94015
#line 94016 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94016
 
 
94017
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94018
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94019
#include "CCExprResolveCC.ah"
 
94020
#endif
 
94021
 
 
94022
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94023
 
 
94024
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94025
 Puma :: CTypeInfo * Puma::CT_ConversionName :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94026
 
 
94027
return sem_expr . resolve ( this , base ) ;
 
94028
 
94029
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94030
 Puma :: CTypeInfo * Puma::CT_ConversionName :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94031
 
 
94032
return sem_expr . resolve ( this , base ) ;
 
94033
}
 
94034
#line 94035 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94035
 
 
94036
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94037
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94038
#include "CExprResolveCC.ah"
 
94039
#endif
 
94040
 
 
94041
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94042
 
 
94043
#line 94044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94044
 
 
94045
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94046
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94047
#include "CCExprResolveCC.ah"
 
94048
#endif
 
94049
 
 
94050
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94051
 
 
94052
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94053
 Puma :: CTypeInfo * Puma::CT_OperatorName :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94054
 
 
94055
return sem_expr . resolve ( this , base ) ;
 
94056
 
94057
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94058
 Puma :: CTypeInfo * Puma::CT_OperatorName :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94059
 
 
94060
return sem_expr . resolve ( this , base ) ;
 
94061
}
 
94062
#line 94063 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94063
 
 
94064
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94065
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94066
#include "CExprResolveCC.ah"
 
94067
#endif
 
94068
 
 
94069
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94070
 
 
94071
#line 94072 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94072
 
 
94073
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94074
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94075
#include "CCExprResolveCC.ah"
 
94076
#endif
 
94077
 
 
94078
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94079
 
 
94080
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94081
 Puma :: CTypeInfo * Puma::CT_TemplateName :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94082
 
 
94083
return sem_expr . resolve ( this , base ) ;
 
94084
 
94085
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94086
 Puma :: CTypeInfo * Puma::CT_TemplateName :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94087
 
 
94088
return sem_expr . resolve ( this , base ) ;
 
94089
}
 
94090
#line 94091 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94091
 
 
94092
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94093
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94094
#include "CExprResolveCC.ah"
 
94095
#endif
 
94096
 
 
94097
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94098
 
 
94099
#line 94100 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94100
 
 
94101
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94102
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94103
#include "CCExprResolveCC.ah"
 
94104
#endif
 
94105
 
 
94106
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94107
 
 
94108
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94109
 Puma :: CTypeInfo * Puma::CT_DestructorName :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94110
 
 
94111
return sem_expr . resolve ( this , base ) ;
 
94112
 
94113
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94114
 Puma :: CTypeInfo * Puma::CT_DestructorName :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94115
 
 
94116
return sem_expr . resolve ( this , base ) ;
 
94117
}
 
94118
#line 94119 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94119
 
 
94120
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94121
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94122
#include "CExprResolveCC.ah"
 
94123
#endif
 
94124
 
 
94125
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94126
 
 
94127
#line 94128 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94128
 
 
94129
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94130
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94131
#include "CCExprResolveCC.ah"
 
94132
#endif
 
94133
 
 
94134
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94135
 
 
94136
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94137
 Puma :: CTypeInfo * Puma::CT_PrivateName :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94138
 
 
94139
return sem_expr . resolve ( this , base ) ;
 
94140
 
94141
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94142
 Puma :: CTypeInfo * Puma::CT_PrivateName :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94143
 
 
94144
return sem_expr . resolve ( this , base ) ;
 
94145
}
 
94146
#line 94147 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94147
 
 
94148
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94149
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94150
#include "CExprResolveCC.ah"
 
94151
#endif
 
94152
 
 
94153
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94154
 
 
94155
#line 94156 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94156
 
 
94157
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94158
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94159
#include "CCExprResolveCC.ah"
 
94160
#endif
 
94161
 
 
94162
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94163
 
 
94164
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94165
 Puma :: CTypeInfo * Puma::CT_SpecialName :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94166
 
 
94167
return sem_expr . resolve ( this , base ) ;
 
94168
 
94169
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94170
 Puma :: CTypeInfo * Puma::CT_SpecialName :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94171
 
 
94172
return sem_expr . resolve ( this , base ) ;
 
94173
}
 
94174
#line 94175 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94175
 
 
94176
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94177
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94178
#include "CExprResolveCC.ah"
 
94179
#endif
 
94180
 
 
94181
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94182
 
 
94183
#line 94184 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94184
 
 
94185
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94186
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94187
#include "CCExprResolveCC.ah"
 
94188
#endif
 
94189
 
 
94190
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94191
 
 
94192
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94193
 Puma :: CTypeInfo * Puma::CT_SimpleName :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94194
 
 
94195
return sem_expr . resolve ( this , base ) ;
 
94196
 
94197
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94198
 Puma :: CTypeInfo * Puma::CT_SimpleName :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94199
 
 
94200
return sem_expr . resolve ( this , base ) ;
 
94201
}
 
94202
#line 94203 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94203
 
 
94204
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94205
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94206
#include "CExprResolveCC.ah"
 
94207
#endif
 
94208
 
 
94209
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94210
 
 
94211
#line 94212 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94212
 
 
94213
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94214
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94215
#include "CCExprResolveCC.ah"
 
94216
#endif
 
94217
 
 
94218
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94219
 
 
94220
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94221
 Puma :: CTypeInfo * Puma::CT_BracedExpr :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94222
 
 
94223
return sem_expr . resolve ( this , base ) ;
 
94224
 
94225
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94226
 Puma :: CTypeInfo * Puma::CT_BracedExpr :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94227
 
 
94228
return sem_expr . resolve ( this , base ) ;
 
94229
}
 
94230
#line 94231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94231
 
 
94232
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94233
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94234
#include "CExprResolveCC.ah"
 
94235
#endif
 
94236
 
 
94237
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94238
 
 
94239
#line 94240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94240
 
 
94241
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94242
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94243
#include "CCExprResolveCC.ah"
 
94244
#endif
 
94245
 
 
94246
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94247
 
 
94248
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94249
 Puma :: CTypeInfo * Puma::CT_Bool :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94250
 
 
94251
return sem_expr . resolve ( this , base ) ;
 
94252
 
94253
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94254
 Puma :: CTypeInfo * Puma::CT_Bool :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94255
 
 
94256
return sem_expr . resolve ( this , base ) ;
 
94257
}
 
94258
#line 94259 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94259
 
 
94260
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94261
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94262
#include "CExprResolveCC.ah"
 
94263
#endif
 
94264
 
 
94265
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94266
 
 
94267
#line 94268 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94268
 
 
94269
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94270
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94271
#include "CCExprResolveCC.ah"
 
94272
#endif
 
94273
 
 
94274
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94275
 
 
94276
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94277
 Puma :: CTypeInfo * Puma::CT_Float :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94278
 
 
94279
return sem_expr . resolve ( this , base ) ;
 
94280
 
94281
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94282
 Puma :: CTypeInfo * Puma::CT_Float :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94283
 
 
94284
return sem_expr . resolve ( this , base ) ;
 
94285
}
 
94286
#line 94287 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94287
 
 
94288
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94289
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94290
#include "CExprResolveCC.ah"
 
94291
#endif
 
94292
 
 
94293
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94294
 
 
94295
#line 94296 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94296
 
 
94297
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94298
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94299
#include "CCExprResolveCC.ah"
 
94300
#endif
 
94301
 
 
94302
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94303
 
 
94304
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94305
 Puma :: CTypeInfo * Puma::CT_WideCharacter :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94306
 
 
94307
return sem_expr . resolve ( this , base ) ;
 
94308
 
94309
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94310
 Puma :: CTypeInfo * Puma::CT_WideCharacter :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94311
 
 
94312
return sem_expr . resolve ( this , base ) ;
 
94313
}
 
94314
#line 94315 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94315
 
 
94316
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94317
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94318
#include "CExprResolveCC.ah"
 
94319
#endif
 
94320
 
 
94321
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94322
 
 
94323
#line 94324 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94324
 
 
94325
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94326
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94327
#include "CCExprResolveCC.ah"
 
94328
#endif
 
94329
 
 
94330
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94331
 
 
94332
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94333
 Puma :: CTypeInfo * Puma::CT_Character :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94334
 
 
94335
return sem_expr . resolve ( this , base ) ;
 
94336
 
94337
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94338
 Puma :: CTypeInfo * Puma::CT_Character :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94339
 
 
94340
return sem_expr . resolve ( this , base ) ;
 
94341
}
 
94342
#line 94343 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94343
 
 
94344
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94345
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94346
#include "CExprResolveCC.ah"
 
94347
#endif
 
94348
 
 
94349
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94350
 
 
94351
#line 94352 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94352
 
 
94353
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94354
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94355
#include "CCExprResolveCC.ah"
 
94356
#endif
 
94357
 
 
94358
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94359
 
 
94360
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94361
 Puma :: CTypeInfo * Puma::CT_Integer :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94362
 
 
94363
return sem_expr . resolve ( this , base ) ;
 
94364
 
94365
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94366
 Puma :: CTypeInfo * Puma::CT_Integer :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94367
 
 
94368
return sem_expr . resolve ( this , base ) ;
 
94369
}
 
94370
#line 94371 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94371
 
 
94372
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94373
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94374
#include "CExprResolveCC.ah"
 
94375
#endif
 
94376
 
 
94377
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94378
 
 
94379
#line 94380 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94380
 
 
94381
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94382
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94383
#include "CCExprResolveCC.ah"
 
94384
#endif
 
94385
 
 
94386
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94387
 
 
94388
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94389
 Puma :: CTypeInfo * Puma::CT_WideString :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94390
 
 
94391
return sem_expr . resolve ( this , base ) ;
 
94392
 
94393
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94394
 Puma :: CTypeInfo * Puma::CT_WideString :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94395
 
 
94396
return sem_expr . resolve ( this , base ) ;
 
94397
}
 
94398
#line 94399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94399
 
 
94400
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94401
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94402
#include "CExprResolveCC.ah"
 
94403
#endif
 
94404
 
 
94405
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94406
 
 
94407
#line 94408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94408
 
 
94409
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94410
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94411
#include "CCExprResolveCC.ah"
 
94412
#endif
 
94413
 
 
94414
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94415
 
 
94416
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94417
 Puma :: CTypeInfo * Puma::CT_String :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94418
 
 
94419
return sem_expr . resolve ( this , base ) ;
 
94420
 
94421
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94422
 Puma :: CTypeInfo * Puma::CT_String :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94423
 
 
94424
return sem_expr . resolve ( this , base ) ;
 
94425
}
 
94426
#line 94427 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94427
 
 
94428
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94429
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94430
#include "CExprResolveCC.ah"
 
94431
#endif
 
94432
 
 
94433
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94434
 
 
94435
#line 94436 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94436
 
 
94437
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94438
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94439
#include "CCExprResolveCC.ah"
 
94440
#endif
 
94441
 
 
94442
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94443
 
 
94444
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94445
 Puma :: CTypeInfo * Puma::CT_ImplicitCall :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94446
 
 
94447
return sem_expr . resolve ( this , base ) ;
 
94448
 
94449
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94450
 Puma :: CTypeInfo * Puma::CT_ImplicitCall :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94451
 
 
94452
return sem_expr . resolve ( this , base ) ;
 
94453
}
 
94454
#line 94455 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94455
 
 
94456
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94457
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94458
#include "CExprResolveCC.ah"
 
94459
#endif
 
94460
 
 
94461
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94462
 
 
94463
#line 94464 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94464
 
 
94465
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94466
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94467
#include "CCExprResolveCC.ah"
 
94468
#endif
 
94469
 
 
94470
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94471
 
 
94472
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94473
 Puma :: CTypeInfo * Puma::CT_Call :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94474
 
 
94475
return sem_expr . resolve ( this , base ) ;
 
94476
 
94477
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94478
 Puma :: CTypeInfo * Puma::CT_Call :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94479
 
 
94480
return sem_expr . resolve ( this , base ) ;
 
94481
}
 
94482
#line 94483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94483
 
 
94484
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94485
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94486
#include "CExprResolveCC.ah"
 
94487
#endif
 
94488
 
 
94489
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94490
 
 
94491
#line 94492 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94492
 
 
94493
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94494
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94495
#include "CCExprResolveCC.ah"
 
94496
#endif
 
94497
 
 
94498
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94499
 
 
94500
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94501
 Puma :: CTypeInfo * Puma::CT_Expression :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94502
 
 
94503
return sem_expr . resolve ( this , base ) ;
 
94504
 
94505
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94506
 Puma :: CTypeInfo * Puma::CT_Expression :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94507
 
 
94508
return sem_expr . resolve ( this , base ) ;
 
94509
}
 
94510
#line 94511 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94511
 
 
94512
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94513
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94514
#include "CExprResolveCC.ah"
 
94515
#endif
 
94516
 
 
94517
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94518
 
 
94519
#line 94520 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94520
 
 
94521
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94522
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94523
#include "CCExprResolveCC.ah"
 
94524
#endif
 
94525
 
 
94526
#line 559 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94527
 
 
94528
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveCC.ah"
 
94529
 Puma :: CTypeInfo * Puma::CTree :: resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) {
 
94530
return 0 ;
 
94531
 
94532
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveCC.ah"
 
94533
 Puma :: CTypeInfo * Puma::CTree :: resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) {
 
94534
return 0 ;
 
94535
}
 
94536
#line 94537 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CTree.cc"
 
94537
 
 
94538
#ifdef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CTree_cc__
 
94539
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94540
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94541
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
94542
#include "CCExprResolveCC.ah"
 
94543
#endif
 
94544
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
94545
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
94546
#include "ExtACTree.ah"
 
94547
#endif
 
94548
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
94549
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
94550
#include "ExtGnu.ah"
 
94551
#endif
 
94552
#endif
 
94553
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94554
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94555
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94556
#include "CCExprResolveH.ah"
 
94557
#endif
 
94558
#endif
 
94559
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94560
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94561
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
94562
#include "CExprResolveCC.ah"
 
94563
#endif
 
94564
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
94565
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
94566
#include "ExtACTree.ah"
 
94567
#endif
 
94568
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
94569
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
94570
#include "ExtGnu.ah"
 
94571
#endif
 
94572
#endif
 
94573
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94574
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94575
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94576
#include "CExprResolveH.ah"
 
94577
#endif
 
94578
#endif
 
94579
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
94580
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
94581
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
73909
94582
#include "WinIfExists.ah"
73910
94583
#endif
73911
 
#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__)
73912
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
94584
#endif
 
94585
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
94586
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
94587
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
73913
94588
#include "WinImportHandler.ah"
73914
94589
#endif
73915
 
#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__)
73916
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__
 
94590
#endif
 
94591
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
94592
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
94593
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
73917
94594
#include "WinMacros.ah"
73918
94595
#endif
73919
 
#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__)
73920
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
73921
 
#include "CMatchSyntax.ah"
73922
 
#endif
73923
 
#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__)
73924
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
73925
 
 
73926
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73927
 
#endif
73928
 
#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__)
73929
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
 
94596
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
94597
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
94598
#include "PragmaOnceUnitState.ah"
 
94599
#endif
 
94600
#endif
 
94601
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
94602
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
94603
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
94604
#include "WinAsm.ah"
 
94605
#endif
 
94606
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
94607
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
94608
#include "ExtACTree.ah"
 
94609
#endif
 
94610
#endif
 
94611
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
94612
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
94613
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
94614
#include "WinDeclSpecs.ah"
 
94615
#endif
 
94616
#endif
 
94617
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
94618
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
94619
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
94620
#include "WinMemberExplSpec.ah"
 
94621
#endif
 
94622
#endif
 
94623
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
94624
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
94625
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
94626
#include "WinTypeKeywords.ah"
 
94627
#endif
 
94628
#endif
 
94629
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
94630
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
94631
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
94632
#include "WinFriend.ah"
 
94633
#endif
 
94634
#endif
 
94635
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
94636
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
94637
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
73930
94638
#include "ExtAC.ah"
73931
94639
#endif
73932
 
#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__)
73933
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
94640
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
94641
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
94642
#include "ExtACTree.ah"
 
94643
#endif
 
94644
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
94645
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
94646
#include "ExtACKeywords.ah"
 
94647
#endif
 
94648
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
94649
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
94650
#include "ExtGnu.ah"
 
94651
#endif
 
94652
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
94653
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
94654
#include "PragmaOnceUnitState.ah"
 
94655
#endif
 
94656
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
94657
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
94658
#include "CMatchSyntax.ah"
 
94659
#endif
 
94660
#endif
 
94661
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
94662
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
94663
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
73934
94664
#include "ExtACBuilderH.ah"
73935
94665
#endif
73936
 
#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__)
73937
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
94666
#endif
 
94667
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
94668
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
94669
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
73938
94670
#include "ExtACBuilderCC.ah"
73939
94671
#endif
73940
 
#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__)
73941
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
94672
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
94673
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
94674
#include "ExtACTree.ah"
 
94675
#endif
 
94676
#endif
 
94677
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
94678
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
94679
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
73942
94680
#include "ExtACSyntaxH.ah"
73943
94681
#endif
73944
 
#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__)
73945
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
94682
#endif
 
94683
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
94684
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
94685
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
73946
94686
#include "ExtACSyntaxCC.ah"
73947
94687
#endif
73948
 
#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__)
73949
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
94688
#endif
 
94689
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
94690
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
94691
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
73950
94692
 
73951
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CTree.cc"
73952
 
#endif
73953
 
#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__)
73954
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
94693
#line 157 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94694
#endif
 
94695
#endif
 
94696
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
94697
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
94698
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
73955
94699
#include "ExtACKeywords.ah"
73956
94700
#endif
73957
 
#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__)
73958
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
94701
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
94702
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
94703
#include "PragmaOnceUnitState.ah"
 
94704
#endif
 
94705
#endif
 
94706
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
94707
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
94708
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
94709
#include "ExtACTree.ah"
 
94710
#endif
 
94711
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
94712
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
94713
 
 
94714
#line 177 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CTree.cc"
 
94715
#endif
 
94716
#endif
 
94717
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
94718
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
94719
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
94720
#include "ExtACTree.ah"
 
94721
#endif
 
94722
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
94723
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
94724
#include "ExtGnuCSemDeclSpecs.ah"
 
94725
#endif
 
94726
#endif
 
94727
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
94728
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
94729
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
94730
#include "PragmaOnceUnitState.ah"
 
94731
#endif
 
94732
#endif
 
94733
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
94734
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
94735
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
94736
#include "PragmaOnceUnitState.ah"
 
94737
#endif
 
94738
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
94739
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
94740
#include "PragmaOnce.ah"
 
94741
#endif
 
94742
#endif
 
94743
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
94744
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
94745
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
73959
94746
#include "TraceSyntax.ah"
73960
94747
#endif
73961
 
#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__)
73962
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__
73963
 
#include "WinAsm.ah"
73964
 
#endif
73965
 
#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__)
73966
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
73967
 
#include "WinDeclSpecs.ah"
73968
 
#endif
73969
 
#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__)
73970
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
73971
 
#include "WinMemberExplSpec.ah"
73972
 
#endif
73973
 
#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__)
73974
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
73975
 
#include "WinTypeKeywords.ah"
73976
 
#endif
73977
 
#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__)
73978
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
73979
 
#include "PragmaOnceUnitState.ah"
73980
 
#endif
73981
 
#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__)
73982
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__
73983
 
#include "PragmaOnce.ah"
73984
 
#endif
73985
 
#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__)
73986
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
73987
 
#include "CCExprResolveH.ah"
73988
 
#endif
73989
 
#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__)
73990
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
73991
 
#include "CCExprResolveCC.ah"
73992
 
#endif
73993
 
#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__)
73994
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__
73995
 
#include "CExprResolveH.ah"
73996
 
#endif
73997
 
#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__)
73998
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
73999
 
#include "CExprResolveCC.ah"
74000
 
#endif
74001
 
/*** end of aspect includes ***/
74002
 
#undef __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
74003
 
#undef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CTree_cc__
74004
 
#endif // __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CTree_cc__
 
94748
#endif
 
94749
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
94750
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
94751
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
94752
#include "CMatchSyntax.ah"
 
94753
#endif
 
94754
#endif
 
94755
#undef __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
 
94756
#undef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CTree_cc__
 
94757
#endif // __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CTree_cc__